@visactor/vrender-kits 0.17.6 → 0.17.7-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/env/contributions/feishu-contribution.js +1 -1
- package/cjs/env/contributions/feishu-contribution.js.map +1 -1
- package/cjs/env/contributions/lynx-contribution.js +1 -1
- package/cjs/env/contributions/lynx-contribution.js.map +1 -1
- package/cjs/env/contributions/taro-contribution.js +1 -1
- package/cjs/env/contributions/taro-contribution.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.min.js +1 -1
- package/es/env/contributions/feishu-contribution.js +1 -1
- package/es/env/contributions/feishu-contribution.js.map +1 -1
- package/es/env/contributions/lynx-contribution.js +1 -1
- package/es/env/contributions/lynx-contribution.js.map +1 -1
- package/es/env/contributions/taro-contribution.js +1 -1
- package/es/env/contributions/taro-contribution.js.map +1 -1
- package/package.json +2 -2
|
@@ -53,7 +53,7 @@ let FeishuEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
|
53
53
|
return this.freeCanvasList.length;
|
|
54
54
|
}
|
|
55
55
|
getStaticCanvasCount() {
|
|
56
|
-
return
|
|
56
|
+
return 9999;
|
|
57
57
|
}
|
|
58
58
|
configure(service, params) {
|
|
59
59
|
service.env === this.type && (service.setActiveEnvContribution(this), makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/feishu-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAsF;AAiBtF,SAAS,YAAY,CACnB,MAAW,EACX,aAAuB,EACvB,SAAiC,EACjC,aAAqB,EACrB,cAA2B;IAE3B,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAE9C,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAEvC,GAAG,CAAC,MAAM,GAAG;YACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;SAC5B,CAAC;QAyBF,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;YAC3B,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,EAAE;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG;YAErB,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;SACH,CAAC;QAEF,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,aAAa,EAAE;YACtB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,kCAAmB;IAS5D;QACE,KAAK,EAAE,CAAC;QATV,SAAI,GAAY,QAAQ,CAAC;QACzB,iBAAY,GAAY,IAAI,CAAC;QAE7B,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAE9C,mBAAc,GAAgB,EAAE,CAAC;QACjC,cAAS,GAAW,CAAC,CAAC;QAIpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI;YACF,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;SACpD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAKD,qBAAqB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,CAAC;IAKD,oBAAoB;QAClB,OAAO,IAAI,CAAC
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/feishu-contribution.ts"],"names":[],"mappings":"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","file":"feishu-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ndeclare const tt: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvasContext: (id: string) => any;\n};\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[]\n) {\n const dpr = tt.getSystemInfoSync().pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const ctx = tt.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // 放到内容里\n // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // 封装 getImageData 为 promise\n // ctx.getImageData = (x, y, width, height) =>\n // new Promise((resolve, reject) => {\n // try {\n // tt.canvasGetImageData({\n // canvasId: item.id,\n // x,\n // y,\n // width,\n // height,\n // success(res) {\n // resolve(res);\n // },\n // });\n // } catch (err) {\n // reject(err);\n // }\n // });\n\n const canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\n@injectable()\nexport class FeishuEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'feishu';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n /**\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 // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n // loadFeishuContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return tt.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n 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 addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return null;\n }\n}\n"]}
|
|
@@ -78,7 +78,7 @@ let LynxEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
|
78
78
|
return this.freeCanvasList.length;
|
|
79
79
|
}
|
|
80
80
|
getStaticCanvasCount() {
|
|
81
|
-
return
|
|
81
|
+
return 9999;
|
|
82
82
|
}
|
|
83
83
|
loadImage(url) {
|
|
84
84
|
return createImageElement(url, !1).then((img => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ILynxCanvas\n} from '@visactor/vrender-core';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id: string) => any;\n createImage: (id: string) => any;\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\nlet ng = false;\ntry {\n ng = !!lynx.createCanvasNG;\n} catch (err) {\n // do nothing\n}\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ILynxCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ILynxCanvas[]\n) {\n const dpr = SystemInfo.pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const _canvas = ng ? lynx.createCanvasNG(id) : lynx.createCanvas(id);\n _canvas.width = domref.width * dpr;\n _canvas.height = domref.height * dpr;\n ng && _canvas.attachToCanvasView(id);\n\n const ctx = _canvas.getContext('2d');\n ctx.draw = (a: any, b: any) => {\n b();\n };\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n const canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n }),\n nativeCanvas: _canvas\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n const img = lynx.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\n@injectable()\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\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return SystemInfo.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n 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 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 { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ILynxCanvas\n} from '@visactor/vrender-core';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id: string) => any;\n createImage: (id: string) => any;\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\nlet ng = false;\ntry {\n ng = !!lynx.createCanvasNG;\n} catch (err) {\n // do nothing\n}\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ILynxCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ILynxCanvas[]\n) {\n const dpr = SystemInfo.pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const _canvas = ng ? lynx.createCanvasNG(id) : lynx.createCanvas(id);\n _canvas.width = domref.width * dpr;\n _canvas.height = domref.height * dpr;\n ng && _canvas.attachToCanvasView(id);\n\n const ctx = _canvas.getContext('2d');\n ctx.draw = (a: any, b: any) => {\n b();\n };\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n const canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n }),\n nativeCanvas: _canvas\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n const img = lynx.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\n@injectable()\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\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态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);\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 // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return SystemInfo.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n 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 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"]}
|
|
@@ -69,7 +69,7 @@ let TaroEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
|
69
69
|
return this.freeCanvasList.length;
|
|
70
70
|
}
|
|
71
71
|
getStaticCanvasCount() {
|
|
72
|
-
return
|
|
72
|
+
return 9999;
|
|
73
73
|
}
|
|
74
74
|
configure(service, params) {
|
|
75
75
|
service.env === this.type && (service.setActiveEnvContribution(this), makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList, params.taro, params.pixelRatio),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/taro-contribution.ts"],"names":[],"mappings":"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","file":"taro-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n IDomRef,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ninterface ITaro {\n createCanvasContext: (id: string) => any;\n canvasGetImageData: (data: {\n canvasId: string;\n x: number;\n y: number;\n width: number;\n height: number;\n success: (res: any) => void;\n }) => any;\n}\n\nfunction makeUpCanvas(\n domref: IDomRef,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n taro: ITaro,\n dpr: number\n) {\n canvasIdLists.forEach((id, i) => {\n const ctx: any = taro.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n if (!ctx.createRadialGradient) {\n ctx.createRadialGradient = (...cc: any) => ctx.createCircularGradient(...cc);\n }\n\n // HACK: 小程序端draw、getImage方法为异步回调, 在此统一封装 getImageData 为 promise\n if (!ctx.getImageData && taro.canvasGetImageData) {\n ctx.getImageData = (x: number, y: number, width: number, height: number) =>\n new Promise((resolve, reject) => {\n try {\n taro.canvasGetImageData({\n canvasId: id,\n x,\n y,\n width,\n height,\n success(res) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n\n const canvas = {\n id: id,\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n\n return canvas;\n });\n}\n\ninterface IConfigureParams {\n domref: any;\n canvasIdLists: string[];\n freeCanvasIdx: number;\n taro: ITaro;\n pixelRatio: number; // taro需要小程序自己处理pixelRatio\n}\n\n@injectable()\nexport class TaroEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'taro';\n supportEvent: boolean = true;\n canvasMap: Map<string, ITTCanvas> = new Map();\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n taro: ITaro;\n pixelRatio: number;\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 /**\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 this.freeCanvasList.length;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: IConfigureParams) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.taro,\n params.pixelRatio\n );\n this.taro = params.taro;\n this.pixelRatio = params.pixelRatio;\n\n // loadTaroContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const _window = window || globalThis;\n if (_window.DOMParser) {\n const parser = new _window.DOMParser();\n const svg = parser.parseFromString(svgStr, 'image/svg+xml').children[0];\n const data = new XMLSerializer().serializeToString(svg);\n const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`; //svg转base64\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n } else if (_window.Blob) {\n const data = new _window.Blob([svgStr], { type: 'image/svg+xml' });\n const url = _window.URL.createObjectURL(data);\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n // 目前移动端上小程序不支持DOMParser和Blob,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n // params不生效\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return this.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return 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/taro-contribution.ts"],"names":[],"mappings":"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","file":"taro-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n IDomRef,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ninterface ITaro {\n createCanvasContext: (id: string) => any;\n canvasGetImageData: (data: {\n canvasId: string;\n x: number;\n y: number;\n width: number;\n height: number;\n success: (res: any) => void;\n }) => any;\n}\n\nfunction makeUpCanvas(\n domref: IDomRef,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n taro: ITaro,\n dpr: number\n) {\n canvasIdLists.forEach((id, i) => {\n const ctx: any = taro.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n if (!ctx.createRadialGradient) {\n ctx.createRadialGradient = (...cc: any) => ctx.createCircularGradient(...cc);\n }\n\n // HACK: 小程序端draw、getImage方法为异步回调, 在此统一封装 getImageData 为 promise\n if (!ctx.getImageData && taro.canvasGetImageData) {\n ctx.getImageData = (x: number, y: number, width: number, height: number) =>\n new Promise((resolve, reject) => {\n try {\n taro.canvasGetImageData({\n canvasId: id,\n x,\n y,\n width,\n height,\n success(res) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n\n const canvas = {\n id: id,\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n\n return canvas;\n });\n}\n\ninterface IConfigureParams {\n domref: any;\n canvasIdLists: string[];\n freeCanvasIdx: number;\n taro: ITaro;\n pixelRatio: number; // taro需要小程序自己处理pixelRatio\n}\n\n@injectable()\nexport class TaroEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'taro';\n supportEvent: boolean = true;\n canvasMap: Map<string, ITTCanvas> = new Map();\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n taro: ITaro;\n pixelRatio: number;\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 /**\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 // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: IConfigureParams) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.taro,\n params.pixelRatio\n );\n this.taro = params.taro;\n this.pixelRatio = params.pixelRatio;\n\n // loadTaroContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const _window = window || globalThis;\n if (_window.DOMParser) {\n const parser = new _window.DOMParser();\n const svg = parser.parseFromString(svgStr, 'image/svg+xml').children[0];\n const data = new XMLSerializer().serializeToString(svg);\n const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`; //svg转base64\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n } else if (_window.Blob) {\n const data = new _window.Blob([svgStr], { type: 'image/svg+xml' });\n const url = _window.URL.createObjectURL(data);\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n // 目前移动端上小程序不支持DOMParser和Blob,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n // params不生效\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return this.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return 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/dist/index.js
CHANGED
|
@@ -5113,7 +5113,7 @@
|
|
|
5113
5113
|
return this.freeCanvasList.length;
|
|
5114
5114
|
}
|
|
5115
5115
|
getStaticCanvasCount() {
|
|
5116
|
-
return
|
|
5116
|
+
return 9999;
|
|
5117
5117
|
}
|
|
5118
5118
|
configure(service, params) {
|
|
5119
5119
|
if (service.env === this.type) {
|
|
@@ -5583,7 +5583,7 @@
|
|
|
5583
5583
|
return this.freeCanvasList.length;
|
|
5584
5584
|
}
|
|
5585
5585
|
getStaticCanvasCount() {
|
|
5586
|
-
return
|
|
5586
|
+
return 9999;
|
|
5587
5587
|
}
|
|
5588
5588
|
loadImage(url) {
|
|
5589
5589
|
const imagePromise = createImageElement(url, false);
|
|
@@ -6362,7 +6362,7 @@
|
|
|
6362
6362
|
return this.freeCanvasList.length;
|
|
6363
6363
|
}
|
|
6364
6364
|
getStaticCanvasCount() {
|
|
6365
|
-
return
|
|
6365
|
+
return 9999;
|
|
6366
6366
|
}
|
|
6367
6367
|
configure(service, params) {
|
|
6368
6368
|
if (service.env === this.type) {
|
package/dist/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@visactor/vrender-core"),require("@visactor/vutils")):"function"==typeof define&&define.amd?define(["exports","@visactor/vrender-core","@visactor/vutils"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).VRender=t.VRender||{},t.VRender.Kits={}),t.VRenderCore,t.VUtils)}(this,(function(t,e,n){"use strict";function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,(r=i.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(r,"string"))?a:String(a)),i)}var r,a}function s(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&c(t,e)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function h(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,i=l(t);if(e){var r=l(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return h(this,n)}}function d(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,r,a,s,o=[],l=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(o.push(i.value),o.length!==e);l=!0);}catch(t){c=!0,r=t}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t){return function(t){if(Array.isArray(t))return v(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(t,e){if(t){if("string"==typeof t)return v(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(t,e):void 0}}function v(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function g(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=p(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw a}}}}function m(t,e,n,r){var a,s=arguments.length,o=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"===("undefined"==typeof Reflect?"undefined":i(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,r);else for(var l=t.length-1;l>=0;l--)(a=t[l])&&(o=(s<3?a(o):s>3?a(e,n,o):a(e,n))||o);return s>3&&o&&Object.defineProperty(e,n,o),o}function y(t,e){return function(n,i){e(n,i,t)}}function x(t,e){if("object"===("undefined"==typeof Reflect?"undefined":i(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function b(t,e,n,i){return new(n||(n=Promise))((function(r,a){function s(t){try{l(i.next(t))}catch(t){a(t)}}function o(t){try{l(i.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}l((i=i.apply(t,e||[])).next())}))}function C(t,e,n){if(t&&t.length){var i=d(e,2),r=i[0],a=i[1],s=Math.PI/180*n,o=Math.cos(s),l=Math.sin(s);t.forEach((function(t){var e=d(t,2),n=e[0],i=e[1];t[0]=(n-r)*o-(i-a)*l+r,t[1]=(n-r)*l+(i-a)*o+a}))}}function S(t){var e=t[0],n=t[1];return Math.sqrt(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2))}function M(t,e){var n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);var r=[0,0];if(n){var a,s=g(t);try{for(s.s();!(a=s.n()).done;){C(a.value,r,n)}}catch(t){s.e(t)}finally{s.f()}}var o=function(t,e){var n,i=[],r=g(t);try{for(r.s();!(n=r.n()).done;){var a=f(n.value);a[0].join(",")!==a[a.length-1].join(",")&&a.push([a[0][0],a[0][1]]),a.length>2&&i.push(a)}}catch(t){r.e(t)}finally{r.f()}var s=[];e=Math.max(e,.1);for(var o=[],l=0,c=i;l<c.length;l++)for(var h=c[l],u=0;u<h.length-1;u++){var d=h[u],p=h[u+1];if(d[1]!==p[1]){var v=Math.min(d[1],p[1]);o.push({ymin:v,ymax:Math.max(d[1],p[1]),x:v===d[1]?d[0]:p[0],islope:(p[0]-d[0])/(p[1]-d[1])})}}if(o.sort((function(t,e){return t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)})),!o.length)return s;for(var m=[],y=o[0].ymin;m.length||o.length;){if(o.length){for(var x=-1,b=0;b<o.length&&!(o[b].ymin>y);b++)x=b;o.splice(0,x+1).forEach((function(t){m.push({s:y,edge:t})}))}if(m=m.filter((function(t){return!(t.edge.ymax<=y)})),m.sort((function(t,e){return t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)})),m.length>1)for(var C=0;C<m.length;C+=2){var S=C+1;if(S>=m.length)break;var M=m[C].edge,w=m[S].edge;s.push([[Math.round(M.x),y],[Math.round(w.x),y]])}y+=e,m.forEach((function(t){t.edge.x=t.edge.x+e*t.edge.islope}))}return s}(t,i);if(n){var l,c=g(t);try{for(c.s();!(l=c.n()).done;){C(l.value,r,-n)}}catch(t){c.e(t)}finally{c.f()}!function(t,e,n){var i=[];t.forEach((function(t){return i.push.apply(i,f(t))})),C(i,e,n)}(o,r,-n)}return o}"function"==typeof SuppressedError&&SuppressedError;var w=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){return this._fillPolygons(t,e)}},{key:"_fillPolygons",value:function(t,e){var n=M(t,e);return{type:"fillSketch",ops:this.renderLines(n,e)}}},{key:"renderLines",value:function(t,e){var n,i=[],r=g(t);try{for(r.s();!(n=r.n()).done;){var a=n.value;i.push.apply(i,f(this.helper.doubleLineOps(a[0][0],a[0][1],a[1][0],a[1][1],e)))}}catch(t){r.e(t)}finally{r.f()}return i}}]),t}(),k=function(t){o(n,t);var e=u(n);function n(){return r(this,n),e.apply(this,arguments)}return s(n,[{key:"fillPolygons",value:function(t,e){var n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1);var i,r=M(t,Object.assign({},e,{hachureGap:n})),a=Math.PI/180*e.hachureAngle,s=[],o=.5*n*Math.cos(a),l=.5*n*Math.sin(a),c=g(r);try{for(c.s();!(i=c.n()).done;){var h=d(i.value,2),u=h[0],p=h[1];S([u,p])&&s.push([[u[0]-o,u[1]+l],f(p)],[[u[0]+o,u[1]-l],f(p)])}}catch(t){c.e(t)}finally{c.f()}return{type:"fillSketch",ops:this.renderLines(s,e)}}}]),n}(w),P=function(t){o(n,t);var e=u(n);function n(){return r(this,n),e.apply(this,arguments)}return s(n,[{key:"fillPolygons",value:function(t,e){var n=this._fillPolygons(t,e),i=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),r=this._fillPolygons(t,i);return n.ops=n.ops.concat(r.ops),n}}]),n}(w),T=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){var n=M(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(n,e)}},{key:"dotsOnLines",value:function(t,e){var n=[],i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);var r=e.fillWeight;r<0&&(r=e.strokeWidth/2);var a,s=i/4,o=g(t);try{for(o.s();!(a=o.n()).done;)for(var l=a.value,c=S(l),h=c/i,u=Math.ceil(h)-1,d=c-u*i,p=(l[0][0]+l[1][0])/2-i/4,v=Math.min(l[0][1],l[1][1]),m=0;m<u;m++){var y=v+d+m*i,x=p-s+2*Math.random()*s,b=y-s+2*Math.random()*s,C=this.helper.ellipse(x,b,r,r,e);n.push.apply(n,f(C.ops))}}catch(t){o.e(t)}finally{o.f()}return{type:"fillSketch",ops:n}}}]),t}(),E=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){var n=M(t,e);return{type:"fillSketch",ops:this.dashedLine(n,e)}}},{key:"dashedLine",value:function(t,e){var n=this,i=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,r=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,a=[];return t.forEach((function(t){var s=S(t),o=Math.floor(s/(i+r)),l=(s+r-o*(i+r))/2,c=t[0],h=t[1];c[0]>h[0]&&(c=t[1],h=t[0]);for(var u=Math.atan((h[1]-c[1])/(h[0]-c[0])),d=0;d<o;d++){var p=d*(i+r),v=p+i,g=[c[0]+p*Math.cos(u)+l*Math.cos(u),c[1]+p*Math.sin(u)+l*Math.sin(u)],m=[c[0]+v*Math.cos(u)+l*Math.cos(u),c[1]+v*Math.sin(u)+l*Math.sin(u)];a.push.apply(a,f(n.helper.doubleLineOps(g[0],g[1],m[0],m[1],e)))}})),a}}]),t}(),R=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){var n=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,i=e.zigzagOffset<0?n:e.zigzagOffset,r=M(t,e=Object.assign({},e,{hachureGap:n+i}));return{type:"fillSketch",ops:this.zigzagLines(r,i,e)}}},{key:"zigzagLines",value:function(t,e,n){var i=this,r=[];return t.forEach((function(t){var a=S(t),s=Math.round(a/(2*e)),o=t[0],l=t[1];o[0]>l[0]&&(o=t[1],l=t[0]);for(var c=Math.atan((l[1]-o[1])/(l[0]-o[0])),h=0;h<s;h++){var u=2*h*e,d=2*(h+1)*e,p=Math.sqrt(2*Math.pow(e,2)),v=[o[0]+u*Math.cos(c),o[1]+u*Math.sin(c)],g=[o[0]+d*Math.cos(c),o[1]+d*Math.sin(c)],m=[v[0]+p*Math.cos(c+Math.PI/4),v[1]+p*Math.sin(c+Math.PI/4)];r.push.apply(r,f(i.helper.doubleLineOps(v[0],v[1],m[0],m[1],n)).concat(f(i.helper.doubleLineOps(m[0],m[1],g[0],g[1],n))))}})),r}}]),t}(),O={},B=function(){function t(e){r(this,t),this.seed=e}return s(t,[{key:"next",value:function(){return this.seed?(Math.pow(2,31)-1&(this.seed=Math.imul(48271,this.seed)))/Math.pow(2,31):Math.random()}}]),t}(),A={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function I(t,e){return t.type===e}function D(t){for(var e=[],n=function(t){for(var e=new Array;""!==t;)if(t.match(/^([ \t\r\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:0,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:1,text:"".concat(parseFloat(RegExp.$1))},t=t.substr(RegExp.$1.length)}return e[e.length]={type:2,text:""},e}(t),i="BOD",r=0,a=n[r];!I(a,2);){var s=0,o=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return D("M0,0"+t);r++,s=A[a.text],i=a.text}else I(a,1)?s=A[i]:(r++,s=A[a.text],i=a.text);if(!(r+s<n.length))throw new Error("Path data ended short");for(var l=r;l<r+s;l++){var c=n[l];if(!I(c,1))throw new Error("Param not a number: "+i+","+c.text);o[o.length]=+c.text}if("number"!=typeof A[i])throw new Error("Bad segment: "+i);var h={key:i,data:o};e.push(h),a=n[r+=s],"M"===i&&(i="L"),"m"===i&&(i="l")}return e}function L(t){var e,n,i,r,a=0,s=0,o=0,l=0,c=[],h=g(t);try{for(h.s();!(r=h.n()).done;){var u=r.value,p=u.key,v=u.data;switch(p){case"M":c.push({key:"M",data:f(v)}),e=d(v,2),a=e[0],s=e[1],o=(n=d(v,2))[0],l=n[1];break;case"m":a+=v[0],s+=v[1],c.push({key:"M",data:[a,s]}),o=a,l=s;break;case"L":c.push({key:"L",data:f(v)}),i=d(v,2),a=i[0],s=i[1];break;case"l":a+=v[0],s+=v[1],c.push({key:"L",data:[a,s]});break;case"C":c.push({key:"C",data:f(v)}),a=v[4],s=v[5];break;case"c":var m=v.map((function(t,e){return e%2?t+s:t+a}));c.push({key:"C",data:m}),a=m[4],s=m[5];break;case"Q":c.push({key:"Q",data:f(v)}),a=v[2],s=v[3];break;case"q":var y=v.map((function(t,e){return e%2?t+s:t+a}));c.push({key:"Q",data:y}),a=y[2],s=y[3];break;case"A":c.push({key:"A",data:f(v)}),a=v[5],s=v[6];break;case"a":a+=v[5],s+=v[6],c.push({key:"A",data:[v[0],v[1],v[2],v[3],v[4],a,s]});break;case"H":c.push({key:"H",data:f(v)}),a=v[0];break;case"h":a+=v[0],c.push({key:"H",data:[a]});break;case"V":c.push({key:"V",data:f(v)}),s=v[0];break;case"v":s+=v[0],c.push({key:"V",data:[s]});break;case"S":c.push({key:"S",data:f(v)}),a=v[2],s=v[3];break;case"s":var x=v.map((function(t,e){return e%2?t+s:t+a}));c.push({key:"S",data:x}),a=x[2],s=x[3];break;case"T":c.push({key:"T",data:f(v)}),a=v[0],s=v[1];break;case"t":a+=v[0],s+=v[1],c.push({key:"T",data:[a,s]});break;case"Z":case"z":c.push({key:"Z",data:[]}),a=o,s=l}}}catch(t){h.e(t)}finally{h.f()}return c}function _(t){var e,n,i,r,a=[],s="",o=0,l=0,c=0,h=0,u=0,p=0,v=g(t);try{for(v.s();!(r=v.n()).done;){var m=r.value,y=m.key,x=m.data;switch(y){case"M":a.push({key:"M",data:f(x)}),o=(e=d(x,2))[0],l=e[1],c=(n=d(x,2))[0],h=n[1];break;case"C":a.push({key:"C",data:f(x)}),o=x[4],l=x[5],u=x[2],p=x[3];break;case"L":a.push({key:"L",data:f(x)}),o=(i=d(x,2))[0],l=i[1];break;case"H":o=x[0],a.push({key:"L",data:[o,l]});break;case"V":l=x[0],a.push({key:"L",data:[o,l]});break;case"S":var b=0,C=0;"C"===s||"S"===s?(b=o+(o-u),C=l+(l-p)):(b=o,C=l),a.push({key:"C",data:[b,C].concat(f(x))}),u=x[0],p=x[1],o=x[2],l=x[3];break;case"T":var S=d(x,2),M=S[0],w=S[1],k=0,P=0;"Q"===s||"T"===s?(k=o+(o-u),P=l+(l-p)):(k=o,P=l);var T=o+2*(k-o)/3,E=l+2*(P-l)/3,R=M+2*(k-M)/3,O=w+2*(P-w)/3;a.push({key:"C",data:[T,E,R,O,M,w]}),u=k,p=P,o=M,l=w;break;case"Q":var B=d(x,4),A=B[0],I=B[1],D=B[2],L=B[3],_=o+2*(A-o)/3,j=l+2*(I-l)/3,F=D+2*(A-D)/3,G=L+2*(I-L)/3;a.push({key:"C",data:[_,j,F,G,D,L]}),u=A,p=I,o=D,l=L;break;case"A":var z=Math.abs(x[0]),Y=Math.abs(x[1]),V=x[2],N=x[3],H=x[4],U=x[5],X=x[6];0===z||0===Y?(a.push({key:"C",data:[o,l,U,X,U,X]}),o=U,l=X):o===U&&l===X||(W(o,l,U,X,z,Y,V,N,H).forEach((function(t){a.push({key:"C",data:t})})),o=U,l=X);break;case"Z":a.push({key:"Z",data:[]}),o=c,l=h}s=y}}catch(t){v.e(t)}finally{v.f()}return a}function j(t,e,n){return[t*Math.cos(n)-e*Math.sin(n),t*Math.sin(n)+e*Math.cos(n)]}function W(t,e,n,i,r,a,s,o,l,c){var h,u=(h=s,Math.PI*h/180),f=[],p=0,v=0,g=0,m=0;if(c){var y=d(c,4);p=y[0],v=y[1],g=y[2],m=y[3]}else{var x,b;t=(x=d(j(t,e,-u),2))[0],e=x[1];var C=(t-(n=(b=d(j(n,i,-u),2))[0]))/2,S=(e-(i=b[1]))/2,M=C*C/(r*r)+S*S/(a*a);M>1&&(r*=M=Math.sqrt(M),a*=M);var w=r*r,k=a*a,P=w*k-w*S*S-k*C*C,T=w*S*S+k*C*C,E=(o===l?-1:1)*Math.sqrt(Math.abs(P/T));g=E*r*S/a+(t+n)/2,m=E*-a*C/r+(e+i)/2,p=Math.asin(parseFloat(((e-m)/a).toFixed(9))),v=Math.asin(parseFloat(((i-m)/a).toFixed(9))),t<g&&(p=Math.PI-p),n<g&&(v=Math.PI-v),p<0&&(p=2*Math.PI+p),v<0&&(v=2*Math.PI+v),l&&p>v&&(p-=2*Math.PI),!l&&v>p&&(v-=2*Math.PI)}var R=v-p;if(Math.abs(R)>120*Math.PI/180){var O=v,B=n,A=i;v=l&&v>p?p+120*Math.PI/180*1:p+120*Math.PI/180*-1,f=W(n=g+r*Math.cos(v),i=m+a*Math.sin(v),B,A,r,a,s,0,l,[v,O,g,m])}R=v-p;var I=Math.cos(p),D=Math.sin(p),L=Math.cos(v),_=Math.sin(v),F=Math.tan(R/4),G=4/3*r*F,z=4/3*a*F,Y=[t,e],V=[t+G*D,e-z*I],N=[n+G*_,i-z*L],H=[n,i];if(V[0]=2*Y[0]-V[0],V[1]=2*Y[1]-V[1],c)return[V,N,H].concat(f);f=[V,N,H].concat(f);for(var U=[],X=0;X<f.length;X+=3){var q=j(f[X][0],f[X][1],u),$=j(f[X+1][0],f[X+1][1],u),J=j(f[X+2][0],f[X+2][1],u);U.push([q[0],q[1],$[0],$[1],J[0],J[1]])}return U}var F={randOffset:function(t,e){return $(t,e)},randOffsetWithRange:function(t,e,n){return q(t,e,n)},ellipse:function(t,e,n,i,r){return V(t,e,r,Y(n,i,r)).opset},doubleLineOps:function(t,e,n,i,r){return J(t,e,n,i,r,!0)}};function G(t,e,n,i,r){return{type:"path",ops:J(t,e,n,i,r)}}function z(t,e,n){var i=(t||[]).length;if(i>2){for(var r=[],a=0;a<i-1;a++)r.push.apply(r,f(J(t[a][0],t[a][1],t[a+1][0],t[a+1][1],n)));return e&&r.push.apply(r,f(J(t[i-1][0],t[i-1][1],t[0][0],t[0][1],n))),{type:"path",ops:r}}return 2===i?G(t[0][0],t[0][1],t[1][0],t[1][1],n):{type:"path",ops:[]}}function Y(t,e,n){var i=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),r=Math.ceil(Math.max(n.curveStepCount,n.curveStepCount/Math.sqrt(200)*i)),a=2*Math.PI/r,s=Math.abs(t/2),o=Math.abs(e/2),l=1-n.curveFitting;return{increment:a,rx:s+=$(s*l,n),ry:o+=$(o*l,n)}}function V(t,e,n,i){var r=d(et(i.increment,t,e,i.rx,i.ry,1,i.increment*q(.1,q(.4,1,n),n),n),2),a=r[0],s=r[1],o=K(a,null,n);if(!n.disableMultiStroke&&0!==n.roughness){var l=K(d(et(i.increment,t,e,i.rx,i.ry,1.5,0,n),1)[0],null,n);o=o.concat(l)}return{estimatedPoints:s,opset:{type:"path",ops:o}}}function N(t,e,n,i,r,a,s,o,l){var c=t,h=e,u=Math.abs(n/2),d=Math.abs(i/2);u+=$(.01*u,l),d+=$(.01*d,l);for(var p=r,v=a;p<0;)p+=2*Math.PI,v+=2*Math.PI;v-p>2*Math.PI&&(p=0,v=2*Math.PI);var g=2*Math.PI/l.curveStepCount,m=Math.min(g/2,(v-p)/2),y=nt(m,c,h,u,d,p,v,1,l);if(!l.disableMultiStroke){var x=nt(m,c,h,u,d,p,v,1.5,l);y.push.apply(y,f(x))}return s&&(o?y.push.apply(y,f(J(c,h,c+u*Math.cos(p),h+d*Math.sin(p),l)).concat(f(J(c,h,c+u*Math.cos(v),h+d*Math.sin(v),l)))):y.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+u*Math.cos(p),h+d*Math.sin(p)]})),{type:"path",ops:y}}function H(t,e){var n,i=[],r=g(t);try{for(r.s();!(n=r.n()).done;){var a=n.value;if(a.length){var s=e.maxRandomnessOffset||0,o=a.length;if(o>2){i.push({op:"move",data:[a[0][0]+$(s,e),a[0][1]+$(s,e)]});for(var l=1;l<o;l++)i.push({op:"lineTo",data:[a[l][0]+$(s,e),a[l][1]+$(s,e)]})}}}}catch(t){r.e(t)}finally{r.f()}return{type:"fillPath",ops:i}}function U(t,e){return function(t,e){var n=t.fillStyle||"hachure";if(!O[n])switch(n){case"zigzag":O[n]||(O[n]=new k(e));break;case"cross-hatch":O[n]||(O[n]=new P(e));break;case"dots":O[n]||(O[n]=new T(e));break;case"dashed":O[n]||(O[n]=new E(e));break;case"zigzag-line":O[n]||(O[n]=new R(e));break;default:O[n="hachure"]||(O[n]=new w(e))}return O[n]}(e,F).fillPolygons(t,e)}function X(t){return t.randomizer||(t.randomizer=new B(t.seed||0)),t.randomizer.next()}function q(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return n.roughness*i*(X(n)*(e-t)+t)}function $(t,e){return q(-t,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1)}function J(t,e,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?r.disableMultiStrokeFill:r.disableMultiStroke,s=Q(t,e,n,i,r,!0,!1);if(a)return s;var o=Q(t,e,n,i,r,!0,!0);return s.concat(o)}function Q(t,e,n,i,r,a,s){var o,l=Math.pow(t-n,2)+Math.pow(e-i,2),c=Math.sqrt(l);o=c<200?1:c>500?.4:-.0016668*c+1.233334;var h=r.maxRandomnessOffset||0;h*h*100>l&&(h=c/10);var u=h/2,d=.2+.2*X(r),f=r.bowing*r.maxRandomnessOffset*(i-e)/200,p=r.bowing*r.maxRandomnessOffset*(t-n)/200;f=$(f,r,o),p=$(p,r,o);var v=[],g=function(){return $(u,r,o)},m=function(){return $(h,r,o)},y=r.preserveVertices;return a&&(s?v.push({op:"move",data:[t+(y?0:g()),e+(y?0:g())]}):v.push({op:"move",data:[t+(y?0:$(h,r,o)),e+(y?0:$(h,r,o))]})),s?v.push({op:"bcurveTo",data:[f+t+(n-t)*d+g(),p+e+(i-e)*d+g(),f+t+2*(n-t)*d+g(),p+e+2*(i-e)*d+g(),n+(y?0:g()),i+(y?0:g())]}):v.push({op:"bcurveTo",data:[f+t+(n-t)*d+m(),p+e+(i-e)*d+m(),f+t+2*(n-t)*d+m(),p+e+2*(i-e)*d+m(),n+(y?0:m()),i+(y?0:m())]}),v}function Z(t,e,n){var i=[];i.push([t[0][0]+$(e,n),t[0][1]+$(e,n)]),i.push([t[0][0]+$(e,n),t[0][1]+$(e,n)]);for(var r=1;r<t.length;r++)i.push([t[r][0]+$(e,n),t[r][1]+$(e,n)]),r===t.length-1&&i.push([t[r][0]+$(e,n),t[r][1]+$(e,n)]);return K(i,null,n)}function K(t,e,n){var i=t.length,r=[];if(i>3){var a=[],s=1-n.curveTightness;r.push({op:"move",data:[t[1][0],t[1][1]]});for(var o=1;o+2<i;o++){var l=t[o];a[0]=[l[0],l[1]],a[1]=[l[0]+(s*t[o+1][0]-s*t[o-1][0])/6,l[1]+(s*t[o+1][1]-s*t[o-1][1])/6],a[2]=[t[o+1][0]+(s*t[o][0]-s*t[o+2][0])/6,t[o+1][1]+(s*t[o][1]-s*t[o+2][1])/6],a[3]=[t[o+1][0],t[o+1][1]],r.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){var c=n.maxRandomnessOffset;r.push({op:"lineTo",data:[e[0]+$(c,n),e[1]+$(c,n)]})}}else 3===i?(r.push({op:"move",data:[t[1][0],t[1][1]]}),r.push({op:"bcurveTo",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===i&&r.push.apply(r,f(J(t[0][0],t[0][1],t[1][0],t[1][1],n)));return r}function et(t,e,n,i,r,a,s,o){var l=[],c=[];if(0===o.roughness){t/=4,c.push([e+i*Math.cos(-t),n+r*Math.sin(-t)]);for(var h=0;h<=2*Math.PI;h+=t){var u=[e+i*Math.cos(h),n+r*Math.sin(h)];l.push(u),c.push(u)}c.push([e+i*Math.cos(0),n+r*Math.sin(0)]),c.push([e+i*Math.cos(t),n+r*Math.sin(t)])}else{var d=$(.5,o)-Math.PI/2;c.push([$(a,o)+e+.9*i*Math.cos(d-t),$(a,o)+n+.9*r*Math.sin(d-t)]);for(var f=2*Math.PI+d-.01,p=d;p<f;p+=t){var v=[$(a,o)+e+i*Math.cos(p),$(a,o)+n+r*Math.sin(p)];l.push(v),c.push(v)}c.push([$(a,o)+e+i*Math.cos(d+2*Math.PI+.5*s),$(a,o)+n+r*Math.sin(d+2*Math.PI+.5*s)]),c.push([$(a,o)+e+.98*i*Math.cos(d+s),$(a,o)+n+.98*r*Math.sin(d+s)]),c.push([$(a,o)+e+.9*i*Math.cos(d+.5*s),$(a,o)+n+.9*r*Math.sin(d+.5*s)])}return[c,l]}function nt(t,e,n,i,r,a,s,o,l){var c=a+$(.1,l),h=[];h.push([$(o,l)+e+.9*i*Math.cos(c-t),$(o,l)+n+.9*r*Math.sin(c-t)]);for(var u=c;u<=s;u+=t)h.push([$(o,l)+e+i*Math.cos(u),$(o,l)+n+r*Math.sin(u)]);return h.push([e+i*Math.cos(s),n+r*Math.sin(s)]),h.push([e+i*Math.cos(s),n+r*Math.sin(s)]),K(h,null,l)}function it(t){return f(t)}function rt(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function at(t,e,n){var i=rt(e,n);if(0===i)return rt(t,e);var r=((t[0]-e[0])*(n[0]-e[0])+(t[1]-e[1])*(n[1]-e[1]))/i;return rt(t,st(e,n,r=Math.max(0,Math.min(1,r))))}function st(t,e,n){return[t[0]+(e[0]-t[0])*n,t[1]+(e[1]-t[1])*n]}function ot(t,e,n,i){var r,a,s=i||[];if(function(t,e){var n=t[e+0],i=t[e+1],r=t[e+2],a=t[e+3],s=3*i[0]-2*n[0]-a[0];s*=s;var o=3*i[1]-2*n[1]-a[1];o*=o;var l=3*r[0]-2*a[0]-n[0];l*=l;var c=3*r[1]-2*a[1]-n[1];return s<l&&(s=l),o<(c*=c)&&(o=c),s+o}(t,e)<n){var o=t[e+0];s.length?(r=s[s.length-1],a=o,Math.sqrt(rt(r,a))>1&&s.push(o)):s.push(o),s.push(t[e+3])}else{var l=.5,c=t[e+0],h=t[e+1],u=t[e+2],d=t[e+3],f=st(c,h,l),p=st(h,u,l),v=st(u,d,l),g=st(f,p,l),m=st(p,v,l),y=st(g,m,l);ot([c,f,g,y],0,n,s),ot([y,m,v,d],0,n,s)}return s}function lt(t,e){return ct(t,0,t.length,e)}function ct(t,e,n,i,r){for(var a=r||[],s=t[e],o=t[n-1],l=0,c=1,h=e+1;h<n-1;++h){var u=at(t[h],s,o);u>l&&(l=u,c=h)}return Math.sqrt(l)>i?(ct(t,e,c+1,i,a),ct(t,c,n,i,a)):(a.length||a.push(s),a.push(o)),a}function ht(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15,n=arguments.length>2?arguments[2]:void 0,i=[],r=(t.length-1)/3,a=0;a<r;a++)ot(t,3*a,e,i);return n&&n>0?ct(i,0,i.length,n):i}var ut="none",dt=function(){function t(e){r(this,t),this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1},this.config=e||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}return s(t,[{key:"_o",value:function(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}},{key:"_d",value:function(t,e,n){return{shape:t,sets:e||[],options:n||this.defaultOptions}}},{key:"line",value:function(t,e,n,i,r){var a=this._o(r);return this._d("line",[G(t,e,n,i,a)],a)}},{key:"rectangle",value:function(t,e,n,i,r){var a=this._o(r),s=[],o=function(t,e,n,i,r){return function(t,e){return z(t,!0,e)}([[t,e],[t+n,e],[t+n,e+i],[t,e+i]],r)}(t,e,n,i,a);if(a.fill){var l=[[t,e],[t+n,e],[t+n,e+i],[t,e+i]];"solid"===a.fillStyle?s.push(H([l],a)):s.push(U([l],a))}return a.stroke!==ut&&s.push(o),this._d("rectangle",s,a)}},{key:"ellipse",value:function(t,e,n,i,r){var a=this._o(r),s=[],o=Y(n,i,a),l=V(t,e,a,o);if(a.fill)if("solid"===a.fillStyle){var c=V(t,e,a,o).opset;c.type="fillPath",s.push(c)}else s.push(U([l.estimatedPoints],a));return a.stroke!==ut&&s.push(l.opset),this._d("ellipse",s,a)}},{key:"circle",value:function(t,e,n,i){var r=this.ellipse(t,e,n,n,i);return r.shape="circle",r}},{key:"linearPath",value:function(t,e){var n=this._o(e);return this._d("linearPath",[z(t,!1,n)],n)}},{key:"arc",value:function(t,e,n,i,r,a){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7?arguments[7]:void 0,l=this._o(o),c=[],h=N(t,e,n,i,r,a,s,!0,l);if(s&&l.fill)if("solid"===l.fillStyle){var u=Object.assign({},l);u.disableMultiStroke=!0;var d=N(t,e,n,i,r,a,!0,!1,u);d.type="fillPath",c.push(d)}else c.push(function(t,e,n,i,r,a,s){var o=t,l=e,c=Math.abs(n/2),h=Math.abs(i/2);c+=$(.01*c,s),h+=$(.01*h,s);for(var u=r,d=a;u<0;)u+=2*Math.PI,d+=2*Math.PI;d-u>2*Math.PI&&(u=0,d=2*Math.PI);for(var f=(d-u)/s.curveStepCount,p=[],v=u;v<=d;v+=f)p.push([o+c*Math.cos(v),l+h*Math.sin(v)]);return p.push([o+c*Math.cos(d),l+h*Math.sin(d)]),p.push([o,l]),U([p],s)}(t,e,n,i,r,a,l));return l.stroke!==ut&&c.push(h),this._d("arc",c,l)}},{key:"curve",value:function(t,e){var n=this._o(e),i=[],r=function(t,e){var n=Z(t,1*(1+.2*e.roughness),e);if(!e.disableMultiStroke){var i=Z(t,1.5*(1+.22*e.roughness),function(t){var e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}(e));n=n.concat(i)}return{type:"path",ops:n}}(t,n);if(n.fill&&n.fill!==ut&&t.length>=3){var a=ht(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t.length;if(n<3)throw new Error("A curve must have at least three points.");var i=[];if(3===n)i.push(it(t[0]),it(t[1]),it(t[2]),it(t[2]));else{var r=[];r.push(t[0],t[0]);for(var a=1;a<t.length;a++)r.push(t[a]),a===t.length-1&&r.push(t[a]);var s=[],o=1-e;i.push(it(r[0]));for(var l=1;l+2<r.length;l++){var c=r[l];s[0]=[c[0],c[1]],s[1]=[c[0]+(o*r[l+1][0]-o*r[l-1][0])/6,c[1]+(o*r[l+1][1]-o*r[l-1][1])/6],s[2]=[r[l+1][0]+(o*r[l][0]-o*r[l+2][0])/6,r[l+1][1]+(o*r[l][1]-o*r[l+2][1])/6],s[3]=[r[l+1][0],r[l+1][1]],i.push(s[1],s[2],s[3])}}return i}(t),10,(1+n.roughness)/2);"solid"===n.fillStyle?i.push(H([a],n)):i.push(U([a],n))}return n.stroke!==ut&&i.push(r),this._d("curve",i,n)}},{key:"polygon",value:function(t,e){var n=this._o(e),i=[],r=z(t,!0,n);return n.fill&&("solid"===n.fillStyle?i.push(H([t],n)):i.push(U([t],n))),n.stroke!==ut&&i.push(r),this._d("polygon",i,n)}},{key:"path",value:function(t,e){var n=this._o(e),i=[];if(!t)return this._d("path",i,n);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");var r=n.fill&&"transparent"!==n.fill&&n.fill!==ut,a=n.stroke!==ut,s=!!(n.simplification&&n.simplification<1),o=function(t,e,n){var i,r=_(L(D(t))),a=[],s=[],o=[0,0],l=[],c=function(){var t;l.length>=4&&(t=s).push.apply(t,f(ht(l,1))),l=[]},h=function(){c(),s.length&&(a.push(s),s=[])},u=g(r);try{for(u.s();!(i=u.n()).done;){var d=i.value,p=d.key,v=d.data;switch(p){case"M":h(),o=[v[0],v[1]],s.push(o);break;case"L":c(),s.push([v[0],v[1]]);break;case"C":if(!l.length){var m=s.length?s[s.length-1]:o;l.push([m[0],m[1]])}l.push([v[0],v[1]]),l.push([v[2],v[3]]),l.push([v[4],v[5]]);break;case"Z":c(),s.push([o[0],o[1]])}}}catch(t){u.e(t)}finally{u.f()}if(h(),!n)return a;for(var y=[],x=0,b=a;x<b.length;x++){var C=lt(b[x],n);C.length&&y.push(C)}return y}(t,0,s?4-4*n.simplification:(1+n.roughness)/2);return r&&("solid"===n.fillStyle?i.push(H(o,n)):i.push(U(o,n))),a&&(s?o.forEach((function(t){i.push(z(t,!1,n))})):i.push(function(t,e){var n,i=_(L(D(t))),r=[],a=[0,0],s=[0,0],o=g(i);try{var l=function(){var t=n.value,i=t.key,o=t.data;switch(i){case"M":var l=1*(e.maxRandomnessOffset||0),c=e.preserveVertices;r.push({op:"move",data:o.map((function(t){return t+(c?0:$(l,e))}))}),s=[o[0],o[1]],a=[o[0],o[1]];break;case"L":r.push.apply(r,f(J(s[0],s[1],o[0],o[1],e))),s=[o[0],o[1]];break;case"C":var h=d(o,6),u=h[0],p=h[1],v=h[2],g=h[3],m=h[4],y=h[5];r.push.apply(r,f(function(t,e,n,i,r,a,s,o){for(var l=[],c=[o.maxRandomnessOffset||1,(o.maxRandomnessOffset||1)+.3],h=[0,0],u=o.disableMultiStroke?1:2,d=o.preserveVertices,f=0;f<u;f++)0===f?l.push({op:"move",data:[s[0],s[1]]}):l.push({op:"move",data:[s[0]+(d?0:$(c[0],o)),s[1]+(d?0:$(c[0],o))]}),h=d?[r,a]:[r+$(c[f],o),a+$(c[f],o)],l.push({op:"bcurveTo",data:[t+$(c[f],o),e+$(c[f],o),n+$(c[f],o),i+$(c[f],o),h[0],h[1]]});return l}(u,p,v,g,m,y,s,e))),s=[m,y];break;case"Z":r.push.apply(r,f(J(s[0],s[1],a[0],a[1],e))),s=[a[0],a[1]]}};for(o.s();!(n=o.n()).done;)l()}catch(t){o.e(t)}finally{o.f()}return{type:"path",ops:r}}(t,n))),this._d("path",i,n)}},{key:"opsToPath",value:function(t,e){var n,i="",r=g(t.ops);try{for(r.s();!(n=r.n()).done;){var a=n.value,s="number"==typeof e&&e>=0?a.data.map((function(t){return+t.toFixed(e)})):a.data;switch(a.op){case"move":i+="M".concat(s[0]," ").concat(s[1]," ");break;case"bcurveTo":i+="C".concat(s[0]," ").concat(s[1],", ").concat(s[2]," ").concat(s[3],", ").concat(s[4]," ").concat(s[5]," ");break;case"lineTo":i+="L".concat(s[0]," ").concat(s[1]," ")}}}catch(t){r.e(t)}finally{r.f()}return i.trim()}},{key:"toPaths",value:function(t){var e,n=t.sets||[],i=t.options||this.defaultOptions,r=[],a=g(n);try{for(a.s();!(e=a.n()).done;){var s=e.value,o=null;switch(s.type){case"path":o={d:this.opsToPath(s),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:ut};break;case"fillPath":o={d:this.opsToPath(s),stroke:ut,strokeWidth:0,fill:i.fill||ut};break;case"fillSketch":o=this.fillSketch(s,i)}o&&r.push(o)}}catch(t){a.e(t)}finally{a.f()}return r}},{key:"fillSketch",value:function(t,e){var n=e.fillWeight;return n<0&&(n=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||ut,strokeWidth:n,fill:ut}}}],[{key:"newSeed",value:function(){return Math.floor(Math.random()*Math.pow(2,31))}}]),t}(),ft=function(){function t(e,n){r(this,t),this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new dt(n)}return s(t,[{key:"draw",value:function(t){var e,n=t.sets||[],i=t.options||this.getDefaultOptions(),r=this.ctx,a=t.options.fixedDecimalPlaceDigits,s=g(n);try{for(s.s();!(e=s.n()).done;){var o=e.value;switch(o.type){case"path":r.save(),r.strokeStyle="none"===i.stroke?"transparent":i.stroke,r.lineWidth=i.strokeWidth,i.strokeLineDash&&r.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(r.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(r,o,a),r.restore();break;case"fillPath":r.save(),r.fillStyle=i.fill||"";var l="curve"===t.shape||"polygon"===t.shape||"path"===t.shape?"evenodd":"nonzero";this._drawToContext(r,o,a,l),r.restore();break;case"fillSketch":this.fillSketch(r,o,i)}}}catch(t){s.e(t)}finally{s.f()}}},{key:"fillSketch",value:function(t,e,n){var i=n.fillWeight;i<0&&(i=n.strokeWidth/2),t.save(),n.fillLineDash&&t.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(t.lineDashOffset=n.fillLineDashOffset),t.strokeStyle=n.fill||"",t.lineWidth=i,this._drawToContext(t,e,n.fixedDecimalPlaceDigits),t.restore()}},{key:"_drawToContext",value:function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"nonzero";t.beginPath();var r,a=g(e.ops);try{for(a.s();!(r=a.n()).done;){var s=r.value,o="number"==typeof n&&n>=0?s.data.map((function(t){return+t.toFixed(n)})):s.data;switch(s.op){case"move":t.moveTo(o[0],o[1]);break;case"bcurveTo":t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5]);break;case"lineTo":t.lineTo(o[0],o[1])}}}catch(t){a.e(t)}finally{a.f()}"fillPath"===e.type?t.fill(i):t.stroke()}},{key:"generator",get:function(){return this.gen}},{key:"getDefaultOptions",value:function(){return this.gen.defaultOptions}},{key:"line",value:function(t,e,n,i,r){var a=this.gen.line(t,e,n,i,r);return this.draw(a),a}},{key:"rectangle",value:function(t,e,n,i,r){var a=this.gen.rectangle(t,e,n,i,r);return this.draw(a),a}},{key:"ellipse",value:function(t,e,n,i,r){var a=this.gen.ellipse(t,e,n,i,r);return this.draw(a),a}},{key:"circle",value:function(t,e,n,i){var r=this.gen.circle(t,e,n,i);return this.draw(r),r}},{key:"linearPath",value:function(t,e){var n=this.gen.linearPath(t,e);return this.draw(n),n}},{key:"polygon",value:function(t,e){var n=this.gen.polygon(t,e);return this.draw(n),n}},{key:"arc",value:function(t,e,n,i,r,a){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7?arguments[7]:void 0,l=this.gen.arc(t,e,n,i,r,a,s,o);return this.draw(l),l}},{key:"curve",value:function(t,e){var n=this.gen.curve(t,e);return this.draw(n),n}},{key:"path",value:function(t,e){var n=this.gen.path(t,e);return this.draw(n),n}}]),t}(),pt=function(t,e){return new ft(t,e)};const vt={maxRandomnessOffset:3,roughness:1,bowing:1,curveFitting:.95,curveTightness:void 0,curveStepCount:9,fillStyle:"hachure",fillWeight:void 0,hachureAngle:60,hachureGap:6,simplification:0,dashOffset:void 0,dashGap:void 0,zigzagOffset:void 0,seed:1,fillLineDash:void 0,fillLineDashOffset:void 0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!0,fixedDecimalPlaceDigits:void 0};let gt=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="arc",this.numberType=e.ARC_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s);a.highPerformanceSave();const l=e.getTheme(t).arc;let{x:c=l.x,y:h=l.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const{dx:e=l.dx,dy:n=l.dy}=t.attribute;c+=e,h+=n,a.setTransformForCurrent()}else c=0,h=0,a.transformFromMatrix(t.transMatrix,!0);const u=new e.CustomPath2D,{fill:d=l.fill,stroke:f=l.stroke,lineWidth:p=l.lineWidth,outerRadius:v=l.outerRadius,innerRadius:g=l.innerRadius,maxRandomnessOffset:m=vt.maxRandomnessOffset,roughness:y=vt.roughness,bowing:x=vt.bowing,curveFitting:b=vt.curveFitting,curveTightness:C=vt.curveTightness,curveStepCount:S=vt.curveStepCount,fillStyle:M=vt.fillStyle,fillWeight:w=vt.fillWeight,hachureAngle:k=vt.hachureAngle,hachureGap:P=vt.hachureGap,simplification:T=vt.simplification,dashOffset:E=vt.dashOffset,dashGap:R=vt.dashGap,zigzagOffset:O=vt.zigzagOffset,seed:B=vt.seed,fillLineDash:A=vt.fillLineDash,fillLineDashOffset:I=vt.fillLineDashOffset,disableMultiStroke:D=vt.disableMultiStroke,disableMultiStrokeFill:L=vt.disableMultiStrokeFill,preserveVertices:_=vt.preserveVertices,fixedDecimalPlaceDigits:j=vt.fixedDecimalPlaceDigits}=t.attribute;e.drawArcPath(t,u,c,h,v,g),o.path(u.toString(),{fill:d||void 0,stroke:f||void 0,strokeWidth:p,maxRandomnessOffset:m,roughness:y,bowing:x,curveFitting:b,curveTightness:C,curveStepCount:S,fillStyle:M,fillWeight:w,hachureAngle:k,hachureGap:P,simplification:T,dashOffset:E,dashGap:R,zigzagOffset:O,seed:B,fillLineDash:A,fillLineDashOffset:I,disableMultiStroke:D,disableMultiStrokeFill:L,preserveVertices:_,fixedDecimalPlaceDigits:j}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};gt=m([e.injectable(),y(0,e.inject(e.DefaultCanvasArcRender)),x("design:paramtypes",[Object])],gt);let mt=class extends e.DefaultCanvasAreaRender{constructor(){super(...arguments),this.style="rough"}drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v){if(v)return super.drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v);t.highPerformanceSave();const g=t.canvas.nativeCanvas,m=pt(g,{}),y=new e.CustomPath2D;e.drawAreaSegments(y,n,c,{offsetX:h,offsetY:u});const{maxRandomnessOffset:x=vt.maxRandomnessOffset,roughness:b=vt.roughness,bowing:C=vt.bowing,curveFitting:S=vt.curveFitting,curveTightness:M=vt.curveTightness,curveStepCount:w=vt.curveStepCount,fillStyle:k=vt.fillStyle,fillWeight:P=vt.fillWeight,hachureAngle:T=vt.hachureAngle,hachureGap:E=vt.hachureGap,simplification:R=vt.simplification,dashOffset:O=vt.dashOffset,dashGap:B=vt.dashGap,zigzagOffset:A=vt.zigzagOffset,seed:I=vt.seed,fillLineDash:D=vt.fillLineDash,fillLineDashOffset:L=vt.fillLineDashOffset,disableMultiStroke:_=vt.disableMultiStroke,disableMultiStrokeFill:j=vt.disableMultiStrokeFill,preserveVertices:W=vt.preserveVertices,fixedDecimalPlaceDigits:F=vt.fixedDecimalPlaceDigits}=o;let{fill:G,stroke:z,lineWidth:Y}=o;return Array.isArray(l)?l.forEach((t=>{G=null!=G?G:t.fill,z=null!=z?z:t.stroke,Y=null!=Y?Y:t.lineWidth})):(G=null!=G?G:l.fill,z=null!=z?z:l.stroke,Y=null!=Y?Y:l.lineWidth),m.path(y.toString(),{fill:i?G:void 0,strokeWidth:Y,maxRandomnessOffset:x,roughness:b,bowing:C,curveFitting:S,curveTightness:M,curveStepCount:w,fillStyle:k,fillWeight:P,hachureAngle:T,hachureGap:E,simplification:R,dashOffset:O,dashGap:B,zigzagOffset:A,seed:I,fillLineDash:D,fillLineDashOffset:L,disableMultiStroke:_,disableMultiStrokeFill:j,preserveVertices:W,fixedDecimalPlaceDigits:F}),t.highPerformanceRestore(),!1}};mt=m([e.injectable()],mt);let yt=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="circle",this.numberType=e.CIRCLE_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s,{}),l=e.getTheme(t).circle;let{x:c=l.x,y:h=l.y}=t.attribute;t.transMatrix.onlyTranslate()?a.onlyTranslate()||a.clearMatrix():(c=0,h=0,a.transformFromMatrix(t.transMatrix,!0));const{radius:u=l.radius,fill:d=l.fill,stroke:f=l.stroke,lineWidth:p=l.lineWidth}=t.attribute;o.circle(c,h,u,{fill:d||void 0,stroke:f||void 0,strokeWidth:p,fillStyle:"zigzag",roughness:.5})}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};yt=m([e.injectable(),y(0,e.inject(e.DefaultCanvasCircleRender)),x("design:paramtypes",[Object])],yt);let xt=class extends e.DefaultCanvasLineRender{constructor(){super(...arguments),this.style="rough"}drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v){if(p||v)return super.drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v);t.highPerformanceSave();const g=t.canvas.nativeCanvas,m=pt(g,{}),y=new e.CustomPath2D;e.drawSegments(t.camera?t:t.nativeContext,n,c,h,{offsetX:u,offsetY:d});const{maxRandomnessOffset:x=vt.maxRandomnessOffset,roughness:b=vt.roughness,bowing:C=vt.bowing,curveFitting:S=vt.curveFitting,curveTightness:M=vt.curveTightness,curveStepCount:w=vt.curveStepCount,fillStyle:k=vt.fillStyle,fillWeight:P=vt.fillWeight,hachureAngle:T=vt.hachureAngle,hachureGap:E=vt.hachureGap,simplification:R=vt.simplification,dashOffset:O=vt.dashOffset,dashGap:B=vt.dashGap,zigzagOffset:A=vt.zigzagOffset,seed:I=vt.seed,fillLineDash:D=vt.fillLineDash,fillLineDashOffset:L=vt.fillLineDashOffset,disableMultiStroke:_=vt.disableMultiStroke,disableMultiStrokeFill:j=vt.disableMultiStrokeFill,preserveVertices:W=vt.preserveVertices,fixedDecimalPlaceDigits:F=vt.fixedDecimalPlaceDigits}=o;let{fill:G,stroke:z,lineWidth:Y}=o;return Array.isArray(l)?l.forEach((t=>{G=null!=G?G:t.fill,z=null!=z?z:t.stroke,Y=null!=Y?Y:t.lineWidth})):(G=null!=G?G:l.fill,z=null!=z?z:l.stroke,Y=null!=Y?Y:l.lineWidth),m.path(y.toString(),{fill:i?G:void 0,stroke:r?z:void 0,strokeWidth:Y,maxRandomnessOffset:x,roughness:b,bowing:C,curveFitting:S,curveTightness:M,curveStepCount:w,fillStyle:k,fillWeight:P,hachureAngle:T,hachureGap:E,simplification:R,dashOffset:O,dashGap:B,zigzagOffset:A,seed:I,fillLineDash:D,fillLineDashOffset:L,disableMultiStroke:_,disableMultiStrokeFill:j,preserveVertices:W,fixedDecimalPlaceDigits:F}),t.highPerformanceRestore(),!1}};xt=m([e.injectable()],xt);let bt=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="path",this.numberType=e.PATH_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s,{});a.highPerformanceSave();const l=e.getTheme(t).path;a.transformFromMatrix(t.transMatrix,!0);const{fill:c=l.fill,stroke:h=l.stroke,lineWidth:u=l.lineWidth,path:d=l.path,maxRandomnessOffset:f=vt.maxRandomnessOffset,roughness:p=vt.roughness,bowing:v=vt.bowing,curveFitting:g=vt.curveFitting,curveTightness:m=vt.curveTightness,curveStepCount:y=vt.curveStepCount,fillStyle:x=vt.fillStyle,fillWeight:b=vt.fillWeight,hachureAngle:C=vt.hachureAngle,hachureGap:S=vt.hachureGap,simplification:M=vt.simplification,dashOffset:w=vt.dashOffset,dashGap:k=vt.dashGap,zigzagOffset:P=vt.zigzagOffset,seed:T=vt.seed,fillLineDash:E=vt.fillLineDash,fillLineDashOffset:R=vt.fillLineDashOffset,disableMultiStroke:O=vt.disableMultiStroke,disableMultiStrokeFill:B=vt.disableMultiStrokeFill,preserveVertices:A=vt.preserveVertices,fixedDecimalPlaceDigits:I=vt.fixedDecimalPlaceDigits}=t.attribute;"string"==typeof d&&o.path(d,{fill:c||void 0,stroke:h||void 0,strokeWidth:u,maxRandomnessOffset:f,roughness:p,bowing:v,curveFitting:g,curveTightness:m,curveStepCount:y,fillStyle:x,fillWeight:b,hachureAngle:C,hachureGap:S,simplification:M,dashOffset:w,dashGap:k,zigzagOffset:P,seed:T,fillLineDash:E,fillLineDashOffset:R,disableMultiStroke:O,disableMultiStrokeFill:B,preserveVertices:A,fixedDecimalPlaceDigits:I}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};bt=m([e.injectable(),y(0,e.inject(e.DefaultCanvasPathRender)),x("design:paramtypes",[Object])],bt);let Ct=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="rect",this.numberType=e.RECT_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s);a.highPerformanceSave();const l=e.getTheme(t).rect;let{x:c=l.x,y:h=l.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const{dx:e=l.dx,dy:n=l.dy}=t.attribute;c+=e,h+=n,a.setTransformForCurrent()}else c=0,h=0,a.transformFromMatrix(t.transMatrix,!0);const{fill:u=l.fill,stroke:d=l.stroke,fillColor:f=l.fill,strokeColor:p=l.stroke,x1:v,y1:g,lineWidth:m=l.lineWidth,maxRandomnessOffset:y=vt.maxRandomnessOffset,roughness:x=vt.roughness,bowing:b=vt.bowing,curveFitting:C=vt.curveFitting,curveTightness:S=vt.curveTightness,curveStepCount:M=vt.curveStepCount,fillStyle:w=vt.fillStyle,fillWeight:k=vt.fillWeight,hachureAngle:P=vt.hachureAngle,hachureGap:T=vt.hachureGap,simplification:E=vt.simplification,dashOffset:R=vt.dashOffset,dashGap:O=vt.dashGap,zigzagOffset:B=vt.zigzagOffset,seed:A=vt.seed,fillLineDash:I=vt.fillLineDash,fillLineDashOffset:D=vt.fillLineDashOffset,disableMultiStroke:L=vt.disableMultiStroke,disableMultiStrokeFill:_=vt.disableMultiStrokeFill,preserveVertices:j=vt.preserveVertices,fixedDecimalPlaceDigits:W=vt.fixedDecimalPlaceDigits}=t.attribute;let{width:F=l.width,height:G=l.height}=t.attribute;F=(null!=F?F:v-c)||0,G=(null!=G?G:g-h)||0,o.rectangle(c,h,F,G,{fill:u?f:void 0,stroke:d?p:void 0,strokeWidth:m,maxRandomnessOffset:y,roughness:x,bowing:b,curveFitting:C,curveTightness:S,curveStepCount:M,fillStyle:w,fillWeight:k,hachureAngle:P,hachureGap:T,simplification:E,dashOffset:R,dashGap:O,zigzagOffset:B,seed:A,fillLineDash:I,fillLineDashOffset:D,disableMultiStroke:L,disableMultiStrokeFill:_,preserveVertices:j,fixedDecimalPlaceDigits:W}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};Ct=m([e.injectable(),y(0,e.inject(e.DefaultCanvasRectRender)),x("design:paramtypes",[Object])],Ct);let St=class extends e.BaseRender{constructor(t){super(),this.canvasRenderer=t,this.type="symbol",this.numberType=e.SYMBOL_NUMBER_TYPE,this.style="rough"}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s);a.highPerformanceSave();const l=e.getTheme(t).symbol,c=this.transform(t,l,a),{x:h,y:u,z:d,lastModelMatrix:f}=c,p=t.getParsedPath();if(!p)return;const{fill:v=l.fill,stroke:g=l.stroke,fillColor:m=l.fill,strokeColor:y=l.stroke,size:x=l.size,lineWidth:b=l.lineWidth,maxRandomnessOffset:C=vt.maxRandomnessOffset,roughness:S=vt.roughness,bowing:M=vt.bowing,curveFitting:w=vt.curveFitting,curveTightness:k=vt.curveTightness,curveStepCount:P=vt.curveStepCount,fillStyle:T=vt.fillStyle,fillWeight:E=vt.fillWeight,hachureAngle:R=vt.hachureAngle,hachureGap:O=vt.hachureGap,simplification:B=vt.simplification,dashOffset:A=vt.dashOffset,dashGap:I=vt.dashGap,zigzagOffset:D=vt.zigzagOffset,seed:L=vt.seed,fillLineDash:_=vt.fillLineDash,fillLineDashOffset:j=vt.fillLineDashOffset,disableMultiStroke:W=vt.disableMultiStroke,disableMultiStrokeFill:F=vt.disableMultiStrokeFill,preserveVertices:G=vt.preserveVertices,fixedDecimalPlaceDigits:z=vt.fixedDecimalPlaceDigits}=t.attribute;let Y="";if(p.drawToSvgPath)Y=p.drawToSvgPath(x,h,u);else{const t=new e.CustomPath2D;p.draw(t,x,h,u)&&t.closePath(),Y=t.toString()}o.path(Y,{fill:v?m:void 0,stroke:g?y:void 0,strokeWidth:b,maxRandomnessOffset:C,roughness:S,bowing:M,curveFitting:w,curveTightness:k,curveStepCount:P,fillStyle:T,fillWeight:E,hachureAngle:R,hachureGap:O,simplification:B,dashOffset:A,dashGap:I,zigzagOffset:D,seed:L,fillLineDash:_,fillLineDashOffset:j,disableMultiStroke:W,disableMultiStrokeFill:F,preserveVertices:G,fixedDecimalPlaceDigits:z}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};St=m([e.injectable(),y(0,e.inject(e.DefaultCanvasSymbolRender)),x("design:paramtypes",[Object])],St);var Mt=new e.ContainerModule((t=>{t(yt).toSelf().inSingletonScope(),t(e.GraphicRender).to(yt),t(Ct).toSelf().inSingletonScope(),t(e.GraphicRender).to(Ct),t(bt).toSelf().inSingletonScope(),t(e.GraphicRender).to(bt),t(St).toSelf().inSingletonScope(),t(e.GraphicRender).to(St),t(xt).toSelf().inSingletonScope(),t(e.GraphicRender).to(xt),t(mt).toSelf().inSingletonScope(),t(e.GraphicRender).to(mt),t(gt).toSelf().inSingletonScope(),t(e.GraphicRender).to(gt)}));const wt={onPointerDown:"pointerdown",onPointerUp:"pointerup",onPointerUpOutside:"pointerupoutside",onPointerTap:"pointertap",onPointerOver:"pointerover",onPointerMove:"pointermove",onPointerEnter:"pointerenter",onPointerLeave:"pointerleave",onPointerOut:"pointerout",onMouseDown:"mousedown",onMouseUp:"mouseup",onMouseUpOutside:"mouseupoutside",onMouseMove:"mousemove",onMouseOver:"mouseover",onMouseOut:"mouseout",onMouseEnter:"mouseenter",onMouseLeave:"mouseleave",onPinch:"pinch",onPinchStart:"pinchstart",onPinchEnd:"pinchend",onPan:"pan",onPanStart:"panstart",onPanEnd:"panend",onDrag:"drag",onDragStart:"dragstart",onDragEnter:"dragenter",onDragLeave:"dragleave",onDragOver:"dragover",onDragEnd:"dragend",onRightDown:"rightdown",onRightUp:"rightup",onRightUpOutside:"rightupoutside",onTouchStart:"touchstart",onTouchEnd:"touchend",onTouchEndOutside:"touchendoutside",onTouchMove:"touchmove",onTouchCancel:"touchcancel",onPress:"press",onPressUp:"pressup",onPressEnd:"pressend",onSwipe:"swipe",onDrop:"drop",onWeel:"wheel",onClick:"click",onDblClick:"dblclick"},kt=Object.keys(wt);function Pt(t){return e.graphicCreator.richtext(t?t.attribute:{})}function Tt(t,e){if(n.isArray(t))return t.forEach((t=>Tt(t,e)));e.push(t)}Pt.Text=function(t){return Object.assign({type:"rich/text"},t)},Pt.Image=function(t){return Object.assign({type:"rich/image"},t)};const Et=e.Group;const Rt=(t,e)=>{const n=e.x-t.x,i=e.y-t.y;return Math.abs(n)>Math.abs(i)?n>0?"right":"left":i>0?"down":"up"},Ot=(t,e)=>{const n=Math.abs(e.x-t.x),i=Math.abs(e.y-t.y);return Math.sqrt(n*n+i*i)};class Bt extends n.EventEmitter{constructor(t,n={}){var i,r,a,s,o,l,c,h,u,d;super(),this.cachedEvents=[],this.startPoints=[],this.processEvent={},this.throttleTimer=0,this.emitThrottles=[],this.lastTapTarget=null,this.onStart=t=>{this.reset(),this.startTime=e.clock.now();const{cachedEvents:n,startPoints:i}=this;t&&n.push(t.clone()),i.length=n.length;for(let t=0;t<n.length;t++){const{x:e,y:r}=n[t],a={x:e,y:r};i[t]=a}if(1!==i.length)this.startDistance=Ot(i[0],i[1]),this.center=(t=>{const e=t.length;if(1===e)return{x:Math.round(t[0].x),y:Math.round(t[0].y)};let n=0,i=0,r=0;for(;r<e;)n+=t[r].x,i+=t[r].y,r++;return{x:Math.round(n/e),y:Math.round(i/e)}})([i[0],i[1]]);else{const t=n[0];this.pressTimeout=setTimeout((()=>{const e="press",n="none";t.direction=n,t.deltaX=0,t.deltaY=0,t.points=i,this.triggerStartEvent(e,t),this.triggerEvent(e,t),this.eventType=e,this.direction=n}),this.config.press.time)}},this.onMove=t=>{this.clearPressTimeout();const{startPoints:n,cachedEvents:i}=this;if(!n.length)return;const r=t.clone(),{x:a,y:s,pointerId:o}=r;for(let t=0,e=i.length;t<e;t++)if(o===i[t].pointerId){i[t]=r;break}const l={x:a,y:s},c=i.map((t=>({x:t.x,y:t.y}))),h=e.clock.now();if(this.prevMoveTime=this.lastMoveTime,this.prevMovePoint=this.lastMovePoint,this.lastMoveTime=h,this.lastMovePoint=l,1===n.length){const t=n[0],e=a-t.x,i=s-t.y,o=this.direction||Rt(t,l);this.direction=o;const h=this.getEventType(l);return r.direction=o,r.deltaX=e,r.deltaY=i,r.points=c,this.triggerStartEvent(h,r),void this.triggerEvent(h,r)}const{startDistance:u}=this,d=Ot(c[0],c[1]);r.scale=d/u,r.center=this.center,r.points=c,this.triggerStartEvent("pinch",r),this.triggerEvent("pinch",r)},this.onEnd=t=>{const n=t.clone(),{cachedEvents:i,startPoints:r}=this,a=i.map((t=>({x:t.x,y:t.y})));if(n.points=a,this.triggerEndEvent(n),1===i.length){const i=e.clock.now(),a=this.lastMoveTime;if(i-a<100){const t=a-(this.prevMoveTime||this.startTime);if(t>0){const e=this.prevMovePoint||r[0],i=this.lastMovePoint||r[0],a=Ot(e,i),s=a/t;s>this.config.swipe.velocity&&a>this.config.swipe.threshold&&(n.velocity=s,n.direction=Rt(e,i),this.triggerEvent("swipe",n))}}i-this.lastTapTime<this.config.tap.interval&&t.target===this.lastTapTarget?this.tapCount++:this.tapCount=1,this.lastTapTime=i,this.lastTapTarget=t.target,1===this.tapCount?this.triggerEvent("tap",n):2===this.tapCount&&(this.triggerEvent("doubletap",n),this.tapCount=0)}for(let t=0,e=i.length;t<e;t++)if(i[t].pointerId===n.pointerId){i.splice(t,1),r.splice(t,1);break}this.reset(),i.length>0&&this.onStart()},this.element=t,this.tapCount=0,this.lastTapTime=0,this.config={press:{time:null!==(r=null===(i=null==n?void 0:n.press)||void 0===i?void 0:i.time)&&void 0!==r?r:251,threshold:null!==(s=null===(a=null==n?void 0:n.press)||void 0===a?void 0:a.threshold)&&void 0!==s?s:9},swipe:{threshold:null!==(l=null===(o=null==n?void 0:n.swipe)||void 0===o?void 0:o.threshold)&&void 0!==l?l:10,velocity:null!==(h=null===(c=null==n?void 0:n.swipe)||void 0===c?void 0:c.velocity)&&void 0!==h?h:.3},tap:{interval:null!==(d=null===(u=null==n?void 0:n.tap)||void 0===u?void 0:u.interval)&&void 0!==d?d:300}},this.initEvents()}initEvents(){const{element:t}=this;t&&(t.addEventListener("pointerdown",this.onStart),t.addEventListener("pointermove",this.onMove),t.addEventListener("pointerup",this.onEnd),t.addEventListener("pointerupoutside",this.onEnd))}removeEvents(){const{element:t}=this;t&&(t.removeEventListener("pointerdown",this.onStart),t.removeEventListener("pointermove",this.onMove),t.removeEventListener("pointerup",this.onEnd),t.removeEventListener("pointerupoutside",this.onEnd))}release(){this.removeEvents(),this.element=null}getEventType(t){const{eventType:n,startTime:i,startPoints:r}=this;if(n)return n;let a;return a=e.clock.now()-i>this.config.press.time&&Ot(r[0],t)<this.config.press.threshold?"press":"pan",this.eventType=a,a}enable(t){this.processEvent[t]=!0}isProcess(t){return this.processEvent[t]}pushEvent(t,e){const{emitThrottles:n}=this,i={type:t,ev:e};for(let e=0,r=n.length;e<r;e++)if(n[e].type===t)return void n.splice(e,1,i);n.push(i)}clearPressTimeout(){this.pressTimeout&&(clearTimeout(this.pressTimeout),this.pressTimeout=null)}reset(){this.clearPressTimeout(),this.startTime=0,this.startDistance=0,this.direction=null,this.eventType=null,this.prevMoveTime=0,this.prevMovePoint=null,this.lastMoveTime=0,this.lastMovePoint=null}triggerEvent(t,n){this.pushEvent(t,n);const{throttleTimer:i,emitThrottles:r}=this;i||(this.throttleTimer=e.application.global.getRequestAnimationFrame()((()=>{for(let t=0,e=r.length;t<e;t++){const{type:e,ev:n}=r[t];this.emitEvent(e,n)}this.throttleTimer=0,this.emitThrottles.length=0})))}triggerStartEvent(t,e){this.isProcess(t)||(this.enable(t),this.triggerEvent(`${t}start`,e))}triggerEndEvent(t){const e=this.processEvent;Object.keys(e).forEach((n=>{this.triggerEvent(`${n}end`,t),"press"===n&&this.triggerEvent(`${n}up`,t),delete e[n]}))}emitEvent(t,n){const i=this.element._events[e.WILDCARD];if(i)if("fn"in i)i.fn.call(i.context,n,t);else for(let e=0,r=i.length;e<r&&!n.propagationImmediatelyStopped;e++)i[e].fn.call(i[e].context,n,t);this.emit(t,n)}}const At=[0,0,0],It=new n.Matrix(1,0,0,1,0,0);let Dt=class{set fillStyle(t){this.nativeContext.fillStyle=t}get fillStyle(){return this.nativeContext.fillStyle}set font(t){this.nativeContext.font=t}get font(){return this.nativeContext.font}set globalAlpha(t){this.nativeContext.globalAlpha=t}get globalAlpha(){return this.nativeContext.globalAlpha}set lineCap(t){this.nativeContext.lineCap=t}get lineCap(){return this.nativeContext.lineCap}set lineDashOffset(t){this.nativeContext.lineDashOffset=t}get lineDashOffset(){return this.nativeContext.lineDashOffset}set lineJoin(t){this.nativeContext.lineJoin=t}get lineJoin(){return this.nativeContext.lineJoin}set lineWidth(t){this.nativeContext.lineWidth=t}get lineWidth(){return this.nativeContext.lineWidth}set miterLimit(t){this.nativeContext.miterLimit=t}get miterLimit(){return this.nativeContext.miterLimit}set shadowBlur(t){this.nativeContext.shadowBlur=t}get shadowBlur(){return this.nativeContext.shadowBlur}set shadowColor(t){this.nativeContext.shadowColor=t}get shadowColor(){return this.nativeContext.shadowColor}set shadowOffsetX(t){this.nativeContext.shadowOffsetX=t}get shadowOffsetX(){return this.nativeContext.shadowOffsetX}set shadowOffsetY(t){this.nativeContext.shadowOffsetY=t}get shadowOffsetY(){return this.nativeContext.shadowOffsetY}set strokeStyle(t){this.nativeContext.strokeStyle=t}get strokeStyle(){return this.nativeContext.strokeStyle}set textAlign(t){this.nativeContext.textAlign=t}get textAlign(){return this.nativeContext.textAlign}set textBaseline(t){this.nativeContext.textBaseline=t}get textBaseline(){return this.nativeContext.textBaseline}get inuse(){return!!this._inuse}set inuse(t){t!==!!this._inuse&&(this._inuse=t,t?(this.nativeContext.save(),this.reset()):this.nativeContext.restore())}constructor(t,i){this.fillAttributes=Object.assign(Object.assign({},e.DefaultFillStyle),{opacity:1}),this.strokeAttributes=Object.assign(Object.assign({},e.DefaultStrokeStyle),{opacity:1}),this.textAttributes=Object.assign(Object.assign({},e.DefaultTextStyle),{opacity:1}),this._clearShadowStyle=!1,this._clearFilterStyle=!1,this._clearGlobalCompositeOperationStyle=!1;const r=t.nativeCanvas.getContext("2d");if(!r)throw new Error("发生错误,获取2d上下文失败");this.nativeContext=r,this.canvas=t,this.matrix=new n.Matrix(1,0,0,1,0,0),this.stack=[],this.dpr=i,this.applyedMatrix=new n.Matrix(1,0,0,1,0,0)}reset(){this.stack.length&&n.Logger.getInstance().warn("可能存在bug,matrix没有清空"),this.matrix.setValue(1,0,0,1,0,0),this.applyedMatrix=new n.Matrix(1,0,0,1,0,0),this.stack.length=0,this.nativeContext.setTransform(1,0,0,1,0,0)}getCanvas(){return this.canvas}getContext(){return this.nativeContext}setTransformForCurrent(t=!1){!t&&this.applyedMatrix.equalToMatrix(this.matrix)||(this.applyedMatrix.setValue(this.matrix.a,this.matrix.b,this.matrix.c,this.matrix.d,this.matrix.e,this.matrix.f),this.nativeContext.setTransform(this.matrix.a,this.matrix.b,this.matrix.c,this.matrix.d,this.matrix.e,this.matrix.f))}get currentMatrix(){return this.matrix}cloneMatrix(t){return e.matrixAllocate.allocateByObj(t)}clear(){this.save(),this.resetTransform(),this.nativeContext.clearRect(0,0,this.canvas.width,this.canvas.height),this.restore()}restore(){this.nativeContext.restore(),this.stack.length>0&&(e.matrixAllocate.free(this.matrix),this.matrix=this.stack.pop(),this.setTransformForCurrent(!0))}highPerformanceRestore(){this.stack.length>0&&(e.matrixAllocate.free(this.matrix),this.matrix=this.stack.pop())}rotate(t,e=!0){this.matrix.rotate(t),e&&this.setTransformForCurrent()}save(){const t=this.cloneMatrix(this.matrix);this.stack.push(t),this.nativeContext.save()}highPerformanceSave(){const t=this.cloneMatrix(this.matrix);this.stack.push(t)}scale(t,e,n=!0){this.matrix.scale(t,e),n&&this.setTransformForCurrent()}setScale(t,e,n=!0){this.matrix.setScale(t,e),n&&this.setTransformForCurrent()}scalePoint(t,e,n,i,r=!0){this.translate(n,i,!1),this.scale(t,e,!1),this.translate(-n,-i,!1),r&&this.setTransformForCurrent()}setTransform(t,e,n,i,r,a,s=!0,o=this.dpr){this.matrix.setValue(o*t,o*e,o*n,o*i,o*r,o*a),s&&this.setTransformForCurrent()}setTransformFromMatrix(t,e=!0,n=this.dpr){this.matrix.setValue(t.a*n,t.b*n,t.c*n,t.d*n,t.e*n,t.f*n),e&&this.setTransformForCurrent()}resetTransform(t=!0,e=this.dpr){this.setTransform(e,0,0,e,0,0),t&&this.setTransformForCurrent()}transform(t,e,n,i,r,a,s=!0){this.matrix.multiply(t,e,n,i,r,a),s&&this.setTransformForCurrent()}transformFromMatrix(t,e){this.matrix.multiply(t.a,t.b,t.c,t.d,t.e,t.f),e&&this.setTransformForCurrent()}translate(t,e,n=!0){this.matrix.translate(t,e),n&&this.setTransformForCurrent()}rotateDegrees(t,e=!0){const n=t*Math.PI/180;this.rotate(n,e)}rotateAbout(t,e,n,i=!0){this.translate(e,n,!1),this.rotate(t,!1),this.translate(-e,-n,!1),i&&this.setTransformForCurrent()}rotateDegreesAbout(t,e,n,i=!0){this.translate(e,n,!1),this.rotateDegrees(t,!1),this.translate(-e,-n,!1),i&&this.setTransformForCurrent()}beginPath(){this.disableBeginPath||this.nativeContext.beginPath()}clip(t,e){t?"string"==typeof t?this.nativeContext.clip(t):this.nativeContext.clip(t,e):this.nativeContext.clip()}arc(t,e,i,r,a,s,o){if(o=o||0,this.camera){const l=[];((t,e,i,r,a,s,o,l)=>{if(l)for(;i>e;)i-=n.pi2;else for(;i<e;)i+=n.pi2;const c=n.pi/3*(i>e?1:-1);let h=e,u=h;for(;u!==i;){u=c>0?Math.min(u+c,i):Math.max(u+c,i);const e=Math.abs(u-h),n=4*Math.tan(e/4)/3,l=u<h?-1:1,d=Math.cos(h),f=Math.sin(h),p=Math.cos(u),v=Math.sin(u),g=d*s+r,m=f*o+a,y=p*s+r,x=v*o+a,b=s*n*l,C=o*n*l;t.push([g-b*f,m+C*d,y+b*v,x-C*p,y,x]),h=u}})(l,r,a,t,e,i,i,s);for(let t=0;t<l.length;++t){const e=l[t];this.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5],o)}}else this.nativeContext.arc(t,e,i,r,a,s)}arcTo(t,e,n,i,r){this.nativeContext.arcTo(t,e,n,i,r)}bezierCurveTo(t,n,i,r,a,s,o){if(o=o||0,this.camera){let l=o,c=o;this.modelMatrix&&(e.transformMat4(At,[t,n,o],this.modelMatrix),t=At[0],n=At[1],l=At[2],e.transformMat4(At,[i,r,o],this.modelMatrix),i=At[0],r=At[1],c=At[2],e.transformMat4(At,[a,s,o],this.modelMatrix),a=At[0],s=At[1],o=At[2]);let h=this.camera.vp(a,s,o);a=h.x,s=h.y,h=this.camera.vp(t,n,l),t=h.x,n=h.y,h=this.camera.vp(i,r,c),i=h.x,r=h.y}this.nativeContext.bezierCurveTo(t,n,i,r,a,s)}closePath(){this.nativeContext.closePath()}ellipse(t,e,n,i,r,a,s,o){null==o?this.nativeContext.ellipse(t,e,n,i,r,a,s):this.nativeContext.ellipse(t,e,n,i,r,a,s,o)}lineTo(t,n,i){if(i=i||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]);const r=this.camera.vp(t,n,i);t=r.x,n=r.y}this.nativeContext.lineTo(t,n)}moveTo(t,n,i){if(i=i||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]);const r=this.camera.vp(t,n,i);t=r.x,n=r.y}this.nativeContext.moveTo(t,n)}quadraticCurveTo(t,n,i,r,a){if(a=a||0,this.camera){let s=a;this.modelMatrix&&(e.transformMat4(At,[t,n,a],this.modelMatrix),t=At[0],n=At[1],s=At[2],e.transformMat4(At,[i,r,a],this.modelMatrix),i=At[0],r=At[1],a=At[2]);let o=this.camera.vp(i,r,a);i=o.x,r=o.y,o=this.camera.vp(t,n,s),t=o.x,n=o.y}this.nativeContext.quadraticCurveTo(t,n,i,r)}rect(t,e,n,i,r){r=r||0,this.camera?(this.moveTo(t,e,r),this.lineTo(t+n,e,r),this.lineTo(t+n,e+i,r),this.lineTo(t,e+i,r),this.closePath()):this.nativeContext.rect(t,e,n,i)}createImageData(){const t=arguments;return 2===t.length?this.nativeContext.createImageData(t[0],t[1]):1===t.length?this.nativeContext.createImageData(t[0]):null}createLinearGradient(t,e,n,i){return this.nativeContext.createLinearGradient(t,e,n,i)}createPattern(t,e){return 0===t.width||0===t.height?null:this.nativeContext.createPattern(t,e)}createRadialGradient(t,e,n,i,r,a){return this.nativeContext.createRadialGradient(t,e,n,i,r,a)}createConicGradient(t,n,i,r){let a,s=!1;const o=this;return{stops:[],addColorStop(t,e){this.stops.push([t,e]),s=!0},GetPattern(l,c,h){return s&&(h||(h=r-i),a=e.createConicalGradient(o,this.stops,t,n,h,i,r,l,c),s=!1),a}}}fill(t,e){this.disableFill||(t?this.nativeContext.fill(t):this.nativeContext.fill())}fillRect(t,e,n,i){this.nativeContext.fillRect(t,e,n,i)}clearRect(t,e,n,i){this.nativeContext.clearRect(t,e,n,i)}project(t,n,i){if(i=i||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]);const r=this.camera.vp(t,n,i);t=r.x,n=r.y}return{x:t,y:n}}view(t,n,i){return i=i||0,this.camera?(this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]),this.camera.view(t,n,i)):[t,n,i]}fillText(t,n,i,r){if(r=r||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[n,i,r],this.modelMatrix),n=At[0],i=At[1],r=At[2]);const t=this.camera.vp(n,i,r);n=t.x,i=t.y}this.nativeContext.fillText(t,n,i)}getImageData(t,e,n,i){return this.nativeContext.getImageData(t,e,n,i)}getLineDash(){return this.nativeContext.getLineDash()}isPointInPath(t,e){return this.nativeContext.isPointInPath(t,e)}isPointInStroke(t,e){return this.nativeContext.isPointInStroke(t,e)}measureText(t,n=e.application.global.measureTextMethod){var i,r;if(!n||"native"===n)return this.nativeContext.measureText(t);this.mathTextMeasure||(this.mathTextMeasure=e.application.graphicUtil.createTextMeasureInstance({},{},(()=>this.canvas.nativeCanvas)));const a=null!==(i=this.fontFamily)&&void 0!==i?i:e.DefaultTextStyle.fontFamily,s=null!==(r=this.fontSize)&&void 0!==r?r:e.DefaultTextStyle.fontSize;return this.mathTextMeasure.textSpec.fontFamily===a&&this.mathTextMeasure.textSpec.fontSize===s||(this.mathTextMeasure.textSpec.fontFamily=a,this.mathTextMeasure.textSpec.fontSize=s,this.mathTextMeasure._numberCharSize=null,this.mathTextMeasure._fullCharSize=null,this.mathTextMeasure._letterCharSize=null,this.mathTextMeasure._specialCharSizeMap={}),this.mathTextMeasure.measure(t,n)}putImageData(t,e,n){this.nativeContext.putImageData(t,e,n)}setLineDash(t){const e=arguments,n=this.nativeContext;this.nativeContext.setLineDash?n.setLineDash(e[0]):"mozDash"in n?n.mozDash=e[0]:"webkitLineDash"in n&&(n.webkitLineDash=e[0])}stroke(t){this.disableStroke||(t?this.nativeContext.stroke(t):this.nativeContext.stroke())}strokeRect(t,e,n,i){this.nativeContext.strokeRect(t,e,n,i)}strokeText(t,n,i,r){if(r=r||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[n,i,r],this.modelMatrix),n=At[0],i=At[1],r=At[2]);const t=this.camera.vp(n,i,r);n=t.x,i=t.y}this.nativeContext.strokeText(t,n,i)}drawImage(){const t=this.nativeContext,e=arguments;3===e.length?t.drawImage(e[0],e[1],e[2]):5===e.length?t.drawImage(e[0],e[1],e[2],e[3],e[4]):9===e.length&&t.drawImage(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}setCommonStyle(t,e,n,i,r){if(Array.isArray(r)){if(r.length<=1)return this._setCommonStyle(t,e,n,i,r[0]);const a=Object.create(r[0]);return r.forEach(((t,e)=>{0!==e&&Object.assign(a,t)})),this._setCommonStyle(t,e,n,i,a)}return this._setCommonStyle(t,e,n,i,r)}_setCommonStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.fillAttributes);const{fillOpacity:o=a.fillOpacity,opacity:l=a.opacity,fill:c=a.fill}=n;o>1e-12&&l>1e-12?(s.globalAlpha=o*l,s.fillStyle=e.createColor(this,c,t,i,r)):s.globalAlpha=o*l}setShadowBlendStyle(t,e,n){if(Array.isArray(n)){if(n.length<=1)return this._setShadowBlendStyle(t,n[0]);const i=Object.create(n[0]);return n.forEach(((t,e)=>{0!==e&&Object.assign(i,t)})),this._setShadowBlendStyle(t,e,i)}return this._setShadowBlendStyle(t,e,n)}_setShadowBlendStyle(t,e,n){const i=this.nativeContext;n||(n=this.fillAttributes);const{opacity:r=n.opacity,shadowBlur:a=n.shadowBlur,shadowColor:s=n.shadowColor,shadowOffsetX:o=n.shadowOffsetX,shadowOffsetY:l=n.shadowOffsetY,blur:c=n.blur,globalCompositeOperation:h=n.globalCompositeOperation}=e;r<=1e-12||(a||o||l?(i.shadowBlur=a*this.dpr,i.shadowColor=s,i.shadowOffsetX=o*this.dpr,i.shadowOffsetY=l*this.dpr,this._clearShadowStyle=!0):this._clearShadowStyle&&(i.shadowBlur=0,i.shadowOffsetX=0,i.shadowOffsetY=0),c?(i.filter=`blur(${c}px)`,this._clearFilterStyle=!0):this._clearFilterStyle&&(i.filter="blur(0px)",this._clearFilterStyle=!1),h?(i.globalCompositeOperation=h,this._clearGlobalCompositeOperationStyle=!0):this._clearGlobalCompositeOperationStyle&&(i.globalCompositeOperation="source-over",this._clearGlobalCompositeOperationStyle=!1))}setStrokeStyle(t,e,n,i,r){if(Array.isArray(r)){if(r.length<=1)return this._setStrokeStyle(t,e,n,i,r[0]);const a=Object.create(r[0]);return r.forEach(((t,e)=>{0!==e&&Object.assign(a,t)})),this._setStrokeStyle(t,e,n,i,a)}return this._setStrokeStyle(t,e,n,i,r)}_setStrokeStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.strokeAttributes);const{strokeOpacity:o=a.strokeOpacity,opacity:l=a.opacity}=n;if(o>1e-12&&l>1e-12){const{lineWidth:c=a.lineWidth,stroke:h=a.stroke,lineJoin:u=a.lineJoin,lineDash:d=a.lineDash,lineCap:f=a.lineCap,miterLimit:p=a.miterLimit}=n;s.globalAlpha=o*l,s.lineWidth=e.getScaledStroke(this,c,this.dpr),s.strokeStyle=e.createColor(this,h,t,i,r),s.lineJoin=u,s.setLineDash(d),s.lineCap=f,s.miterLimit=p}}setTextStyleWithoutAlignBaseline(t,n,i){const r=this.nativeContext;n||(n=this.textAttributes);const{scaleIn3d:a=n.scaleIn3d}=t;t.font?r.font=t.font:r.font=e.getContextFont(t,n,a&&this.camera&&this.camera.getProjectionScale(i));const{fontFamily:s=n.fontFamily,fontSize:o=n.fontSize}=t;this.fontFamily=s,this.fontSize=o,r.textAlign="left",r.textBaseline="alphabetic"}setTextStyle(t,n,i){var r,a;const s=this.nativeContext;n||(n=this.textAttributes),t.font?s.font=t.font:s.font=e.getContextFont(t,n,this.camera&&this.camera.getProjectionScale(i));const{fontFamily:o=n.fontFamily,fontSize:l=n.fontSize}=t;this.fontFamily=o,this.fontSize=l,s.textAlign=null!==(r=t.textAlign)&&void 0!==r?r:n.textAlign,s.textBaseline=null!==(a=t.textBaseline)&&void 0!==a?a:n.textBaseline}draw(){}clearMatrix(t=!0,e=this.dpr){this.setTransformFromMatrix(It,t,e)}onlyTranslate(t=this.dpr){return this.matrix.a===t&&0===this.matrix.b&&0===this.matrix.c&&this.matrix.d===t}release(...t){this.stack.forEach((t=>e.matrixAllocate.free(t))),this.stack.length=0}};Dt.env="browser",Dt=m([e.injectable(),x("design:paramtypes",[Object,Number])],Dt);let Lt=class extends e.BaseCanvas{constructor(t){super(t)}init(t){const{container:n}=t;if("string"==typeof n){const t=e.application.global.getElementById(n);t&&(this._container=t)}else this._container=n;this._context=new Dt(this,this._dpr),this.initStyle()}initStyle(){if(!this.controled)return;const{nativeCanvas:t}=this;t.width=this._pixelWidth,t.height=this._pixelHeight;!t.style||this.setCanvasStyle(t,this._x,this._y,this._displayWidth,this._displayHeight),this._container&&this._container.appendChild(t),this.visiable||this.hide()}hide(){this._nativeCanvas&&(this._nativeCanvas.style.display="none")}show(){this._nativeCanvas&&(this._nativeCanvas.style.display="block")}applyPosition(){const t=this._nativeCanvas;t.style.position="absolute",t.style.top=`${this._y}px`,t.style.left=`${this._x}px`}resetStyle(t){if(!this.controled)return;const{width:e=this._displayWidth,height:n=this._displayHeight,dpr:i=this._dpr,x:r=this._x,y:a=this._y}=t,{nativeCanvas:s}=this;s.width=e*i,s.height=n*i;!s.style||this.setCanvasStyle(s,r,a,e,n),t.id&&(s.id=t.id),this.visiable||this.hide()}setCanvasStyle(t,e,n,i,r){this.controled&&(t.style.width=`${i}px`,t.style.height=`${r}px`)}toDataURL(t,e){return"image/jpeg"===t?this._nativeCanvas.toDataURL(t,e):"image/png"===t?this._nativeCanvas.toDataURL(t):this._nativeCanvas.toDataURL(t,e)}resize(t,e){if(!this.controled)return;this._pixelWidth=t*this._dpr,this._pixelHeight=e*this._dpr,this._displayWidth=t,this._displayHeight=e,this._nativeCanvas.style&&(this._nativeCanvas.style.width=`${t}px`,this._nativeCanvas.style.height=`${e}px`),this._nativeCanvas.width=this._pixelWidth,this._nativeCanvas.height=this._pixelHeight;this._context.dpr=this._dpr}};function _t(t,n){return new e.ContainerModule((i=>{i(e.CanvasFactory).toDynamicValue((()=>e=>new t(e))).whenTargetNamed(t.env),i(e.Context2dFactory).toDynamicValue((()=>(t,e)=>new n(t,e))).whenTargetNamed(n.env)}))}Lt.env="browser",Lt=m([e.injectable(),x("design:paramtypes",[Object])],Lt);const jt=_t(Lt,Dt),Wt=Symbol.for("MathPickerContribution"),Ft=Symbol.for("MathArcPicker"),Gt=Symbol.for("MathAreaPicker"),zt=Symbol.for("MathCirclePicker"),Yt=Symbol.for("MathImagePicker"),Vt=Symbol.for("MathLinePicker"),Nt=Symbol.for("MathPathPicker"),Ht=Symbol.for("MathRectPicker"),Ut=Symbol.for("MathSymbolPicker"),Xt=Symbol.for("MathTextPicker"),qt=Symbol.for("MathPolygonPicker"),$t=Symbol.for("MathGlyphPicker"),Jt=Symbol.for("CanvasArcPicker"),Qt=Symbol.for("CanvasArc3dPicker"),Zt=Symbol.for("CanvasAreaPicker"),Kt=Symbol.for("CanvasCirclePicker"),te=Symbol.for("CanvasImagePicker"),ee=Symbol.for("CanvasLinePicker"),ne=Symbol.for("CanvasPathPicker"),ie=Symbol.for("CanvasRectPicker"),re=Symbol.for("CanvasRect3dPicker"),ae=Symbol.for("CanvasSymbolPicker"),se=Symbol.for("CanvasTextPicker"),oe=Symbol.for("CanvasPolygonPicker"),le=Symbol.for("CanvasPyramid3dPicker"),ce=Symbol.for("CanvasRichTextPicker"),he=Symbol.for("CanvasGlyphPicker"),ue=Symbol.for("CanvasGroupPicker"),de=Symbol.for("CanvasPickerContribution");let fe=class extends e.DefaultPickService{constructor(t,e,n){super(n),this.contributions=t,this.drawContribution=e,this.pickItemInterceptorContributions=n,this.global.hooks.onSetEnv.tap("canvas-picker-service",((t,e,n)=>{this.configure(n,e)})),this.configure(this.global,this.global.env),this.pickerMap=new Map,this.init()}init(){this.contributions.getContributions().forEach((t=>{this.pickerMap.set(t.numberType,t)})),super._init()}configure(t,n){this.pickCanvas=e.canvasAllocate.shareCanvas(),this.pickContext=this.pickCanvas.getContext("2d")}pickItem(t,e,n,i){if(!1===t.attribute.pickable)return null;if(this.InterceptorContributions.length)for(let r=0;r<this.InterceptorContributions.length;r++){const a=this.InterceptorContributions[r];if(a.beforePickItem){const r=a.beforePickItem(t,this,e,i,{parentMatrix:n});if(r)return r}}const r=this.pickerMap.get(t.numberType);if(!r)return null;const a=r.contains(t,e,i)?t:null,s={graphic:a};if(a)return s;if(this.InterceptorContributions.length)for(let r=0;r<this.InterceptorContributions.length;r++){const a=this.InterceptorContributions[r];if(a.afterPickItem){const r=a.afterPickItem(t,this,e,i,{parentMatrix:n});if(r)return r}}return s}};fe=m([e.injectable(),y(0,e.inject(e.ContributionProvider)),y(0,e.named(de)),y(1,e.inject(e.DrawContribution)),y(2,e.inject(e.ContributionProvider)),y(2,e.named(e.PickItemInterceptor)),x("design:paramtypes",[Object,Object,Object])],fe);let pe=class{constructor(){this.type="group",this.numberType=e.GROUP_NUMBER_TYPE}contains(t,e,n){return!1}};pe=m([e.injectable()],pe);let ve=!1;var ge=new e.ContainerModule(((t,n,i,r)=>{ve||(ve=!0,t(ue).to(pe).inSingletonScope(),t(de).toService(ue),e.bindContributionProvider(t,de))}));const me=new e.ContainerModule(((t,n,i,r)=>{i(fe)||t(fe).toSelf().inSingletonScope(),i(e.PickerService)?r(e.PickerService).toService(fe):t(e.PickerService).toService(fe)}));function ye(t){t.load(ge),t.load(me)}var xe;let be=xe=class extends e.BaseWindowHandlerContribution{get container(){return this.canvas.nativeCanvas.parentElement}static GenerateCanvasId(){return`${xe.idprefix}_${xe.prefix_count++}`}constructor(){super(),this.type="browser",this._canvasIsIntersecting=!0,this.global=e.application.global}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return this.canvas.nativeCanvas.getBoundingClientRect()}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t),this.postInit()}postInit(){if(this.global.optimizeVisible)try{this.observerCanvas()}catch(t){console.error("发生错误,该环境不存在IntersectionObserver")}}isElementVisible(t){const e=t.getBoundingClientRect(),n=window.innerWidth||document.documentElement.clientWidth,i=window.innerHeight||document.documentElement.clientHeight;return!(e.right<0||e.bottom<0||e.left>n||e.top>i)}observerCanvas(){this._canvasIsIntersecting=this.isElementVisible(this.canvas.nativeCanvas);const t=new IntersectionObserver(((t,e)=>{t.forEach((t=>{this._canvasIsIntersecting!==t.isIntersecting?(this._canvasIsIntersecting=t.isIntersecting,this._onVisibleChangeCb&&this._onVisibleChangeCb(t.isIntersecting)):this._canvasIsIntersecting=t.isIntersecting}))}));t&&t.observe(this.canvas.nativeCanvas)}createWindowByConfig(t){const e=this.global.createCanvas({width:t.width,height:t.height});let n;if(n="string"==typeof t.container?this.global.getElementById(t.container):t.container?t.container:this.global.getRootElement(),!n)throw new Error("发生错误,containerId可能传入有误");t.offscreen?n=null:n.appendChild(e);const i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:e,container:n,id:xe.GenerateCanvasId(),canvasControled:!0};this.canvas=new Lt(i)}createWindowByCanvas(t){var e;let n;if("string"==typeof t.canvas){if(n=this.global.getElementById(t.canvas),!n)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else n=t.canvas;if(!n)throw new Error("发生错误,传入的canvas不正确");let i=t.width,r=t.height;if(null==i||null==r||!t.canvasControled){const t=n.getBoundingClientRect();i=t.width,r=t.height}let a=t.dpr;if(null==a){a=null!==(e=n.getContext("2d").pixelRatio)&&void 0!==e?e:n.width/i}this.canvas=new Lt({width:i,height:r,dpr:a,nativeCanvas:n,canvasControled:t.canvasControled})}releaseWindow(){this.canvas.release()}resizeWindow(t,e){this.canvas.resize(t,e)}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e,n){return this.canvas.nativeCanvas.addEventListener(t,e,n)}removeEventListener(t,e,n){return this.canvas.nativeCanvas.removeEventListener(t,e,n)}dispatchEvent(t){return this.canvas.nativeCanvas.dispatchEvent(t)}getStyle(){return this.canvas.nativeCanvas.style}setStyle(t){this.canvas.nativeCanvas.style=t}getBoundingClientRect(){const t=this.canvas.nativeCanvas,e=this.getWH();return t.parentElement?this.canvas.nativeCanvas.getBoundingClientRect():{x:0,y:0,width:e.width,height:e.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}isVisible(t){return this._canvasIsIntersecting}onVisibleChange(t){this._onVisibleChangeCb=t}getTopLeft(t){return this.global.getElementTopLeft(this.canvas.nativeCanvas,t)}};be.env="browser",be.idprefix="visactor_window",be.prefix_count=0,be=xe=m([e.injectable(),x("design:paramtypes",[])],be);const Ce=new e.ContainerModule((t=>{t(be).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(be))).whenTargetNamed(be.env)}));class Se{get x1(){return this.dom.getBoundingClientRect().left}get x2(){return this.dom.getBoundingClientRect().right}get y1(){return this.dom.getBoundingClientRect().top}get y2(){return this.dom.getBoundingClientRect().bottom}get width(){return this.dom.getBoundingClientRect().width}get height(){return this.dom.getBoundingClientRect().height}constructor(t){this.dom=t}}function Me(t,e=!1){const n=document.createElement("img");if(n.crossOrigin="anonymous",e){const e=new Blob([t],{type:"image/svg+xml"});t=window.URL.createObjectURL(e)}if(n.src=t,n.complete)return Promise.resolve(n);return new Promise(((t,e)=>{n.onload=()=>{t(n)},n.onerror=()=>{e(new Error("加载失败"))}}))}let we=class extends e.BaseEnvContribution{constructor(){super(),this.type="browser",this.supportEvent=!0;try{this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsTouchEvents=!1,this.supportsPointerEvents=!1,this.supportsPointerEvents=!1}this.applyStyles=!0}mapToCanvasPoint(t,e){var i;if(e){const{clientX:r,clientY:a}=t,s=e.getBoundingClientRect(),o=null===(i=e.getNativeHandler)||void 0===i?void 0:i.call(e).nativeCanvas;let l,c;return o&&(l=s.width/o.offsetWidth,c=s.height/o.offsetHeight),{x:(r-s.left)/(n.isValidNumber(l)?l:1),y:(a-s.top)/(n.isValidNumber(c)?c:1)}}return{x:t.offsetX,y:t.offsetY}}getNativeAABBBounds(t){let e=t;if("string"==typeof t&&(e=(new DOMParser).parseFromString(t,"text/html").firstChild),e.getBoundingClientRect){const t=e.getBoundingClientRect();return new Se(t)}return new n.AABBBounds}removeDom(t){return t.parentElement.removeChild(t),!0}createDom(t){const{tagName:e="div",width:i,height:r,style:a,parent:s}=t,o=document.createElement(e);if(a&&(n.isString(a)?o.setAttribute("style",a):Object.keys(a).forEach((t=>{o.setAttribute(t,a[t])}))),null!=i&&(o.style.width=`${i}px`),null!=r&&(o.style.height=`${r}px`),s){const t=n.isString(s)?this.getElementById(s):s;t&&t.appendChild&&t.appendChild(o)}return o}loadImage(t){return Me(t,!1).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}loadSvg(t){return Me(t,!0).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}createCanvas(t){var n,i;const r=document.createElement("canvas");t.id&&(r.id=null!==(n=t.id)&&void 0!==n?n:e.Generator.GenAutoIncrementId().toString());const a=null!==(i=t.dpr)&&void 0!==i?i:window.devicePixelRatio;return t.width&&t.height&&(r.style.width=`${t.width}px`,r.style.height=`${t.height}px`,r.width=t.width*a,r.height=t.height*a),r}createOffscreenCanvas(t){var e;const n=null!==(e=t.dpr)&&void 0!==e?e:window.devicePixelRatio;return new OffscreenCanvas(t.width*n,t.height*n)}releaseCanvas(t){let e;e="string"==typeof t?document.getElementById(t):t,e&&e.parentElement&&e.parentElement.removeChild(e)}getDevicePixelRatio(){return window.devicePixelRatio}getRequestAnimationFrame(){return window.requestAnimationFrame}getCancelAnimationFrame(){return window.cancelAnimationFrame}addEventListener(t,e,n){return document.addEventListener(t,e,n)}removeEventListener(t,e,n){return document.removeEventListener(t,e,n)}dispatchEvent(t){return document.dispatchEvent(t)}getElementById(t){return document.getElementById(t)}getRootElement(){return document.body}getDocument(){return document}release(...t){}getElementTop(t,e){let n=t.offsetTop,i=t.offsetParent;for(;null!==i;)n+=i.offsetTop,i=i.offsetParent;return n}getElementLeft(t,e){let n=t.offsetLeft,i=t.offsetParent;for(;null!==i;)n+=i.offsetLeft,i=i.offsetParent;return n}getElementTopLeft(t,e){let n=t.offsetTop,i=t.offsetLeft,r=t.offsetParent;for(;null!==r;)n+=r.offsetTop,i+=r.offsetLeft,r=r.offsetParent;return{top:n,left:i}}};we=m([e.injectable(),x("design:paramtypes",[])],we);let ke=!1;const Pe=new e.ContainerModule((t=>{ke||(ke=!0,t(we).toSelf().inSingletonScope(),t(e.EnvContribution).toService(we))}));let Te=!1;function Ee(t,e=!0){Te||(Te=!0,t.load(Pe),t.load(jt),t.load(Ce),e&&ye(t))}let Re=class extends Dt{get globalAlpha(){return this._globalAlpha}set globalAlpha(t){this.nativeContext.globalAlpha=t,this._globalAlpha=t}getImageData(t,e,n,i){return new Promise(((r,a)=>{var s;try{tt.canvasGetImageData({canvasId:null!==(s=this.canvas.nativeCanvas.id)&&void 0!==s?s:this.canvas.id,x:t,y:e,width:n,height:i,success(t){r(t)}})}catch(t){a(t)}}))}draw(){const t=this.nativeContext;t.draw&&(this.drawPromise=new Promise((e=>{t.draw(!0,(()=>{this.drawPromise=null,e(null)}))})))}createPattern(t,e){return null}};Re.env="feishu",Re=m([e.injectable()],Re);let Oe=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new Re(this,this._dpr)}release(...t){}};Oe.env="feishu",Oe=m([e.injectable(),x("design:paramtypes",[Object])],Oe);const Be=_t(Oe,Re);let Ae=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="feishu",this.eventManager=new class{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new Oe(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new Oe({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){const{type:e}=t;return!!this.eventManager.cache[e]&&(t.changedTouches&&t.changedTouches[0]&&(t.offsetX=t.changedTouches[0].x,t.changedTouches[0].offsetX=t.changedTouches[0].x,t.changedTouches[0].clientX=t.changedTouches[0].x,t.offsetY=t.changedTouches[0].y,t.changedTouches[0].offsetY=t.changedTouches[0].y,t.changedTouches[0].clientY=t.changedTouches[0].y),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[e].listener&&this.eventManager.cache[e].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};Ae.env="feishu",Ae=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],Ae);const Ie=new e.ContainerModule((t=>{t(Ae).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(Ae))).whenTargetNamed(Ae.env)}));let De=class extends e.DefaultPickService{constructor(t,e){super(e),this.contributions=t,this.pickItemInterceptorContributions=e,this.global.hooks.onSetEnv.tap("math-picker-service",((t,e,n)=>{this.configure(n,e)})),this.configure(this.global,this.global.env),this.pickerMap=new Map,this.init()}init(){this.contributions.getContributions().forEach((t=>{this.pickerMap.set(t.numberType,t)})),super._init()}configure(t,n){this.pickContext=new e.EmptyContext2d(null,1)}pickItem(t,e,n,i){if(!1===t.attribute.pickable)return null;const r=this.pickerMap.get(t.numberType);if(!r)return null;const a=r.contains(t,e,i)?t:null;return a?{graphic:a}:null}};De=m([e.injectable(),y(0,e.inject(e.ContributionProvider)),y(0,e.named(Wt)),y(1,e.inject(e.ContributionProvider)),y(1,e.named(e.PickItemInterceptor)),x("design:paramtypes",[Object,Object])],De);let Le=!1;var _e=new e.ContainerModule((t=>{Le||(Le=!0,e.bindContributionProvider(t,Wt))}));const je=new e.ContainerModule(((t,n,i,r)=>{i(De)||t(De).toSelf().inSingletonScope(),i(e.PickerService)?r(e.PickerService).toService(De):t(e.PickerService).toService(De)}));function We(t){t.load(_e),t.load(je)}let Fe=class extends e.BaseEnvContribution{constructor(){super(),this.type="feishu",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}getDynamicCanvasCount(){return this.freeCanvasList.length}getStaticCanvasCount(){return this.freeCanvasList.length}configure(t,e){t.env===this.type&&(t.setActiveEnvContribution(this),function(t,e,n,i,r){const a=tt.getSystemInfoSync().pixelRatio;e.forEach(((e,s)=>{const o=tt.createCanvasContext(e);o.canvas={width:t.width*a,height:t.height*a};const l={width:t.width*a,height:t.height*a,offsetWidth:t.width,offsetHeight:t.height,id:null!=e?e:"",getContext:()=>o,getBoundingClientRect:()=>({height:t.height,width:t.width})};n.set(e,l),s>=i&&r.push(l)}))}(e.domref,e.canvasIdLists,this.canvasMap,e.freeCanvasIdx,this.freeCanvasList))}loadImage(t){return Promise.resolve({data:t,loadState:"success"})}loadSvg(t){return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return tt.getSystemInfoSync().pixelRatio}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}mapToCanvasPoint(t){var e;return(null===(e=null==t?void 0:t.type)||void 0===e?void 0:e.startsWith("mouse"))?t:null}};Fe=m([e.injectable(),x("design:paramtypes",[])],Fe);let Ge=!1;const ze=new e.ContainerModule((t=>{Ge||(Ge=!0,t(Fe).toSelf().inSingletonScope(),t(e.EnvContribution).toService(Fe))}));let Ye=!1;function Ve(t,e=!0){Ye||(Ye=!0,t.load(ze),t.load(Be),t.load(Ie),e&&We(t))}let Ne=class extends Dt{get globalAlpha(){return this._globalAlpha}set globalAlpha(t){this.nativeContext.globalAlpha=t,this._globalAlpha=t}setLineDash(t){const e=arguments,n=this.nativeContext;if(this.nativeContext.setLineDash){const t=e[0];if(0===t[0]&&0===t[1])return;n.setLineDash(t)}}_setStrokeStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.strokeAttributes);const{strokeOpacity:o=a.strokeOpacity,opacity:l=a.opacity}=n;if(o>1e-12&&l>1e-12){const{lineWidth:c=a.lineWidth,stroke:h=a.stroke,lineJoin:u=a.lineJoin,lineDash:d=a.lineDash,lineCap:f=a.lineCap,miterLimit:p=a.miterLimit}=n;s.globalAlpha=o*l,s.lineWidth=e.getScaledStroke(this,c,this.dpr),s.strokeStyle=e.createColor(this,h,t,i,r),s.lineJoin=u,0===d[0]&&0===d[1]||s.setLineDash(d),s.lineCap=f,s.miterLimit=p}}measureText(t,n=e.application.global.measureTextMethod){this.setTransform(1,0,0,1,0,0,!0,e.application.global.devicePixelRatio);return super.measureText(t,n)}createPattern(t,e){return null}draw(){const t=this.nativeContext;this.drawPromise=new Promise((e=>{t.draw(!0,(()=>{this.drawPromise=null,e(null)}))}))}};Ne.env="lynx",Ne=m([e.injectable()],Ne);let He=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new Ne(this,this._dpr)}resize(t,e){this._pixelWidth=t*this._dpr,this._pixelHeight=e*this._dpr,this._displayWidth=t,this._displayHeight=e,this._nativeCanvas.width=this._pixelWidth,this._nativeCanvas.height=this._pixelHeight,this._nativeCanvas.nativeCanvas&&(this._nativeCanvas.nativeCanvas.width=this._pixelWidth,this._nativeCanvas.nativeCanvas.height=this._pixelHeight);this._context.dpr=this._dpr}release(...t){}};He.env="lynx",He=m([e.injectable(),x("design:paramtypes",[Object])],He);let Ue=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="lynx",this.eventManager=new class{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new He(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new He({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){this.canvas.resize(t,e)}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){const{type:e}=t;return!!this.eventManager.cache[e]&&(t.changedTouches&&t.changedTouches[0]&&(t.offsetX=t.changedTouches[0].x,t.changedTouches[0].offsetX=t.changedTouches[0].x,t.changedTouches[0].clientX=t.changedTouches[0].x,t.offsetY=t.changedTouches[0].y,t.changedTouches[0].offsetY=t.changedTouches[0].y,t.changedTouches[0].clientY=t.changedTouches[0].y),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[e].listener&&this.eventManager.cache[e].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};Ue.env="lynx",Ue=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],Ue);const Xe=new e.ContainerModule((t=>{t(Ue).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(Ue))).whenTargetNamed(Ue.env)})),qe=_t(He,Ne);let $e=!1;try{$e=!!lynx.createCanvasNG}catch(t){}let Je=class extends e.BaseEnvContribution{constructor(){super(),this.type="lynx",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}configure(t,e){t.env===this.type&&(t.setActiveEnvContribution(this),function(t,e,n,i,r){const a=SystemInfo.pixelRatio;e.forEach(((e,s)=>{const o=$e?lynx.createCanvasNG(e):lynx.createCanvas(e);o.width=t.width*a,o.height=t.height*a,$e&&o.attachToCanvasView(e);const l=o.getContext("2d");l.draw=(t,e)=>{e()};const c={width:t.width*a,height:t.height*a,offsetWidth:t.width,offsetHeight:t.height,id:null!=e?e:"",getContext:()=>l,getBoundingClientRect:()=>({height:t.height,width:t.width}),nativeCanvas:o};n.set(e,c),s>=i&&r.push(c)}))}(e.domref,e.canvasIdLists,this.canvasMap,e.freeCanvasIdx,this.freeCanvasList))}getDynamicCanvasCount(){return this.freeCanvasList.length}getStaticCanvasCount(){return this.freeCanvasList.length}loadImage(t){return function(t,e=!1){if(e)return Promise.reject();const n=lynx.createImage(t);return new Promise(((t,e)=>{n.onload=()=>{t(n)},n.onerror=()=>{e(new Error("加载失败"))}}))}(t,!1).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}loadSvg(t){return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return SystemInfo.pixelRatio}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}};Je=m([e.injectable(),x("design:paramtypes",[])],Je);let Qe=!1;const Ze=new e.ContainerModule((t=>{Qe||(Qe=!0,t(Je).toSelf().inSingletonScope(),t(e.EnvContribution).toService(Je))}));let Ke=!1;function tn(t,e=!0){Ke||(Ke=!0,t.load(Ze),t.load(qe),t.load(Xe),e&&We(t))}let en=class extends Dt{constructor(t,e){super(t,e);const i=t.nativeCanvas.getContext("2d");if(!i)throw new Error("发生错误,获取2d上下文失败");this.nativeContext=i,this.canvas=t,this.matrix=new n.Matrix(1,0,0,1,0,0),this.stack=[],this.dpr=null!=e?e:1}release(...t){}};en.env="node",en=m([e.injectable(),x("design:paramtypes",[Object,Number])],en);let nn=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new en(this,this._dpr),this.nativeCanvas.width=this._pixelWidth,this.nativeCanvas.height=this._pixelHeight}release(...t){this._nativeCanvas.release&&n.isFunction(this._nativeCanvas.release)&&this._nativeCanvas.release()}};nn.env="node",nn=m([e.injectable(),x("design:paramtypes",[Object])],nn);const rn=_t(nn,en);let an=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="node"}getTitle(){return""}getWH(){return{width:this.canvas.displayWidth,height:this.canvas.displayHeight}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!0};this.canvas=new nn(i)}createWindowByCanvas(t){const e=t.canvas;let n=t.width,i=t.height;null!=n&&null!=i&&t.canvasControled||(n=e.width,i=e.height),this.canvas=new nn({width:n,height:i,dpr:1,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){this.canvas.release()}resizeWindow(t,e){this.canvas.resize(t,e)}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}getImageBuffer(t="image/png"){return this.canvas.nativeCanvas.toBuffer(t)}addEventListener(t,e,n){}dispatchEvent(t){return!0}removeEventListener(t,e,n){}getStyle(){}setStyle(t){}getBoundingClientRect(){return null}clearViewBox(t,e){}};an.env="node",an=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],an);const sn=new e.ContainerModule((t=>{t(an).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(an))).whenTargetNamed(an.env)}));let on=class extends e.BaseEnvContribution{constructor(){super(...arguments),this.type="node",this._lastTime=0,this.supportEvent=!1}configure(t,e){t.env===this.type&&(t.setActiveEnvContribution(this),this.pkg=e)}getDynamicCanvasCount(){return 0}getStaticCanvasCount(){return 999}loadJson(t){const e=fetch(t).then((t=>t.json()));return e.then((t=>({data:t,state:"success"}))).catch((()=>({data:null,state:"fail"}))),e}loadArrayBuffer(t){return fetch(t).then((t=>t.arrayBuffer())).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}loadImage(t){const{loadImage:e}=this.pkg;return e?e(t).then((t=>({loadState:t?"success":"fail",data:t}))).catch((()=>({loadState:"fail",data:null}))):Promise.reject(new Error("node-canvas loadImage could not be found!"))}loadSvg(t){const e=this.pkg.Resvg;if(!e)return Promise.reject(new Error("@resvg/resvg-js svgParser could not be found!"));const n=new e(t).render().asPng();return this.loadImage(n)}createCanvas(t){return this.pkg.createCanvas(t.width,t.height)}releaseCanvas(t){}getDevicePixelRatio(){return 1}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){}removeEventListener(t,e,n){}getElementById(t){return null}getRootElement(){return null}dispatchEvent(t){}release(...t){}createOffscreenCanvas(t){}};on=m([e.injectable()],on);let ln=!1;const cn=new e.ContainerModule((t=>{ln||(ln=!0,t(on).toSelf().inSingletonScope(),t(e.EnvContribution).toService(on))}));let hn=!1;function un(t,e=!0){hn||(hn=!0,t.load(cn),t.load(rn),t.load(sn))}let dn=class extends Dt{get globalAlpha(){return this._globalAlpha}set globalAlpha(t){this.nativeContext.setGlobalAlpha(t),this._globalAlpha=t}draw(){this.nativeContext.draw()}strokeText(t,e,n){}_setCommonStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.fillAttributes);const{fillOpacity:o=a.fillOpacity,opacity:l=a.opacity,fill:c=a.fill}=n;o>1e-12&&l>1e-12&&(s.setGlobalAlpha(o*l),s.setFillStyle(e.createColor(this,c,t,i,r)))}_setStrokeStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.strokeAttributes);const{strokeOpacity:o=a.strokeOpacity,opacity:l=a.opacity}=n;if(o>1e-12&&l>1e-12){const{lineWidth:c=a.lineWidth,stroke:h=a.stroke,lineJoin:u=a.lineJoin,lineDash:d=a.lineDash,lineCap:f=a.lineCap,miterLimit:p=a.miterLimit}=n;s.setGlobalAlpha(o*l),s.setLineWidth(e.getScaledStroke(this,c,this.dpr)),s.setStrokeStyle(e.createColor(this,h,t,i,r)),s.setLineJoin(u),s.setLineDash(d),s.setLineCap(f),s.setMiterLimit(p)}}setTextStyleWithoutAlignBaseline(t,n){var i;const r=this.nativeContext;n||(n=this.textAttributes),t.font?r.font=t.font:r.font=e.getContextFont(t,n),r.setFontSize(null!==(i=t.fontSize)&&void 0!==i?i:n.fontSize)}setTextStyle(t,n){var i,r;const a=this.nativeContext;n||(n=this.textAttributes),t.font?a.font=t.font:a.font=e.getContextFont(t,n),a.setTextAlign(null!==(i=t.textAlign)&&void 0!==i?i:n.textAlign),a.setTextBaseline(null!==(r=t.textBaseline)&&void 0!==r?r:n.textBaseline)}createConicGradient(t,e,n,i){return null}createPattern(t,e){return null}};dn.env="taro",dn=m([e.injectable()],dn);let fn=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new dn(this,this._dpr)}release(...t){}};fn.env="taro",fn=m([e.injectable(),x("design:paramtypes",[Object])],fn);const pn=_t(fn,dn);let vn=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="taro",this.eventManager=new class{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new fn(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new fn({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){const{type:e}=t;return!!this.eventManager.cache[e]&&(t.changedTouches.length>0&&(t.changedTouches.forEach(((e,n)=>{t.changedTouches[n]=Object.assign(Object.assign({},t.changedTouches[n]),{offsetX:e.x,offsetY:e.y})})),t.offsetX=t.changedTouches[0].offsetX,t.offsetY=t.changedTouches[0].offsetY),t.touches.length>0&&t.touches.forEach(((e,n)=>{t.touches[n]=Object.assign(Object.assign({},t.touches[n]),{offsetX:e.x,offsetY:e.y})})),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[e].listener&&this.eventManager.cache[e].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};vn.env="taro",vn=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],vn);const gn=new e.ContainerModule((t=>{t(vn).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(vn))).whenTargetNamed(vn.env)}));let mn=class extends e.BaseEnvContribution{constructor(){super(),this.type="taro",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}getDynamicCanvasCount(){return this.freeCanvasList.length}getStaticCanvasCount(){return this.freeCanvasList.length}configure(t,e){var n,i,r,a,s,o,l;t.env===this.type&&(t.setActiveEnvContribution(this),n=e.domref,i=e.canvasIdLists,r=this.canvasMap,a=e.freeCanvasIdx,s=this.freeCanvasList,o=e.taro,l=e.pixelRatio,i.forEach(((t,e)=>{const i=o.createCanvasContext(t);i.canvas={width:n.width*l,height:n.height*l},i.createRadialGradient||(i.createRadialGradient=(...t)=>i.createCircularGradient(...t)),!i.getImageData&&o.canvasGetImageData&&(i.getImageData=(e,n,i,r)=>new Promise(((a,s)=>{try{o.canvasGetImageData({canvasId:t,x:e,y:n,width:i,height:r,success(t){a(t)}})}catch(t){s(t)}})));const c={id:t,width:n.width*l,height:n.height*l,offsetWidth:n.width,offsetHeight:n.height,getContext:()=>i,getBoundingClientRect:()=>({height:n.height,width:n.width})};return r.set(t,c),e>=a&&s.push(c),c})),this.taro=e.taro,this.pixelRatio=e.pixelRatio)}loadImage(t){return Promise.resolve({data:t,loadState:"success"})}loadSvg(t){const e=window||globalThis;if(e.DOMParser){const n=(new e.DOMParser).parseFromString(t,"image/svg+xml").children[0],i=(new XMLSerializer).serializeToString(n),r=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`;return Promise.resolve({data:r,loadState:"success"})}if(e.Blob){const n=new e.Blob([t],{type:"image/svg+xml"}),i=e.URL.createObjectURL(n);return Promise.resolve({data:i,loadState:"success"})}return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return this.pixelRatio}getRequestAnimationFrame(){return requestAnimationFrame}getCancelAnimationFrame(){return cancelAnimationFrame}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}};mn=m([e.injectable(),x("design:paramtypes",[])],mn);let yn=!1;const xn=new e.ContainerModule((t=>{yn||(yn=!0,t(mn).toSelf().inSingletonScope(),t(e.EnvContribution).toService(mn))}));let bn=!1;function Cn(t,e=!0){bn||(bn=!0,t.load(xn),t.load(pn),t.load(gn),e&&We(t))}let Sn=class extends Dt{draw(){}createPattern(t,e){return null}};Sn.env="wx",Sn=m([e.injectable()],Sn);let Mn=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new Sn(this,this._dpr)}release(...t){}};Mn.env="wx",Mn=m([e.injectable(),x("design:paramtypes",[Object])],Mn);const wn=_t(Mn,Sn);class kn{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}let Pn=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="wx",this.eventManager=new kn}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new Mn(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new Mn({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){var e,n,i,r;const{type:a}=t;return!!this.eventManager.cache[a]&&(t.changedTouches&&t.changedTouches[0]&&(t.offsetX=t.changedTouches[0].x,t.changedTouches[0].offsetX=null!==(e=t.changedTouches[0].x)&&void 0!==e?e:t.changedTouches[0].pageX,t.changedTouches[0].clientX=null!==(n=t.changedTouches[0].x)&&void 0!==n?n:t.changedTouches[0].pageX,t.offsetY=t.changedTouches[0].y,t.changedTouches[0].offsetY=null!==(i=t.changedTouches[0].y)&&void 0!==i?i:t.changedTouches[0].pageY,t.changedTouches[0].clientY=null!==(r=t.changedTouches[0].y)&&void 0!==r?r:t.changedTouches[0].pageY),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[a].listener&&this.eventManager.cache[a].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};Pn.env="wx",Pn=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],Pn);const Tn=new e.ContainerModule((t=>{t(Pn).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(Pn))).whenTargetNamed(Pn.env)}));let En=class extends e.BaseEnvContribution{constructor(){super(),this.type="wx",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}configure(t,e){if(t.env===this.type)return t.setActiveEnvContribution(this),function(t,e,n,i,r,a){return b(this,void 0,void 0,(function*(){const t=wx.getSystemInfoSync().pixelRatio;for(let s=0;s<e.length;s++){const o=e[s];yield new Promise((e=>{let l=wx.createSelectorQuery();a&&(l=l.in(a)),l.select(`#${o}`).fields({node:!0,size:!0}).exec((a=>{if(!a[0])return;const l=a[0].node,c=a[0].width,h=a[0].height;l.width=c*t,l.height=h*t,n.set(o,l),s>=i&&r.push(l),e(null)}))}))}}))}(e.domref,e.canvasIdLists,this.canvasMap,e.freeCanvasIdx,this.freeCanvasList,e.component).then((()=>{}))}loadImage(t){return Promise.resolve({data:t,loadState:"success"})}loadSvg(t){return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return wx.getSystemInfoSync().pixelRatio}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}mapToCanvasPoint(t){var e;return(null===(e=null==t?void 0:t.type)||void 0===e?void 0:e.startsWith("mouse"))?t:null}};En=m([e.injectable(),x("design:paramtypes",[])],En);let Rn=!1;const On=new e.ContainerModule((t=>{Rn||(Rn=!0,t(En).toSelf().inSingletonScope(),t(e.EnvContribution).toService(En))}));let Bn=!1;function An(t,e=!0){Bn||(Bn=!0,t.load(On),t.load(wn),t.load(Tn),e&&We(t))}function In(t){Ln(t)}let Dn=!1;function Ln(t){Dn||(Dn=!0,Ee(t,!1),Ve(t,!1),tn(t,!1),un(t,!1),Cn(t,!1),An(t,!1),ye(t),e.vglobal.hooks.onSetEnv.tap("loadMathPicker",((e,n)=>{"browser"!==n&&We(t)})))}let _n=class{constructor(t){this.canvasRenderer=t,this.type="arc",this.numberType=e.ARC_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).arc;r.highPerformanceSave();let{x:s=a.x,y:o=a.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,i,a)=>{if(l)return!0;const s=i.lineWidth||a.lineWidth,o=i.pickStrokeBuffer||a.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,s+o,r.dpr),l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};_n=m([e.injectable(),y(0,e.inject(e.ArcRender)),x("design:paramtypes",[Object])],_n);let jn=!1;const Wn=new e.ContainerModule(((t,e,n,i)=>{jn||(jn=!0,t(Jt).to(_n).inSingletonScope(),t(de).toService(Jt))}));let Fn=class{constructor(t){this.canvasRenderer=t,this.type="arc",this.numberType=e.ARC_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).arc;r.highPerformanceSave();let{x:s=a.x,y:o=a.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};Fn=m([e.injectable(),y(0,e.inject(e.ArcRender)),x("design:paramtypes",[Object])],Fn);let Gn=!1;const zn=new e.ContainerModule(((t,e,n,i)=>{Gn||(Gn=!0,t(Ft).to(Fn).inSingletonScope(),t(Wt).toService(Ft))})),Yn=new n.AABBBounds;let Vn=class{constructor(t){this.canvasRenderer=t,this.type="rect",this.numberType=e.RECT_NUMBER_TYPE}contains(t,i,r){if(!t.AABBBounds.containsPoint(i))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:a}=null!=r?r:{};if(!a)return!1;const s=e.getTheme(t).rect,{cornerRadius:o=s.cornerRadius}=t.attribute;let{x:l=s.x,y:c=s.y}=t.attribute;a.highPerformanceSave();let h=!0;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(s);l+=e.x,c+=e.y,a.setTransformForCurrent()}else l=0,c=0,h=!1,a.transformFromMatrix(t.transMatrix,!0);let u=!0;if(!h||t.shadowRoot||n.isNumber(o,!0)&&0!==o||n.isArray(o)&&o.some((t=>0!==t)))u=!1,this.canvasRenderer.drawShape(t,a,l,c,{},null,((t,e,n)=>!!u||(u=t.isPointInPath(i.x,i.y),u)),((t,n,r)=>{if(u)return!0;const s=n.lineWidth||r.lineWidth,o=n.pickStrokeBuffer||r.pickStrokeBuffer;return a.lineWidth=e.getScaledStroke(a,s+o,a.dpr),u=t.isPointInStroke(i.x,i.y),u}));else{const{fill:e=s.fill,stroke:n=s.stroke,lineWidth:r=s.lineWidth}=t.attribute;if(e)u=!0;else if(n){const e=t.AABBBounds;Yn.setValue(e.x1,e.y1,e.x2,e.y2),Yn.expand(-r/2),u=!Yn.containsPoint(i)}}return a.highPerformanceRestore(),u}};Vn=m([e.injectable(),y(0,e.inject(e.RectRender)),x("design:paramtypes",[Object])],Vn);let Nn=!1;const Hn=new e.ContainerModule(((t,e,n,i)=>{Nn||(Nn=!0,t(ie).to(Vn).inSingletonScope(),t(de).toService(ie))})),Un=new n.AABBBounds;let Xn=class{constructor(t){this.canvasRenderer=t,this.type="rect",this.numberType=e.RECT_NUMBER_TYPE}contains(t,i,r){if(!t.AABBBounds.containsPoint(i))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:a}=null!=r?r:{};if(!a)return!1;const s=e.getTheme(t).rect,{cornerRadius:o=s.cornerRadius}=t.attribute;let{x:l=s.x,y:c=s.y}=t.attribute;a.highPerformanceSave();let h=!0;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(s);l+=e.x,c+=e.y,a.setTransformForCurrent()}else l=0,c=0,h=!1,a.transformFromMatrix(t.transMatrix,!0);let u=!0;if(!h||n.isNumber(o,!0)&&0!==o||n.isArray(o)&&o.some((t=>0!==t)))u=!1,this.canvasRenderer.drawShape(t,a,l,c,{},null,((t,e,n)=>!!u||(u=t.isPointInPath(i.x,i.y),u)),((t,e,n)=>{if(u)return!0;const r=e.lineWidth||n.lineWidth,s=e.pickStrokeBuffer||n.pickStrokeBuffer;return a.lineWidth=r+s,u=t.isPointInStroke(i.x,i.y),u}));else if(u){const{fill:e=s.fill,stroke:n=s.stroke,lineWidth:r=s.lineWidth}=t.attribute;if(e)u=!0;else if(n){const e=t.AABBBounds;Un.setValue(e.x1,e.y1,e.x2,e.y2),Un.expand(-r/2),u=!Un.containsPoint(i)}}return a.highPerformanceRestore(),u}};Xn=m([e.injectable(),y(0,e.inject(e.RectRender)),x("design:paramtypes",[Object])],Xn);let qn=!1;const $n=new e.ContainerModule(((t,e,n,i)=>{qn||(qn=!0,t(Ht).to(Xn).inSingletonScope(),t(Wt).toService(Ht))}));let Jn=class extends e.BaseRender{};Jn=m([e.injectable()],Jn);let Qn=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="line",this.numberType=e.LINE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;r.highPerformanceSave();const a=e.getTheme(t).line,s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,{},null,(t=>!!d||(d=t.isPointInPath(u.x,u.y),d)),((t,n,i)=>{if(d)return!0;const a=n.lineWidth||i.lineWidth,s=n.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,a+s,r.dpr),d=t.isPointInStroke(u.x,u.y),d})),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};Qn=m([e.injectable(),y(0,e.inject(e.LineRender)),x("design:paramtypes",[Object])],Qn);let Zn=!1;const Kn=new e.ContainerModule(((t,e,n,i)=>{Zn||(Zn=!0,t(ee).to(Qn).inSingletonScope(),t(de).toService(ee))}));let ti=class{constructor(t){this.canvasRenderer=t,this.type="line",this.numberType=e.LINE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).line;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,(t=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};ti=m([e.injectable(),y(0,e.inject(e.LineRender)),x("design:paramtypes",[Object])],ti);let ei=!1;const ni=new e.ContainerModule(((t,e,n,i)=>{ei||(ei=!0,t(Vt).to(ti).inSingletonScope(),t(Wt).toService(Vt))}));let ii=class{constructor(t){this.canvasRenderer=t,this.type="area",this.numberType=e.AREA_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).area;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,(t=>!!l||(l=t.isPointInPath(n.x,n.y),l))),r.highPerformanceRestore(),l}};ii=m([e.injectable(),y(0,e.inject(e.AreaRender)),x("design:paramtypes",[Object])],ii);let ri=!1;const ai=new e.ContainerModule(((t,e,n,i)=>{ri||(ri=!0,t(Zt).to(ii).inSingletonScope(),t(de).toService(Zt))}));let si=class{constructor(t){this.canvasRenderer=t,this.type="area",this.numberType=e.AREA_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).area;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,(t=>!!l||(l=t.isPointInPath(n.x,n.y),l))),r.highPerformanceRestore(),l}};si=m([e.injectable(),y(0,e.inject(e.AreaRender)),x("design:paramtypes",[Object])],si);let oi=!1;const li=new e.ContainerModule(((t,e,n,i)=>{oi||(oi=!0,t(Gt).to(si).inSingletonScope(),t(Wt).toService(Gt))}));let ci=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="symbol",this.numberType=e.SYMBOL_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=t.getParsedPath();if(!r.camera){if(!t.AABBBounds.containsPoint(n))return!1;if(a.isSvg||"imprecise"===t.attribute.pickMode)return!0}r.highPerformanceSave();const s=e.getTheme(t).symbol,o=this.transform(t,s,r),{x:l,y:c,z:h,lastModelMatrix:u}=o;let d=n;if(r.camera){d=n.clone();const e=t.parent.globalTransMatrix;d.x=e.a*n.x+e.c*n.y+e.e,d.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=h;let f=!1;return this.canvasRenderer.drawShape(t,r,l,c,{},null,((t,e,n)=>!!f||(f=t.isPointInPath(d.x,d.y),f)),((t,n,i)=>{if(f)return!0;const a=n.lineWidth||i.lineWidth,s=n.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,a+s,r.dpr),f=t.isPointInStroke(d.x,d.y),f})),this.canvasRenderer.z=0,r.modelMatrix!==u&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=u,r.highPerformanceRestore(),f}};ci=m([e.injectable(),y(0,e.inject(e.SymbolRender)),x("design:paramtypes",[Object])],ci);let hi=!1;const ui=new e.ContainerModule(((t,e,n,i)=>{hi||(hi=!0,t(ae).to(ci).inSingletonScope(),t(de).toService(ae))}));let di=class{constructor(t){this.canvasRenderer=t,this.type="symbol",this.numberType=e.SYMBOL_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).symbol;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};di=m([e.injectable(),y(0,e.inject(e.SymbolRender)),x("design:paramtypes",[Object])],di);let fi=!1;const pi=new e.ContainerModule(((t,e,n,i)=>{fi||(fi=!0,t(Ut).to(di).inSingletonScope(),t(Wt).toService(Ut))}));let vi=class{constructor(t){this.canvasRenderer=t,this.type="circle",this.numberType=e.CIRCLE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).circle;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,i,a)=>{if(l)return!0;const s=i.lineWidth||a.lineWidth,o=i.pickStrokeBuffer||a.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,s+o,r.dpr),l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};vi=m([e.injectable(),y(0,e.inject(e.CircleRender)),x("design:paramtypes",[Object])],vi);let gi=!1;const mi=new e.ContainerModule(((t,e,n,i)=>{gi||(gi=!0,t(Kt).to(vi).inSingletonScope(),t(de).toService(Kt))}));let yi=class{constructor(t){this.canvasRenderer=t,this.type="circle",this.numberType=e.CIRCLE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).circle;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};yi=m([e.injectable(),y(0,e.inject(e.CircleRender)),x("design:paramtypes",[Object])],yi);let xi=!1;const bi=new e.ContainerModule(((t,e,n,i)=>{xi||(xi=!0,t(zt).to(yi).inSingletonScope(),t(Wt).toService(zt))}));let Ci=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="text",this.numberType=e.TEXT_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=t.AABBBounds;if(!r.camera)return!!a.containsPoint(n);r.highPerformanceSave();const s=e.getTheme(t).text,{keepDirIn3d:o=s.keepDirIn3d}=t.attribute,l=!o,c=this.transform(t,s,r,l),{x:h,y:u,z:d,lastModelMatrix:f}=c;this.canvasRenderer.z=d;let p=n;if(r.camera){p=n.clone();const e=t.parent.globalTransMatrix;p.x=e.a*n.x+e.c*n.y+e.e,p.y=e.b*n.x+e.d*n.y+e.f}let v=!1;return this.canvasRenderer.drawShape(t,r,h,u,{},null,((n,i,r)=>{if(v)return!0;const{fontSize:a=s.fontSize,textBaseline:o=s.textBaseline,textAlign:l=s.textAlign}=t.attribute,c=t.AABBBounds,f=c.height(),g=c.width(),m=e.textLayoutOffsetY(o,f,a),y=e.textDrawOffsetX(l,g);return n.rect(y+h,m+u,g,f,d),v=n.isPointInPath(p.x,p.y),v}),((t,e,n)=>v)),this.canvasRenderer.z=0,r.modelMatrix!==f&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=f,r.highPerformanceRestore(),v}};Ci=m([e.injectable(),y(0,e.inject(e.TextRender)),x("design:paramtypes",[Object])],Ci);let Si=!1;const Mi=new e.ContainerModule(((t,e,n,i)=>{Si||(Si=!0,t(se).to(Ci).inSingletonScope(),t(de).toService(se))}));let wi=class{constructor(){this.type="text",this.numberType=e.TEXT_NUMBER_TYPE}contains(t,e,n){return!!t.AABBBounds.containsPoint(e)}};wi=m([e.injectable()],wi);let ki=!1;const Pi=new e.ContainerModule(((t,e,n,i)=>{ki||(ki=!0,t(Xt).to(wi).inSingletonScope(),t(Wt).toService(Xt))}));let Ti=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="path",this.numberType=e.PATH_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).path;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,{},null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d)),((t,n,i)=>{if(d)return!0;const a=n.lineWidth||i.lineWidth,s=n.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,a+s,r.dpr),d=t.isPointInStroke(u.x,u.y),d})),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};Ti=m([e.injectable(),y(0,e.inject(e.PathRender)),x("design:paramtypes",[Object])],Ti);let Ei=!1;const Ri=new e.ContainerModule(((t,e,n,i)=>{Ei||(Ei=!0,t(ne).to(Ti).inSingletonScope(),t(de).toService(ne))}));let Oi=class{constructor(t){this.canvasRenderer=t,this.type="path",this.numberType=e.PATH_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).path;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};Oi=m([e.injectable(),y(0,e.inject(e.PathRender)),x("design:paramtypes",[Object])],Oi);let Bi=!1;const Ai=new e.ContainerModule(((t,e,n,i)=>{Bi||(Bi=!0,t(Nt).to(Oi).inSingletonScope(),t(Wt).toService(Nt))}));let Ii=class{constructor(t){this.canvasRenderer=t,this.type="polygon",this.numberType=e.POLYGON_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.contains(n.x,n.y))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).polygon;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,i,a)=>{if(l)return!0;const s=i.lineWidth||a.lineWidth,o=i.pickStrokeBuffer||a.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,s+o,r.dpr),l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};Ii=m([e.injectable(),y(0,e.inject(e.PolygonRender)),x("design:paramtypes",[Object])],Ii);let Di=!1;const Li=new e.ContainerModule(((t,e,n,i)=>{Di||(Di=!0,t(oe).to(Ii).inSingletonScope(),t(de).toService(oe))}));let _i=class{constructor(t){this.canvasRenderer=t,this.type="polygon",this.numberType=e.POLYGON_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.contains(n.x,n.y))return!1;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).polygon;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};_i=m([e.injectable(),y(0,e.inject(e.PolygonRender)),x("design:paramtypes",[Object])],_i);let ji=!1;const Wi=new e.ContainerModule(((t,e,n,i)=>{ji||(ji=!0,t(qt).to(_i).inSingletonScope(),t(Wt).toService(qt))}));let Fi=class{constructor(t){this.canvasRenderer=t,this.type="glyph",this.numberType=e.GLYPH_NUMBER_TYPE}contains(t,e,n){if(!t.AABBBounds.containsPoint(e))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:i}=null!=n?n:{};if(!i)return!1;const r=null==n?void 0:n.pickerService;if(r){let i=!1;return t.getSubGraphic().forEach((t=>{if(i)return;const a=r.pickItem(t,e,null,n);i=!(!a||!a.graphic)})),i}return!1}};Fi=m([e.injectable(),y(0,e.inject(e.GlyphRender)),x("design:paramtypes",[Object])],Fi);let Gi=!1;const zi=new e.ContainerModule(((t,e,n,i)=>{Gi||(Gi=!0,t(he).to(Fi).inSingletonScope(),t(de).toService(he))}));let Yi=class{constructor(t){this.canvasRenderer=t,this.type="glyph",this.numberType=e.GLYPH_NUMBER_TYPE}contains(t,e,n){if(!t.AABBBounds.containsPoint(e))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:i}=null!=n?n:{};if(!i)return!1;const r=null==n?void 0:n.pickerService;if(r){let i=!1;return t.getSubGraphic().forEach((t=>{i||(i=!!r.pickItem(t,e,null,n))})),i}return!1}};Yi=m([e.injectable(),y(0,e.inject(e.GlyphRender)),x("design:paramtypes",[Object])],Yi);let Vi=!1;const Ni=new e.ContainerModule(((t,e,n,i)=>{Vi||(Vi=!0,t($t).to(Yi).inSingletonScope(),t(Yi).toService($t))}));let Hi=class{constructor(t){this.canvasRenderer=t,this.type="richtext",this.numberType=e.RICHTEXT_NUMBER_TYPE}contains(t,e,n){return!!t.AABBBounds.containsPoint(e)}};Hi=m([e.injectable(),y(0,e.inject(e.RichTextRender)),x("design:paramtypes",[Object])],Hi);let Ui=!1;const Xi=new e.ContainerModule(((t,e,n,i)=>{Ui||(Ui=!0,t(ce).to(Hi).inSingletonScope(),t(de).toService(ce))}));let qi=class{constructor(){this.type="image",this.numberType=e.IMAGE_NUMBER_TYPE}contains(t,e,n){const{pickContext:i}=null!=n?n:{};return!!i&&!!t.AABBBounds.containsPoint(e)}};qi=m([e.injectable()],qi);let $i=!1;const Ji=new e.ContainerModule(((t,e,n,i)=>{$i||($i=!0,t(Yt).to(qi).inSingletonScope(),t(qi).toService(Yt))}));let Qi=class{constructor(){this.type="image",this.numberType=e.IMAGE_NUMBER_TYPE}contains(t,e,n){const{pickContext:i}=null!=n?n:{};return!!i&&!!t.AABBBounds.containsPoint(e)}};Qi=m([e.injectable()],Qi);let Zi=!1;const Ki=new e.ContainerModule(((t,e,n,i)=>{Zi||(Zi=!0,t(te).to(Qi).inSingletonScope(),t(de).toService(te))}));let tr=!1;const er=new e.ContainerModule(((t,e,n,i)=>{tr||(tr=!0,t(Yt).to(qi).inSingletonScope(),t(qi).toService(Yt))}));new n.AABBBounds;let nr=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="rect3d",this.numberType=e.RECT3D_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).rect;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,i,null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d))),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};nr=m([e.injectable(),y(0,e.inject(e.Rect3DRender)),x("design:paramtypes",[Object])],nr);let ir=!1;const rr=new e.ContainerModule(((t,e,n,i)=>{ir||(ir=!0,t(re).to(nr).inSingletonScope(),t(de).toService(re))}));let ar=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="arc3d",this.numberType=e.ARC3D_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).arc;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,i,null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d))),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};ar=m([e.injectable(),y(0,e.inject(e.Arc3dRender)),x("design:paramtypes",[Object])],ar);let sr=!1;const or=new e.ContainerModule(((t,e,n,i)=>{sr||(sr=!0,t(Qt).to(ar).inSingletonScope(),t(de).toService(Qt))}));let lr=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="pyramid3d",this.numberType=e.PYRAMID3D_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).polygon;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,{},null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d)),((t,e,n)=>!1)),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};lr=m([e.injectable(),y(0,e.inject(e.Pyramid3dRender)),x("design:paramtypes",[Object])],lr);let cr=!1;const hr=new e.ContainerModule(((t,e,n,i)=>{cr||(cr=!0,t(le).to(lr).inSingletonScope(),t(de).toService(le))})),ur=e.isBrowserEnv();let dr=!1;let fr=!1;let pr=!1;let vr=!1;let gr=!1;let mr=!1;let yr=!1;let xr=!1;let br=!1;let Cr=!1;let Sr=!1;let Mr=!1;let wr=!1;let kr=!1;let Pr=!1;let Tr=!1;let Er=!1;let Rr=!1;const Or=Mt;t.DragNDrop=class{constructor(t){this.onPointerDown=t=>{const e=t.target,n=this.rootNode,i=e===n;if(e&&!i){let r,a=!1;function s(t){if(a||(t.type="dragstart",null==e||e.dispatchEvent(t),a=!0),t.type="drag",null==e||e.dispatchEvent(t),!i){e.pickable=!1;const i=(null==n?void 0:n.pick(t.global.x,t.global.y)).graphic;e.pickable=!0,r!==i&&(r&&(t.type="dragleave",t.target=r,r.dispatchEvent(t)),i&&(t.type="dragenter",t.target=i,i.dispatchEvent(t)),r=i,r&&(t.type="dragover",t.target=r,r.dispatchEvent(t)))}}null==n||n.addEventListener("pointermove",s);const o=function(){a&&(r&&(t.type="drop",t.target=r,r.dispatchEvent(t)),t.type="dragend",e.dispatchEvent(t),a=!1),null==n||n.removeEventListener("pointermove",s)};e.addEventListener("pointerup",o,{once:!0}),e.addEventListener("pointerupoutside",o,{once:!0})}},this.rootNode=t,this.initEvents()}initEvents(){var t;null===(t=this.rootNode)||void 0===t||t.addEventListener("pointerdown",this.onPointerDown)}removeEvents(){var t;null===(t=this.rootNode)||void 0===t||t.removeEventListener("pointerdown",this.onPointerDown)}release(){this.removeEvents(),this.rootNode=null}},t.Fragment=Et,t.Gesture=Bt,t.REACT_TO_CANOPUS_EVENTS=wt,t.REACT_TO_CANOPUS_EVENTS_LIST=kt,t.VArc=function(t){return e.graphicCreator.arc(t?t.attribute:{})},t.VArc3d=function(t){return e.graphicCreator.arc3d(t?t.attribute:{})},t.VArea=function(t){return e.graphicCreator.area(t?t.attribute:{})},t.VCircle=function(t){return e.graphicCreator.circle(t?t.attribute:{})},t.VGlyph=function(t){return e.graphicCreator.glyph(t?t.attribute:{})},t.VGroup=function(t){return e.graphicCreator.group(t?t.attribute:{})},t.VImage=function(t){return e.graphicCreator.image(t?t.attribute:{})},t.VLine=function(t){return e.graphicCreator.line(t?t.attribute:{})},t.VPath=function(t){return e.graphicCreator.path(t?t.attribute:{})},t.VPolygon=function(t){return e.graphicCreator.polygon(t?t.attribute:{})},t.VPyramid3d=function(t){return e.graphicCreator.pyramid3d(t?t.attribute:{})},t.VRect=function(t){return e.graphicCreator.rect(t?t.attribute:{})},t.VRect3d=function(t){return e.graphicCreator.rect3d(t?t.attribute:{})},t.VRichText=Pt,t.VSymbol=function(t){return e.graphicCreator.symbol(t?t.attribute:{})},t.VText=function(t){return e.graphicCreator.text(t?t.attribute:{})},t.arc3dCanvasPickModule=or,t.arcCanvasPickModule=Wn,t.arcMathPickModule=zn,t.areaCanvasPickModule=ai,t.areaMathPickModule=li,t.browserEnvModule=Pe,t.circleCanvasPickModule=mi,t.circleMathPickModule=bi,t.feishuEnvModule=ze,t.glyphCanvasPickModule=zi,t.glyphMathPickModule=Ni,t.imageCanvasPickModule=Ki,t.imageMathPickModule=er,t.initAllEnv=function(){In(e.container)},t.initBrowserEnv=function(){Ee(e.container)},t.initFeishuEnv=function(){Ve(e.container)},t.initLynxEnv=function(){tn(e.container)},t.initNodeEnv=function(){un(e.container)},t.initTaroEnv=function(){Cn(e.container)},t.initWxEnv=function(){An(e.container)},t.jsx=function(t,i,...r){const a=i||{},{key:s,attribute:o,stateProxy:l}=a,c=function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}(a,["key","attribute","stateProxy"]);let h=t;n.isString(t)&&(h=e.graphicCreator[t]);const u=[];r.length&&Tt(1===r.length?r[0]:r,u);const d="Group"===h.name?new h(o):h(i);return function(t,e,n){let i,r=!1;switch(t.type){case"richtext":case"rich/image":break;case"rich/text":i=t.attribute||{},e[0]&&(i.text=e[0]);break;default:r=!0}r?(e.forEach((e=>{e&&t.add(e)})),Object.keys(n).forEach((e=>{const i=wt[e];i&&t.on(i,n[e])}))):"richtext"===t.type&&(t.attribute.textConfig=e.map((t=>t.attribute)).filter((t=>t)))}(d,u,c),l&&(d.stateProxy=l),d},t.lineCanvasPickModule=Kn,t.lineMathPickModule=ni,t.loadAllEnv=In,t.loadAllModule=Ln,t.loadBrowserEnv=Ee,t.loadFeishuEnv=Ve,t.loadLynxEnv=tn,t.loadNodeEnv=un,t.loadTaroEnv=Cn,t.loadWxEnv=An,t.lynxEnvModule=Ze,t.nodeEnvModule=cn,t.pathCanvasPickModule=Ri,t.pathMathPickModule=Ai,t.polygonCanvasPickModule=Li,t.polygonMathPickModule=Wi,t.pyramid3dCanvasPickModule=hr,t.rect3dCanvasPickModule=rr,t.rectCanvasPickModule=Hn,t.rectMathPickModule=$n,t.registerArc=function(){dr||(dr=!0,e.registerArcGraphic(),e.container.load(e.arcModule),e.container.load(ur?Wn:zn))},t.registerArc3d=function(){fr||(fr=!0,e.registerArc3dGraphic(),e.container.load(e.arc3dModule),e.container.load(or))},t.registerArea=function(){pr||(pr=!0,e.registerAreaGraphic(),e.container.load(e.areaModule),e.container.load(ur?ai:li))},t.registerCircle=function(){vr||(vr=!0,e.registerCircleGraphic(),e.container.load(e.circleModule),e.container.load(ur?mi:bi))},t.registerGlyph=function(){gr||(gr=!0,e.registerGlyphGraphic(),e.container.load(e.glyphModule),e.container.load(ur?zi:Ni))},t.registerGroup=function(){mr||(mr=!0,e.registerGroupGraphic())},t.registerImage=function(){yr||(yr=!0,e.registerImageGraphic(),e.container.load(e.imageModule),e.container.load(ur?Ki:er))},t.registerLine=function(){xr||(xr=!0,e.registerLineGraphic(),e.container.load(e.lineModule),e.container.load(ur?Kn:ni))},t.registerPath=function(){br||(br=!0,e.registerPathGraphic(),e.container.load(e.pathModule),e.container.load(ur?Ri:Ai))},t.registerPolygon=function(){Cr||(Cr=!0,e.registerPolygonGraphic(),e.container.load(e.polygonModule),e.container.load(ur?Li:Wi))},t.registerPyramid3d=function(){Sr||(Sr=!0,e.registerPyramid3dGraphic(),e.container.load(e.pyramid3dModule),e.container.load(hr))},t.registerRect=function(){Mr||(Mr=!0,e.registerRectGraphic(),e.container.load(e.rectModule),e.container.load(ur?Hn:$n))},t.registerRect3d=function(){wr||(wr=!0,e.registerRect3dGraphic(),e.container.load(e.rect3dModule),e.container.load(rr))},t.registerRichtext=function(){kr||(kr=!0,e.registerRichtextGraphic(),e.container.load(e.richtextModule),e.container.load(ur?Xi:Ji))},t.registerShadowRoot=function(){Pr||(Pr=!0,e.registerShadowRootGraphic())},t.registerSymbol=function(){Tr||(Tr=!0,e.registerSymbolGraphic(),e.container.load(e.symbolModule),e.container.load(ur?ui:pi))},t.registerText=function(){Er||(Er=!0,e.registerTextGraphic(),e.container.load(e.textModule),e.container.load(ur?Mi:Pi))},t.registerWrapText=function(){Rr||(Rr=!0,e.registerWrapTextGraphic())},t.richTextMathPickModule=Ji,t.richtextCanvasPickModule=Xi,t.roughModule=Or,t.symbolCanvasPickModule=ui,t.symbolMathPickModule=pi,t.taroEnvModule=xn,t.textCanvasPickModule=Mi,t.textMathPickModule=Pi,t.wxEnvModule=On}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@visactor/vrender-core"),require("@visactor/vutils")):"function"==typeof define&&define.amd?define(["exports","@visactor/vrender-core","@visactor/vutils"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).VRender=t.VRender||{},t.VRender.Kits={}),t.VRenderCore,t.VUtils)}(this,(function(t,e,n){"use strict";function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,(r=i.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(r,"string"))?a:String(a)),i)}var r,a}function s(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&c(t,e)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function h(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,i=l(t);if(e){var r=l(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return h(this,n)}}function d(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,r,a,s,o=[],l=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=a.call(n)).done)&&(o.push(i.value),o.length!==e);l=!0);}catch(t){c=!0,r=t}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t){return function(t){if(Array.isArray(t))return v(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(t,e){if(t){if("string"==typeof t)return v(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(t,e):void 0}}function v(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function g(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=p(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){o=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw a}}}}function m(t,e,n,r){var a,s=arguments.length,o=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"===("undefined"==typeof Reflect?"undefined":i(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,r);else for(var l=t.length-1;l>=0;l--)(a=t[l])&&(o=(s<3?a(o):s>3?a(e,n,o):a(e,n))||o);return s>3&&o&&Object.defineProperty(e,n,o),o}function y(t,e){return function(n,i){e(n,i,t)}}function x(t,e){if("object"===("undefined"==typeof Reflect?"undefined":i(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function b(t,e,n,i){return new(n||(n=Promise))((function(r,a){function s(t){try{l(i.next(t))}catch(t){a(t)}}function o(t){try{l(i.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}l((i=i.apply(t,e||[])).next())}))}function C(t,e,n){if(t&&t.length){var i=d(e,2),r=i[0],a=i[1],s=Math.PI/180*n,o=Math.cos(s),l=Math.sin(s);t.forEach((function(t){var e=d(t,2),n=e[0],i=e[1];t[0]=(n-r)*o-(i-a)*l+r,t[1]=(n-r)*l+(i-a)*o+a}))}}function S(t){var e=t[0],n=t[1];return Math.sqrt(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2))}function M(t,e){var n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);var r=[0,0];if(n){var a,s=g(t);try{for(s.s();!(a=s.n()).done;){C(a.value,r,n)}}catch(t){s.e(t)}finally{s.f()}}var o=function(t,e){var n,i=[],r=g(t);try{for(r.s();!(n=r.n()).done;){var a=f(n.value);a[0].join(",")!==a[a.length-1].join(",")&&a.push([a[0][0],a[0][1]]),a.length>2&&i.push(a)}}catch(t){r.e(t)}finally{r.f()}var s=[];e=Math.max(e,.1);for(var o=[],l=0,c=i;l<c.length;l++)for(var h=c[l],u=0;u<h.length-1;u++){var d=h[u],p=h[u+1];if(d[1]!==p[1]){var v=Math.min(d[1],p[1]);o.push({ymin:v,ymax:Math.max(d[1],p[1]),x:v===d[1]?d[0]:p[0],islope:(p[0]-d[0])/(p[1]-d[1])})}}if(o.sort((function(t,e){return t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)})),!o.length)return s;for(var m=[],y=o[0].ymin;m.length||o.length;){if(o.length){for(var x=-1,b=0;b<o.length&&!(o[b].ymin>y);b++)x=b;o.splice(0,x+1).forEach((function(t){m.push({s:y,edge:t})}))}if(m=m.filter((function(t){return!(t.edge.ymax<=y)})),m.sort((function(t,e){return t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)})),m.length>1)for(var C=0;C<m.length;C+=2){var S=C+1;if(S>=m.length)break;var M=m[C].edge,w=m[S].edge;s.push([[Math.round(M.x),y],[Math.round(w.x),y]])}y+=e,m.forEach((function(t){t.edge.x=t.edge.x+e*t.edge.islope}))}return s}(t,i);if(n){var l,c=g(t);try{for(c.s();!(l=c.n()).done;){C(l.value,r,-n)}}catch(t){c.e(t)}finally{c.f()}!function(t,e,n){var i=[];t.forEach((function(t){return i.push.apply(i,f(t))})),C(i,e,n)}(o,r,-n)}return o}"function"==typeof SuppressedError&&SuppressedError;var w=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){return this._fillPolygons(t,e)}},{key:"_fillPolygons",value:function(t,e){var n=M(t,e);return{type:"fillSketch",ops:this.renderLines(n,e)}}},{key:"renderLines",value:function(t,e){var n,i=[],r=g(t);try{for(r.s();!(n=r.n()).done;){var a=n.value;i.push.apply(i,f(this.helper.doubleLineOps(a[0][0],a[0][1],a[1][0],a[1][1],e)))}}catch(t){r.e(t)}finally{r.f()}return i}}]),t}(),k=function(t){o(n,t);var e=u(n);function n(){return r(this,n),e.apply(this,arguments)}return s(n,[{key:"fillPolygons",value:function(t,e){var n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1);var i,r=M(t,Object.assign({},e,{hachureGap:n})),a=Math.PI/180*e.hachureAngle,s=[],o=.5*n*Math.cos(a),l=.5*n*Math.sin(a),c=g(r);try{for(c.s();!(i=c.n()).done;){var h=d(i.value,2),u=h[0],p=h[1];S([u,p])&&s.push([[u[0]-o,u[1]+l],f(p)],[[u[0]+o,u[1]-l],f(p)])}}catch(t){c.e(t)}finally{c.f()}return{type:"fillSketch",ops:this.renderLines(s,e)}}}]),n}(w),P=function(t){o(n,t);var e=u(n);function n(){return r(this,n),e.apply(this,arguments)}return s(n,[{key:"fillPolygons",value:function(t,e){var n=this._fillPolygons(t,e),i=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),r=this._fillPolygons(t,i);return n.ops=n.ops.concat(r.ops),n}}]),n}(w),T=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){var n=M(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(n,e)}},{key:"dotsOnLines",value:function(t,e){var n=[],i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);var r=e.fillWeight;r<0&&(r=e.strokeWidth/2);var a,s=i/4,o=g(t);try{for(o.s();!(a=o.n()).done;)for(var l=a.value,c=S(l),h=c/i,u=Math.ceil(h)-1,d=c-u*i,p=(l[0][0]+l[1][0])/2-i/4,v=Math.min(l[0][1],l[1][1]),m=0;m<u;m++){var y=v+d+m*i,x=p-s+2*Math.random()*s,b=y-s+2*Math.random()*s,C=this.helper.ellipse(x,b,r,r,e);n.push.apply(n,f(C.ops))}}catch(t){o.e(t)}finally{o.f()}return{type:"fillSketch",ops:n}}}]),t}(),E=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){var n=M(t,e);return{type:"fillSketch",ops:this.dashedLine(n,e)}}},{key:"dashedLine",value:function(t,e){var n=this,i=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,r=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,a=[];return t.forEach((function(t){var s=S(t),o=Math.floor(s/(i+r)),l=(s+r-o*(i+r))/2,c=t[0],h=t[1];c[0]>h[0]&&(c=t[1],h=t[0]);for(var u=Math.atan((h[1]-c[1])/(h[0]-c[0])),d=0;d<o;d++){var p=d*(i+r),v=p+i,g=[c[0]+p*Math.cos(u)+l*Math.cos(u),c[1]+p*Math.sin(u)+l*Math.sin(u)],m=[c[0]+v*Math.cos(u)+l*Math.cos(u),c[1]+v*Math.sin(u)+l*Math.sin(u)];a.push.apply(a,f(n.helper.doubleLineOps(g[0],g[1],m[0],m[1],e)))}})),a}}]),t}(),R=function(){function t(e){r(this,t),this.helper=e}return s(t,[{key:"fillPolygons",value:function(t,e){var n=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,i=e.zigzagOffset<0?n:e.zigzagOffset,r=M(t,e=Object.assign({},e,{hachureGap:n+i}));return{type:"fillSketch",ops:this.zigzagLines(r,i,e)}}},{key:"zigzagLines",value:function(t,e,n){var i=this,r=[];return t.forEach((function(t){var a=S(t),s=Math.round(a/(2*e)),o=t[0],l=t[1];o[0]>l[0]&&(o=t[1],l=t[0]);for(var c=Math.atan((l[1]-o[1])/(l[0]-o[0])),h=0;h<s;h++){var u=2*h*e,d=2*(h+1)*e,p=Math.sqrt(2*Math.pow(e,2)),v=[o[0]+u*Math.cos(c),o[1]+u*Math.sin(c)],g=[o[0]+d*Math.cos(c),o[1]+d*Math.sin(c)],m=[v[0]+p*Math.cos(c+Math.PI/4),v[1]+p*Math.sin(c+Math.PI/4)];r.push.apply(r,f(i.helper.doubleLineOps(v[0],v[1],m[0],m[1],n)).concat(f(i.helper.doubleLineOps(m[0],m[1],g[0],g[1],n))))}})),r}}]),t}(),O={},B=function(){function t(e){r(this,t),this.seed=e}return s(t,[{key:"next",value:function(){return this.seed?(Math.pow(2,31)-1&(this.seed=Math.imul(48271,this.seed)))/Math.pow(2,31):Math.random()}}]),t}(),A={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function I(t,e){return t.type===e}function D(t){for(var e=[],n=function(t){for(var e=new Array;""!==t;)if(t.match(/^([ \t\r\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:0,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:1,text:"".concat(parseFloat(RegExp.$1))},t=t.substr(RegExp.$1.length)}return e[e.length]={type:2,text:""},e}(t),i="BOD",r=0,a=n[r];!I(a,2);){var s=0,o=[];if("BOD"===i){if("M"!==a.text&&"m"!==a.text)return D("M0,0"+t);r++,s=A[a.text],i=a.text}else I(a,1)?s=A[i]:(r++,s=A[a.text],i=a.text);if(!(r+s<n.length))throw new Error("Path data ended short");for(var l=r;l<r+s;l++){var c=n[l];if(!I(c,1))throw new Error("Param not a number: "+i+","+c.text);o[o.length]=+c.text}if("number"!=typeof A[i])throw new Error("Bad segment: "+i);var h={key:i,data:o};e.push(h),a=n[r+=s],"M"===i&&(i="L"),"m"===i&&(i="l")}return e}function L(t){var e,n,i,r,a=0,s=0,o=0,l=0,c=[],h=g(t);try{for(h.s();!(r=h.n()).done;){var u=r.value,p=u.key,v=u.data;switch(p){case"M":c.push({key:"M",data:f(v)}),e=d(v,2),a=e[0],s=e[1],o=(n=d(v,2))[0],l=n[1];break;case"m":a+=v[0],s+=v[1],c.push({key:"M",data:[a,s]}),o=a,l=s;break;case"L":c.push({key:"L",data:f(v)}),i=d(v,2),a=i[0],s=i[1];break;case"l":a+=v[0],s+=v[1],c.push({key:"L",data:[a,s]});break;case"C":c.push({key:"C",data:f(v)}),a=v[4],s=v[5];break;case"c":var m=v.map((function(t,e){return e%2?t+s:t+a}));c.push({key:"C",data:m}),a=m[4],s=m[5];break;case"Q":c.push({key:"Q",data:f(v)}),a=v[2],s=v[3];break;case"q":var y=v.map((function(t,e){return e%2?t+s:t+a}));c.push({key:"Q",data:y}),a=y[2],s=y[3];break;case"A":c.push({key:"A",data:f(v)}),a=v[5],s=v[6];break;case"a":a+=v[5],s+=v[6],c.push({key:"A",data:[v[0],v[1],v[2],v[3],v[4],a,s]});break;case"H":c.push({key:"H",data:f(v)}),a=v[0];break;case"h":a+=v[0],c.push({key:"H",data:[a]});break;case"V":c.push({key:"V",data:f(v)}),s=v[0];break;case"v":s+=v[0],c.push({key:"V",data:[s]});break;case"S":c.push({key:"S",data:f(v)}),a=v[2],s=v[3];break;case"s":var x=v.map((function(t,e){return e%2?t+s:t+a}));c.push({key:"S",data:x}),a=x[2],s=x[3];break;case"T":c.push({key:"T",data:f(v)}),a=v[0],s=v[1];break;case"t":a+=v[0],s+=v[1],c.push({key:"T",data:[a,s]});break;case"Z":case"z":c.push({key:"Z",data:[]}),a=o,s=l}}}catch(t){h.e(t)}finally{h.f()}return c}function _(t){var e,n,i,r,a=[],s="",o=0,l=0,c=0,h=0,u=0,p=0,v=g(t);try{for(v.s();!(r=v.n()).done;){var m=r.value,y=m.key,x=m.data;switch(y){case"M":a.push({key:"M",data:f(x)}),o=(e=d(x,2))[0],l=e[1],c=(n=d(x,2))[0],h=n[1];break;case"C":a.push({key:"C",data:f(x)}),o=x[4],l=x[5],u=x[2],p=x[3];break;case"L":a.push({key:"L",data:f(x)}),o=(i=d(x,2))[0],l=i[1];break;case"H":o=x[0],a.push({key:"L",data:[o,l]});break;case"V":l=x[0],a.push({key:"L",data:[o,l]});break;case"S":var b=0,C=0;"C"===s||"S"===s?(b=o+(o-u),C=l+(l-p)):(b=o,C=l),a.push({key:"C",data:[b,C].concat(f(x))}),u=x[0],p=x[1],o=x[2],l=x[3];break;case"T":var S=d(x,2),M=S[0],w=S[1],k=0,P=0;"Q"===s||"T"===s?(k=o+(o-u),P=l+(l-p)):(k=o,P=l);var T=o+2*(k-o)/3,E=l+2*(P-l)/3,R=M+2*(k-M)/3,O=w+2*(P-w)/3;a.push({key:"C",data:[T,E,R,O,M,w]}),u=k,p=P,o=M,l=w;break;case"Q":var B=d(x,4),A=B[0],I=B[1],D=B[2],L=B[3],_=o+2*(A-o)/3,j=l+2*(I-l)/3,F=D+2*(A-D)/3,G=L+2*(I-L)/3;a.push({key:"C",data:[_,j,F,G,D,L]}),u=A,p=I,o=D,l=L;break;case"A":var z=Math.abs(x[0]),Y=Math.abs(x[1]),V=x[2],N=x[3],H=x[4],U=x[5],X=x[6];0===z||0===Y?(a.push({key:"C",data:[o,l,U,X,U,X]}),o=U,l=X):o===U&&l===X||(W(o,l,U,X,z,Y,V,N,H).forEach((function(t){a.push({key:"C",data:t})})),o=U,l=X);break;case"Z":a.push({key:"Z",data:[]}),o=c,l=h}s=y}}catch(t){v.e(t)}finally{v.f()}return a}function j(t,e,n){return[t*Math.cos(n)-e*Math.sin(n),t*Math.sin(n)+e*Math.cos(n)]}function W(t,e,n,i,r,a,s,o,l,c){var h,u=(h=s,Math.PI*h/180),f=[],p=0,v=0,g=0,m=0;if(c){var y=d(c,4);p=y[0],v=y[1],g=y[2],m=y[3]}else{var x,b;t=(x=d(j(t,e,-u),2))[0],e=x[1];var C=(t-(n=(b=d(j(n,i,-u),2))[0]))/2,S=(e-(i=b[1]))/2,M=C*C/(r*r)+S*S/(a*a);M>1&&(r*=M=Math.sqrt(M),a*=M);var w=r*r,k=a*a,P=w*k-w*S*S-k*C*C,T=w*S*S+k*C*C,E=(o===l?-1:1)*Math.sqrt(Math.abs(P/T));g=E*r*S/a+(t+n)/2,m=E*-a*C/r+(e+i)/2,p=Math.asin(parseFloat(((e-m)/a).toFixed(9))),v=Math.asin(parseFloat(((i-m)/a).toFixed(9))),t<g&&(p=Math.PI-p),n<g&&(v=Math.PI-v),p<0&&(p=2*Math.PI+p),v<0&&(v=2*Math.PI+v),l&&p>v&&(p-=2*Math.PI),!l&&v>p&&(v-=2*Math.PI)}var R=v-p;if(Math.abs(R)>120*Math.PI/180){var O=v,B=n,A=i;v=l&&v>p?p+120*Math.PI/180*1:p+120*Math.PI/180*-1,f=W(n=g+r*Math.cos(v),i=m+a*Math.sin(v),B,A,r,a,s,0,l,[v,O,g,m])}R=v-p;var I=Math.cos(p),D=Math.sin(p),L=Math.cos(v),_=Math.sin(v),F=Math.tan(R/4),G=4/3*r*F,z=4/3*a*F,Y=[t,e],V=[t+G*D,e-z*I],N=[n+G*_,i-z*L],H=[n,i];if(V[0]=2*Y[0]-V[0],V[1]=2*Y[1]-V[1],c)return[V,N,H].concat(f);f=[V,N,H].concat(f);for(var U=[],X=0;X<f.length;X+=3){var q=j(f[X][0],f[X][1],u),$=j(f[X+1][0],f[X+1][1],u),J=j(f[X+2][0],f[X+2][1],u);U.push([q[0],q[1],$[0],$[1],J[0],J[1]])}return U}var F={randOffset:function(t,e){return $(t,e)},randOffsetWithRange:function(t,e,n){return q(t,e,n)},ellipse:function(t,e,n,i,r){return V(t,e,r,Y(n,i,r)).opset},doubleLineOps:function(t,e,n,i,r){return J(t,e,n,i,r,!0)}};function G(t,e,n,i,r){return{type:"path",ops:J(t,e,n,i,r)}}function z(t,e,n){var i=(t||[]).length;if(i>2){for(var r=[],a=0;a<i-1;a++)r.push.apply(r,f(J(t[a][0],t[a][1],t[a+1][0],t[a+1][1],n)));return e&&r.push.apply(r,f(J(t[i-1][0],t[i-1][1],t[0][0],t[0][1],n))),{type:"path",ops:r}}return 2===i?G(t[0][0],t[0][1],t[1][0],t[1][1],n):{type:"path",ops:[]}}function Y(t,e,n){var i=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),r=Math.ceil(Math.max(n.curveStepCount,n.curveStepCount/Math.sqrt(200)*i)),a=2*Math.PI/r,s=Math.abs(t/2),o=Math.abs(e/2),l=1-n.curveFitting;return{increment:a,rx:s+=$(s*l,n),ry:o+=$(o*l,n)}}function V(t,e,n,i){var r=d(et(i.increment,t,e,i.rx,i.ry,1,i.increment*q(.1,q(.4,1,n),n),n),2),a=r[0],s=r[1],o=K(a,null,n);if(!n.disableMultiStroke&&0!==n.roughness){var l=K(d(et(i.increment,t,e,i.rx,i.ry,1.5,0,n),1)[0],null,n);o=o.concat(l)}return{estimatedPoints:s,opset:{type:"path",ops:o}}}function N(t,e,n,i,r,a,s,o,l){var c=t,h=e,u=Math.abs(n/2),d=Math.abs(i/2);u+=$(.01*u,l),d+=$(.01*d,l);for(var p=r,v=a;p<0;)p+=2*Math.PI,v+=2*Math.PI;v-p>2*Math.PI&&(p=0,v=2*Math.PI);var g=2*Math.PI/l.curveStepCount,m=Math.min(g/2,(v-p)/2),y=nt(m,c,h,u,d,p,v,1,l);if(!l.disableMultiStroke){var x=nt(m,c,h,u,d,p,v,1.5,l);y.push.apply(y,f(x))}return s&&(o?y.push.apply(y,f(J(c,h,c+u*Math.cos(p),h+d*Math.sin(p),l)).concat(f(J(c,h,c+u*Math.cos(v),h+d*Math.sin(v),l)))):y.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+u*Math.cos(p),h+d*Math.sin(p)]})),{type:"path",ops:y}}function H(t,e){var n,i=[],r=g(t);try{for(r.s();!(n=r.n()).done;){var a=n.value;if(a.length){var s=e.maxRandomnessOffset||0,o=a.length;if(o>2){i.push({op:"move",data:[a[0][0]+$(s,e),a[0][1]+$(s,e)]});for(var l=1;l<o;l++)i.push({op:"lineTo",data:[a[l][0]+$(s,e),a[l][1]+$(s,e)]})}}}}catch(t){r.e(t)}finally{r.f()}return{type:"fillPath",ops:i}}function U(t,e){return function(t,e){var n=t.fillStyle||"hachure";if(!O[n])switch(n){case"zigzag":O[n]||(O[n]=new k(e));break;case"cross-hatch":O[n]||(O[n]=new P(e));break;case"dots":O[n]||(O[n]=new T(e));break;case"dashed":O[n]||(O[n]=new E(e));break;case"zigzag-line":O[n]||(O[n]=new R(e));break;default:O[n="hachure"]||(O[n]=new w(e))}return O[n]}(e,F).fillPolygons(t,e)}function X(t){return t.randomizer||(t.randomizer=new B(t.seed||0)),t.randomizer.next()}function q(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return n.roughness*i*(X(n)*(e-t)+t)}function $(t,e){return q(-t,t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1)}function J(t,e,n,i,r){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?r.disableMultiStrokeFill:r.disableMultiStroke,s=Q(t,e,n,i,r,!0,!1);if(a)return s;var o=Q(t,e,n,i,r,!0,!0);return s.concat(o)}function Q(t,e,n,i,r,a,s){var o,l=Math.pow(t-n,2)+Math.pow(e-i,2),c=Math.sqrt(l);o=c<200?1:c>500?.4:-.0016668*c+1.233334;var h=r.maxRandomnessOffset||0;h*h*100>l&&(h=c/10);var u=h/2,d=.2+.2*X(r),f=r.bowing*r.maxRandomnessOffset*(i-e)/200,p=r.bowing*r.maxRandomnessOffset*(t-n)/200;f=$(f,r,o),p=$(p,r,o);var v=[],g=function(){return $(u,r,o)},m=function(){return $(h,r,o)},y=r.preserveVertices;return a&&(s?v.push({op:"move",data:[t+(y?0:g()),e+(y?0:g())]}):v.push({op:"move",data:[t+(y?0:$(h,r,o)),e+(y?0:$(h,r,o))]})),s?v.push({op:"bcurveTo",data:[f+t+(n-t)*d+g(),p+e+(i-e)*d+g(),f+t+2*(n-t)*d+g(),p+e+2*(i-e)*d+g(),n+(y?0:g()),i+(y?0:g())]}):v.push({op:"bcurveTo",data:[f+t+(n-t)*d+m(),p+e+(i-e)*d+m(),f+t+2*(n-t)*d+m(),p+e+2*(i-e)*d+m(),n+(y?0:m()),i+(y?0:m())]}),v}function Z(t,e,n){var i=[];i.push([t[0][0]+$(e,n),t[0][1]+$(e,n)]),i.push([t[0][0]+$(e,n),t[0][1]+$(e,n)]);for(var r=1;r<t.length;r++)i.push([t[r][0]+$(e,n),t[r][1]+$(e,n)]),r===t.length-1&&i.push([t[r][0]+$(e,n),t[r][1]+$(e,n)]);return K(i,null,n)}function K(t,e,n){var i=t.length,r=[];if(i>3){var a=[],s=1-n.curveTightness;r.push({op:"move",data:[t[1][0],t[1][1]]});for(var o=1;o+2<i;o++){var l=t[o];a[0]=[l[0],l[1]],a[1]=[l[0]+(s*t[o+1][0]-s*t[o-1][0])/6,l[1]+(s*t[o+1][1]-s*t[o-1][1])/6],a[2]=[t[o+1][0]+(s*t[o][0]-s*t[o+2][0])/6,t[o+1][1]+(s*t[o][1]-s*t[o+2][1])/6],a[3]=[t[o+1][0],t[o+1][1]],r.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){var c=n.maxRandomnessOffset;r.push({op:"lineTo",data:[e[0]+$(c,n),e[1]+$(c,n)]})}}else 3===i?(r.push({op:"move",data:[t[1][0],t[1][1]]}),r.push({op:"bcurveTo",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===i&&r.push.apply(r,f(J(t[0][0],t[0][1],t[1][0],t[1][1],n)));return r}function et(t,e,n,i,r,a,s,o){var l=[],c=[];if(0===o.roughness){t/=4,c.push([e+i*Math.cos(-t),n+r*Math.sin(-t)]);for(var h=0;h<=2*Math.PI;h+=t){var u=[e+i*Math.cos(h),n+r*Math.sin(h)];l.push(u),c.push(u)}c.push([e+i*Math.cos(0),n+r*Math.sin(0)]),c.push([e+i*Math.cos(t),n+r*Math.sin(t)])}else{var d=$(.5,o)-Math.PI/2;c.push([$(a,o)+e+.9*i*Math.cos(d-t),$(a,o)+n+.9*r*Math.sin(d-t)]);for(var f=2*Math.PI+d-.01,p=d;p<f;p+=t){var v=[$(a,o)+e+i*Math.cos(p),$(a,o)+n+r*Math.sin(p)];l.push(v),c.push(v)}c.push([$(a,o)+e+i*Math.cos(d+2*Math.PI+.5*s),$(a,o)+n+r*Math.sin(d+2*Math.PI+.5*s)]),c.push([$(a,o)+e+.98*i*Math.cos(d+s),$(a,o)+n+.98*r*Math.sin(d+s)]),c.push([$(a,o)+e+.9*i*Math.cos(d+.5*s),$(a,o)+n+.9*r*Math.sin(d+.5*s)])}return[c,l]}function nt(t,e,n,i,r,a,s,o,l){var c=a+$(.1,l),h=[];h.push([$(o,l)+e+.9*i*Math.cos(c-t),$(o,l)+n+.9*r*Math.sin(c-t)]);for(var u=c;u<=s;u+=t)h.push([$(o,l)+e+i*Math.cos(u),$(o,l)+n+r*Math.sin(u)]);return h.push([e+i*Math.cos(s),n+r*Math.sin(s)]),h.push([e+i*Math.cos(s),n+r*Math.sin(s)]),K(h,null,l)}function it(t){return f(t)}function rt(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function at(t,e,n){var i=rt(e,n);if(0===i)return rt(t,e);var r=((t[0]-e[0])*(n[0]-e[0])+(t[1]-e[1])*(n[1]-e[1]))/i;return rt(t,st(e,n,r=Math.max(0,Math.min(1,r))))}function st(t,e,n){return[t[0]+(e[0]-t[0])*n,t[1]+(e[1]-t[1])*n]}function ot(t,e,n,i){var r,a,s=i||[];if(function(t,e){var n=t[e+0],i=t[e+1],r=t[e+2],a=t[e+3],s=3*i[0]-2*n[0]-a[0];s*=s;var o=3*i[1]-2*n[1]-a[1];o*=o;var l=3*r[0]-2*a[0]-n[0];l*=l;var c=3*r[1]-2*a[1]-n[1];return s<l&&(s=l),o<(c*=c)&&(o=c),s+o}(t,e)<n){var o=t[e+0];s.length?(r=s[s.length-1],a=o,Math.sqrt(rt(r,a))>1&&s.push(o)):s.push(o),s.push(t[e+3])}else{var l=.5,c=t[e+0],h=t[e+1],u=t[e+2],d=t[e+3],f=st(c,h,l),p=st(h,u,l),v=st(u,d,l),g=st(f,p,l),m=st(p,v,l),y=st(g,m,l);ot([c,f,g,y],0,n,s),ot([y,m,v,d],0,n,s)}return s}function lt(t,e){return ct(t,0,t.length,e)}function ct(t,e,n,i,r){for(var a=r||[],s=t[e],o=t[n-1],l=0,c=1,h=e+1;h<n-1;++h){var u=at(t[h],s,o);u>l&&(l=u,c=h)}return Math.sqrt(l)>i?(ct(t,e,c+1,i,a),ct(t,c,n,i,a)):(a.length||a.push(s),a.push(o)),a}function ht(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15,n=arguments.length>2?arguments[2]:void 0,i=[],r=(t.length-1)/3,a=0;a<r;a++)ot(t,3*a,e,i);return n&&n>0?ct(i,0,i.length,n):i}var ut="none",dt=function(){function t(e){r(this,t),this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1},this.config=e||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}return s(t,[{key:"_o",value:function(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}},{key:"_d",value:function(t,e,n){return{shape:t,sets:e||[],options:n||this.defaultOptions}}},{key:"line",value:function(t,e,n,i,r){var a=this._o(r);return this._d("line",[G(t,e,n,i,a)],a)}},{key:"rectangle",value:function(t,e,n,i,r){var a=this._o(r),s=[],o=function(t,e,n,i,r){return function(t,e){return z(t,!0,e)}([[t,e],[t+n,e],[t+n,e+i],[t,e+i]],r)}(t,e,n,i,a);if(a.fill){var l=[[t,e],[t+n,e],[t+n,e+i],[t,e+i]];"solid"===a.fillStyle?s.push(H([l],a)):s.push(U([l],a))}return a.stroke!==ut&&s.push(o),this._d("rectangle",s,a)}},{key:"ellipse",value:function(t,e,n,i,r){var a=this._o(r),s=[],o=Y(n,i,a),l=V(t,e,a,o);if(a.fill)if("solid"===a.fillStyle){var c=V(t,e,a,o).opset;c.type="fillPath",s.push(c)}else s.push(U([l.estimatedPoints],a));return a.stroke!==ut&&s.push(l.opset),this._d("ellipse",s,a)}},{key:"circle",value:function(t,e,n,i){var r=this.ellipse(t,e,n,n,i);return r.shape="circle",r}},{key:"linearPath",value:function(t,e){var n=this._o(e);return this._d("linearPath",[z(t,!1,n)],n)}},{key:"arc",value:function(t,e,n,i,r,a){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7?arguments[7]:void 0,l=this._o(o),c=[],h=N(t,e,n,i,r,a,s,!0,l);if(s&&l.fill)if("solid"===l.fillStyle){var u=Object.assign({},l);u.disableMultiStroke=!0;var d=N(t,e,n,i,r,a,!0,!1,u);d.type="fillPath",c.push(d)}else c.push(function(t,e,n,i,r,a,s){var o=t,l=e,c=Math.abs(n/2),h=Math.abs(i/2);c+=$(.01*c,s),h+=$(.01*h,s);for(var u=r,d=a;u<0;)u+=2*Math.PI,d+=2*Math.PI;d-u>2*Math.PI&&(u=0,d=2*Math.PI);for(var f=(d-u)/s.curveStepCount,p=[],v=u;v<=d;v+=f)p.push([o+c*Math.cos(v),l+h*Math.sin(v)]);return p.push([o+c*Math.cos(d),l+h*Math.sin(d)]),p.push([o,l]),U([p],s)}(t,e,n,i,r,a,l));return l.stroke!==ut&&c.push(h),this._d("arc",c,l)}},{key:"curve",value:function(t,e){var n=this._o(e),i=[],r=function(t,e){var n=Z(t,1*(1+.2*e.roughness),e);if(!e.disableMultiStroke){var i=Z(t,1.5*(1+.22*e.roughness),function(t){var e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}(e));n=n.concat(i)}return{type:"path",ops:n}}(t,n);if(n.fill&&n.fill!==ut&&t.length>=3){var a=ht(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t.length;if(n<3)throw new Error("A curve must have at least three points.");var i=[];if(3===n)i.push(it(t[0]),it(t[1]),it(t[2]),it(t[2]));else{var r=[];r.push(t[0],t[0]);for(var a=1;a<t.length;a++)r.push(t[a]),a===t.length-1&&r.push(t[a]);var s=[],o=1-e;i.push(it(r[0]));for(var l=1;l+2<r.length;l++){var c=r[l];s[0]=[c[0],c[1]],s[1]=[c[0]+(o*r[l+1][0]-o*r[l-1][0])/6,c[1]+(o*r[l+1][1]-o*r[l-1][1])/6],s[2]=[r[l+1][0]+(o*r[l][0]-o*r[l+2][0])/6,r[l+1][1]+(o*r[l][1]-o*r[l+2][1])/6],s[3]=[r[l+1][0],r[l+1][1]],i.push(s[1],s[2],s[3])}}return i}(t),10,(1+n.roughness)/2);"solid"===n.fillStyle?i.push(H([a],n)):i.push(U([a],n))}return n.stroke!==ut&&i.push(r),this._d("curve",i,n)}},{key:"polygon",value:function(t,e){var n=this._o(e),i=[],r=z(t,!0,n);return n.fill&&("solid"===n.fillStyle?i.push(H([t],n)):i.push(U([t],n))),n.stroke!==ut&&i.push(r),this._d("polygon",i,n)}},{key:"path",value:function(t,e){var n=this._o(e),i=[];if(!t)return this._d("path",i,n);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");var r=n.fill&&"transparent"!==n.fill&&n.fill!==ut,a=n.stroke!==ut,s=!!(n.simplification&&n.simplification<1),o=function(t,e,n){var i,r=_(L(D(t))),a=[],s=[],o=[0,0],l=[],c=function(){var t;l.length>=4&&(t=s).push.apply(t,f(ht(l,1))),l=[]},h=function(){c(),s.length&&(a.push(s),s=[])},u=g(r);try{for(u.s();!(i=u.n()).done;){var d=i.value,p=d.key,v=d.data;switch(p){case"M":h(),o=[v[0],v[1]],s.push(o);break;case"L":c(),s.push([v[0],v[1]]);break;case"C":if(!l.length){var m=s.length?s[s.length-1]:o;l.push([m[0],m[1]])}l.push([v[0],v[1]]),l.push([v[2],v[3]]),l.push([v[4],v[5]]);break;case"Z":c(),s.push([o[0],o[1]])}}}catch(t){u.e(t)}finally{u.f()}if(h(),!n)return a;for(var y=[],x=0,b=a;x<b.length;x++){var C=lt(b[x],n);C.length&&y.push(C)}return y}(t,0,s?4-4*n.simplification:(1+n.roughness)/2);return r&&("solid"===n.fillStyle?i.push(H(o,n)):i.push(U(o,n))),a&&(s?o.forEach((function(t){i.push(z(t,!1,n))})):i.push(function(t,e){var n,i=_(L(D(t))),r=[],a=[0,0],s=[0,0],o=g(i);try{var l=function(){var t=n.value,i=t.key,o=t.data;switch(i){case"M":var l=1*(e.maxRandomnessOffset||0),c=e.preserveVertices;r.push({op:"move",data:o.map((function(t){return t+(c?0:$(l,e))}))}),s=[o[0],o[1]],a=[o[0],o[1]];break;case"L":r.push.apply(r,f(J(s[0],s[1],o[0],o[1],e))),s=[o[0],o[1]];break;case"C":var h=d(o,6),u=h[0],p=h[1],v=h[2],g=h[3],m=h[4],y=h[5];r.push.apply(r,f(function(t,e,n,i,r,a,s,o){for(var l=[],c=[o.maxRandomnessOffset||1,(o.maxRandomnessOffset||1)+.3],h=[0,0],u=o.disableMultiStroke?1:2,d=o.preserveVertices,f=0;f<u;f++)0===f?l.push({op:"move",data:[s[0],s[1]]}):l.push({op:"move",data:[s[0]+(d?0:$(c[0],o)),s[1]+(d?0:$(c[0],o))]}),h=d?[r,a]:[r+$(c[f],o),a+$(c[f],o)],l.push({op:"bcurveTo",data:[t+$(c[f],o),e+$(c[f],o),n+$(c[f],o),i+$(c[f],o),h[0],h[1]]});return l}(u,p,v,g,m,y,s,e))),s=[m,y];break;case"Z":r.push.apply(r,f(J(s[0],s[1],a[0],a[1],e))),s=[a[0],a[1]]}};for(o.s();!(n=o.n()).done;)l()}catch(t){o.e(t)}finally{o.f()}return{type:"path",ops:r}}(t,n))),this._d("path",i,n)}},{key:"opsToPath",value:function(t,e){var n,i="",r=g(t.ops);try{for(r.s();!(n=r.n()).done;){var a=n.value,s="number"==typeof e&&e>=0?a.data.map((function(t){return+t.toFixed(e)})):a.data;switch(a.op){case"move":i+="M".concat(s[0]," ").concat(s[1]," ");break;case"bcurveTo":i+="C".concat(s[0]," ").concat(s[1],", ").concat(s[2]," ").concat(s[3],", ").concat(s[4]," ").concat(s[5]," ");break;case"lineTo":i+="L".concat(s[0]," ").concat(s[1]," ")}}}catch(t){r.e(t)}finally{r.f()}return i.trim()}},{key:"toPaths",value:function(t){var e,n=t.sets||[],i=t.options||this.defaultOptions,r=[],a=g(n);try{for(a.s();!(e=a.n()).done;){var s=e.value,o=null;switch(s.type){case"path":o={d:this.opsToPath(s),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:ut};break;case"fillPath":o={d:this.opsToPath(s),stroke:ut,strokeWidth:0,fill:i.fill||ut};break;case"fillSketch":o=this.fillSketch(s,i)}o&&r.push(o)}}catch(t){a.e(t)}finally{a.f()}return r}},{key:"fillSketch",value:function(t,e){var n=e.fillWeight;return n<0&&(n=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||ut,strokeWidth:n,fill:ut}}}],[{key:"newSeed",value:function(){return Math.floor(Math.random()*Math.pow(2,31))}}]),t}(),ft=function(){function t(e,n){r(this,t),this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new dt(n)}return s(t,[{key:"draw",value:function(t){var e,n=t.sets||[],i=t.options||this.getDefaultOptions(),r=this.ctx,a=t.options.fixedDecimalPlaceDigits,s=g(n);try{for(s.s();!(e=s.n()).done;){var o=e.value;switch(o.type){case"path":r.save(),r.strokeStyle="none"===i.stroke?"transparent":i.stroke,r.lineWidth=i.strokeWidth,i.strokeLineDash&&r.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(r.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(r,o,a),r.restore();break;case"fillPath":r.save(),r.fillStyle=i.fill||"";var l="curve"===t.shape||"polygon"===t.shape||"path"===t.shape?"evenodd":"nonzero";this._drawToContext(r,o,a,l),r.restore();break;case"fillSketch":this.fillSketch(r,o,i)}}}catch(t){s.e(t)}finally{s.f()}}},{key:"fillSketch",value:function(t,e,n){var i=n.fillWeight;i<0&&(i=n.strokeWidth/2),t.save(),n.fillLineDash&&t.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(t.lineDashOffset=n.fillLineDashOffset),t.strokeStyle=n.fill||"",t.lineWidth=i,this._drawToContext(t,e,n.fixedDecimalPlaceDigits),t.restore()}},{key:"_drawToContext",value:function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"nonzero";t.beginPath();var r,a=g(e.ops);try{for(a.s();!(r=a.n()).done;){var s=r.value,o="number"==typeof n&&n>=0?s.data.map((function(t){return+t.toFixed(n)})):s.data;switch(s.op){case"move":t.moveTo(o[0],o[1]);break;case"bcurveTo":t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5]);break;case"lineTo":t.lineTo(o[0],o[1])}}}catch(t){a.e(t)}finally{a.f()}"fillPath"===e.type?t.fill(i):t.stroke()}},{key:"generator",get:function(){return this.gen}},{key:"getDefaultOptions",value:function(){return this.gen.defaultOptions}},{key:"line",value:function(t,e,n,i,r){var a=this.gen.line(t,e,n,i,r);return this.draw(a),a}},{key:"rectangle",value:function(t,e,n,i,r){var a=this.gen.rectangle(t,e,n,i,r);return this.draw(a),a}},{key:"ellipse",value:function(t,e,n,i,r){var a=this.gen.ellipse(t,e,n,i,r);return this.draw(a),a}},{key:"circle",value:function(t,e,n,i){var r=this.gen.circle(t,e,n,i);return this.draw(r),r}},{key:"linearPath",value:function(t,e){var n=this.gen.linearPath(t,e);return this.draw(n),n}},{key:"polygon",value:function(t,e){var n=this.gen.polygon(t,e);return this.draw(n),n}},{key:"arc",value:function(t,e,n,i,r,a){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7?arguments[7]:void 0,l=this.gen.arc(t,e,n,i,r,a,s,o);return this.draw(l),l}},{key:"curve",value:function(t,e){var n=this.gen.curve(t,e);return this.draw(n),n}},{key:"path",value:function(t,e){var n=this.gen.path(t,e);return this.draw(n),n}}]),t}(),pt=function(t,e){return new ft(t,e)};const vt={maxRandomnessOffset:3,roughness:1,bowing:1,curveFitting:.95,curveTightness:void 0,curveStepCount:9,fillStyle:"hachure",fillWeight:void 0,hachureAngle:60,hachureGap:6,simplification:0,dashOffset:void 0,dashGap:void 0,zigzagOffset:void 0,seed:1,fillLineDash:void 0,fillLineDashOffset:void 0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!0,fixedDecimalPlaceDigits:void 0};let gt=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="arc",this.numberType=e.ARC_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s);a.highPerformanceSave();const l=e.getTheme(t).arc;let{x:c=l.x,y:h=l.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const{dx:e=l.dx,dy:n=l.dy}=t.attribute;c+=e,h+=n,a.setTransformForCurrent()}else c=0,h=0,a.transformFromMatrix(t.transMatrix,!0);const u=new e.CustomPath2D,{fill:d=l.fill,stroke:f=l.stroke,lineWidth:p=l.lineWidth,outerRadius:v=l.outerRadius,innerRadius:g=l.innerRadius,maxRandomnessOffset:m=vt.maxRandomnessOffset,roughness:y=vt.roughness,bowing:x=vt.bowing,curveFitting:b=vt.curveFitting,curveTightness:C=vt.curveTightness,curveStepCount:S=vt.curveStepCount,fillStyle:M=vt.fillStyle,fillWeight:w=vt.fillWeight,hachureAngle:k=vt.hachureAngle,hachureGap:P=vt.hachureGap,simplification:T=vt.simplification,dashOffset:E=vt.dashOffset,dashGap:R=vt.dashGap,zigzagOffset:O=vt.zigzagOffset,seed:B=vt.seed,fillLineDash:A=vt.fillLineDash,fillLineDashOffset:I=vt.fillLineDashOffset,disableMultiStroke:D=vt.disableMultiStroke,disableMultiStrokeFill:L=vt.disableMultiStrokeFill,preserveVertices:_=vt.preserveVertices,fixedDecimalPlaceDigits:j=vt.fixedDecimalPlaceDigits}=t.attribute;e.drawArcPath(t,u,c,h,v,g),o.path(u.toString(),{fill:d||void 0,stroke:f||void 0,strokeWidth:p,maxRandomnessOffset:m,roughness:y,bowing:x,curveFitting:b,curveTightness:C,curveStepCount:S,fillStyle:M,fillWeight:w,hachureAngle:k,hachureGap:P,simplification:T,dashOffset:E,dashGap:R,zigzagOffset:O,seed:B,fillLineDash:A,fillLineDashOffset:I,disableMultiStroke:D,disableMultiStrokeFill:L,preserveVertices:_,fixedDecimalPlaceDigits:j}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};gt=m([e.injectable(),y(0,e.inject(e.DefaultCanvasArcRender)),x("design:paramtypes",[Object])],gt);let mt=class extends e.DefaultCanvasAreaRender{constructor(){super(...arguments),this.style="rough"}drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v){if(v)return super.drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v);t.highPerformanceSave();const g=t.canvas.nativeCanvas,m=pt(g,{}),y=new e.CustomPath2D;e.drawAreaSegments(y,n,c,{offsetX:h,offsetY:u});const{maxRandomnessOffset:x=vt.maxRandomnessOffset,roughness:b=vt.roughness,bowing:C=vt.bowing,curveFitting:S=vt.curveFitting,curveTightness:M=vt.curveTightness,curveStepCount:w=vt.curveStepCount,fillStyle:k=vt.fillStyle,fillWeight:P=vt.fillWeight,hachureAngle:T=vt.hachureAngle,hachureGap:E=vt.hachureGap,simplification:R=vt.simplification,dashOffset:O=vt.dashOffset,dashGap:B=vt.dashGap,zigzagOffset:A=vt.zigzagOffset,seed:I=vt.seed,fillLineDash:D=vt.fillLineDash,fillLineDashOffset:L=vt.fillLineDashOffset,disableMultiStroke:_=vt.disableMultiStroke,disableMultiStrokeFill:j=vt.disableMultiStrokeFill,preserveVertices:W=vt.preserveVertices,fixedDecimalPlaceDigits:F=vt.fixedDecimalPlaceDigits}=o;let{fill:G,stroke:z,lineWidth:Y}=o;return Array.isArray(l)?l.forEach((t=>{G=null!=G?G:t.fill,z=null!=z?z:t.stroke,Y=null!=Y?Y:t.lineWidth})):(G=null!=G?G:l.fill,z=null!=z?z:l.stroke,Y=null!=Y?Y:l.lineWidth),m.path(y.toString(),{fill:i?G:void 0,strokeWidth:Y,maxRandomnessOffset:x,roughness:b,bowing:C,curveFitting:S,curveTightness:M,curveStepCount:w,fillStyle:k,fillWeight:P,hachureAngle:T,hachureGap:E,simplification:R,dashOffset:O,dashGap:B,zigzagOffset:A,seed:I,fillLineDash:D,fillLineDashOffset:L,disableMultiStroke:_,disableMultiStrokeFill:j,preserveVertices:W,fixedDecimalPlaceDigits:F}),t.highPerformanceRestore(),!1}};mt=m([e.injectable()],mt);let yt=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="circle",this.numberType=e.CIRCLE_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s,{}),l=e.getTheme(t).circle;let{x:c=l.x,y:h=l.y}=t.attribute;t.transMatrix.onlyTranslate()?a.onlyTranslate()||a.clearMatrix():(c=0,h=0,a.transformFromMatrix(t.transMatrix,!0));const{radius:u=l.radius,fill:d=l.fill,stroke:f=l.stroke,lineWidth:p=l.lineWidth}=t.attribute;o.circle(c,h,u,{fill:d||void 0,stroke:f||void 0,strokeWidth:p,fillStyle:"zigzag",roughness:.5})}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};yt=m([e.injectable(),y(0,e.inject(e.DefaultCanvasCircleRender)),x("design:paramtypes",[Object])],yt);let xt=class extends e.DefaultCanvasLineRender{constructor(){super(...arguments),this.style="rough"}drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v){if(p||v)return super.drawSegmentItem(t,n,i,r,a,s,o,l,c,h,u,d,f,p,v);t.highPerformanceSave();const g=t.canvas.nativeCanvas,m=pt(g,{}),y=new e.CustomPath2D;e.drawSegments(t.camera?t:t.nativeContext,n,c,h,{offsetX:u,offsetY:d});const{maxRandomnessOffset:x=vt.maxRandomnessOffset,roughness:b=vt.roughness,bowing:C=vt.bowing,curveFitting:S=vt.curveFitting,curveTightness:M=vt.curveTightness,curveStepCount:w=vt.curveStepCount,fillStyle:k=vt.fillStyle,fillWeight:P=vt.fillWeight,hachureAngle:T=vt.hachureAngle,hachureGap:E=vt.hachureGap,simplification:R=vt.simplification,dashOffset:O=vt.dashOffset,dashGap:B=vt.dashGap,zigzagOffset:A=vt.zigzagOffset,seed:I=vt.seed,fillLineDash:D=vt.fillLineDash,fillLineDashOffset:L=vt.fillLineDashOffset,disableMultiStroke:_=vt.disableMultiStroke,disableMultiStrokeFill:j=vt.disableMultiStrokeFill,preserveVertices:W=vt.preserveVertices,fixedDecimalPlaceDigits:F=vt.fixedDecimalPlaceDigits}=o;let{fill:G,stroke:z,lineWidth:Y}=o;return Array.isArray(l)?l.forEach((t=>{G=null!=G?G:t.fill,z=null!=z?z:t.stroke,Y=null!=Y?Y:t.lineWidth})):(G=null!=G?G:l.fill,z=null!=z?z:l.stroke,Y=null!=Y?Y:l.lineWidth),m.path(y.toString(),{fill:i?G:void 0,stroke:r?z:void 0,strokeWidth:Y,maxRandomnessOffset:x,roughness:b,bowing:C,curveFitting:S,curveTightness:M,curveStepCount:w,fillStyle:k,fillWeight:P,hachureAngle:T,hachureGap:E,simplification:R,dashOffset:O,dashGap:B,zigzagOffset:A,seed:I,fillLineDash:D,fillLineDashOffset:L,disableMultiStroke:_,disableMultiStrokeFill:j,preserveVertices:W,fixedDecimalPlaceDigits:F}),t.highPerformanceRestore(),!1}};xt=m([e.injectable()],xt);let bt=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="path",this.numberType=e.PATH_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s,{});a.highPerformanceSave();const l=e.getTheme(t).path;a.transformFromMatrix(t.transMatrix,!0);const{fill:c=l.fill,stroke:h=l.stroke,lineWidth:u=l.lineWidth,path:d=l.path,maxRandomnessOffset:f=vt.maxRandomnessOffset,roughness:p=vt.roughness,bowing:v=vt.bowing,curveFitting:g=vt.curveFitting,curveTightness:m=vt.curveTightness,curveStepCount:y=vt.curveStepCount,fillStyle:x=vt.fillStyle,fillWeight:b=vt.fillWeight,hachureAngle:C=vt.hachureAngle,hachureGap:S=vt.hachureGap,simplification:M=vt.simplification,dashOffset:w=vt.dashOffset,dashGap:k=vt.dashGap,zigzagOffset:P=vt.zigzagOffset,seed:T=vt.seed,fillLineDash:E=vt.fillLineDash,fillLineDashOffset:R=vt.fillLineDashOffset,disableMultiStroke:O=vt.disableMultiStroke,disableMultiStrokeFill:B=vt.disableMultiStrokeFill,preserveVertices:A=vt.preserveVertices,fixedDecimalPlaceDigits:I=vt.fixedDecimalPlaceDigits}=t.attribute;"string"==typeof d&&o.path(d,{fill:c||void 0,stroke:h||void 0,strokeWidth:u,maxRandomnessOffset:f,roughness:p,bowing:v,curveFitting:g,curveTightness:m,curveStepCount:y,fillStyle:x,fillWeight:b,hachureAngle:C,hachureGap:S,simplification:M,dashOffset:w,dashGap:k,zigzagOffset:P,seed:T,fillLineDash:E,fillLineDashOffset:R,disableMultiStroke:O,disableMultiStrokeFill:B,preserveVertices:A,fixedDecimalPlaceDigits:I}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};bt=m([e.injectable(),y(0,e.inject(e.DefaultCanvasPathRender)),x("design:paramtypes",[Object])],bt);let Ct=class{constructor(t){this.canvasRenderer=t,this.style="rough",this.type="rect",this.numberType=e.RECT_NUMBER_TYPE}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s);a.highPerformanceSave();const l=e.getTheme(t).rect;let{x:c=l.x,y:h=l.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const{dx:e=l.dx,dy:n=l.dy}=t.attribute;c+=e,h+=n,a.setTransformForCurrent()}else c=0,h=0,a.transformFromMatrix(t.transMatrix,!0);const{fill:u=l.fill,stroke:d=l.stroke,fillColor:f=l.fill,strokeColor:p=l.stroke,x1:v,y1:g,lineWidth:m=l.lineWidth,maxRandomnessOffset:y=vt.maxRandomnessOffset,roughness:x=vt.roughness,bowing:b=vt.bowing,curveFitting:C=vt.curveFitting,curveTightness:S=vt.curveTightness,curveStepCount:M=vt.curveStepCount,fillStyle:w=vt.fillStyle,fillWeight:k=vt.fillWeight,hachureAngle:P=vt.hachureAngle,hachureGap:T=vt.hachureGap,simplification:E=vt.simplification,dashOffset:R=vt.dashOffset,dashGap:O=vt.dashGap,zigzagOffset:B=vt.zigzagOffset,seed:A=vt.seed,fillLineDash:I=vt.fillLineDash,fillLineDashOffset:D=vt.fillLineDashOffset,disableMultiStroke:L=vt.disableMultiStroke,disableMultiStrokeFill:_=vt.disableMultiStrokeFill,preserveVertices:j=vt.preserveVertices,fixedDecimalPlaceDigits:W=vt.fixedDecimalPlaceDigits}=t.attribute;let{width:F=l.width,height:G=l.height}=t.attribute;F=(null!=F?F:v-c)||0,G=(null!=G?G:g-h)||0,o.rectangle(c,h,F,G,{fill:u?f:void 0,stroke:d?p:void 0,strokeWidth:m,maxRandomnessOffset:y,roughness:x,bowing:b,curveFitting:C,curveTightness:S,curveStepCount:M,fillStyle:w,fillWeight:k,hachureAngle:P,hachureGap:T,simplification:E,dashOffset:R,dashGap:O,zigzagOffset:B,seed:A,fillLineDash:I,fillLineDashOffset:D,disableMultiStroke:L,disableMultiStrokeFill:_,preserveVertices:j,fixedDecimalPlaceDigits:W}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};Ct=m([e.injectable(),y(0,e.inject(e.DefaultCanvasRectRender)),x("design:paramtypes",[Object])],Ct);let St=class extends e.BaseRender{constructor(t){super(),this.canvasRenderer=t,this.type="symbol",this.numberType=e.SYMBOL_NUMBER_TYPE,this.style="rough"}draw(t,n,i,r){const{context:a}=i;if(!a)return;const s=a.canvas.nativeCanvas,o=pt(s);a.highPerformanceSave();const l=e.getTheme(t).symbol,c=this.transform(t,l,a),{x:h,y:u,z:d,lastModelMatrix:f}=c,p=t.getParsedPath();if(!p)return;const{fill:v=l.fill,stroke:g=l.stroke,fillColor:m=l.fill,strokeColor:y=l.stroke,size:x=l.size,lineWidth:b=l.lineWidth,maxRandomnessOffset:C=vt.maxRandomnessOffset,roughness:S=vt.roughness,bowing:M=vt.bowing,curveFitting:w=vt.curveFitting,curveTightness:k=vt.curveTightness,curveStepCount:P=vt.curveStepCount,fillStyle:T=vt.fillStyle,fillWeight:E=vt.fillWeight,hachureAngle:R=vt.hachureAngle,hachureGap:O=vt.hachureGap,simplification:B=vt.simplification,dashOffset:A=vt.dashOffset,dashGap:I=vt.dashGap,zigzagOffset:D=vt.zigzagOffset,seed:L=vt.seed,fillLineDash:_=vt.fillLineDash,fillLineDashOffset:j=vt.fillLineDashOffset,disableMultiStroke:W=vt.disableMultiStroke,disableMultiStrokeFill:F=vt.disableMultiStrokeFill,preserveVertices:G=vt.preserveVertices,fixedDecimalPlaceDigits:z=vt.fixedDecimalPlaceDigits}=t.attribute;let Y="";if(p.drawToSvgPath)Y=p.drawToSvgPath(x,h,u);else{const t=new e.CustomPath2D;p.draw(t,x,h,u)&&t.closePath(),Y=t.toString()}o.path(Y,{fill:v?m:void 0,stroke:g?y:void 0,strokeWidth:b,maxRandomnessOffset:C,roughness:S,bowing:M,curveFitting:w,curveTightness:k,curveStepCount:P,fillStyle:T,fillWeight:E,hachureAngle:R,hachureGap:O,simplification:B,dashOffset:A,dashGap:I,zigzagOffset:D,seed:L,fillLineDash:_,fillLineDashOffset:j,disableMultiStroke:W,disableMultiStrokeFill:F,preserveVertices:G,fixedDecimalPlaceDigits:z}),a.highPerformanceRestore()}drawShape(t,e,n,i,r,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(t,e,n,i,r,a,s,o)}};St=m([e.injectable(),y(0,e.inject(e.DefaultCanvasSymbolRender)),x("design:paramtypes",[Object])],St);var Mt=new e.ContainerModule((t=>{t(yt).toSelf().inSingletonScope(),t(e.GraphicRender).to(yt),t(Ct).toSelf().inSingletonScope(),t(e.GraphicRender).to(Ct),t(bt).toSelf().inSingletonScope(),t(e.GraphicRender).to(bt),t(St).toSelf().inSingletonScope(),t(e.GraphicRender).to(St),t(xt).toSelf().inSingletonScope(),t(e.GraphicRender).to(xt),t(mt).toSelf().inSingletonScope(),t(e.GraphicRender).to(mt),t(gt).toSelf().inSingletonScope(),t(e.GraphicRender).to(gt)}));const wt={onPointerDown:"pointerdown",onPointerUp:"pointerup",onPointerUpOutside:"pointerupoutside",onPointerTap:"pointertap",onPointerOver:"pointerover",onPointerMove:"pointermove",onPointerEnter:"pointerenter",onPointerLeave:"pointerleave",onPointerOut:"pointerout",onMouseDown:"mousedown",onMouseUp:"mouseup",onMouseUpOutside:"mouseupoutside",onMouseMove:"mousemove",onMouseOver:"mouseover",onMouseOut:"mouseout",onMouseEnter:"mouseenter",onMouseLeave:"mouseleave",onPinch:"pinch",onPinchStart:"pinchstart",onPinchEnd:"pinchend",onPan:"pan",onPanStart:"panstart",onPanEnd:"panend",onDrag:"drag",onDragStart:"dragstart",onDragEnter:"dragenter",onDragLeave:"dragleave",onDragOver:"dragover",onDragEnd:"dragend",onRightDown:"rightdown",onRightUp:"rightup",onRightUpOutside:"rightupoutside",onTouchStart:"touchstart",onTouchEnd:"touchend",onTouchEndOutside:"touchendoutside",onTouchMove:"touchmove",onTouchCancel:"touchcancel",onPress:"press",onPressUp:"pressup",onPressEnd:"pressend",onSwipe:"swipe",onDrop:"drop",onWeel:"wheel",onClick:"click",onDblClick:"dblclick"},kt=Object.keys(wt);function Pt(t){return e.graphicCreator.richtext(t?t.attribute:{})}function Tt(t,e){if(n.isArray(t))return t.forEach((t=>Tt(t,e)));e.push(t)}Pt.Text=function(t){return Object.assign({type:"rich/text"},t)},Pt.Image=function(t){return Object.assign({type:"rich/image"},t)};const Et=e.Group;const Rt=(t,e)=>{const n=e.x-t.x,i=e.y-t.y;return Math.abs(n)>Math.abs(i)?n>0?"right":"left":i>0?"down":"up"},Ot=(t,e)=>{const n=Math.abs(e.x-t.x),i=Math.abs(e.y-t.y);return Math.sqrt(n*n+i*i)};class Bt extends n.EventEmitter{constructor(t,n={}){var i,r,a,s,o,l,c,h,u,d;super(),this.cachedEvents=[],this.startPoints=[],this.processEvent={},this.throttleTimer=0,this.emitThrottles=[],this.lastTapTarget=null,this.onStart=t=>{this.reset(),this.startTime=e.clock.now();const{cachedEvents:n,startPoints:i}=this;t&&n.push(t.clone()),i.length=n.length;for(let t=0;t<n.length;t++){const{x:e,y:r}=n[t],a={x:e,y:r};i[t]=a}if(1!==i.length)this.startDistance=Ot(i[0],i[1]),this.center=(t=>{const e=t.length;if(1===e)return{x:Math.round(t[0].x),y:Math.round(t[0].y)};let n=0,i=0,r=0;for(;r<e;)n+=t[r].x,i+=t[r].y,r++;return{x:Math.round(n/e),y:Math.round(i/e)}})([i[0],i[1]]);else{const t=n[0];this.pressTimeout=setTimeout((()=>{const e="press",n="none";t.direction=n,t.deltaX=0,t.deltaY=0,t.points=i,this.triggerStartEvent(e,t),this.triggerEvent(e,t),this.eventType=e,this.direction=n}),this.config.press.time)}},this.onMove=t=>{this.clearPressTimeout();const{startPoints:n,cachedEvents:i}=this;if(!n.length)return;const r=t.clone(),{x:a,y:s,pointerId:o}=r;for(let t=0,e=i.length;t<e;t++)if(o===i[t].pointerId){i[t]=r;break}const l={x:a,y:s},c=i.map((t=>({x:t.x,y:t.y}))),h=e.clock.now();if(this.prevMoveTime=this.lastMoveTime,this.prevMovePoint=this.lastMovePoint,this.lastMoveTime=h,this.lastMovePoint=l,1===n.length){const t=n[0],e=a-t.x,i=s-t.y,o=this.direction||Rt(t,l);this.direction=o;const h=this.getEventType(l);return r.direction=o,r.deltaX=e,r.deltaY=i,r.points=c,this.triggerStartEvent(h,r),void this.triggerEvent(h,r)}const{startDistance:u}=this,d=Ot(c[0],c[1]);r.scale=d/u,r.center=this.center,r.points=c,this.triggerStartEvent("pinch",r),this.triggerEvent("pinch",r)},this.onEnd=t=>{const n=t.clone(),{cachedEvents:i,startPoints:r}=this,a=i.map((t=>({x:t.x,y:t.y})));if(n.points=a,this.triggerEndEvent(n),1===i.length){const i=e.clock.now(),a=this.lastMoveTime;if(i-a<100){const t=a-(this.prevMoveTime||this.startTime);if(t>0){const e=this.prevMovePoint||r[0],i=this.lastMovePoint||r[0],a=Ot(e,i),s=a/t;s>this.config.swipe.velocity&&a>this.config.swipe.threshold&&(n.velocity=s,n.direction=Rt(e,i),this.triggerEvent("swipe",n))}}i-this.lastTapTime<this.config.tap.interval&&t.target===this.lastTapTarget?this.tapCount++:this.tapCount=1,this.lastTapTime=i,this.lastTapTarget=t.target,1===this.tapCount?this.triggerEvent("tap",n):2===this.tapCount&&(this.triggerEvent("doubletap",n),this.tapCount=0)}for(let t=0,e=i.length;t<e;t++)if(i[t].pointerId===n.pointerId){i.splice(t,1),r.splice(t,1);break}this.reset(),i.length>0&&this.onStart()},this.element=t,this.tapCount=0,this.lastTapTime=0,this.config={press:{time:null!==(r=null===(i=null==n?void 0:n.press)||void 0===i?void 0:i.time)&&void 0!==r?r:251,threshold:null!==(s=null===(a=null==n?void 0:n.press)||void 0===a?void 0:a.threshold)&&void 0!==s?s:9},swipe:{threshold:null!==(l=null===(o=null==n?void 0:n.swipe)||void 0===o?void 0:o.threshold)&&void 0!==l?l:10,velocity:null!==(h=null===(c=null==n?void 0:n.swipe)||void 0===c?void 0:c.velocity)&&void 0!==h?h:.3},tap:{interval:null!==(d=null===(u=null==n?void 0:n.tap)||void 0===u?void 0:u.interval)&&void 0!==d?d:300}},this.initEvents()}initEvents(){const{element:t}=this;t&&(t.addEventListener("pointerdown",this.onStart),t.addEventListener("pointermove",this.onMove),t.addEventListener("pointerup",this.onEnd),t.addEventListener("pointerupoutside",this.onEnd))}removeEvents(){const{element:t}=this;t&&(t.removeEventListener("pointerdown",this.onStart),t.removeEventListener("pointermove",this.onMove),t.removeEventListener("pointerup",this.onEnd),t.removeEventListener("pointerupoutside",this.onEnd))}release(){this.removeEvents(),this.element=null}getEventType(t){const{eventType:n,startTime:i,startPoints:r}=this;if(n)return n;let a;return a=e.clock.now()-i>this.config.press.time&&Ot(r[0],t)<this.config.press.threshold?"press":"pan",this.eventType=a,a}enable(t){this.processEvent[t]=!0}isProcess(t){return this.processEvent[t]}pushEvent(t,e){const{emitThrottles:n}=this,i={type:t,ev:e};for(let e=0,r=n.length;e<r;e++)if(n[e].type===t)return void n.splice(e,1,i);n.push(i)}clearPressTimeout(){this.pressTimeout&&(clearTimeout(this.pressTimeout),this.pressTimeout=null)}reset(){this.clearPressTimeout(),this.startTime=0,this.startDistance=0,this.direction=null,this.eventType=null,this.prevMoveTime=0,this.prevMovePoint=null,this.lastMoveTime=0,this.lastMovePoint=null}triggerEvent(t,n){this.pushEvent(t,n);const{throttleTimer:i,emitThrottles:r}=this;i||(this.throttleTimer=e.application.global.getRequestAnimationFrame()((()=>{for(let t=0,e=r.length;t<e;t++){const{type:e,ev:n}=r[t];this.emitEvent(e,n)}this.throttleTimer=0,this.emitThrottles.length=0})))}triggerStartEvent(t,e){this.isProcess(t)||(this.enable(t),this.triggerEvent(`${t}start`,e))}triggerEndEvent(t){const e=this.processEvent;Object.keys(e).forEach((n=>{this.triggerEvent(`${n}end`,t),"press"===n&&this.triggerEvent(`${n}up`,t),delete e[n]}))}emitEvent(t,n){const i=this.element._events[e.WILDCARD];if(i)if("fn"in i)i.fn.call(i.context,n,t);else for(let e=0,r=i.length;e<r&&!n.propagationImmediatelyStopped;e++)i[e].fn.call(i[e].context,n,t);this.emit(t,n)}}const At=[0,0,0],It=new n.Matrix(1,0,0,1,0,0);let Dt=class{set fillStyle(t){this.nativeContext.fillStyle=t}get fillStyle(){return this.nativeContext.fillStyle}set font(t){this.nativeContext.font=t}get font(){return this.nativeContext.font}set globalAlpha(t){this.nativeContext.globalAlpha=t}get globalAlpha(){return this.nativeContext.globalAlpha}set lineCap(t){this.nativeContext.lineCap=t}get lineCap(){return this.nativeContext.lineCap}set lineDashOffset(t){this.nativeContext.lineDashOffset=t}get lineDashOffset(){return this.nativeContext.lineDashOffset}set lineJoin(t){this.nativeContext.lineJoin=t}get lineJoin(){return this.nativeContext.lineJoin}set lineWidth(t){this.nativeContext.lineWidth=t}get lineWidth(){return this.nativeContext.lineWidth}set miterLimit(t){this.nativeContext.miterLimit=t}get miterLimit(){return this.nativeContext.miterLimit}set shadowBlur(t){this.nativeContext.shadowBlur=t}get shadowBlur(){return this.nativeContext.shadowBlur}set shadowColor(t){this.nativeContext.shadowColor=t}get shadowColor(){return this.nativeContext.shadowColor}set shadowOffsetX(t){this.nativeContext.shadowOffsetX=t}get shadowOffsetX(){return this.nativeContext.shadowOffsetX}set shadowOffsetY(t){this.nativeContext.shadowOffsetY=t}get shadowOffsetY(){return this.nativeContext.shadowOffsetY}set strokeStyle(t){this.nativeContext.strokeStyle=t}get strokeStyle(){return this.nativeContext.strokeStyle}set textAlign(t){this.nativeContext.textAlign=t}get textAlign(){return this.nativeContext.textAlign}set textBaseline(t){this.nativeContext.textBaseline=t}get textBaseline(){return this.nativeContext.textBaseline}get inuse(){return!!this._inuse}set inuse(t){t!==!!this._inuse&&(this._inuse=t,t?(this.nativeContext.save(),this.reset()):this.nativeContext.restore())}constructor(t,i){this.fillAttributes=Object.assign(Object.assign({},e.DefaultFillStyle),{opacity:1}),this.strokeAttributes=Object.assign(Object.assign({},e.DefaultStrokeStyle),{opacity:1}),this.textAttributes=Object.assign(Object.assign({},e.DefaultTextStyle),{opacity:1}),this._clearShadowStyle=!1,this._clearFilterStyle=!1,this._clearGlobalCompositeOperationStyle=!1;const r=t.nativeCanvas.getContext("2d");if(!r)throw new Error("发生错误,获取2d上下文失败");this.nativeContext=r,this.canvas=t,this.matrix=new n.Matrix(1,0,0,1,0,0),this.stack=[],this.dpr=i,this.applyedMatrix=new n.Matrix(1,0,0,1,0,0)}reset(){this.stack.length&&n.Logger.getInstance().warn("可能存在bug,matrix没有清空"),this.matrix.setValue(1,0,0,1,0,0),this.applyedMatrix=new n.Matrix(1,0,0,1,0,0),this.stack.length=0,this.nativeContext.setTransform(1,0,0,1,0,0)}getCanvas(){return this.canvas}getContext(){return this.nativeContext}setTransformForCurrent(t=!1){!t&&this.applyedMatrix.equalToMatrix(this.matrix)||(this.applyedMatrix.setValue(this.matrix.a,this.matrix.b,this.matrix.c,this.matrix.d,this.matrix.e,this.matrix.f),this.nativeContext.setTransform(this.matrix.a,this.matrix.b,this.matrix.c,this.matrix.d,this.matrix.e,this.matrix.f))}get currentMatrix(){return this.matrix}cloneMatrix(t){return e.matrixAllocate.allocateByObj(t)}clear(){this.save(),this.resetTransform(),this.nativeContext.clearRect(0,0,this.canvas.width,this.canvas.height),this.restore()}restore(){this.nativeContext.restore(),this.stack.length>0&&(e.matrixAllocate.free(this.matrix),this.matrix=this.stack.pop(),this.setTransformForCurrent(!0))}highPerformanceRestore(){this.stack.length>0&&(e.matrixAllocate.free(this.matrix),this.matrix=this.stack.pop())}rotate(t,e=!0){this.matrix.rotate(t),e&&this.setTransformForCurrent()}save(){const t=this.cloneMatrix(this.matrix);this.stack.push(t),this.nativeContext.save()}highPerformanceSave(){const t=this.cloneMatrix(this.matrix);this.stack.push(t)}scale(t,e,n=!0){this.matrix.scale(t,e),n&&this.setTransformForCurrent()}setScale(t,e,n=!0){this.matrix.setScale(t,e),n&&this.setTransformForCurrent()}scalePoint(t,e,n,i,r=!0){this.translate(n,i,!1),this.scale(t,e,!1),this.translate(-n,-i,!1),r&&this.setTransformForCurrent()}setTransform(t,e,n,i,r,a,s=!0,o=this.dpr){this.matrix.setValue(o*t,o*e,o*n,o*i,o*r,o*a),s&&this.setTransformForCurrent()}setTransformFromMatrix(t,e=!0,n=this.dpr){this.matrix.setValue(t.a*n,t.b*n,t.c*n,t.d*n,t.e*n,t.f*n),e&&this.setTransformForCurrent()}resetTransform(t=!0,e=this.dpr){this.setTransform(e,0,0,e,0,0),t&&this.setTransformForCurrent()}transform(t,e,n,i,r,a,s=!0){this.matrix.multiply(t,e,n,i,r,a),s&&this.setTransformForCurrent()}transformFromMatrix(t,e){this.matrix.multiply(t.a,t.b,t.c,t.d,t.e,t.f),e&&this.setTransformForCurrent()}translate(t,e,n=!0){this.matrix.translate(t,e),n&&this.setTransformForCurrent()}rotateDegrees(t,e=!0){const n=t*Math.PI/180;this.rotate(n,e)}rotateAbout(t,e,n,i=!0){this.translate(e,n,!1),this.rotate(t,!1),this.translate(-e,-n,!1),i&&this.setTransformForCurrent()}rotateDegreesAbout(t,e,n,i=!0){this.translate(e,n,!1),this.rotateDegrees(t,!1),this.translate(-e,-n,!1),i&&this.setTransformForCurrent()}beginPath(){this.disableBeginPath||this.nativeContext.beginPath()}clip(t,e){t?"string"==typeof t?this.nativeContext.clip(t):this.nativeContext.clip(t,e):this.nativeContext.clip()}arc(t,e,i,r,a,s,o){if(o=o||0,this.camera){const l=[];((t,e,i,r,a,s,o,l)=>{if(l)for(;i>e;)i-=n.pi2;else for(;i<e;)i+=n.pi2;const c=n.pi/3*(i>e?1:-1);let h=e,u=h;for(;u!==i;){u=c>0?Math.min(u+c,i):Math.max(u+c,i);const e=Math.abs(u-h),n=4*Math.tan(e/4)/3,l=u<h?-1:1,d=Math.cos(h),f=Math.sin(h),p=Math.cos(u),v=Math.sin(u),g=d*s+r,m=f*o+a,y=p*s+r,x=v*o+a,b=s*n*l,C=o*n*l;t.push([g-b*f,m+C*d,y+b*v,x-C*p,y,x]),h=u}})(l,r,a,t,e,i,i,s);for(let t=0;t<l.length;++t){const e=l[t];this.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5],o)}}else this.nativeContext.arc(t,e,i,r,a,s)}arcTo(t,e,n,i,r){this.nativeContext.arcTo(t,e,n,i,r)}bezierCurveTo(t,n,i,r,a,s,o){if(o=o||0,this.camera){let l=o,c=o;this.modelMatrix&&(e.transformMat4(At,[t,n,o],this.modelMatrix),t=At[0],n=At[1],l=At[2],e.transformMat4(At,[i,r,o],this.modelMatrix),i=At[0],r=At[1],c=At[2],e.transformMat4(At,[a,s,o],this.modelMatrix),a=At[0],s=At[1],o=At[2]);let h=this.camera.vp(a,s,o);a=h.x,s=h.y,h=this.camera.vp(t,n,l),t=h.x,n=h.y,h=this.camera.vp(i,r,c),i=h.x,r=h.y}this.nativeContext.bezierCurveTo(t,n,i,r,a,s)}closePath(){this.nativeContext.closePath()}ellipse(t,e,n,i,r,a,s,o){null==o?this.nativeContext.ellipse(t,e,n,i,r,a,s):this.nativeContext.ellipse(t,e,n,i,r,a,s,o)}lineTo(t,n,i){if(i=i||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]);const r=this.camera.vp(t,n,i);t=r.x,n=r.y}this.nativeContext.lineTo(t,n)}moveTo(t,n,i){if(i=i||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]);const r=this.camera.vp(t,n,i);t=r.x,n=r.y}this.nativeContext.moveTo(t,n)}quadraticCurveTo(t,n,i,r,a){if(a=a||0,this.camera){let s=a;this.modelMatrix&&(e.transformMat4(At,[t,n,a],this.modelMatrix),t=At[0],n=At[1],s=At[2],e.transformMat4(At,[i,r,a],this.modelMatrix),i=At[0],r=At[1],a=At[2]);let o=this.camera.vp(i,r,a);i=o.x,r=o.y,o=this.camera.vp(t,n,s),t=o.x,n=o.y}this.nativeContext.quadraticCurveTo(t,n,i,r)}rect(t,e,n,i,r){r=r||0,this.camera?(this.moveTo(t,e,r),this.lineTo(t+n,e,r),this.lineTo(t+n,e+i,r),this.lineTo(t,e+i,r),this.closePath()):this.nativeContext.rect(t,e,n,i)}createImageData(){const t=arguments;return 2===t.length?this.nativeContext.createImageData(t[0],t[1]):1===t.length?this.nativeContext.createImageData(t[0]):null}createLinearGradient(t,e,n,i){return this.nativeContext.createLinearGradient(t,e,n,i)}createPattern(t,e){return 0===t.width||0===t.height?null:this.nativeContext.createPattern(t,e)}createRadialGradient(t,e,n,i,r,a){return this.nativeContext.createRadialGradient(t,e,n,i,r,a)}createConicGradient(t,n,i,r){let a,s=!1;const o=this;return{stops:[],addColorStop(t,e){this.stops.push([t,e]),s=!0},GetPattern(l,c,h){return s&&(h||(h=r-i),a=e.createConicalGradient(o,this.stops,t,n,h,i,r,l,c),s=!1),a}}}fill(t,e){this.disableFill||(t?this.nativeContext.fill(t):this.nativeContext.fill())}fillRect(t,e,n,i){this.nativeContext.fillRect(t,e,n,i)}clearRect(t,e,n,i){this.nativeContext.clearRect(t,e,n,i)}project(t,n,i){if(i=i||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]);const r=this.camera.vp(t,n,i);t=r.x,n=r.y}return{x:t,y:n}}view(t,n,i){return i=i||0,this.camera?(this.modelMatrix&&(e.transformMat4(At,[t,n,i],this.modelMatrix),t=At[0],n=At[1],i=At[2]),this.camera.view(t,n,i)):[t,n,i]}fillText(t,n,i,r){if(r=r||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[n,i,r],this.modelMatrix),n=At[0],i=At[1],r=At[2]);const t=this.camera.vp(n,i,r);n=t.x,i=t.y}this.nativeContext.fillText(t,n,i)}getImageData(t,e,n,i){return this.nativeContext.getImageData(t,e,n,i)}getLineDash(){return this.nativeContext.getLineDash()}isPointInPath(t,e){return this.nativeContext.isPointInPath(t,e)}isPointInStroke(t,e){return this.nativeContext.isPointInStroke(t,e)}measureText(t,n=e.application.global.measureTextMethod){var i,r;if(!n||"native"===n)return this.nativeContext.measureText(t);this.mathTextMeasure||(this.mathTextMeasure=e.application.graphicUtil.createTextMeasureInstance({},{},(()=>this.canvas.nativeCanvas)));const a=null!==(i=this.fontFamily)&&void 0!==i?i:e.DefaultTextStyle.fontFamily,s=null!==(r=this.fontSize)&&void 0!==r?r:e.DefaultTextStyle.fontSize;return this.mathTextMeasure.textSpec.fontFamily===a&&this.mathTextMeasure.textSpec.fontSize===s||(this.mathTextMeasure.textSpec.fontFamily=a,this.mathTextMeasure.textSpec.fontSize=s,this.mathTextMeasure._numberCharSize=null,this.mathTextMeasure._fullCharSize=null,this.mathTextMeasure._letterCharSize=null,this.mathTextMeasure._specialCharSizeMap={}),this.mathTextMeasure.measure(t,n)}putImageData(t,e,n){this.nativeContext.putImageData(t,e,n)}setLineDash(t){const e=arguments,n=this.nativeContext;this.nativeContext.setLineDash?n.setLineDash(e[0]):"mozDash"in n?n.mozDash=e[0]:"webkitLineDash"in n&&(n.webkitLineDash=e[0])}stroke(t){this.disableStroke||(t?this.nativeContext.stroke(t):this.nativeContext.stroke())}strokeRect(t,e,n,i){this.nativeContext.strokeRect(t,e,n,i)}strokeText(t,n,i,r){if(r=r||0,this.camera){this.modelMatrix&&(e.transformMat4(At,[n,i,r],this.modelMatrix),n=At[0],i=At[1],r=At[2]);const t=this.camera.vp(n,i,r);n=t.x,i=t.y}this.nativeContext.strokeText(t,n,i)}drawImage(){const t=this.nativeContext,e=arguments;3===e.length?t.drawImage(e[0],e[1],e[2]):5===e.length?t.drawImage(e[0],e[1],e[2],e[3],e[4]):9===e.length&&t.drawImage(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}setCommonStyle(t,e,n,i,r){if(Array.isArray(r)){if(r.length<=1)return this._setCommonStyle(t,e,n,i,r[0]);const a=Object.create(r[0]);return r.forEach(((t,e)=>{0!==e&&Object.assign(a,t)})),this._setCommonStyle(t,e,n,i,a)}return this._setCommonStyle(t,e,n,i,r)}_setCommonStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.fillAttributes);const{fillOpacity:o=a.fillOpacity,opacity:l=a.opacity,fill:c=a.fill}=n;o>1e-12&&l>1e-12?(s.globalAlpha=o*l,s.fillStyle=e.createColor(this,c,t,i,r)):s.globalAlpha=o*l}setShadowBlendStyle(t,e,n){if(Array.isArray(n)){if(n.length<=1)return this._setShadowBlendStyle(t,n[0]);const i=Object.create(n[0]);return n.forEach(((t,e)=>{0!==e&&Object.assign(i,t)})),this._setShadowBlendStyle(t,e,i)}return this._setShadowBlendStyle(t,e,n)}_setShadowBlendStyle(t,e,n){const i=this.nativeContext;n||(n=this.fillAttributes);const{opacity:r=n.opacity,shadowBlur:a=n.shadowBlur,shadowColor:s=n.shadowColor,shadowOffsetX:o=n.shadowOffsetX,shadowOffsetY:l=n.shadowOffsetY,blur:c=n.blur,globalCompositeOperation:h=n.globalCompositeOperation}=e;r<=1e-12||(a||o||l?(i.shadowBlur=a*this.dpr,i.shadowColor=s,i.shadowOffsetX=o*this.dpr,i.shadowOffsetY=l*this.dpr,this._clearShadowStyle=!0):this._clearShadowStyle&&(i.shadowBlur=0,i.shadowOffsetX=0,i.shadowOffsetY=0),c?(i.filter=`blur(${c}px)`,this._clearFilterStyle=!0):this._clearFilterStyle&&(i.filter="blur(0px)",this._clearFilterStyle=!1),h?(i.globalCompositeOperation=h,this._clearGlobalCompositeOperationStyle=!0):this._clearGlobalCompositeOperationStyle&&(i.globalCompositeOperation="source-over",this._clearGlobalCompositeOperationStyle=!1))}setStrokeStyle(t,e,n,i,r){if(Array.isArray(r)){if(r.length<=1)return this._setStrokeStyle(t,e,n,i,r[0]);const a=Object.create(r[0]);return r.forEach(((t,e)=>{0!==e&&Object.assign(a,t)})),this._setStrokeStyle(t,e,n,i,a)}return this._setStrokeStyle(t,e,n,i,r)}_setStrokeStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.strokeAttributes);const{strokeOpacity:o=a.strokeOpacity,opacity:l=a.opacity}=n;if(o>1e-12&&l>1e-12){const{lineWidth:c=a.lineWidth,stroke:h=a.stroke,lineJoin:u=a.lineJoin,lineDash:d=a.lineDash,lineCap:f=a.lineCap,miterLimit:p=a.miterLimit}=n;s.globalAlpha=o*l,s.lineWidth=e.getScaledStroke(this,c,this.dpr),s.strokeStyle=e.createColor(this,h,t,i,r),s.lineJoin=u,s.setLineDash(d),s.lineCap=f,s.miterLimit=p}}setTextStyleWithoutAlignBaseline(t,n,i){const r=this.nativeContext;n||(n=this.textAttributes);const{scaleIn3d:a=n.scaleIn3d}=t;t.font?r.font=t.font:r.font=e.getContextFont(t,n,a&&this.camera&&this.camera.getProjectionScale(i));const{fontFamily:s=n.fontFamily,fontSize:o=n.fontSize}=t;this.fontFamily=s,this.fontSize=o,r.textAlign="left",r.textBaseline="alphabetic"}setTextStyle(t,n,i){var r,a;const s=this.nativeContext;n||(n=this.textAttributes),t.font?s.font=t.font:s.font=e.getContextFont(t,n,this.camera&&this.camera.getProjectionScale(i));const{fontFamily:o=n.fontFamily,fontSize:l=n.fontSize}=t;this.fontFamily=o,this.fontSize=l,s.textAlign=null!==(r=t.textAlign)&&void 0!==r?r:n.textAlign,s.textBaseline=null!==(a=t.textBaseline)&&void 0!==a?a:n.textBaseline}draw(){}clearMatrix(t=!0,e=this.dpr){this.setTransformFromMatrix(It,t,e)}onlyTranslate(t=this.dpr){return this.matrix.a===t&&0===this.matrix.b&&0===this.matrix.c&&this.matrix.d===t}release(...t){this.stack.forEach((t=>e.matrixAllocate.free(t))),this.stack.length=0}};Dt.env="browser",Dt=m([e.injectable(),x("design:paramtypes",[Object,Number])],Dt);let Lt=class extends e.BaseCanvas{constructor(t){super(t)}init(t){const{container:n}=t;if("string"==typeof n){const t=e.application.global.getElementById(n);t&&(this._container=t)}else this._container=n;this._context=new Dt(this,this._dpr),this.initStyle()}initStyle(){if(!this.controled)return;const{nativeCanvas:t}=this;t.width=this._pixelWidth,t.height=this._pixelHeight;!t.style||this.setCanvasStyle(t,this._x,this._y,this._displayWidth,this._displayHeight),this._container&&this._container.appendChild(t),this.visiable||this.hide()}hide(){this._nativeCanvas&&(this._nativeCanvas.style.display="none")}show(){this._nativeCanvas&&(this._nativeCanvas.style.display="block")}applyPosition(){const t=this._nativeCanvas;t.style.position="absolute",t.style.top=`${this._y}px`,t.style.left=`${this._x}px`}resetStyle(t){if(!this.controled)return;const{width:e=this._displayWidth,height:n=this._displayHeight,dpr:i=this._dpr,x:r=this._x,y:a=this._y}=t,{nativeCanvas:s}=this;s.width=e*i,s.height=n*i;!s.style||this.setCanvasStyle(s,r,a,e,n),t.id&&(s.id=t.id),this.visiable||this.hide()}setCanvasStyle(t,e,n,i,r){this.controled&&(t.style.width=`${i}px`,t.style.height=`${r}px`)}toDataURL(t,e){return"image/jpeg"===t?this._nativeCanvas.toDataURL(t,e):"image/png"===t?this._nativeCanvas.toDataURL(t):this._nativeCanvas.toDataURL(t,e)}resize(t,e){if(!this.controled)return;this._pixelWidth=t*this._dpr,this._pixelHeight=e*this._dpr,this._displayWidth=t,this._displayHeight=e,this._nativeCanvas.style&&(this._nativeCanvas.style.width=`${t}px`,this._nativeCanvas.style.height=`${e}px`),this._nativeCanvas.width=this._pixelWidth,this._nativeCanvas.height=this._pixelHeight;this._context.dpr=this._dpr}};function _t(t,n){return new e.ContainerModule((i=>{i(e.CanvasFactory).toDynamicValue((()=>e=>new t(e))).whenTargetNamed(t.env),i(e.Context2dFactory).toDynamicValue((()=>(t,e)=>new n(t,e))).whenTargetNamed(n.env)}))}Lt.env="browser",Lt=m([e.injectable(),x("design:paramtypes",[Object])],Lt);const jt=_t(Lt,Dt),Wt=Symbol.for("MathPickerContribution"),Ft=Symbol.for("MathArcPicker"),Gt=Symbol.for("MathAreaPicker"),zt=Symbol.for("MathCirclePicker"),Yt=Symbol.for("MathImagePicker"),Vt=Symbol.for("MathLinePicker"),Nt=Symbol.for("MathPathPicker"),Ht=Symbol.for("MathRectPicker"),Ut=Symbol.for("MathSymbolPicker"),Xt=Symbol.for("MathTextPicker"),qt=Symbol.for("MathPolygonPicker"),$t=Symbol.for("MathGlyphPicker"),Jt=Symbol.for("CanvasArcPicker"),Qt=Symbol.for("CanvasArc3dPicker"),Zt=Symbol.for("CanvasAreaPicker"),Kt=Symbol.for("CanvasCirclePicker"),te=Symbol.for("CanvasImagePicker"),ee=Symbol.for("CanvasLinePicker"),ne=Symbol.for("CanvasPathPicker"),ie=Symbol.for("CanvasRectPicker"),re=Symbol.for("CanvasRect3dPicker"),ae=Symbol.for("CanvasSymbolPicker"),se=Symbol.for("CanvasTextPicker"),oe=Symbol.for("CanvasPolygonPicker"),le=Symbol.for("CanvasPyramid3dPicker"),ce=Symbol.for("CanvasRichTextPicker"),he=Symbol.for("CanvasGlyphPicker"),ue=Symbol.for("CanvasGroupPicker"),de=Symbol.for("CanvasPickerContribution");let fe=class extends e.DefaultPickService{constructor(t,e,n){super(n),this.contributions=t,this.drawContribution=e,this.pickItemInterceptorContributions=n,this.global.hooks.onSetEnv.tap("canvas-picker-service",((t,e,n)=>{this.configure(n,e)})),this.configure(this.global,this.global.env),this.pickerMap=new Map,this.init()}init(){this.contributions.getContributions().forEach((t=>{this.pickerMap.set(t.numberType,t)})),super._init()}configure(t,n){this.pickCanvas=e.canvasAllocate.shareCanvas(),this.pickContext=this.pickCanvas.getContext("2d")}pickItem(t,e,n,i){if(!1===t.attribute.pickable)return null;if(this.InterceptorContributions.length)for(let r=0;r<this.InterceptorContributions.length;r++){const a=this.InterceptorContributions[r];if(a.beforePickItem){const r=a.beforePickItem(t,this,e,i,{parentMatrix:n});if(r)return r}}const r=this.pickerMap.get(t.numberType);if(!r)return null;const a=r.contains(t,e,i)?t:null,s={graphic:a};if(a)return s;if(this.InterceptorContributions.length)for(let r=0;r<this.InterceptorContributions.length;r++){const a=this.InterceptorContributions[r];if(a.afterPickItem){const r=a.afterPickItem(t,this,e,i,{parentMatrix:n});if(r)return r}}return s}};fe=m([e.injectable(),y(0,e.inject(e.ContributionProvider)),y(0,e.named(de)),y(1,e.inject(e.DrawContribution)),y(2,e.inject(e.ContributionProvider)),y(2,e.named(e.PickItemInterceptor)),x("design:paramtypes",[Object,Object,Object])],fe);let pe=class{constructor(){this.type="group",this.numberType=e.GROUP_NUMBER_TYPE}contains(t,e,n){return!1}};pe=m([e.injectable()],pe);let ve=!1;var ge=new e.ContainerModule(((t,n,i,r)=>{ve||(ve=!0,t(ue).to(pe).inSingletonScope(),t(de).toService(ue),e.bindContributionProvider(t,de))}));const me=new e.ContainerModule(((t,n,i,r)=>{i(fe)||t(fe).toSelf().inSingletonScope(),i(e.PickerService)?r(e.PickerService).toService(fe):t(e.PickerService).toService(fe)}));function ye(t){t.load(ge),t.load(me)}var xe;let be=xe=class extends e.BaseWindowHandlerContribution{get container(){return this.canvas.nativeCanvas.parentElement}static GenerateCanvasId(){return`${xe.idprefix}_${xe.prefix_count++}`}constructor(){super(),this.type="browser",this._canvasIsIntersecting=!0,this.global=e.application.global}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return this.canvas.nativeCanvas.getBoundingClientRect()}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t),this.postInit()}postInit(){if(this.global.optimizeVisible)try{this.observerCanvas()}catch(t){console.error("发生错误,该环境不存在IntersectionObserver")}}isElementVisible(t){const e=t.getBoundingClientRect(),n=window.innerWidth||document.documentElement.clientWidth,i=window.innerHeight||document.documentElement.clientHeight;return!(e.right<0||e.bottom<0||e.left>n||e.top>i)}observerCanvas(){this._canvasIsIntersecting=this.isElementVisible(this.canvas.nativeCanvas);const t=new IntersectionObserver(((t,e)=>{t.forEach((t=>{this._canvasIsIntersecting!==t.isIntersecting?(this._canvasIsIntersecting=t.isIntersecting,this._onVisibleChangeCb&&this._onVisibleChangeCb(t.isIntersecting)):this._canvasIsIntersecting=t.isIntersecting}))}));t&&t.observe(this.canvas.nativeCanvas)}createWindowByConfig(t){const e=this.global.createCanvas({width:t.width,height:t.height});let n;if(n="string"==typeof t.container?this.global.getElementById(t.container):t.container?t.container:this.global.getRootElement(),!n)throw new Error("发生错误,containerId可能传入有误");t.offscreen?n=null:n.appendChild(e);const i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:e,container:n,id:xe.GenerateCanvasId(),canvasControled:!0};this.canvas=new Lt(i)}createWindowByCanvas(t){var e;let n;if("string"==typeof t.canvas){if(n=this.global.getElementById(t.canvas),!n)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else n=t.canvas;if(!n)throw new Error("发生错误,传入的canvas不正确");let i=t.width,r=t.height;if(null==i||null==r||!t.canvasControled){const t=n.getBoundingClientRect();i=t.width,r=t.height}let a=t.dpr;if(null==a){a=null!==(e=n.getContext("2d").pixelRatio)&&void 0!==e?e:n.width/i}this.canvas=new Lt({width:i,height:r,dpr:a,nativeCanvas:n,canvasControled:t.canvasControled})}releaseWindow(){this.canvas.release()}resizeWindow(t,e){this.canvas.resize(t,e)}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e,n){return this.canvas.nativeCanvas.addEventListener(t,e,n)}removeEventListener(t,e,n){return this.canvas.nativeCanvas.removeEventListener(t,e,n)}dispatchEvent(t){return this.canvas.nativeCanvas.dispatchEvent(t)}getStyle(){return this.canvas.nativeCanvas.style}setStyle(t){this.canvas.nativeCanvas.style=t}getBoundingClientRect(){const t=this.canvas.nativeCanvas,e=this.getWH();return t.parentElement?this.canvas.nativeCanvas.getBoundingClientRect():{x:0,y:0,width:e.width,height:e.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}isVisible(t){return this._canvasIsIntersecting}onVisibleChange(t){this._onVisibleChangeCb=t}getTopLeft(t){return this.global.getElementTopLeft(this.canvas.nativeCanvas,t)}};be.env="browser",be.idprefix="visactor_window",be.prefix_count=0,be=xe=m([e.injectable(),x("design:paramtypes",[])],be);const Ce=new e.ContainerModule((t=>{t(be).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(be))).whenTargetNamed(be.env)}));class Se{get x1(){return this.dom.getBoundingClientRect().left}get x2(){return this.dom.getBoundingClientRect().right}get y1(){return this.dom.getBoundingClientRect().top}get y2(){return this.dom.getBoundingClientRect().bottom}get width(){return this.dom.getBoundingClientRect().width}get height(){return this.dom.getBoundingClientRect().height}constructor(t){this.dom=t}}function Me(t,e=!1){const n=document.createElement("img");if(n.crossOrigin="anonymous",e){const e=new Blob([t],{type:"image/svg+xml"});t=window.URL.createObjectURL(e)}if(n.src=t,n.complete)return Promise.resolve(n);return new Promise(((t,e)=>{n.onload=()=>{t(n)},n.onerror=()=>{e(new Error("加载失败"))}}))}let we=class extends e.BaseEnvContribution{constructor(){super(),this.type="browser",this.supportEvent=!0;try{this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsTouchEvents=!1,this.supportsPointerEvents=!1,this.supportsPointerEvents=!1}this.applyStyles=!0}mapToCanvasPoint(t,e){var i;if(e){const{clientX:r,clientY:a}=t,s=e.getBoundingClientRect(),o=null===(i=e.getNativeHandler)||void 0===i?void 0:i.call(e).nativeCanvas;let l,c;return o&&(l=s.width/o.offsetWidth,c=s.height/o.offsetHeight),{x:(r-s.left)/(n.isValidNumber(l)?l:1),y:(a-s.top)/(n.isValidNumber(c)?c:1)}}return{x:t.offsetX,y:t.offsetY}}getNativeAABBBounds(t){let e=t;if("string"==typeof t&&(e=(new DOMParser).parseFromString(t,"text/html").firstChild),e.getBoundingClientRect){const t=e.getBoundingClientRect();return new Se(t)}return new n.AABBBounds}removeDom(t){return t.parentElement.removeChild(t),!0}createDom(t){const{tagName:e="div",width:i,height:r,style:a,parent:s}=t,o=document.createElement(e);if(a&&(n.isString(a)?o.setAttribute("style",a):Object.keys(a).forEach((t=>{o.setAttribute(t,a[t])}))),null!=i&&(o.style.width=`${i}px`),null!=r&&(o.style.height=`${r}px`),s){const t=n.isString(s)?this.getElementById(s):s;t&&t.appendChild&&t.appendChild(o)}return o}loadImage(t){return Me(t,!1).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}loadSvg(t){return Me(t,!0).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}createCanvas(t){var n,i;const r=document.createElement("canvas");t.id&&(r.id=null!==(n=t.id)&&void 0!==n?n:e.Generator.GenAutoIncrementId().toString());const a=null!==(i=t.dpr)&&void 0!==i?i:window.devicePixelRatio;return t.width&&t.height&&(r.style.width=`${t.width}px`,r.style.height=`${t.height}px`,r.width=t.width*a,r.height=t.height*a),r}createOffscreenCanvas(t){var e;const n=null!==(e=t.dpr)&&void 0!==e?e:window.devicePixelRatio;return new OffscreenCanvas(t.width*n,t.height*n)}releaseCanvas(t){let e;e="string"==typeof t?document.getElementById(t):t,e&&e.parentElement&&e.parentElement.removeChild(e)}getDevicePixelRatio(){return window.devicePixelRatio}getRequestAnimationFrame(){return window.requestAnimationFrame}getCancelAnimationFrame(){return window.cancelAnimationFrame}addEventListener(t,e,n){return document.addEventListener(t,e,n)}removeEventListener(t,e,n){return document.removeEventListener(t,e,n)}dispatchEvent(t){return document.dispatchEvent(t)}getElementById(t){return document.getElementById(t)}getRootElement(){return document.body}getDocument(){return document}release(...t){}getElementTop(t,e){let n=t.offsetTop,i=t.offsetParent;for(;null!==i;)n+=i.offsetTop,i=i.offsetParent;return n}getElementLeft(t,e){let n=t.offsetLeft,i=t.offsetParent;for(;null!==i;)n+=i.offsetLeft,i=i.offsetParent;return n}getElementTopLeft(t,e){let n=t.offsetTop,i=t.offsetLeft,r=t.offsetParent;for(;null!==r;)n+=r.offsetTop,i+=r.offsetLeft,r=r.offsetParent;return{top:n,left:i}}};we=m([e.injectable(),x("design:paramtypes",[])],we);let ke=!1;const Pe=new e.ContainerModule((t=>{ke||(ke=!0,t(we).toSelf().inSingletonScope(),t(e.EnvContribution).toService(we))}));let Te=!1;function Ee(t,e=!0){Te||(Te=!0,t.load(Pe),t.load(jt),t.load(Ce),e&&ye(t))}let Re=class extends Dt{get globalAlpha(){return this._globalAlpha}set globalAlpha(t){this.nativeContext.globalAlpha=t,this._globalAlpha=t}getImageData(t,e,n,i){return new Promise(((r,a)=>{var s;try{tt.canvasGetImageData({canvasId:null!==(s=this.canvas.nativeCanvas.id)&&void 0!==s?s:this.canvas.id,x:t,y:e,width:n,height:i,success(t){r(t)}})}catch(t){a(t)}}))}draw(){const t=this.nativeContext;t.draw&&(this.drawPromise=new Promise((e=>{t.draw(!0,(()=>{this.drawPromise=null,e(null)}))})))}createPattern(t,e){return null}};Re.env="feishu",Re=m([e.injectable()],Re);let Oe=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new Re(this,this._dpr)}release(...t){}};Oe.env="feishu",Oe=m([e.injectable(),x("design:paramtypes",[Object])],Oe);const Be=_t(Oe,Re);let Ae=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="feishu",this.eventManager=new class{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new Oe(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new Oe({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){const{type:e}=t;return!!this.eventManager.cache[e]&&(t.changedTouches&&t.changedTouches[0]&&(t.offsetX=t.changedTouches[0].x,t.changedTouches[0].offsetX=t.changedTouches[0].x,t.changedTouches[0].clientX=t.changedTouches[0].x,t.offsetY=t.changedTouches[0].y,t.changedTouches[0].offsetY=t.changedTouches[0].y,t.changedTouches[0].clientY=t.changedTouches[0].y),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[e].listener&&this.eventManager.cache[e].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};Ae.env="feishu",Ae=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],Ae);const Ie=new e.ContainerModule((t=>{t(Ae).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(Ae))).whenTargetNamed(Ae.env)}));let De=class extends e.DefaultPickService{constructor(t,e){super(e),this.contributions=t,this.pickItemInterceptorContributions=e,this.global.hooks.onSetEnv.tap("math-picker-service",((t,e,n)=>{this.configure(n,e)})),this.configure(this.global,this.global.env),this.pickerMap=new Map,this.init()}init(){this.contributions.getContributions().forEach((t=>{this.pickerMap.set(t.numberType,t)})),super._init()}configure(t,n){this.pickContext=new e.EmptyContext2d(null,1)}pickItem(t,e,n,i){if(!1===t.attribute.pickable)return null;const r=this.pickerMap.get(t.numberType);if(!r)return null;const a=r.contains(t,e,i)?t:null;return a?{graphic:a}:null}};De=m([e.injectable(),y(0,e.inject(e.ContributionProvider)),y(0,e.named(Wt)),y(1,e.inject(e.ContributionProvider)),y(1,e.named(e.PickItemInterceptor)),x("design:paramtypes",[Object,Object])],De);let Le=!1;var _e=new e.ContainerModule((t=>{Le||(Le=!0,e.bindContributionProvider(t,Wt))}));const je=new e.ContainerModule(((t,n,i,r)=>{i(De)||t(De).toSelf().inSingletonScope(),i(e.PickerService)?r(e.PickerService).toService(De):t(e.PickerService).toService(De)}));function We(t){t.load(_e),t.load(je)}let Fe=class extends e.BaseEnvContribution{constructor(){super(),this.type="feishu",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}getDynamicCanvasCount(){return this.freeCanvasList.length}getStaticCanvasCount(){return 9999}configure(t,e){t.env===this.type&&(t.setActiveEnvContribution(this),function(t,e,n,i,r){const a=tt.getSystemInfoSync().pixelRatio;e.forEach(((e,s)=>{const o=tt.createCanvasContext(e);o.canvas={width:t.width*a,height:t.height*a};const l={width:t.width*a,height:t.height*a,offsetWidth:t.width,offsetHeight:t.height,id:null!=e?e:"",getContext:()=>o,getBoundingClientRect:()=>({height:t.height,width:t.width})};n.set(e,l),s>=i&&r.push(l)}))}(e.domref,e.canvasIdLists,this.canvasMap,e.freeCanvasIdx,this.freeCanvasList))}loadImage(t){return Promise.resolve({data:t,loadState:"success"})}loadSvg(t){return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return tt.getSystemInfoSync().pixelRatio}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}mapToCanvasPoint(t){var e;return(null===(e=null==t?void 0:t.type)||void 0===e?void 0:e.startsWith("mouse"))?t:null}};Fe=m([e.injectable(),x("design:paramtypes",[])],Fe);let Ge=!1;const ze=new e.ContainerModule((t=>{Ge||(Ge=!0,t(Fe).toSelf().inSingletonScope(),t(e.EnvContribution).toService(Fe))}));let Ye=!1;function Ve(t,e=!0){Ye||(Ye=!0,t.load(ze),t.load(Be),t.load(Ie),e&&We(t))}let Ne=class extends Dt{get globalAlpha(){return this._globalAlpha}set globalAlpha(t){this.nativeContext.globalAlpha=t,this._globalAlpha=t}setLineDash(t){const e=arguments,n=this.nativeContext;if(this.nativeContext.setLineDash){const t=e[0];if(0===t[0]&&0===t[1])return;n.setLineDash(t)}}_setStrokeStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.strokeAttributes);const{strokeOpacity:o=a.strokeOpacity,opacity:l=a.opacity}=n;if(o>1e-12&&l>1e-12){const{lineWidth:c=a.lineWidth,stroke:h=a.stroke,lineJoin:u=a.lineJoin,lineDash:d=a.lineDash,lineCap:f=a.lineCap,miterLimit:p=a.miterLimit}=n;s.globalAlpha=o*l,s.lineWidth=e.getScaledStroke(this,c,this.dpr),s.strokeStyle=e.createColor(this,h,t,i,r),s.lineJoin=u,0===d[0]&&0===d[1]||s.setLineDash(d),s.lineCap=f,s.miterLimit=p}}measureText(t,n=e.application.global.measureTextMethod){this.setTransform(1,0,0,1,0,0,!0,e.application.global.devicePixelRatio);return super.measureText(t,n)}createPattern(t,e){return null}draw(){const t=this.nativeContext;this.drawPromise=new Promise((e=>{t.draw(!0,(()=>{this.drawPromise=null,e(null)}))}))}};Ne.env="lynx",Ne=m([e.injectable()],Ne);let He=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new Ne(this,this._dpr)}resize(t,e){this._pixelWidth=t*this._dpr,this._pixelHeight=e*this._dpr,this._displayWidth=t,this._displayHeight=e,this._nativeCanvas.width=this._pixelWidth,this._nativeCanvas.height=this._pixelHeight,this._nativeCanvas.nativeCanvas&&(this._nativeCanvas.nativeCanvas.width=this._pixelWidth,this._nativeCanvas.nativeCanvas.height=this._pixelHeight);this._context.dpr=this._dpr}release(...t){}};He.env="lynx",He=m([e.injectable(),x("design:paramtypes",[Object])],He);let Ue=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="lynx",this.eventManager=new class{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new He(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new He({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){this.canvas.resize(t,e)}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){const{type:e}=t;return!!this.eventManager.cache[e]&&(t.changedTouches&&t.changedTouches[0]&&(t.offsetX=t.changedTouches[0].x,t.changedTouches[0].offsetX=t.changedTouches[0].x,t.changedTouches[0].clientX=t.changedTouches[0].x,t.offsetY=t.changedTouches[0].y,t.changedTouches[0].offsetY=t.changedTouches[0].y,t.changedTouches[0].clientY=t.changedTouches[0].y),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[e].listener&&this.eventManager.cache[e].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};Ue.env="lynx",Ue=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],Ue);const Xe=new e.ContainerModule((t=>{t(Ue).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(Ue))).whenTargetNamed(Ue.env)})),qe=_t(He,Ne);let $e=!1;try{$e=!!lynx.createCanvasNG}catch(t){}let Je=class extends e.BaseEnvContribution{constructor(){super(),this.type="lynx",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}configure(t,e){t.env===this.type&&(t.setActiveEnvContribution(this),function(t,e,n,i,r){const a=SystemInfo.pixelRatio;e.forEach(((e,s)=>{const o=$e?lynx.createCanvasNG(e):lynx.createCanvas(e);o.width=t.width*a,o.height=t.height*a,$e&&o.attachToCanvasView(e);const l=o.getContext("2d");l.draw=(t,e)=>{e()};const c={width:t.width*a,height:t.height*a,offsetWidth:t.width,offsetHeight:t.height,id:null!=e?e:"",getContext:()=>l,getBoundingClientRect:()=>({height:t.height,width:t.width}),nativeCanvas:o};n.set(e,c),s>=i&&r.push(c)}))}(e.domref,e.canvasIdLists,this.canvasMap,e.freeCanvasIdx,this.freeCanvasList))}getDynamicCanvasCount(){return this.freeCanvasList.length}getStaticCanvasCount(){return 9999}loadImage(t){return function(t,e=!1){if(e)return Promise.reject();const n=lynx.createImage(t);return new Promise(((t,e)=>{n.onload=()=>{t(n)},n.onerror=()=>{e(new Error("加载失败"))}}))}(t,!1).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}loadSvg(t){return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return SystemInfo.pixelRatio}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}};Je=m([e.injectable(),x("design:paramtypes",[])],Je);let Qe=!1;const Ze=new e.ContainerModule((t=>{Qe||(Qe=!0,t(Je).toSelf().inSingletonScope(),t(e.EnvContribution).toService(Je))}));let Ke=!1;function tn(t,e=!0){Ke||(Ke=!0,t.load(Ze),t.load(qe),t.load(Xe),e&&We(t))}let en=class extends Dt{constructor(t,e){super(t,e);const i=t.nativeCanvas.getContext("2d");if(!i)throw new Error("发生错误,获取2d上下文失败");this.nativeContext=i,this.canvas=t,this.matrix=new n.Matrix(1,0,0,1,0,0),this.stack=[],this.dpr=null!=e?e:1}release(...t){}};en.env="node",en=m([e.injectable(),x("design:paramtypes",[Object,Number])],en);let nn=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new en(this,this._dpr),this.nativeCanvas.width=this._pixelWidth,this.nativeCanvas.height=this._pixelHeight}release(...t){this._nativeCanvas.release&&n.isFunction(this._nativeCanvas.release)&&this._nativeCanvas.release()}};nn.env="node",nn=m([e.injectable(),x("design:paramtypes",[Object])],nn);const rn=_t(nn,en);let an=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="node"}getTitle(){return""}getWH(){return{width:this.canvas.displayWidth,height:this.canvas.displayHeight}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!0};this.canvas=new nn(i)}createWindowByCanvas(t){const e=t.canvas;let n=t.width,i=t.height;null!=n&&null!=i&&t.canvasControled||(n=e.width,i=e.height),this.canvas=new nn({width:n,height:i,dpr:1,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){this.canvas.release()}resizeWindow(t,e){this.canvas.resize(t,e)}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}getImageBuffer(t="image/png"){return this.canvas.nativeCanvas.toBuffer(t)}addEventListener(t,e,n){}dispatchEvent(t){return!0}removeEventListener(t,e,n){}getStyle(){}setStyle(t){}getBoundingClientRect(){return null}clearViewBox(t,e){}};an.env="node",an=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],an);const sn=new e.ContainerModule((t=>{t(an).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(an))).whenTargetNamed(an.env)}));let on=class extends e.BaseEnvContribution{constructor(){super(...arguments),this.type="node",this._lastTime=0,this.supportEvent=!1}configure(t,e){t.env===this.type&&(t.setActiveEnvContribution(this),this.pkg=e)}getDynamicCanvasCount(){return 0}getStaticCanvasCount(){return 999}loadJson(t){const e=fetch(t).then((t=>t.json()));return e.then((t=>({data:t,state:"success"}))).catch((()=>({data:null,state:"fail"}))),e}loadArrayBuffer(t){return fetch(t).then((t=>t.arrayBuffer())).then((t=>({data:t,loadState:"success"}))).catch((()=>({data:null,loadState:"fail"})))}loadImage(t){const{loadImage:e}=this.pkg;return e?e(t).then((t=>({loadState:t?"success":"fail",data:t}))).catch((()=>({loadState:"fail",data:null}))):Promise.reject(new Error("node-canvas loadImage could not be found!"))}loadSvg(t){const e=this.pkg.Resvg;if(!e)return Promise.reject(new Error("@resvg/resvg-js svgParser could not be found!"));const n=new e(t).render().asPng();return this.loadImage(n)}createCanvas(t){return this.pkg.createCanvas(t.width,t.height)}releaseCanvas(t){}getDevicePixelRatio(){return 1}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){}removeEventListener(t,e,n){}getElementById(t){return null}getRootElement(){return null}dispatchEvent(t){}release(...t){}createOffscreenCanvas(t){}};on=m([e.injectable()],on);let ln=!1;const cn=new e.ContainerModule((t=>{ln||(ln=!0,t(on).toSelf().inSingletonScope(),t(e.EnvContribution).toService(on))}));let hn=!1;function un(t,e=!0){hn||(hn=!0,t.load(cn),t.load(rn),t.load(sn))}let dn=class extends Dt{get globalAlpha(){return this._globalAlpha}set globalAlpha(t){this.nativeContext.setGlobalAlpha(t),this._globalAlpha=t}draw(){this.nativeContext.draw()}strokeText(t,e,n){}_setCommonStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.fillAttributes);const{fillOpacity:o=a.fillOpacity,opacity:l=a.opacity,fill:c=a.fill}=n;o>1e-12&&l>1e-12&&(s.setGlobalAlpha(o*l),s.setFillStyle(e.createColor(this,c,t,i,r)))}_setStrokeStyle(t,n,i,r,a){const s=this.nativeContext;a||(a=this.strokeAttributes);const{strokeOpacity:o=a.strokeOpacity,opacity:l=a.opacity}=n;if(o>1e-12&&l>1e-12){const{lineWidth:c=a.lineWidth,stroke:h=a.stroke,lineJoin:u=a.lineJoin,lineDash:d=a.lineDash,lineCap:f=a.lineCap,miterLimit:p=a.miterLimit}=n;s.setGlobalAlpha(o*l),s.setLineWidth(e.getScaledStroke(this,c,this.dpr)),s.setStrokeStyle(e.createColor(this,h,t,i,r)),s.setLineJoin(u),s.setLineDash(d),s.setLineCap(f),s.setMiterLimit(p)}}setTextStyleWithoutAlignBaseline(t,n){var i;const r=this.nativeContext;n||(n=this.textAttributes),t.font?r.font=t.font:r.font=e.getContextFont(t,n),r.setFontSize(null!==(i=t.fontSize)&&void 0!==i?i:n.fontSize)}setTextStyle(t,n){var i,r;const a=this.nativeContext;n||(n=this.textAttributes),t.font?a.font=t.font:a.font=e.getContextFont(t,n),a.setTextAlign(null!==(i=t.textAlign)&&void 0!==i?i:n.textAlign),a.setTextBaseline(null!==(r=t.textBaseline)&&void 0!==r?r:n.textBaseline)}createConicGradient(t,e,n,i){return null}createPattern(t,e){return null}};dn.env="taro",dn=m([e.injectable()],dn);let fn=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new dn(this,this._dpr)}release(...t){}};fn.env="taro",fn=m([e.injectable(),x("design:paramtypes",[Object])],fn);const pn=_t(fn,dn);let vn=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="taro",this.eventManager=new class{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new fn(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new fn({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){const{type:e}=t;return!!this.eventManager.cache[e]&&(t.changedTouches.length>0&&(t.changedTouches.forEach(((e,n)=>{t.changedTouches[n]=Object.assign(Object.assign({},t.changedTouches[n]),{offsetX:e.x,offsetY:e.y})})),t.offsetX=t.changedTouches[0].offsetX,t.offsetY=t.changedTouches[0].offsetY),t.touches.length>0&&t.touches.forEach(((e,n)=>{t.touches[n]=Object.assign(Object.assign({},t.touches[n]),{offsetX:e.x,offsetY:e.y})})),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[e].listener&&this.eventManager.cache[e].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};vn.env="taro",vn=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],vn);const gn=new e.ContainerModule((t=>{t(vn).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(vn))).whenTargetNamed(vn.env)}));let mn=class extends e.BaseEnvContribution{constructor(){super(),this.type="taro",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}getDynamicCanvasCount(){return this.freeCanvasList.length}getStaticCanvasCount(){return 9999}configure(t,e){var n,i,r,a,s,o,l;t.env===this.type&&(t.setActiveEnvContribution(this),n=e.domref,i=e.canvasIdLists,r=this.canvasMap,a=e.freeCanvasIdx,s=this.freeCanvasList,o=e.taro,l=e.pixelRatio,i.forEach(((t,e)=>{const i=o.createCanvasContext(t);i.canvas={width:n.width*l,height:n.height*l},i.createRadialGradient||(i.createRadialGradient=(...t)=>i.createCircularGradient(...t)),!i.getImageData&&o.canvasGetImageData&&(i.getImageData=(e,n,i,r)=>new Promise(((a,s)=>{try{o.canvasGetImageData({canvasId:t,x:e,y:n,width:i,height:r,success(t){a(t)}})}catch(t){s(t)}})));const c={id:t,width:n.width*l,height:n.height*l,offsetWidth:n.width,offsetHeight:n.height,getContext:()=>i,getBoundingClientRect:()=>({height:n.height,width:n.width})};return r.set(t,c),e>=a&&s.push(c),c})),this.taro=e.taro,this.pixelRatio=e.pixelRatio)}loadImage(t){return Promise.resolve({data:t,loadState:"success"})}loadSvg(t){const e=window||globalThis;if(e.DOMParser){const n=(new e.DOMParser).parseFromString(t,"image/svg+xml").children[0],i=(new XMLSerializer).serializeToString(n),r=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`;return Promise.resolve({data:r,loadState:"success"})}if(e.Blob){const n=new e.Blob([t],{type:"image/svg+xml"}),i=e.URL.createObjectURL(n);return Promise.resolve({data:i,loadState:"success"})}return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return this.pixelRatio}getRequestAnimationFrame(){return requestAnimationFrame}getCancelAnimationFrame(){return cancelAnimationFrame}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}};mn=m([e.injectable(),x("design:paramtypes",[])],mn);let yn=!1;const xn=new e.ContainerModule((t=>{yn||(yn=!0,t(mn).toSelf().inSingletonScope(),t(e.EnvContribution).toService(mn))}));let bn=!1;function Cn(t,e=!0){bn||(bn=!0,t.load(xn),t.load(pn),t.load(gn),e&&We(t))}let Sn=class extends Dt{draw(){}createPattern(t,e){return null}};Sn.env="wx",Sn=m([e.injectable()],Sn);let Mn=class extends e.BaseCanvas{constructor(t){super(t)}init(){this._context=new Sn(this,this._dpr)}release(...t){}};Mn.env="wx",Mn=m([e.injectable(),x("design:paramtypes",[Object])],Mn);const wn=_t(Mn,Sn);class kn{constructor(){this.cache={}}addEventListener(t,e){t&&e&&(this.cache[t]=this.cache[t]||{listener:[]},this.cache[t].listener.push(e))}removeEventListener(t,e){if(!t||!e)return;if(!this.cache[t])return;const n=this.cache[t].listener.findIndex((t=>t===e));n>=0&&this.cache[t].listener.splice(n,1)}cleanEvent(){this.cache={}}}let Pn=class extends e.BaseWindowHandlerContribution{get container(){return null}constructor(t){super(),this.global=t,this.type="wx",this.eventManager=new kn}getTitle(){return this.canvas.id.toString()}getWH(){return{width:this.canvas.width/(this.canvas.dpr||1),height:this.canvas.height/(this.canvas.dpr||1)}}getXY(){return{x:0,y:0}}createWindow(t){t.canvas?this.createWindowByCanvas(t):this.createWindowByConfig(t)}createWindowByConfig(t){const n=this.global.createCanvas({width:t.width,height:t.height}),i={width:t.width,height:t.height,dpr:t.dpr,nativeCanvas:n,id:e.Generator.GenAutoIncrementId().toString(),canvasControled:!1};this.canvas=new Mn(i)}createWindowByCanvas(t){let e;if("string"==typeof t.canvas){if(e=this.global.getElementById(t.canvas),!e)throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom")}else e=t.canvas;let n=t.width,i=t.height;if(null==n||null==i||!t.canvasControled){const t=e.getBoundingClientRect();n=t.width,i=t.height}let r=t.dpr;null==r&&(r=e.width/n),this.canvas=new Mn({width:n,height:i,dpr:r,nativeCanvas:e,canvasControled:t.canvasControled})}releaseWindow(){}resizeWindow(t,e){}setDpr(t){this.canvas.dpr=t}getContext(){return this.canvas.getContext()}getNativeHandler(){return this.canvas}getDpr(){return this.canvas.dpr}addEventListener(t,e){this.eventManager.addEventListener(t,e)}removeEventListener(t,e){this.eventManager.removeEventListener(t,e)}dispatchEvent(t){var e,n,i,r;const{type:a}=t;return!!this.eventManager.cache[a]&&(t.changedTouches&&t.changedTouches[0]&&(t.offsetX=t.changedTouches[0].x,t.changedTouches[0].offsetX=null!==(e=t.changedTouches[0].x)&&void 0!==e?e:t.changedTouches[0].pageX,t.changedTouches[0].clientX=null!==(n=t.changedTouches[0].x)&&void 0!==n?n:t.changedTouches[0].pageX,t.offsetY=t.changedTouches[0].y,t.changedTouches[0].offsetY=null!==(i=t.changedTouches[0].y)&&void 0!==i?i:t.changedTouches[0].pageY,t.changedTouches[0].clientY=null!==(r=t.changedTouches[0].y)&&void 0!==r?r:t.changedTouches[0].pageY),t.preventDefault=()=>{},t.stopPropagation=()=>{},this.eventManager.cache[a].listener&&this.eventManager.cache[a].listener.forEach((e=>{e(t)})),!0)}getStyle(){return{}}setStyle(t){}getBoundingClientRect(){const t=this.getWH();return{x:0,y:0,width:t.width,height:t.height,left:0,top:0,right:0,bottom:0}}clearViewBox(t,e){const n=this.getContext(),i=this.getDpr();n.nativeContext.save(),n.nativeContext.setTransform(i,0,0,i,0,0),n.clearRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1),e&&(n.fillStyle=e,n.fillRect(t.x1,t.y1,t.x2-t.x1,t.y2-t.y1)),n.nativeContext.restore()}};Pn.env="wx",Pn=m([e.injectable(),y(0,e.inject(e.VGlobal)),x("design:paramtypes",[Object])],Pn);const Tn=new e.ContainerModule((t=>{t(Pn).toSelf(),t(e.WindowHandlerContribution).toDynamicValue((t=>t.container.get(Pn))).whenTargetNamed(Pn.env)}));let En=class extends e.BaseEnvContribution{constructor(){super(),this.type="wx",this.supportEvent=!0,this.canvasMap=new Map,this.freeCanvasList=[],this.canvasIdx=0,this.supportsTouchEvents=!0;try{this.supportsPointerEvents=!!globalThis.PointerEvent,this.supportsMouseEvents=!!globalThis.MouseEvent}catch(t){this.supportsPointerEvents=!1,this.supportsMouseEvents=!1}this.applyStyles=!0}configure(t,e){if(t.env===this.type)return t.setActiveEnvContribution(this),function(t,e,n,i,r,a){return b(this,void 0,void 0,(function*(){const t=wx.getSystemInfoSync().pixelRatio;for(let s=0;s<e.length;s++){const o=e[s];yield new Promise((e=>{let l=wx.createSelectorQuery();a&&(l=l.in(a)),l.select(`#${o}`).fields({node:!0,size:!0}).exec((a=>{if(!a[0])return;const l=a[0].node,c=a[0].width,h=a[0].height;l.width=c*t,l.height=h*t,n.set(o,l),s>=i&&r.push(l),e(null)}))}))}}))}(e.domref,e.canvasIdLists,this.canvasMap,e.freeCanvasIdx,this.freeCanvasList,e.component).then((()=>{}))}loadImage(t){return Promise.resolve({data:t,loadState:"success"})}loadSvg(t){return Promise.reject()}createCanvas(t){const e=this.freeCanvasList[this.canvasIdx]||this.freeCanvasList[this.freeCanvasList.length-1];return this.canvasIdx++,e}createOffscreenCanvas(t){}releaseCanvas(t){}getDevicePixelRatio(){return wx.getSystemInfoSync().pixelRatio}getRequestAnimationFrame(){return function(t){return e.rafBasedSto.call(t)}}getCancelAnimationFrame(){return t=>{e.rafBasedSto.clear(t)}}addEventListener(t,e,n){return null}removeEventListener(t,e,n){return null}dispatchEvent(t){return null}getElementById(t){return this.canvasMap.get(t)}getRootElement(){return null}getDocument(){return null}release(...t){}mapToCanvasPoint(t){var e;return(null===(e=null==t?void 0:t.type)||void 0===e?void 0:e.startsWith("mouse"))?t:null}};En=m([e.injectable(),x("design:paramtypes",[])],En);let Rn=!1;const On=new e.ContainerModule((t=>{Rn||(Rn=!0,t(En).toSelf().inSingletonScope(),t(e.EnvContribution).toService(En))}));let Bn=!1;function An(t,e=!0){Bn||(Bn=!0,t.load(On),t.load(wn),t.load(Tn),e&&We(t))}function In(t){Ln(t)}let Dn=!1;function Ln(t){Dn||(Dn=!0,Ee(t,!1),Ve(t,!1),tn(t,!1),un(t,!1),Cn(t,!1),An(t,!1),ye(t),e.vglobal.hooks.onSetEnv.tap("loadMathPicker",((e,n)=>{"browser"!==n&&We(t)})))}let _n=class{constructor(t){this.canvasRenderer=t,this.type="arc",this.numberType=e.ARC_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).arc;r.highPerformanceSave();let{x:s=a.x,y:o=a.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,i,a)=>{if(l)return!0;const s=i.lineWidth||a.lineWidth,o=i.pickStrokeBuffer||a.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,s+o,r.dpr),l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};_n=m([e.injectable(),y(0,e.inject(e.ArcRender)),x("design:paramtypes",[Object])],_n);let jn=!1;const Wn=new e.ContainerModule(((t,e,n,i)=>{jn||(jn=!0,t(Jt).to(_n).inSingletonScope(),t(de).toService(Jt))}));let Fn=class{constructor(t){this.canvasRenderer=t,this.type="arc",this.numberType=e.ARC_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).arc;r.highPerformanceSave();let{x:s=a.x,y:o=a.y}=t.attribute;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};Fn=m([e.injectable(),y(0,e.inject(e.ArcRender)),x("design:paramtypes",[Object])],Fn);let Gn=!1;const zn=new e.ContainerModule(((t,e,n,i)=>{Gn||(Gn=!0,t(Ft).to(Fn).inSingletonScope(),t(Wt).toService(Ft))})),Yn=new n.AABBBounds;let Vn=class{constructor(t){this.canvasRenderer=t,this.type="rect",this.numberType=e.RECT_NUMBER_TYPE}contains(t,i,r){if(!t.AABBBounds.containsPoint(i))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:a}=null!=r?r:{};if(!a)return!1;const s=e.getTheme(t).rect,{cornerRadius:o=s.cornerRadius}=t.attribute;let{x:l=s.x,y:c=s.y}=t.attribute;a.highPerformanceSave();let h=!0;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(s);l+=e.x,c+=e.y,a.setTransformForCurrent()}else l=0,c=0,h=!1,a.transformFromMatrix(t.transMatrix,!0);let u=!0;if(!h||t.shadowRoot||n.isNumber(o,!0)&&0!==o||n.isArray(o)&&o.some((t=>0!==t)))u=!1,this.canvasRenderer.drawShape(t,a,l,c,{},null,((t,e,n)=>!!u||(u=t.isPointInPath(i.x,i.y),u)),((t,n,r)=>{if(u)return!0;const s=n.lineWidth||r.lineWidth,o=n.pickStrokeBuffer||r.pickStrokeBuffer;return a.lineWidth=e.getScaledStroke(a,s+o,a.dpr),u=t.isPointInStroke(i.x,i.y),u}));else{const{fill:e=s.fill,stroke:n=s.stroke,lineWidth:r=s.lineWidth}=t.attribute;if(e)u=!0;else if(n){const e=t.AABBBounds;Yn.setValue(e.x1,e.y1,e.x2,e.y2),Yn.expand(-r/2),u=!Yn.containsPoint(i)}}return a.highPerformanceRestore(),u}};Vn=m([e.injectable(),y(0,e.inject(e.RectRender)),x("design:paramtypes",[Object])],Vn);let Nn=!1;const Hn=new e.ContainerModule(((t,e,n,i)=>{Nn||(Nn=!0,t(ie).to(Vn).inSingletonScope(),t(de).toService(ie))})),Un=new n.AABBBounds;let Xn=class{constructor(t){this.canvasRenderer=t,this.type="rect",this.numberType=e.RECT_NUMBER_TYPE}contains(t,i,r){if(!t.AABBBounds.containsPoint(i))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:a}=null!=r?r:{};if(!a)return!1;const s=e.getTheme(t).rect,{cornerRadius:o=s.cornerRadius}=t.attribute;let{x:l=s.x,y:c=s.y}=t.attribute;a.highPerformanceSave();let h=!0;if(t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(s);l+=e.x,c+=e.y,a.setTransformForCurrent()}else l=0,c=0,h=!1,a.transformFromMatrix(t.transMatrix,!0);let u=!0;if(!h||n.isNumber(o,!0)&&0!==o||n.isArray(o)&&o.some((t=>0!==t)))u=!1,this.canvasRenderer.drawShape(t,a,l,c,{},null,((t,e,n)=>!!u||(u=t.isPointInPath(i.x,i.y),u)),((t,e,n)=>{if(u)return!0;const r=e.lineWidth||n.lineWidth,s=e.pickStrokeBuffer||n.pickStrokeBuffer;return a.lineWidth=r+s,u=t.isPointInStroke(i.x,i.y),u}));else if(u){const{fill:e=s.fill,stroke:n=s.stroke,lineWidth:r=s.lineWidth}=t.attribute;if(e)u=!0;else if(n){const e=t.AABBBounds;Un.setValue(e.x1,e.y1,e.x2,e.y2),Un.expand(-r/2),u=!Un.containsPoint(i)}}return a.highPerformanceRestore(),u}};Xn=m([e.injectable(),y(0,e.inject(e.RectRender)),x("design:paramtypes",[Object])],Xn);let qn=!1;const $n=new e.ContainerModule(((t,e,n,i)=>{qn||(qn=!0,t(Ht).to(Xn).inSingletonScope(),t(Wt).toService(Ht))}));let Jn=class extends e.BaseRender{};Jn=m([e.injectable()],Jn);let Qn=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="line",this.numberType=e.LINE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;r.highPerformanceSave();const a=e.getTheme(t).line,s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,{},null,(t=>!!d||(d=t.isPointInPath(u.x,u.y),d)),((t,n,i)=>{if(d)return!0;const a=n.lineWidth||i.lineWidth,s=n.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,a+s,r.dpr),d=t.isPointInStroke(u.x,u.y),d})),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};Qn=m([e.injectable(),y(0,e.inject(e.LineRender)),x("design:paramtypes",[Object])],Qn);let Zn=!1;const Kn=new e.ContainerModule(((t,e,n,i)=>{Zn||(Zn=!0,t(ee).to(Qn).inSingletonScope(),t(de).toService(ee))}));let ti=class{constructor(t){this.canvasRenderer=t,this.type="line",this.numberType=e.LINE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).line;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,(t=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};ti=m([e.injectable(),y(0,e.inject(e.LineRender)),x("design:paramtypes",[Object])],ti);let ei=!1;const ni=new e.ContainerModule(((t,e,n,i)=>{ei||(ei=!0,t(Vt).to(ti).inSingletonScope(),t(Wt).toService(Vt))}));let ii=class{constructor(t){this.canvasRenderer=t,this.type="area",this.numberType=e.AREA_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).area;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,(t=>!!l||(l=t.isPointInPath(n.x,n.y),l))),r.highPerformanceRestore(),l}};ii=m([e.injectable(),y(0,e.inject(e.AreaRender)),x("design:paramtypes",[Object])],ii);let ri=!1;const ai=new e.ContainerModule(((t,e,n,i)=>{ri||(ri=!0,t(Zt).to(ii).inSingletonScope(),t(de).toService(Zt))}));let si=class{constructor(t){this.canvasRenderer=t,this.type="area",this.numberType=e.AREA_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).area;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,(t=>!!l||(l=t.isPointInPath(n.x,n.y),l))),r.highPerformanceRestore(),l}};si=m([e.injectable(),y(0,e.inject(e.AreaRender)),x("design:paramtypes",[Object])],si);let oi=!1;const li=new e.ContainerModule(((t,e,n,i)=>{oi||(oi=!0,t(Gt).to(si).inSingletonScope(),t(Wt).toService(Gt))}));let ci=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="symbol",this.numberType=e.SYMBOL_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=t.getParsedPath();if(!r.camera){if(!t.AABBBounds.containsPoint(n))return!1;if(a.isSvg||"imprecise"===t.attribute.pickMode)return!0}r.highPerformanceSave();const s=e.getTheme(t).symbol,o=this.transform(t,s,r),{x:l,y:c,z:h,lastModelMatrix:u}=o;let d=n;if(r.camera){d=n.clone();const e=t.parent.globalTransMatrix;d.x=e.a*n.x+e.c*n.y+e.e,d.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=h;let f=!1;return this.canvasRenderer.drawShape(t,r,l,c,{},null,((t,e,n)=>!!f||(f=t.isPointInPath(d.x,d.y),f)),((t,n,i)=>{if(f)return!0;const a=n.lineWidth||i.lineWidth,s=n.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,a+s,r.dpr),f=t.isPointInStroke(d.x,d.y),f})),this.canvasRenderer.z=0,r.modelMatrix!==u&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=u,r.highPerformanceRestore(),f}};ci=m([e.injectable(),y(0,e.inject(e.SymbolRender)),x("design:paramtypes",[Object])],ci);let hi=!1;const ui=new e.ContainerModule(((t,e,n,i)=>{hi||(hi=!0,t(ae).to(ci).inSingletonScope(),t(de).toService(ae))}));let di=class{constructor(t){this.canvasRenderer=t,this.type="symbol",this.numberType=e.SYMBOL_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).symbol;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};di=m([e.injectable(),y(0,e.inject(e.SymbolRender)),x("design:paramtypes",[Object])],di);let fi=!1;const pi=new e.ContainerModule(((t,e,n,i)=>{fi||(fi=!0,t(Ut).to(di).inSingletonScope(),t(Wt).toService(Ut))}));let vi=class{constructor(t){this.canvasRenderer=t,this.type="circle",this.numberType=e.CIRCLE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).circle;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,i,a)=>{if(l)return!0;const s=i.lineWidth||a.lineWidth,o=i.pickStrokeBuffer||a.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,s+o,r.dpr),l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};vi=m([e.injectable(),y(0,e.inject(e.CircleRender)),x("design:paramtypes",[Object])],vi);let gi=!1;const mi=new e.ContainerModule(((t,e,n,i)=>{gi||(gi=!0,t(Kt).to(vi).inSingletonScope(),t(de).toService(Kt))}));let yi=class{constructor(t){this.canvasRenderer=t,this.type="circle",this.numberType=e.CIRCLE_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).circle;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};yi=m([e.injectable(),y(0,e.inject(e.CircleRender)),x("design:paramtypes",[Object])],yi);let xi=!1;const bi=new e.ContainerModule(((t,e,n,i)=>{xi||(xi=!0,t(zt).to(yi).inSingletonScope(),t(Wt).toService(zt))}));let Ci=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="text",this.numberType=e.TEXT_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=t.AABBBounds;if(!r.camera)return!!a.containsPoint(n);r.highPerformanceSave();const s=e.getTheme(t).text,{keepDirIn3d:o=s.keepDirIn3d}=t.attribute,l=!o,c=this.transform(t,s,r,l),{x:h,y:u,z:d,lastModelMatrix:f}=c;this.canvasRenderer.z=d;let p=n;if(r.camera){p=n.clone();const e=t.parent.globalTransMatrix;p.x=e.a*n.x+e.c*n.y+e.e,p.y=e.b*n.x+e.d*n.y+e.f}let v=!1;return this.canvasRenderer.drawShape(t,r,h,u,{},null,((n,i,r)=>{if(v)return!0;const{fontSize:a=s.fontSize,textBaseline:o=s.textBaseline,textAlign:l=s.textAlign}=t.attribute,c=t.AABBBounds,f=c.height(),g=c.width(),m=e.textLayoutOffsetY(o,f,a),y=e.textDrawOffsetX(l,g);return n.rect(y+h,m+u,g,f,d),v=n.isPointInPath(p.x,p.y),v}),((t,e,n)=>v)),this.canvasRenderer.z=0,r.modelMatrix!==f&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=f,r.highPerformanceRestore(),v}};Ci=m([e.injectable(),y(0,e.inject(e.TextRender)),x("design:paramtypes",[Object])],Ci);let Si=!1;const Mi=new e.ContainerModule(((t,e,n,i)=>{Si||(Si=!0,t(se).to(Ci).inSingletonScope(),t(de).toService(se))}));let wi=class{constructor(){this.type="text",this.numberType=e.TEXT_NUMBER_TYPE}contains(t,e,n){return!!t.AABBBounds.containsPoint(e)}};wi=m([e.injectable()],wi);let ki=!1;const Pi=new e.ContainerModule(((t,e,n,i)=>{ki||(ki=!0,t(Xt).to(wi).inSingletonScope(),t(Wt).toService(Xt))}));let Ti=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="path",this.numberType=e.PATH_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).path;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,{},null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d)),((t,n,i)=>{if(d)return!0;const a=n.lineWidth||i.lineWidth,s=n.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,a+s,r.dpr),d=t.isPointInStroke(u.x,u.y),d})),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};Ti=m([e.injectable(),y(0,e.inject(e.PathRender)),x("design:paramtypes",[Object])],Ti);let Ei=!1;const Ri=new e.ContainerModule(((t,e,n,i)=>{Ei||(Ei=!0,t(ne).to(Ti).inSingletonScope(),t(de).toService(ne))}));let Oi=class{constructor(t){this.canvasRenderer=t,this.type="path",this.numberType=e.PATH_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.containsPoint(n))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).path;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};Oi=m([e.injectable(),y(0,e.inject(e.PathRender)),x("design:paramtypes",[Object])],Oi);let Bi=!1;const Ai=new e.ContainerModule(((t,e,n,i)=>{Bi||(Bi=!0,t(Nt).to(Oi).inSingletonScope(),t(Wt).toService(Nt))}));let Ii=class{constructor(t){this.canvasRenderer=t,this.type="polygon",this.numberType=e.POLYGON_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.contains(n.x,n.y))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).polygon;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,i,a)=>{if(l)return!0;const s=i.lineWidth||a.lineWidth,o=i.pickStrokeBuffer||a.pickStrokeBuffer;return r.lineWidth=e.getScaledStroke(r,s+o,r.dpr),l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};Ii=m([e.injectable(),y(0,e.inject(e.PolygonRender)),x("design:paramtypes",[Object])],Ii);let Di=!1;const Li=new e.ContainerModule(((t,e,n,i)=>{Di||(Di=!0,t(oe).to(Ii).inSingletonScope(),t(de).toService(oe))}));let _i=class{constructor(t){this.canvasRenderer=t,this.type="polygon",this.numberType=e.POLYGON_NUMBER_TYPE}contains(t,n,i){if(!t.AABBBounds.contains(n.x,n.y))return!1;const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).polygon;let{x:s=a.x,y:o=a.y}=t.attribute;if(r.highPerformanceSave(),t.transMatrix.onlyTranslate()){const e=t.getOffsetXY(a);s+=e.x,o+=e.y,r.setTransformForCurrent()}else s=0,o=0,r.transformFromMatrix(t.transMatrix,!0);let l=!1;return this.canvasRenderer.drawShape(t,r,s,o,{},null,((t,e,i)=>!!l||(l=t.isPointInPath(n.x,n.y),l)),((t,e,i)=>{if(l)return!0;const a=e.lineWidth||i.lineWidth,s=e.pickStrokeBuffer||i.pickStrokeBuffer;return r.lineWidth=a+s,l=t.isPointInStroke(n.x,n.y),l})),r.highPerformanceRestore(),l}};_i=m([e.injectable(),y(0,e.inject(e.PolygonRender)),x("design:paramtypes",[Object])],_i);let ji=!1;const Wi=new e.ContainerModule(((t,e,n,i)=>{ji||(ji=!0,t(qt).to(_i).inSingletonScope(),t(Wt).toService(qt))}));let Fi=class{constructor(t){this.canvasRenderer=t,this.type="glyph",this.numberType=e.GLYPH_NUMBER_TYPE}contains(t,e,n){if(!t.AABBBounds.containsPoint(e))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:i}=null!=n?n:{};if(!i)return!1;const r=null==n?void 0:n.pickerService;if(r){let i=!1;return t.getSubGraphic().forEach((t=>{if(i)return;const a=r.pickItem(t,e,null,n);i=!(!a||!a.graphic)})),i}return!1}};Fi=m([e.injectable(),y(0,e.inject(e.GlyphRender)),x("design:paramtypes",[Object])],Fi);let Gi=!1;const zi=new e.ContainerModule(((t,e,n,i)=>{Gi||(Gi=!0,t(he).to(Fi).inSingletonScope(),t(de).toService(he))}));let Yi=class{constructor(t){this.canvasRenderer=t,this.type="glyph",this.numberType=e.GLYPH_NUMBER_TYPE}contains(t,e,n){if(!t.AABBBounds.containsPoint(e))return!1;if("imprecise"===t.attribute.pickMode)return!0;const{pickContext:i}=null!=n?n:{};if(!i)return!1;const r=null==n?void 0:n.pickerService;if(r){let i=!1;return t.getSubGraphic().forEach((t=>{i||(i=!!r.pickItem(t,e,null,n))})),i}return!1}};Yi=m([e.injectable(),y(0,e.inject(e.GlyphRender)),x("design:paramtypes",[Object])],Yi);let Vi=!1;const Ni=new e.ContainerModule(((t,e,n,i)=>{Vi||(Vi=!0,t($t).to(Yi).inSingletonScope(),t(Yi).toService($t))}));let Hi=class{constructor(t){this.canvasRenderer=t,this.type="richtext",this.numberType=e.RICHTEXT_NUMBER_TYPE}contains(t,e,n){return!!t.AABBBounds.containsPoint(e)}};Hi=m([e.injectable(),y(0,e.inject(e.RichTextRender)),x("design:paramtypes",[Object])],Hi);let Ui=!1;const Xi=new e.ContainerModule(((t,e,n,i)=>{Ui||(Ui=!0,t(ce).to(Hi).inSingletonScope(),t(de).toService(ce))}));let qi=class{constructor(){this.type="image",this.numberType=e.IMAGE_NUMBER_TYPE}contains(t,e,n){const{pickContext:i}=null!=n?n:{};return!!i&&!!t.AABBBounds.containsPoint(e)}};qi=m([e.injectable()],qi);let $i=!1;const Ji=new e.ContainerModule(((t,e,n,i)=>{$i||($i=!0,t(Yt).to(qi).inSingletonScope(),t(qi).toService(Yt))}));let Qi=class{constructor(){this.type="image",this.numberType=e.IMAGE_NUMBER_TYPE}contains(t,e,n){const{pickContext:i}=null!=n?n:{};return!!i&&!!t.AABBBounds.containsPoint(e)}};Qi=m([e.injectable()],Qi);let Zi=!1;const Ki=new e.ContainerModule(((t,e,n,i)=>{Zi||(Zi=!0,t(te).to(Qi).inSingletonScope(),t(de).toService(te))}));let tr=!1;const er=new e.ContainerModule(((t,e,n,i)=>{tr||(tr=!0,t(Yt).to(qi).inSingletonScope(),t(qi).toService(Yt))}));new n.AABBBounds;let nr=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="rect3d",this.numberType=e.RECT3D_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).rect;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,i,null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d))),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};nr=m([e.injectable(),y(0,e.inject(e.Rect3DRender)),x("design:paramtypes",[Object])],nr);let ir=!1;const rr=new e.ContainerModule(((t,e,n,i)=>{ir||(ir=!0,t(re).to(nr).inSingletonScope(),t(de).toService(re))}));let ar=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="arc3d",this.numberType=e.ARC3D_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).arc;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,i,null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d))),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};ar=m([e.injectable(),y(0,e.inject(e.Arc3dRender)),x("design:paramtypes",[Object])],ar);let sr=!1;const or=new e.ContainerModule(((t,e,n,i)=>{sr||(sr=!0,t(Qt).to(ar).inSingletonScope(),t(de).toService(Qt))}));let lr=class extends Jn{constructor(t){super(),this.canvasRenderer=t,this.type="pyramid3d",this.numberType=e.PYRAMID3D_NUMBER_TYPE}contains(t,n,i){const{pickContext:r}=null!=i?i:{};if(!r)return!1;const a=e.getTheme(t).polygon;r.highPerformanceSave();const s=this.transform(t,a,r),{x:o,y:l,z:c,lastModelMatrix:h}=s;let u=n;if(r.camera){u=n.clone();const e=t.parent.globalTransMatrix;u.x=e.a*n.x+e.c*n.y+e.e,u.y=e.b*n.x+e.d*n.y+e.f}this.canvasRenderer.z=c;let d=!1;return this.canvasRenderer.drawShape(t,r,o,l,{},null,((t,e,n)=>!!d||(d=t.isPointInPath(u.x,u.y),d)),((t,e,n)=>!1)),this.canvasRenderer.z=0,r.modelMatrix!==h&&e.mat4Allocate.free(r.modelMatrix),r.modelMatrix=h,r.highPerformanceRestore(),d}};lr=m([e.injectable(),y(0,e.inject(e.Pyramid3dRender)),x("design:paramtypes",[Object])],lr);let cr=!1;const hr=new e.ContainerModule(((t,e,n,i)=>{cr||(cr=!0,t(le).to(lr).inSingletonScope(),t(de).toService(le))})),ur=e.isBrowserEnv();let dr=!1;let fr=!1;let pr=!1;let vr=!1;let gr=!1;let mr=!1;let yr=!1;let xr=!1;let br=!1;let Cr=!1;let Sr=!1;let Mr=!1;let wr=!1;let kr=!1;let Pr=!1;let Tr=!1;let Er=!1;let Rr=!1;const Or=Mt;t.DragNDrop=class{constructor(t){this.onPointerDown=t=>{const e=t.target,n=this.rootNode,i=e===n;if(e&&!i){let r,a=!1;function s(t){if(a||(t.type="dragstart",null==e||e.dispatchEvent(t),a=!0),t.type="drag",null==e||e.dispatchEvent(t),!i){e.pickable=!1;const i=(null==n?void 0:n.pick(t.global.x,t.global.y)).graphic;e.pickable=!0,r!==i&&(r&&(t.type="dragleave",t.target=r,r.dispatchEvent(t)),i&&(t.type="dragenter",t.target=i,i.dispatchEvent(t)),r=i,r&&(t.type="dragover",t.target=r,r.dispatchEvent(t)))}}null==n||n.addEventListener("pointermove",s);const o=function(){a&&(r&&(t.type="drop",t.target=r,r.dispatchEvent(t)),t.type="dragend",e.dispatchEvent(t),a=!1),null==n||n.removeEventListener("pointermove",s)};e.addEventListener("pointerup",o,{once:!0}),e.addEventListener("pointerupoutside",o,{once:!0})}},this.rootNode=t,this.initEvents()}initEvents(){var t;null===(t=this.rootNode)||void 0===t||t.addEventListener("pointerdown",this.onPointerDown)}removeEvents(){var t;null===(t=this.rootNode)||void 0===t||t.removeEventListener("pointerdown",this.onPointerDown)}release(){this.removeEvents(),this.rootNode=null}},t.Fragment=Et,t.Gesture=Bt,t.REACT_TO_CANOPUS_EVENTS=wt,t.REACT_TO_CANOPUS_EVENTS_LIST=kt,t.VArc=function(t){return e.graphicCreator.arc(t?t.attribute:{})},t.VArc3d=function(t){return e.graphicCreator.arc3d(t?t.attribute:{})},t.VArea=function(t){return e.graphicCreator.area(t?t.attribute:{})},t.VCircle=function(t){return e.graphicCreator.circle(t?t.attribute:{})},t.VGlyph=function(t){return e.graphicCreator.glyph(t?t.attribute:{})},t.VGroup=function(t){return e.graphicCreator.group(t?t.attribute:{})},t.VImage=function(t){return e.graphicCreator.image(t?t.attribute:{})},t.VLine=function(t){return e.graphicCreator.line(t?t.attribute:{})},t.VPath=function(t){return e.graphicCreator.path(t?t.attribute:{})},t.VPolygon=function(t){return e.graphicCreator.polygon(t?t.attribute:{})},t.VPyramid3d=function(t){return e.graphicCreator.pyramid3d(t?t.attribute:{})},t.VRect=function(t){return e.graphicCreator.rect(t?t.attribute:{})},t.VRect3d=function(t){return e.graphicCreator.rect3d(t?t.attribute:{})},t.VRichText=Pt,t.VSymbol=function(t){return e.graphicCreator.symbol(t?t.attribute:{})},t.VText=function(t){return e.graphicCreator.text(t?t.attribute:{})},t.arc3dCanvasPickModule=or,t.arcCanvasPickModule=Wn,t.arcMathPickModule=zn,t.areaCanvasPickModule=ai,t.areaMathPickModule=li,t.browserEnvModule=Pe,t.circleCanvasPickModule=mi,t.circleMathPickModule=bi,t.feishuEnvModule=ze,t.glyphCanvasPickModule=zi,t.glyphMathPickModule=Ni,t.imageCanvasPickModule=Ki,t.imageMathPickModule=er,t.initAllEnv=function(){In(e.container)},t.initBrowserEnv=function(){Ee(e.container)},t.initFeishuEnv=function(){Ve(e.container)},t.initLynxEnv=function(){tn(e.container)},t.initNodeEnv=function(){un(e.container)},t.initTaroEnv=function(){Cn(e.container)},t.initWxEnv=function(){An(e.container)},t.jsx=function(t,i,...r){const a=i||{},{key:s,attribute:o,stateProxy:l}=a,c=function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}(a,["key","attribute","stateProxy"]);let h=t;n.isString(t)&&(h=e.graphicCreator[t]);const u=[];r.length&&Tt(1===r.length?r[0]:r,u);const d="Group"===h.name?new h(o):h(i);return function(t,e,n){let i,r=!1;switch(t.type){case"richtext":case"rich/image":break;case"rich/text":i=t.attribute||{},e[0]&&(i.text=e[0]);break;default:r=!0}r?(e.forEach((e=>{e&&t.add(e)})),Object.keys(n).forEach((e=>{const i=wt[e];i&&t.on(i,n[e])}))):"richtext"===t.type&&(t.attribute.textConfig=e.map((t=>t.attribute)).filter((t=>t)))}(d,u,c),l&&(d.stateProxy=l),d},t.lineCanvasPickModule=Kn,t.lineMathPickModule=ni,t.loadAllEnv=In,t.loadAllModule=Ln,t.loadBrowserEnv=Ee,t.loadFeishuEnv=Ve,t.loadLynxEnv=tn,t.loadNodeEnv=un,t.loadTaroEnv=Cn,t.loadWxEnv=An,t.lynxEnvModule=Ze,t.nodeEnvModule=cn,t.pathCanvasPickModule=Ri,t.pathMathPickModule=Ai,t.polygonCanvasPickModule=Li,t.polygonMathPickModule=Wi,t.pyramid3dCanvasPickModule=hr,t.rect3dCanvasPickModule=rr,t.rectCanvasPickModule=Hn,t.rectMathPickModule=$n,t.registerArc=function(){dr||(dr=!0,e.registerArcGraphic(),e.container.load(e.arcModule),e.container.load(ur?Wn:zn))},t.registerArc3d=function(){fr||(fr=!0,e.registerArc3dGraphic(),e.container.load(e.arc3dModule),e.container.load(or))},t.registerArea=function(){pr||(pr=!0,e.registerAreaGraphic(),e.container.load(e.areaModule),e.container.load(ur?ai:li))},t.registerCircle=function(){vr||(vr=!0,e.registerCircleGraphic(),e.container.load(e.circleModule),e.container.load(ur?mi:bi))},t.registerGlyph=function(){gr||(gr=!0,e.registerGlyphGraphic(),e.container.load(e.glyphModule),e.container.load(ur?zi:Ni))},t.registerGroup=function(){mr||(mr=!0,e.registerGroupGraphic())},t.registerImage=function(){yr||(yr=!0,e.registerImageGraphic(),e.container.load(e.imageModule),e.container.load(ur?Ki:er))},t.registerLine=function(){xr||(xr=!0,e.registerLineGraphic(),e.container.load(e.lineModule),e.container.load(ur?Kn:ni))},t.registerPath=function(){br||(br=!0,e.registerPathGraphic(),e.container.load(e.pathModule),e.container.load(ur?Ri:Ai))},t.registerPolygon=function(){Cr||(Cr=!0,e.registerPolygonGraphic(),e.container.load(e.polygonModule),e.container.load(ur?Li:Wi))},t.registerPyramid3d=function(){Sr||(Sr=!0,e.registerPyramid3dGraphic(),e.container.load(e.pyramid3dModule),e.container.load(hr))},t.registerRect=function(){Mr||(Mr=!0,e.registerRectGraphic(),e.container.load(e.rectModule),e.container.load(ur?Hn:$n))},t.registerRect3d=function(){wr||(wr=!0,e.registerRect3dGraphic(),e.container.load(e.rect3dModule),e.container.load(rr))},t.registerRichtext=function(){kr||(kr=!0,e.registerRichtextGraphic(),e.container.load(e.richtextModule),e.container.load(ur?Xi:Ji))},t.registerShadowRoot=function(){Pr||(Pr=!0,e.registerShadowRootGraphic())},t.registerSymbol=function(){Tr||(Tr=!0,e.registerSymbolGraphic(),e.container.load(e.symbolModule),e.container.load(ur?ui:pi))},t.registerText=function(){Er||(Er=!0,e.registerTextGraphic(),e.container.load(e.textModule),e.container.load(ur?Mi:Pi))},t.registerWrapText=function(){Rr||(Rr=!0,e.registerWrapTextGraphic())},t.richTextMathPickModule=Ji,t.richtextCanvasPickModule=Xi,t.roughModule=Or,t.symbolCanvasPickModule=ui,t.symbolMathPickModule=pi,t.taroEnvModule=xn,t.textCanvasPickModule=Mi,t.textMathPickModule=Pi,t.wxEnvModule=On}));
|
|
@@ -47,7 +47,7 @@ let FeishuEnvContribution = class extends BaseEnvContribution {
|
|
|
47
47
|
return this.freeCanvasList.length;
|
|
48
48
|
}
|
|
49
49
|
getStaticCanvasCount() {
|
|
50
|
-
return
|
|
50
|
+
return 9999;
|
|
51
51
|
}
|
|
52
52
|
configure(service, params) {
|
|
53
53
|
service.env === this.type && (service.setActiveEnvContribution(this), makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/feishu-contribution.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAiBtF,SAAS,YAAY,CACnB,MAAW,EACX,aAAuB,EACvB,SAAiC,EACjC,aAAqB,EACrB,cAA2B;IAE3B,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAE9C,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAEvC,GAAG,CAAC,MAAM,GAAG;YACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;SAC5B,CAAC;QAyBF,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;YAC3B,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,EAAE;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG;YAErB,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;SACH,CAAC;QAEF,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,aAAa,EAAE;YACtB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,mBAAmB;IAS5D;QACE,KAAK,EAAE,CAAC;QATV,SAAI,GAAY,QAAQ,CAAC;QACzB,iBAAY,GAAY,IAAI,CAAC;QAE7B,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAE9C,mBAAc,GAAgB,EAAE,CAAC;QACjC,cAAS,GAAW,CAAC,CAAC;QAIpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI;YACF,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;SACpD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAKD,qBAAqB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,CAAC;IAKD,oBAAoB;QAClB,OAAO,IAAI,CAAC
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/feishu-contribution.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAiBtF,SAAS,YAAY,CACnB,MAAW,EACX,aAAuB,EACvB,SAAiC,EACjC,aAAqB,EACrB,cAA2B;IAE3B,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAE9C,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAEvC,GAAG,CAAC,MAAM,GAAG;YACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;SAC5B,CAAC;QAyBF,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;YAC3B,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,EAAE;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG;YAErB,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;SACH,CAAC;QAEF,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,aAAa,EAAE;YACtB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,mBAAmB;IAS5D;QACE,KAAK,EAAE,CAAC;QATV,SAAI,GAAY,QAAQ,CAAC;QACzB,iBAAY,GAAY,IAAI,CAAC;QAE7B,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAE9C,mBAAc,GAAgB,EAAE,CAAC;QACjC,cAAS,GAAW,CAAC,CAAC;QAIpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI;YACF,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;SACpD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAKD,qBAAqB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,CAAC;IAKD,oBAAoB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAID,SAAS,CAAC,OAAgB,EAAE,MAAuE;QACjG,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACvC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAG9G;IACH,CAAC;IAED,SAAS,CAAC,GAAW;QAInB,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAkC;YACxC,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAW;QAKjB,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,MAA2B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,MAA2B;QAC/C,OAAO;IACT,CAAC;IAED,aAAa,CAAC,MAA4B;QACxC,OAAO;IACT,CAAC;IAED,mBAAmB;QACjB,OAAO,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,wBAAwB;QAStB,OAAO,UAAU,QAA8B;YAC7C,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAQ,CAAC;IACX,CAAC;IAED,uBAAuB;QACrB,OAAO,CAAC,CAAS,EAAE,EAAE;YACnB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC;IAYD,gBAAgB,CAAC,IAAa,EAAE,QAAiB,EAAE,OAAiB;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAYD,mBAAmB,CAAC,IAAa,EAAE,QAAiB,EAAE,OAAiB;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,cAAc,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,KAAU;;QACzB,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,UAAU,CAAC,OAAO,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA9JY,qBAAqB;IADjC,UAAU,EAAE;;GACA,qBAAqB,CA8JjC;SA9JY,qBAAqB","file":"feishu-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ndeclare const tt: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvasContext: (id: string) => any;\n};\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[]\n) {\n const dpr = tt.getSystemInfoSync().pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const ctx = tt.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // 放到内容里\n // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // 封装 getImageData 为 promise\n // ctx.getImageData = (x, y, width, height) =>\n // new Promise((resolve, reject) => {\n // try {\n // tt.canvasGetImageData({\n // canvasId: item.id,\n // x,\n // y,\n // width,\n // height,\n // success(res) {\n // resolve(res);\n // },\n // });\n // } catch (err) {\n // reject(err);\n // }\n // });\n\n const canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\n@injectable()\nexport class FeishuEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'feishu';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n /**\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 // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n // loadFeishuContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return tt.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n 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 addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return null;\n }\n}\n"]}
|
|
@@ -70,7 +70,7 @@ let LynxEnvContribution = class extends BaseEnvContribution {
|
|
|
70
70
|
return this.freeCanvasList.length;
|
|
71
71
|
}
|
|
72
72
|
getStaticCanvasCount() {
|
|
73
|
-
return
|
|
73
|
+
return 9999;
|
|
74
74
|
}
|
|
75
75
|
loadImage(url) {
|
|
76
76
|
return createImageElement(url, !1).then((img => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ILynxCanvas\n} from '@visactor/vrender-core';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id: string) => any;\n createImage: (id: string) => any;\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\nlet ng = false;\ntry {\n ng = !!lynx.createCanvasNG;\n} catch (err) {\n // do nothing\n}\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ILynxCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ILynxCanvas[]\n) {\n const dpr = SystemInfo.pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const _canvas = ng ? lynx.createCanvasNG(id) : lynx.createCanvas(id);\n _canvas.width = domref.width * dpr;\n _canvas.height = domref.height * dpr;\n ng && _canvas.attachToCanvasView(id);\n\n const ctx = _canvas.getContext('2d');\n ctx.draw = (a: any, b: any) => {\n b();\n };\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n const canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n }),\n nativeCanvas: _canvas\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n const img = lynx.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\n@injectable()\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\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return SystemInfo.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n 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 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 { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ILynxCanvas\n} from '@visactor/vrender-core';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id: string) => any;\n createImage: (id: string) => any;\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\nlet ng = false;\ntry {\n ng = !!lynx.createCanvasNG;\n} catch (err) {\n // do nothing\n}\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ILynxCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ILynxCanvas[]\n) {\n const dpr = SystemInfo.pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const _canvas = ng ? lynx.createCanvasNG(id) : lynx.createCanvas(id);\n _canvas.width = domref.width * dpr;\n _canvas.height = domref.height * dpr;\n ng && _canvas.attachToCanvasView(id);\n\n const ctx = _canvas.getContext('2d');\n ctx.draw = (a: any, b: any) => {\n b();\n };\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n const canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n }),\n nativeCanvas: _canvas\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n const img = lynx.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\n@injectable()\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\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态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);\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 // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return SystemInfo.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n 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 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"]}
|
|
@@ -63,7 +63,7 @@ let TaroEnvContribution = class extends BaseEnvContribution {
|
|
|
63
63
|
return this.freeCanvasList.length;
|
|
64
64
|
}
|
|
65
65
|
getStaticCanvasCount() {
|
|
66
|
-
return
|
|
66
|
+
return 9999;
|
|
67
67
|
}
|
|
68
68
|
configure(service, params) {
|
|
69
69
|
service.env === this.type && (service.setActiveEnvContribution(this), makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList, params.taro, params.pixelRatio),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/taro-contribution.ts"],"names":[],"mappings":"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","file":"taro-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n IDomRef,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ninterface ITaro {\n createCanvasContext: (id: string) => any;\n canvasGetImageData: (data: {\n canvasId: string;\n x: number;\n y: number;\n width: number;\n height: number;\n success: (res: any) => void;\n }) => any;\n}\n\nfunction makeUpCanvas(\n domref: IDomRef,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n taro: ITaro,\n dpr: number\n) {\n canvasIdLists.forEach((id, i) => {\n const ctx: any = taro.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n if (!ctx.createRadialGradient) {\n ctx.createRadialGradient = (...cc: any) => ctx.createCircularGradient(...cc);\n }\n\n // HACK: 小程序端draw、getImage方法为异步回调, 在此统一封装 getImageData 为 promise\n if (!ctx.getImageData && taro.canvasGetImageData) {\n ctx.getImageData = (x: number, y: number, width: number, height: number) =>\n new Promise((resolve, reject) => {\n try {\n taro.canvasGetImageData({\n canvasId: id,\n x,\n y,\n width,\n height,\n success(res) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n\n const canvas = {\n id: id,\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n\n return canvas;\n });\n}\n\ninterface IConfigureParams {\n domref: any;\n canvasIdLists: string[];\n freeCanvasIdx: number;\n taro: ITaro;\n pixelRatio: number; // taro需要小程序自己处理pixelRatio\n}\n\n@injectable()\nexport class TaroEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'taro';\n supportEvent: boolean = true;\n canvasMap: Map<string, ITTCanvas> = new Map();\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n taro: ITaro;\n pixelRatio: number;\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 /**\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 this.freeCanvasList.length;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: IConfigureParams) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.taro,\n params.pixelRatio\n );\n this.taro = params.taro;\n this.pixelRatio = params.pixelRatio;\n\n // loadTaroContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const _window = window || globalThis;\n if (_window.DOMParser) {\n const parser = new _window.DOMParser();\n const svg = parser.parseFromString(svgStr, 'image/svg+xml').children[0];\n const data = new XMLSerializer().serializeToString(svg);\n const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`; //svg转base64\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n } else if (_window.Blob) {\n const data = new _window.Blob([svgStr], { type: 'image/svg+xml' });\n const url = _window.URL.createObjectURL(data);\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n // 目前移动端上小程序不支持DOMParser和Blob,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n // params不生效\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return this.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return 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/taro-contribution.ts"],"names":[],"mappings":"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","file":"taro-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n IDomRef,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ninterface ITaro {\n createCanvasContext: (id: string) => any;\n canvasGetImageData: (data: {\n canvasId: string;\n x: number;\n y: number;\n width: number;\n height: number;\n success: (res: any) => void;\n }) => any;\n}\n\nfunction makeUpCanvas(\n domref: IDomRef,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n taro: ITaro,\n dpr: number\n) {\n canvasIdLists.forEach((id, i) => {\n const ctx: any = taro.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n if (!ctx.createRadialGradient) {\n ctx.createRadialGradient = (...cc: any) => ctx.createCircularGradient(...cc);\n }\n\n // HACK: 小程序端draw、getImage方法为异步回调, 在此统一封装 getImageData 为 promise\n if (!ctx.getImageData && taro.canvasGetImageData) {\n ctx.getImageData = (x: number, y: number, width: number, height: number) =>\n new Promise((resolve, reject) => {\n try {\n taro.canvasGetImageData({\n canvasId: id,\n x,\n y,\n width,\n height,\n success(res) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n\n const canvas = {\n id: id,\n width: domref.width * dpr,\n height: domref.height * dpr,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n\n return canvas;\n });\n}\n\ninterface IConfigureParams {\n domref: any;\n canvasIdLists: string[];\n freeCanvasIdx: number;\n taro: ITaro;\n pixelRatio: number; // taro需要小程序自己处理pixelRatio\n}\n\n@injectable()\nexport class TaroEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'taro';\n supportEvent: boolean = true;\n canvasMap: Map<string, ITTCanvas> = new Map();\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n taro: ITaro;\n pixelRatio: number;\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 /**\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 // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: IConfigureParams) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.taro,\n params.pixelRatio\n );\n this.taro = params.taro;\n this.pixelRatio = params.pixelRatio;\n\n // loadTaroContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const _window = window || globalThis;\n if (_window.DOMParser) {\n const parser = new _window.DOMParser();\n const svg = parser.parseFromString(svgStr, 'image/svg+xml').children[0];\n const data = new XMLSerializer().serializeToString(svg);\n const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`; //svg转base64\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n } else if (_window.Blob) {\n const data = new _window.Blob([svgStr], { type: 'image/svg+xml' });\n const url = _window.URL.createObjectURL(data);\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n // 目前移动端上小程序不支持DOMParser和Blob,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n // params不生效\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return this.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return 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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vrender-kits",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.7-alpha.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "cjs/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dist"
|
|
13
13
|
],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@visactor/vrender-core": "0.17.
|
|
15
|
+
"@visactor/vrender-core": "0.17.7-alpha.2",
|
|
16
16
|
"@visactor/vutils": "~0.17.0",
|
|
17
17
|
"@resvg/resvg-js": "2.4.1",
|
|
18
18
|
"roughjs": "4.5.2"
|