@visactor/vrender-kits 1.1.2-alpha.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/cjs/canvas/contributions/browser/canvas.js +2 -2
  2. package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
  3. package/cjs/canvas/contributions/browser/context.js +3 -3
  4. package/cjs/canvas/contributions/browser/context.js.map +1 -1
  5. package/cjs/canvas/contributions/create-canvas-module.js +1 -1
  6. package/cjs/canvas/contributions/harmony/context.js +3 -3
  7. package/cjs/canvas/contributions/harmony/context.js.map +1 -1
  8. package/cjs/canvas/contributions/lynx/context.js +3 -3
  9. package/cjs/canvas/contributions/lynx/context.js.map +1 -1
  10. package/cjs/canvas/contributions/modules.js +1 -1
  11. package/cjs/env/contributions/browser-contribution.js +3 -3
  12. package/cjs/env/contributions/browser-contribution.js.map +1 -1
  13. package/cjs/env/contributions/canvas-wrap.js +1 -1
  14. package/cjs/env/contributions/feishu-contribution.js +1 -1
  15. package/cjs/event/extension/gesture.js +3 -3
  16. package/cjs/event/extension/gesture.js.map +1 -1
  17. package/cjs/graphic/gif-image.js +3 -3
  18. package/cjs/graphic/gif-image.js.map +1 -1
  19. package/cjs/installers/app.js +8 -8
  20. package/cjs/installers/app.js.map +1 -1
  21. package/cjs/jsx/jsx-classic.d.ts +1 -1
  22. package/cjs/jsx/jsx-classic.js +2 -2
  23. package/cjs/jsx/jsx-classic.js.map +1 -1
  24. package/cjs/picker/canvas-module.js +5 -6
  25. package/cjs/picker/canvas-module.js.map +1 -1
  26. package/cjs/picker/canvas-picker-service.js.map +1 -1
  27. package/cjs/picker/contributions/canvas-picker/arc-module.js +2 -2
  28. package/cjs/picker/contributions/canvas-picker/arc-module.js.map +1 -1
  29. package/cjs/picker/contributions/canvas-picker/arc3d-module.js +3 -3
  30. package/cjs/picker/contributions/canvas-picker/arc3d-module.js.map +1 -1
  31. package/cjs/picker/contributions/canvas-picker/area-module.js +2 -2
  32. package/cjs/picker/contributions/canvas-picker/area-module.js.map +1 -1
  33. package/cjs/picker/contributions/canvas-picker/circle-module.js +2 -2
  34. package/cjs/picker/contributions/canvas-picker/circle-module.js.map +1 -1
  35. package/cjs/picker/contributions/canvas-picker/glyph-module.js +2 -2
  36. package/cjs/picker/contributions/canvas-picker/glyph-module.js.map +1 -1
  37. package/cjs/picker/contributions/canvas-picker/image-module.js +2 -2
  38. package/cjs/picker/contributions/canvas-picker/image-module.js.map +1 -1
  39. package/cjs/picker/contributions/canvas-picker/line-module.js +2 -2
  40. package/cjs/picker/contributions/canvas-picker/line-module.js.map +1 -1
  41. package/cjs/picker/contributions/canvas-picker/lottie-module.js +2 -2
  42. package/cjs/picker/contributions/canvas-picker/lottie-module.js.map +1 -1
  43. package/cjs/picker/contributions/canvas-picker/path-module.js +2 -2
  44. package/cjs/picker/contributions/canvas-picker/path-module.js.map +1 -1
  45. package/cjs/picker/contributions/canvas-picker/polygon-module.js +2 -2
  46. package/cjs/picker/contributions/canvas-picker/polygon-module.js.map +1 -1
  47. package/cjs/picker/contributions/canvas-picker/pyramid3d-module.js +3 -3
  48. package/cjs/picker/contributions/canvas-picker/pyramid3d-module.js.map +1 -1
  49. package/cjs/picker/contributions/canvas-picker/rect-module.js +2 -2
  50. package/cjs/picker/contributions/canvas-picker/rect-module.js.map +1 -1
  51. package/cjs/picker/contributions/canvas-picker/rect3d-module.js +3 -3
  52. package/cjs/picker/contributions/canvas-picker/rect3d-module.js.map +1 -1
  53. package/cjs/picker/contributions/canvas-picker/richtext-module.js +2 -2
  54. package/cjs/picker/contributions/canvas-picker/richtext-module.js.map +1 -1
  55. package/cjs/picker/contributions/canvas-picker/star-module.js +3 -3
  56. package/cjs/picker/contributions/canvas-picker/star-module.js.map +1 -1
  57. package/cjs/picker/contributions/canvas-picker/symbol-module.js +2 -2
  58. package/cjs/picker/contributions/canvas-picker/symbol-module.js.map +1 -1
  59. package/cjs/picker/contributions/canvas-picker/text-module.js +2 -2
  60. package/cjs/picker/contributions/canvas-picker/text-module.js.map +1 -1
  61. package/cjs/picker/contributions/math-picker/arc-module.js +2 -2
  62. package/cjs/picker/contributions/math-picker/arc-module.js.map +1 -1
  63. package/cjs/picker/contributions/math-picker/area-module.js +2 -2
  64. package/cjs/picker/contributions/math-picker/area-module.js.map +1 -1
  65. package/cjs/picker/contributions/math-picker/circle-module.js +2 -2
  66. package/cjs/picker/contributions/math-picker/circle-module.js.map +1 -1
  67. package/cjs/picker/contributions/math-picker/glyph-module.js +2 -2
  68. package/cjs/picker/contributions/math-picker/glyph-module.js.map +1 -1
  69. package/cjs/picker/contributions/math-picker/line-module.js +2 -2
  70. package/cjs/picker/contributions/math-picker/line-module.js.map +1 -1
  71. package/cjs/picker/contributions/math-picker/path-module.js +2 -2
  72. package/cjs/picker/contributions/math-picker/path-module.js.map +1 -1
  73. package/cjs/picker/contributions/math-picker/polygon-module.js +2 -2
  74. package/cjs/picker/contributions/math-picker/polygon-module.js.map +1 -1
  75. package/cjs/picker/contributions/math-picker/rect-module.js +2 -2
  76. package/cjs/picker/contributions/math-picker/rect-module.js.map +1 -1
  77. package/cjs/picker/contributions/math-picker/richtext-module.js +2 -2
  78. package/cjs/picker/contributions/math-picker/richtext-module.js.map +1 -1
  79. package/cjs/picker/contributions/math-picker/symbol-module.js +2 -2
  80. package/cjs/picker/contributions/math-picker/symbol-module.js.map +1 -1
  81. package/cjs/picker/math-module.js +5 -5
  82. package/cjs/picker/math-module.js.map +1 -1
  83. package/cjs/render/contributions/canvas/gif-image-module.js +2 -2
  84. package/cjs/render/contributions/canvas/gif-image-module.js.map +1 -1
  85. package/cjs/render/contributions/canvas/lottie-module.js +2 -2
  86. package/cjs/render/contributions/canvas/lottie-module.js.map +1 -1
  87. package/cjs/render/contributions/rough/module.js +8 -8
  88. package/cjs/render/contributions/rough/module.js.map +1 -1
  89. package/cjs/window/contributions/browser-contribution.js +2 -2
  90. package/cjs/window/contributions/browser-contribution.js.map +1 -1
  91. package/cjs/window/contributions/feishu-contribution.js +3 -3
  92. package/cjs/window/contributions/feishu-contribution.js.map +1 -1
  93. package/cjs/window/contributions/harmony-contribution.js +3 -3
  94. package/cjs/window/contributions/harmony-contribution.js.map +1 -1
  95. package/cjs/window/contributions/lynx-contribution.js +3 -3
  96. package/cjs/window/contributions/lynx-contribution.js.map +1 -1
  97. package/cjs/window/contributions/node-contribution.js +3 -3
  98. package/cjs/window/contributions/node-contribution.js.map +1 -1
  99. package/cjs/window/contributions/taro-contribution.js +3 -3
  100. package/cjs/window/contributions/taro-contribution.js.map +1 -1
  101. package/cjs/window/contributions/tt-contribution.js +3 -3
  102. package/cjs/window/contributions/tt-contribution.js.map +1 -1
  103. package/cjs/window/contributions/wx-contribution.js +3 -3
  104. package/cjs/window/contributions/wx-contribution.js.map +1 -1
  105. package/dist/index.es.js +4387 -4382
  106. package/es/canvas/contributions/browser/canvas.js +3 -1
  107. package/es/canvas/contributions/browser/canvas.js.map +1 -1
  108. package/es/canvas/contributions/browser/context.js +3 -1
  109. package/es/canvas/contributions/browser/context.js.map +1 -1
  110. package/es/canvas/contributions/create-canvas-module.js +1 -1
  111. package/es/canvas/contributions/harmony/context.js +3 -1
  112. package/es/canvas/contributions/harmony/context.js.map +1 -1
  113. package/es/canvas/contributions/lynx/context.js +3 -1
  114. package/es/canvas/contributions/lynx/context.js.map +1 -1
  115. package/es/canvas/contributions/modules.js +1 -1
  116. package/es/env/contributions/browser-contribution.js +5 -1
  117. package/es/env/contributions/browser-contribution.js.map +1 -1
  118. package/es/env/contributions/canvas-wrap.js +1 -1
  119. package/es/env/contributions/feishu-contribution.js +1 -1
  120. package/es/event/extension/gesture.js +3 -1
  121. package/es/event/extension/gesture.js.map +1 -1
  122. package/es/graphic/gif-image.js +3 -1
  123. package/es/graphic/gif-image.js.map +1 -1
  124. package/es/installers/app.js +5 -1
  125. package/es/installers/app.js.map +1 -1
  126. package/es/jsx/jsx-classic.d.ts +1 -1
  127. package/es/jsx/jsx-classic.js +3 -1
  128. package/es/jsx/jsx-classic.js.map +1 -1
  129. package/es/picker/canvas-module.js +3 -1
  130. package/es/picker/canvas-module.js.map +1 -1
  131. package/es/picker/canvas-picker-service.js.map +1 -1
  132. package/es/picker/contributions/canvas-picker/arc-module.js +1 -1
  133. package/es/picker/contributions/canvas-picker/arc-module.js.map +1 -1
  134. package/es/picker/contributions/canvas-picker/arc3d-module.js +1 -1
  135. package/es/picker/contributions/canvas-picker/arc3d-module.js.map +1 -1
  136. package/es/picker/contributions/canvas-picker/area-module.js +1 -1
  137. package/es/picker/contributions/canvas-picker/area-module.js.map +1 -1
  138. package/es/picker/contributions/canvas-picker/circle-module.js +1 -1
  139. package/es/picker/contributions/canvas-picker/circle-module.js.map +1 -1
  140. package/es/picker/contributions/canvas-picker/glyph-module.js +1 -1
  141. package/es/picker/contributions/canvas-picker/glyph-module.js.map +1 -1
  142. package/es/picker/contributions/canvas-picker/image-module.js +1 -1
  143. package/es/picker/contributions/canvas-picker/image-module.js.map +1 -1
  144. package/es/picker/contributions/canvas-picker/line-module.js +1 -1
  145. package/es/picker/contributions/canvas-picker/line-module.js.map +1 -1
  146. package/es/picker/contributions/canvas-picker/lottie-module.js +1 -1
  147. package/es/picker/contributions/canvas-picker/lottie-module.js.map +1 -1
  148. package/es/picker/contributions/canvas-picker/path-module.js +1 -1
  149. package/es/picker/contributions/canvas-picker/path-module.js.map +1 -1
  150. package/es/picker/contributions/canvas-picker/polygon-module.js +1 -1
  151. package/es/picker/contributions/canvas-picker/polygon-module.js.map +1 -1
  152. package/es/picker/contributions/canvas-picker/pyramid3d-module.js +1 -1
  153. package/es/picker/contributions/canvas-picker/pyramid3d-module.js.map +1 -1
  154. package/es/picker/contributions/canvas-picker/rect-module.js +1 -1
  155. package/es/picker/contributions/canvas-picker/rect-module.js.map +1 -1
  156. package/es/picker/contributions/canvas-picker/rect3d-module.js +1 -1
  157. package/es/picker/contributions/canvas-picker/rect3d-module.js.map +1 -1
  158. package/es/picker/contributions/canvas-picker/richtext-module.js +1 -1
  159. package/es/picker/contributions/canvas-picker/richtext-module.js.map +1 -1
  160. package/es/picker/contributions/canvas-picker/star-module.js +1 -1
  161. package/es/picker/contributions/canvas-picker/star-module.js.map +1 -1
  162. package/es/picker/contributions/canvas-picker/symbol-module.js +1 -1
  163. package/es/picker/contributions/canvas-picker/symbol-module.js.map +1 -1
  164. package/es/picker/contributions/canvas-picker/text-module.js +1 -1
  165. package/es/picker/contributions/canvas-picker/text-module.js.map +1 -1
  166. package/es/picker/contributions/math-picker/arc-module.js +1 -1
  167. package/es/picker/contributions/math-picker/arc-module.js.map +1 -1
  168. package/es/picker/contributions/math-picker/area-module.js +1 -1
  169. package/es/picker/contributions/math-picker/area-module.js.map +1 -1
  170. package/es/picker/contributions/math-picker/circle-module.js +1 -1
  171. package/es/picker/contributions/math-picker/circle-module.js.map +1 -1
  172. package/es/picker/contributions/math-picker/glyph-module.js +1 -1
  173. package/es/picker/contributions/math-picker/glyph-module.js.map +1 -1
  174. package/es/picker/contributions/math-picker/line-module.js +1 -1
  175. package/es/picker/contributions/math-picker/line-module.js.map +1 -1
  176. package/es/picker/contributions/math-picker/path-module.js +1 -1
  177. package/es/picker/contributions/math-picker/path-module.js.map +1 -1
  178. package/es/picker/contributions/math-picker/polygon-module.js +1 -1
  179. package/es/picker/contributions/math-picker/polygon-module.js.map +1 -1
  180. package/es/picker/contributions/math-picker/rect-module.js +1 -1
  181. package/es/picker/contributions/math-picker/rect-module.js.map +1 -1
  182. package/es/picker/contributions/math-picker/richtext-module.js +1 -1
  183. package/es/picker/contributions/math-picker/richtext-module.js.map +1 -1
  184. package/es/picker/contributions/math-picker/symbol-module.js +1 -1
  185. package/es/picker/contributions/math-picker/symbol-module.js.map +1 -1
  186. package/es/picker/math-module.js +1 -1
  187. package/es/picker/math-module.js.map +1 -1
  188. package/es/render/contributions/canvas/gif-image-module.js +3 -1
  189. package/es/render/contributions/canvas/gif-image-module.js.map +1 -1
  190. package/es/render/contributions/canvas/lottie-module.js +3 -1
  191. package/es/render/contributions/canvas/lottie-module.js.map +1 -1
  192. package/es/render/contributions/rough/module.js +3 -1
  193. package/es/render/contributions/rough/module.js.map +1 -1
  194. package/es/window/contributions/browser-contribution.js +3 -1
  195. package/es/window/contributions/browser-contribution.js.map +1 -1
  196. package/es/window/contributions/feishu-contribution.js +4 -2
  197. package/es/window/contributions/feishu-contribution.js.map +1 -1
  198. package/es/window/contributions/harmony-contribution.js +4 -2
  199. package/es/window/contributions/harmony-contribution.js.map +1 -1
  200. package/es/window/contributions/lynx-contribution.js +5 -1
  201. package/es/window/contributions/lynx-contribution.js.map +1 -1
  202. package/es/window/contributions/node-contribution.js +4 -2
  203. package/es/window/contributions/node-contribution.js.map +1 -1
  204. package/es/window/contributions/taro-contribution.js +4 -2
  205. package/es/window/contributions/taro-contribution.js.map +1 -1
  206. package/es/window/contributions/tt-contribution.js +4 -2
  207. package/es/window/contributions/tt-contribution.js.map +1 -1
  208. package/es/window/contributions/wx-contribution.js +5 -1
  209. package/es/window/contributions/wx-contribution.js.map +1 -1
  210. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/env/contributions/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { Generator, BaseEnvContribution, application } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n CreateDOMParamsType\n} from '@visactor/vrender-core';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { AABBBounds, isString, isValidNumber } from '@visactor/vutils';\n\nclass DynamicB {\n get x1(): number {\n return this.dom.getBoundingClientRect().left;\n }\n get x2(): number {\n return this.dom.getBoundingClientRect().right;\n }\n get y1(): number {\n return this.dom.getBoundingClientRect().top;\n }\n get y2(): number {\n return this.dom.getBoundingClientRect().bottom;\n }\n get width(): number {\n return this.dom.getBoundingClientRect().width;\n }\n get height(): number {\n return this.dom.getBoundingClientRect().height;\n }\n\n dom: HTMLElement;\n\n constructor(dom: HTMLElement) {\n this.dom = dom;\n }\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n if (application.global.isImageAnonymous) {\n img.crossOrigin = 'anonymous';\n }\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n _isMacOS?: boolean;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent | TouchEvent, domElement?: any): IPointLike {\n let clientX: number = 0;\n let clientY: number = 0;\n let offsetX: number = 0;\n let offsetY: number = 0;\n if ((nativeEvent as TouchEvent).changedTouches) {\n const data = (nativeEvent as TouchEvent).changedTouches[0] ?? ({} as any);\n clientX = data.clientX || 0;\n clientY = data.clientY || 0;\n offsetX = clientX;\n offsetY = clientY;\n } else {\n clientX = (nativeEvent as PointerEvent | WheelEvent).clientX || 0;\n clientY = (nativeEvent as PointerEvent | WheelEvent).clientY || 0;\n offsetX = (nativeEvent as PointerEvent | WheelEvent).offsetX || 0;\n offsetY = (nativeEvent as PointerEvent | WheelEvent).offsetY || 0;\n }\n\n if (domElement) {\n const x = clientX;\n const y = clientY;\n const rect = domElement.getBoundingClientRect();\n const nativeCanvas = domElement.getNativeHandler?.().nativeCanvas;\n let scaleX;\n let scaleY;\n if (nativeCanvas) {\n scaleX = rect.width / nativeCanvas.offsetWidth;\n scaleY = rect.height / nativeCanvas.offsetHeight;\n }\n\n return {\n x: (x - rect.left) / (isValidNumber(scaleX) ? scaleX : 1),\n y: (y - rect.top) / (isValidNumber(scaleY) ? scaleY : 1)\n };\n }\n return {\n x: offsetX,\n y: offsetY\n };\n }\n\n getNativeAABBBounds(_dom: any): IBoundsLike {\n let dom = _dom;\n if (typeof _dom === 'string') {\n dom = new DOMParser().parseFromString(_dom, 'text/html').firstChild;\n if ((dom as any).lastChild) {\n dom = (dom as any).lastChild.firstChild;\n }\n }\n if (dom.getBoundingClientRect) {\n const b = dom.getBoundingClientRect();\n return new DynamicB(b);\n }\n return new AABBBounds();\n }\n\n removeDom(dom: HTMLElement): boolean {\n dom.parentElement.removeChild(dom);\n return true;\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n const { width, height, style } = params;\n\n if (style) {\n if (isString(style)) {\n dom.setAttribute('style', style);\n } else {\n Object.keys(style).forEach(k => {\n dom.style[k] = style[k];\n });\n }\n }\n if (width != null) {\n dom.style.width = `${width}px`;\n }\n if (height != null) {\n dom.style.height = `${height}px`;\n }\n\n return true;\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n const { tagName = 'div', parent } = params;\n const element = document.createElement(tagName);\n\n this.updateDom(element, params);\n\n if (parent) {\n const pd = isString(parent) ? this.getElementById(parent) : parent;\n if (pd && pd.appendChild) {\n pd.appendChild(element);\n }\n }\n\n return element;\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 const imagePromise = createImageElement(url, true);\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 createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.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 document.addEventListener(type as any, listener as any, options as any);\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 document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n\n getElementTop(element: HTMLElement, baseWindow?: boolean) {\n let actualTop = element.offsetTop;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualTop;\n }\n getElementLeft(element: HTMLElement, baseWindow?: boolean) {\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualLeft;\n }\n getElementTopLeft(element: HTMLElement, baseWindow?: boolean): { top: number; left: number } {\n let actualTop = element.offsetTop;\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return {\n top: actualTop,\n left: actualLeft\n };\n }\n\n async loadFont(\n font: string,\n source: string | BinaryData,\n descriptors?: FontFaceDescriptors\n ): Promise<{ loadState: 'success' | 'fail' }> {\n // 创建字体实例\n const myFont = new FontFace(font, isString(source) ? `url(${source})` : source, descriptors);\n\n // 加载字体\n return myFont\n .load()\n .then(function (loadedFont) {\n // 将字体添加到文档中\n (document.fonts as any).add(loadedFont);\n return { loadState: 'success' } as { loadState: 'success' | 'fail' };\n })\n .catch(function (error) {\n console.error('Failed to load font:', error);\n return { loadState: 'fail' } as { loadState: 'success' | 'fail' };\n });\n }\n\n isMacOS(): boolean {\n if (this._isMacOS === void 0) {\n try {\n this._isMacOS = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n } catch (err) {\n this._isMacOS = false;\n }\n }\n return this._isMacOS;\n }\n\n copyToClipBoard(text: string): Promise<void> {\n return navigator.clipboard\n .writeText(text)\n .then(() => {\n return;\n })\n .catch(err => {\n return;\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/env/contributions/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { Generator } from '@visactor/vrender-core/common/generator';\nimport { application } from '@visactor/vrender-core/application';\nimport { BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n CreateDOMParamsType\n} from '@visactor/vrender-core';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { AABBBounds, isString, isValidNumber } from '@visactor/vutils';\n\nclass DynamicB {\n get x1(): number {\n return this.dom.getBoundingClientRect().left;\n }\n get x2(): number {\n return this.dom.getBoundingClientRect().right;\n }\n get y1(): number {\n return this.dom.getBoundingClientRect().top;\n }\n get y2(): number {\n return this.dom.getBoundingClientRect().bottom;\n }\n get width(): number {\n return this.dom.getBoundingClientRect().width;\n }\n get height(): number {\n return this.dom.getBoundingClientRect().height;\n }\n\n dom: HTMLElement;\n\n constructor(dom: HTMLElement) {\n this.dom = dom;\n }\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n if (application.global.isImageAnonymous) {\n img.crossOrigin = 'anonymous';\n }\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n _isMacOS?: boolean;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent | TouchEvent, domElement?: any): IPointLike {\n let clientX: number = 0;\n let clientY: number = 0;\n let offsetX: number = 0;\n let offsetY: number = 0;\n if ((nativeEvent as TouchEvent).changedTouches) {\n const data = (nativeEvent as TouchEvent).changedTouches[0] ?? ({} as any);\n clientX = data.clientX || 0;\n clientY = data.clientY || 0;\n offsetX = clientX;\n offsetY = clientY;\n } else {\n clientX = (nativeEvent as PointerEvent | WheelEvent).clientX || 0;\n clientY = (nativeEvent as PointerEvent | WheelEvent).clientY || 0;\n offsetX = (nativeEvent as PointerEvent | WheelEvent).offsetX || 0;\n offsetY = (nativeEvent as PointerEvent | WheelEvent).offsetY || 0;\n }\n\n if (domElement) {\n const x = clientX;\n const y = clientY;\n const rect = domElement.getBoundingClientRect();\n const nativeCanvas = domElement.getNativeHandler?.().nativeCanvas;\n let scaleX;\n let scaleY;\n if (nativeCanvas) {\n scaleX = rect.width / nativeCanvas.offsetWidth;\n scaleY = rect.height / nativeCanvas.offsetHeight;\n }\n\n return {\n x: (x - rect.left) / (isValidNumber(scaleX) ? scaleX : 1),\n y: (y - rect.top) / (isValidNumber(scaleY) ? scaleY : 1)\n };\n }\n return {\n x: offsetX,\n y: offsetY\n };\n }\n\n getNativeAABBBounds(_dom: any): IBoundsLike {\n let dom = _dom;\n if (typeof _dom === 'string') {\n dom = new DOMParser().parseFromString(_dom, 'text/html').firstChild;\n if ((dom as any).lastChild) {\n dom = (dom as any).lastChild.firstChild;\n }\n }\n if (dom.getBoundingClientRect) {\n const b = dom.getBoundingClientRect();\n return new DynamicB(b);\n }\n return new AABBBounds();\n }\n\n removeDom(dom: HTMLElement): boolean {\n dom.parentElement.removeChild(dom);\n return true;\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n const { width, height, style } = params;\n\n if (style) {\n if (isString(style)) {\n dom.setAttribute('style', style);\n } else {\n Object.keys(style).forEach(k => {\n dom.style[k] = style[k];\n });\n }\n }\n if (width != null) {\n dom.style.width = `${width}px`;\n }\n if (height != null) {\n dom.style.height = `${height}px`;\n }\n\n return true;\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n const { tagName = 'div', parent } = params;\n const element = document.createElement(tagName);\n\n this.updateDom(element, params);\n\n if (parent) {\n const pd = isString(parent) ? this.getElementById(parent) : parent;\n if (pd && pd.appendChild) {\n pd.appendChild(element);\n }\n }\n\n return element;\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 const imagePromise = createImageElement(url, true);\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 createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.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 document.addEventListener(type as any, listener as any, options as any);\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 document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n\n getElementTop(element: HTMLElement, baseWindow?: boolean) {\n let actualTop = element.offsetTop;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualTop;\n }\n getElementLeft(element: HTMLElement, baseWindow?: boolean) {\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualLeft;\n }\n getElementTopLeft(element: HTMLElement, baseWindow?: boolean): { top: number; left: number } {\n let actualTop = element.offsetTop;\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return {\n top: actualTop,\n left: actualLeft\n };\n }\n\n async loadFont(\n font: string,\n source: string | BinaryData,\n descriptors?: FontFaceDescriptors\n ): Promise<{ loadState: 'success' | 'fail' }> {\n // 创建字体实例\n const myFont = new FontFace(font, isString(source) ? `url(${source})` : source, descriptors);\n\n // 加载字体\n return myFont\n .load()\n .then(function (loadedFont) {\n // 将字体添加到文档中\n (document.fonts as any).add(loadedFont);\n return { loadState: 'success' } as { loadState: 'success' | 'fail' };\n })\n .catch(function (error) {\n console.error('Failed to load font:', error);\n return { loadState: 'fail' } as { loadState: 'success' | 'fail' };\n });\n }\n\n isMacOS(): boolean {\n if (this._isMacOS === void 0) {\n try {\n this._isMacOS = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n } catch (err) {\n this._isMacOS = false;\n }\n }\n return this._isMacOS;\n }\n\n copyToClipBoard(text: string): Promise<void> {\n return navigator.clipboard\n .writeText(text)\n .then(() => {\n return;\n })\n .catch(err => {\n return;\n });\n }\n}\n"]}
@@ -79,4 +79,4 @@ class CanvasWrapEnableWH {
79
79
  }
80
80
 
81
81
  exports.CanvasWrapEnableWH = CanvasWrapEnableWH;
82
- //# sourceMappingURL=canvas-wrap.js.map
82
+ //# sourceMappingURL=canvas-wrap.js.map
@@ -101,4 +101,4 @@ class FeishuEnvContribution extends vrender_core_1.BaseEnvContribution {
101
101
  }
102
102
 
103
103
  exports.FeishuEnvContribution = FeishuEnvContribution;
104
- //# sourceMappingURL=feishu-contribution.js.map
104
+ //# sourceMappingURL=feishu-contribution.js.map
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Gesture = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), PRESS_TIME = 251, PRESS_THRESHOLD = 9, SWIPE_VELOCITY = .3, SWIPE_THRESHOLD = 10, TAP_INTERVAL = 300, calcDirection = (start, end) => {
7
+ const application_1 = require("@visactor/vrender-core/application"), vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), PRESS_TIME = 251, PRESS_THRESHOLD = 9, SWIPE_VELOCITY = .3, SWIPE_THRESHOLD = 10, TAP_INTERVAL = 300, calcDirection = (start, end) => {
8
8
  const xDistance = end.x - start.x, yDistance = end.y - start.y;
9
9
  return Math.abs(xDistance) > Math.abs(yDistance) ? xDistance > 0 ? "right" : "left" : yDistance > 0 ? "down" : "up";
10
10
  }, calcDistance = (point1, point2) => {
@@ -161,8 +161,8 @@ class Gesture extends vutils_1.EventEmitter {
161
161
  triggerEvent(type, ev) {
162
162
  this.pushEvent(type, ev);
163
163
  const {throttleTimer: throttleTimer, emitThrottles: emitThrottles} = this;
164
- throttleTimer || (this.throttleTimer = vrender_core_1.application.global.getRequestAnimationFrame()((() => {
165
- vrender_core_1.application.global.getCancelAnimationFrame()(this.throttleTimer),
164
+ throttleTimer || (this.throttleTimer = application_1.application.global.getRequestAnimationFrame()((() => {
165
+ application_1.application.global.getCancelAnimationFrame()(this.throttleTimer),
166
166
  this.throttleTimer = null;
167
167
  for (let i = 0, len = emitThrottles.length; i < len; i++) {
168
168
  const {type: type, ev: ev} = emitThrottles[i];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/extension/gesture.ts"],"names":[],"mappings":"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","file":"gesture.js","sourcesContent":["import { application, clock, WILDCARD } from '@visactor/vrender-core';\nimport type { IEventTarget, IFederatedPointerEvent, FederatedPointerEvent, INode } from '@visactor/vrender-core';\nimport type { IPointLike } from '@visactor/vutils';\nimport { EventEmitter } from '@visactor/vutils';\n\nimport type { DefaultGestureConfig, EmitEventObject, GestureConfig, GestureDirection, GestureEvent } from './interface';\n\n/**\n * 代码参考 https://github.com/hammerjs/hammer.js\n * The MIT License (MIT)\n\n Copyright (C) 2011-2017 by Jorik Tangelder (Eight Media)\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\nconst PRESS_TIME = 251;\nconst PRESS_THRESHOLD = 9;\nconst SWIPE_VELOCITY = 0.3;\nconst SWIPE_THRESHOLD = 10;\nconst TAP_INTERVAL = 300;\n\nconst calcDirection = (start: IPointLike, end: IPointLike) => {\n const xDistance = end.x - start.x;\n const yDistance = end.y - start.y;\n if (Math.abs(xDistance) > Math.abs(yDistance)) {\n return xDistance > 0 ? 'right' : 'left';\n }\n return yDistance > 0 ? 'down' : 'up';\n};\n\n// 计算2点之间的距离\nconst calcDistance = (point1: IPointLike, point2: IPointLike) => {\n const xDistance = Math.abs(point2.x - point1.x);\n const yDistance = Math.abs(point2.y - point1.y);\n return Math.sqrt(xDistance * xDistance + yDistance * yDistance);\n};\n\nconst getCenter = (points: IPointLike[]) => {\n const pointersLength = points.length;\n\n if (pointersLength === 1) {\n return {\n x: Math.round(points[0].x),\n y: Math.round(points[0].y)\n };\n }\n\n let x = 0;\n let y = 0;\n let i = 0;\n while (i < pointersLength) {\n x += points[i].x;\n y += points[i].y;\n i++;\n }\n\n return {\n x: Math.round(x / pointersLength),\n y: Math.round(y / pointersLength)\n };\n};\n\nexport class Gesture extends EventEmitter {\n element: INode | null;\n\n private cachedEvents: IFederatedPointerEvent[] = [];\n private startTime: number;\n // @ts-ignore\n // eslint-disable-next-line no-undef\n private pressTimeout: NodeJS.Timeout | null;\n private startPoints: IPointLike[] = [];\n // 用来记录当前触发的事件\n private processEvent: Record<string, boolean> = {};\n private startDistance: number;\n private center: IPointLike;\n private eventType: string | null;\n private direction: GestureDirection | null;\n\n private lastMoveTime: number;\n private prevMoveTime: number;\n\n private prevMovePoint: IPointLike | null;\n private lastMovePoint: IPointLike | null;\n\n private throttleTimer: number = 0;\n private emitThrottles: EmitEventObject[] = [];\n\n private config: DefaultGestureConfig;\n\n private tapCount;\n private lastTapTime;\n private lastTapTarget: IEventTarget | null = null;\n\n constructor(element: IEventTarget, config: GestureConfig = {}) {\n super();\n this.element = element;\n this.tapCount = 0;\n this.lastTapTime = 0;\n this.config = {\n press: {\n time: config?.press?.time ?? PRESS_TIME,\n threshold: config?.press?.threshold ?? PRESS_THRESHOLD\n },\n swipe: {\n threshold: config?.swipe?.threshold ?? SWIPE_THRESHOLD,\n velocity: config?.swipe?.velocity ?? SWIPE_VELOCITY\n },\n tap: {\n interval: config?.tap?.interval ?? TAP_INTERVAL\n }\n };\n this.initEvents();\n }\n\n initEvents() {\n const { element } = this;\n if (!element) {\n return;\n }\n\n element.addEventListener('pointerdown', this.onStart);\n element.addEventListener('pointermove', this.onMove);\n element.addEventListener('pointerup', this.onEnd);\n element.addEventListener('pointerleave', this.onEnd);\n element.addEventListener('pointerupoutside', this.onEnd);\n }\n\n removeEvents() {\n const { element } = this;\n if (!element) {\n return;\n }\n element.removeEventListener('pointerdown', this.onStart);\n element.removeEventListener('pointermove', this.onMove);\n element.removeEventListener('pointerup', this.onEnd);\n element.removeEventListener('pointerleave', this.onEnd);\n element.removeEventListener('pointerupoutside', this.onEnd);\n }\n\n release() {\n this.removeEvents();\n this.element = null;\n }\n\n private onStart = (ev?: FederatedPointerEvent) => {\n // 双指缩放时, onStart会被触发多次, startPoints负责收集上下文\n // 如果onStart时清空startPoints, 会导致onMove提前return, 从而无法触发pinch事件\n // 由于onEnd时会清空startPoints, 所以这里暂不清空\n // 后续遇到bad case再作处理\n // this.cachedEvents = [];\n // this.startPoints = [];\n // this.reset();\n\n this.startTime = clock.now();\n\n const { cachedEvents, startPoints } = this;\n\n if (ev) {\n cachedEvents.push(ev.clone());\n }\n // 重置 startPoints\n startPoints.length = cachedEvents.length;\n for (let i = 0; i < cachedEvents.length; i++) {\n const { x, y } = cachedEvents[i];\n const point = { x, y };\n startPoints[i] = point;\n }\n\n if (startPoints.length === 1) {\n const event = cachedEvents[0] as unknown as GestureEvent;\n this.pressTimeout = setTimeout(() => {\n const eventType = 'press';\n const direction = 'none';\n event.direction = direction;\n event.deltaX = 0;\n event.deltaY = 0;\n event.points = startPoints;\n this.triggerStartEvent(eventType, event);\n this.triggerEvent(eventType, event);\n this.eventType = eventType;\n this.direction = direction;\n this.pressTimeout = null;\n }, this.config.press.time);\n return;\n }\n\n this.startDistance = calcDistance(startPoints[0], startPoints[1]);\n this.center = getCenter([startPoints[0], startPoints[1]]);\n };\n\n private onMove = (ev: FederatedPointerEvent) => {\n this.clearPressTimeout();\n const { startPoints, cachedEvents } = this;\n if (!startPoints.length) {\n return;\n }\n\n const moveEvent = ev.clone() as unknown as GestureEvent;\n const { x, y, pointerId } = moveEvent;\n for (let i = 0, len = cachedEvents.length; i < len; i++) {\n if (pointerId === cachedEvents[i].pointerId) {\n cachedEvents[i] = moveEvent;\n break;\n }\n }\n const point = { x, y };\n const points = cachedEvents.map(cachedEvent => ({ x: cachedEvent.x, y: cachedEvent.y }));\n\n const now = clock.now();\n this.prevMoveTime = this.lastMoveTime;\n this.prevMovePoint = this.lastMovePoint;\n this.lastMoveTime = now;\n this.lastMovePoint = point;\n\n if (startPoints.length === 1) {\n const startPoint = startPoints[0];\n const deltaX = x - startPoint.x;\n const deltaY = y - startPoint.y;\n const direction = this.direction || calcDirection(startPoint, point);\n this.direction = direction;\n\n const eventType = this.getEventType(point);\n moveEvent.direction = direction;\n moveEvent.deltaX = deltaX;\n moveEvent.deltaY = deltaY;\n moveEvent.points = points;\n this.triggerStartEvent(eventType, moveEvent);\n this.triggerEvent(eventType, moveEvent);\n return;\n }\n\n const { startDistance } = this;\n const currentDistance = calcDistance(points[0], points[1]);\n\n // 缩放比例\n moveEvent.scale = currentDistance / startDistance;\n moveEvent.center = this.center;\n moveEvent.points = points;\n this.triggerStartEvent('pinch', moveEvent);\n this.triggerEvent('pinch', moveEvent);\n };\n\n private onEnd = (ev: FederatedPointerEvent) => {\n const endEvent = ev.clone() as unknown as GestureEvent;\n const { cachedEvents, startPoints } = this;\n const points = cachedEvents.map(ev => {\n return { x: ev.x, y: ev.y };\n });\n endEvent.points = points;\n this.triggerEndEvent(endEvent);\n\n if (cachedEvents.length === 1) {\n const now = clock.now();\n const lastMoveTime = this.lastMoveTime;\n // 做这个判断是为了最后一次touchmove后到end前,是否还有一个停顿的过程\n // 100 是拍的一个值,理论这个值会很短,一般不卡顿的话在10ms以内\n if (now - lastMoveTime < 100) {\n const prevMoveTime = this.prevMoveTime || this.startTime;\n const intervalTime = lastMoveTime - prevMoveTime;\n // 时间间隔一定要大于0, 否则计算没意义\n if (intervalTime > 0) {\n const prevMovePoint = this.prevMovePoint || startPoints[0];\n const lastMovePoint = this.lastMovePoint || startPoints[0];\n const distance = calcDistance(prevMovePoint, lastMovePoint);\n // move速率\n const velocity = distance / intervalTime;\n // 0.3 是参考hammerjs的设置\n if (velocity > this.config.swipe.velocity && distance > this.config.swipe.threshold) {\n endEvent.velocity = velocity;\n endEvent.direction = calcDirection(prevMovePoint, lastMovePoint);\n this.triggerEvent('swipe', endEvent);\n\n this.cachedEvents = [];\n this.startPoints = [];\n this.reset();\n return;\n }\n }\n }\n\n if (now - this.startTime < this.config.press.time) {\n if (now - this.lastTapTime < this.config.tap.interval && ev.target === this.lastTapTarget) {\n this.tapCount++;\n } else {\n this.tapCount = 1;\n }\n this.lastTapTime = now;\n this.lastTapTarget = ev.target;\n\n if (this.tapCount === 1) {\n this.triggerEvent('tap', endEvent);\n } else if (this.tapCount === 2) {\n this.triggerEvent('doubletap', endEvent);\n this.tapCount = 0; // reset tapCount after doubletap\n }\n }\n }\n\n for (let i = 0, len = cachedEvents.length; i < len; i++) {\n if (cachedEvents[i].pointerId === endEvent.pointerId) {\n cachedEvents.splice(i, 1);\n startPoints.splice(i, 1);\n break;\n }\n }\n\n this.reset();\n\n // 多指离开 1 指后,重新触发一次start\n if (cachedEvents.length > 0) {\n this.onStart();\n }\n };\n\n private getEventType(point: IPointLike) {\n const { eventType, startTime, startPoints } = this;\n if (eventType === 'press') {\n return eventType;\n }\n\n let type;\n const now = clock.now();\n if (now - startTime > this.config.press.time && calcDistance(startPoints[0], point) < this.config.press.threshold) {\n type = 'press';\n } else {\n type = 'pan';\n }\n this.eventType = type;\n return type;\n }\n\n private enable(eventType: string) {\n this.processEvent[eventType] = true;\n }\n\n // 是否进行中的事件\n private isProcess(eventType: string) {\n return this.processEvent[eventType];\n }\n\n private pushEvent(type: string, ev: GestureEvent) {\n const { emitThrottles } = this;\n const newEvent = { type, ev };\n for (let i = 0, len = emitThrottles.length; i < len; i++) {\n if (emitThrottles[i].type === type) {\n emitThrottles.splice(i, 1, newEvent);\n return;\n }\n }\n emitThrottles.push(newEvent);\n }\n\n private clearPressTimeout() {\n if (this.pressTimeout) {\n clearTimeout(this.pressTimeout);\n this.pressTimeout = null;\n }\n }\n\n private reset() {\n this.clearPressTimeout();\n this.startTime = 0;\n this.startDistance = 0;\n this.direction = null;\n this.eventType = null;\n this.prevMoveTime = 0;\n this.prevMovePoint = null;\n this.lastMoveTime = 0;\n this.lastMovePoint = null;\n }\n\n private triggerEvent(type: string, ev: GestureEvent) {\n // 主要是节流处理\n this.pushEvent(type, ev);\n const { throttleTimer, emitThrottles } = this;\n if (throttleTimer) {\n return;\n }\n\n this.throttleTimer = application.global.getRequestAnimationFrame()(() => {\n application.global.getCancelAnimationFrame()(this.throttleTimer);\n this.throttleTimer = null;\n\n for (let i = 0, len = emitThrottles.length; i < len; i++) {\n const { type, ev } = emitThrottles[i];\n this.emitEvent(type, ev);\n }\n // 清空\n this.emitThrottles.length = 0;\n });\n }\n\n // 触发start事件\n private triggerStartEvent(type: string, ev: GestureEvent) {\n if (this.isProcess(type)) {\n return;\n }\n this.enable(type);\n this.triggerEvent(`${type}start`, ev);\n }\n\n private triggerEndEvent(ev: GestureEvent) {\n const processEvent = this.processEvent;\n Object.keys(processEvent).forEach(type => {\n this.triggerEvent(`${type}end`, ev);\n if (type === 'press') {\n // pressend 别名,pressup\n this.triggerEvent(`${type}up`, ev);\n }\n delete processEvent[type];\n });\n }\n\n private emitEvent(type: string, e: GestureEvent) {\n if (!this.element) {\n return;\n }\n const events = (this.element as unknown as any)._events;\n this._callListeners(type, e, events[WILDCARD]);\n this._callListeners(type, e, events[type]);\n\n this.emit(type, e);\n }\n\n private _callListeners(type: string, e: GestureEvent, listeners: any) {\n if (!listeners) {\n return;\n }\n if ('fn' in listeners) {\n listeners.fn.call(listeners.context, e, type);\n } else {\n for (let i = 0, j = listeners.length; i < j && !e.propagationImmediatelyStopped; i++) {\n listeners[i].fn.call(listeners[i].context, e, type);\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/extension/gesture.ts"],"names":[],"mappings":"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","file":"gesture.js","sourcesContent":["import { application } from '@visactor/vrender-core/application';\nimport { clock, WILDCARD } from '@visactor/vrender-core';\nimport type { IEventTarget, IFederatedPointerEvent, FederatedPointerEvent, INode } from '@visactor/vrender-core';\nimport type { IPointLike } from '@visactor/vutils';\nimport { EventEmitter } from '@visactor/vutils';\n\nimport type { DefaultGestureConfig, EmitEventObject, GestureConfig, GestureDirection, GestureEvent } from './interface';\n\n/**\n * 代码参考 https://github.com/hammerjs/hammer.js\n * The MIT License (MIT)\n\n Copyright (C) 2011-2017 by Jorik Tangelder (Eight Media)\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\nconst PRESS_TIME = 251;\nconst PRESS_THRESHOLD = 9;\nconst SWIPE_VELOCITY = 0.3;\nconst SWIPE_THRESHOLD = 10;\nconst TAP_INTERVAL = 300;\n\nconst calcDirection = (start: IPointLike, end: IPointLike) => {\n const xDistance = end.x - start.x;\n const yDistance = end.y - start.y;\n if (Math.abs(xDistance) > Math.abs(yDistance)) {\n return xDistance > 0 ? 'right' : 'left';\n }\n return yDistance > 0 ? 'down' : 'up';\n};\n\n// 计算2点之间的距离\nconst calcDistance = (point1: IPointLike, point2: IPointLike) => {\n const xDistance = Math.abs(point2.x - point1.x);\n const yDistance = Math.abs(point2.y - point1.y);\n return Math.sqrt(xDistance * xDistance + yDistance * yDistance);\n};\n\nconst getCenter = (points: IPointLike[]) => {\n const pointersLength = points.length;\n\n if (pointersLength === 1) {\n return {\n x: Math.round(points[0].x),\n y: Math.round(points[0].y)\n };\n }\n\n let x = 0;\n let y = 0;\n let i = 0;\n while (i < pointersLength) {\n x += points[i].x;\n y += points[i].y;\n i++;\n }\n\n return {\n x: Math.round(x / pointersLength),\n y: Math.round(y / pointersLength)\n };\n};\n\nexport class Gesture extends EventEmitter {\n element: INode | null;\n\n private cachedEvents: IFederatedPointerEvent[] = [];\n private startTime: number;\n // @ts-ignore\n // eslint-disable-next-line no-undef\n private pressTimeout: NodeJS.Timeout | null;\n private startPoints: IPointLike[] = [];\n // 用来记录当前触发的事件\n private processEvent: Record<string, boolean> = {};\n private startDistance: number;\n private center: IPointLike;\n private eventType: string | null;\n private direction: GestureDirection | null;\n\n private lastMoveTime: number;\n private prevMoveTime: number;\n\n private prevMovePoint: IPointLike | null;\n private lastMovePoint: IPointLike | null;\n\n private throttleTimer: number = 0;\n private emitThrottles: EmitEventObject[] = [];\n\n private config: DefaultGestureConfig;\n\n private tapCount;\n private lastTapTime;\n private lastTapTarget: IEventTarget | null = null;\n\n constructor(element: IEventTarget, config: GestureConfig = {}) {\n super();\n this.element = element;\n this.tapCount = 0;\n this.lastTapTime = 0;\n this.config = {\n press: {\n time: config?.press?.time ?? PRESS_TIME,\n threshold: config?.press?.threshold ?? PRESS_THRESHOLD\n },\n swipe: {\n threshold: config?.swipe?.threshold ?? SWIPE_THRESHOLD,\n velocity: config?.swipe?.velocity ?? SWIPE_VELOCITY\n },\n tap: {\n interval: config?.tap?.interval ?? TAP_INTERVAL\n }\n };\n this.initEvents();\n }\n\n initEvents() {\n const { element } = this;\n if (!element) {\n return;\n }\n\n element.addEventListener('pointerdown', this.onStart);\n element.addEventListener('pointermove', this.onMove);\n element.addEventListener('pointerup', this.onEnd);\n element.addEventListener('pointerleave', this.onEnd);\n element.addEventListener('pointerupoutside', this.onEnd);\n }\n\n removeEvents() {\n const { element } = this;\n if (!element) {\n return;\n }\n element.removeEventListener('pointerdown', this.onStart);\n element.removeEventListener('pointermove', this.onMove);\n element.removeEventListener('pointerup', this.onEnd);\n element.removeEventListener('pointerleave', this.onEnd);\n element.removeEventListener('pointerupoutside', this.onEnd);\n }\n\n release() {\n this.removeEvents();\n this.element = null;\n }\n\n private onStart = (ev?: FederatedPointerEvent) => {\n // 双指缩放时, onStart会被触发多次, startPoints负责收集上下文\n // 如果onStart时清空startPoints, 会导致onMove提前return, 从而无法触发pinch事件\n // 由于onEnd时会清空startPoints, 所以这里暂不清空\n // 后续遇到bad case再作处理\n // this.cachedEvents = [];\n // this.startPoints = [];\n // this.reset();\n\n this.startTime = clock.now();\n\n const { cachedEvents, startPoints } = this;\n\n if (ev) {\n cachedEvents.push(ev.clone());\n }\n // 重置 startPoints\n startPoints.length = cachedEvents.length;\n for (let i = 0; i < cachedEvents.length; i++) {\n const { x, y } = cachedEvents[i];\n const point = { x, y };\n startPoints[i] = point;\n }\n\n if (startPoints.length === 1) {\n const event = cachedEvents[0] as unknown as GestureEvent;\n this.pressTimeout = setTimeout(() => {\n const eventType = 'press';\n const direction = 'none';\n event.direction = direction;\n event.deltaX = 0;\n event.deltaY = 0;\n event.points = startPoints;\n this.triggerStartEvent(eventType, event);\n this.triggerEvent(eventType, event);\n this.eventType = eventType;\n this.direction = direction;\n this.pressTimeout = null;\n }, this.config.press.time);\n return;\n }\n\n this.startDistance = calcDistance(startPoints[0], startPoints[1]);\n this.center = getCenter([startPoints[0], startPoints[1]]);\n };\n\n private onMove = (ev: FederatedPointerEvent) => {\n this.clearPressTimeout();\n const { startPoints, cachedEvents } = this;\n if (!startPoints.length) {\n return;\n }\n\n const moveEvent = ev.clone() as unknown as GestureEvent;\n const { x, y, pointerId } = moveEvent;\n for (let i = 0, len = cachedEvents.length; i < len; i++) {\n if (pointerId === cachedEvents[i].pointerId) {\n cachedEvents[i] = moveEvent;\n break;\n }\n }\n const point = { x, y };\n const points = cachedEvents.map(cachedEvent => ({ x: cachedEvent.x, y: cachedEvent.y }));\n\n const now = clock.now();\n this.prevMoveTime = this.lastMoveTime;\n this.prevMovePoint = this.lastMovePoint;\n this.lastMoveTime = now;\n this.lastMovePoint = point;\n\n if (startPoints.length === 1) {\n const startPoint = startPoints[0];\n const deltaX = x - startPoint.x;\n const deltaY = y - startPoint.y;\n const direction = this.direction || calcDirection(startPoint, point);\n this.direction = direction;\n\n const eventType = this.getEventType(point);\n moveEvent.direction = direction;\n moveEvent.deltaX = deltaX;\n moveEvent.deltaY = deltaY;\n moveEvent.points = points;\n this.triggerStartEvent(eventType, moveEvent);\n this.triggerEvent(eventType, moveEvent);\n return;\n }\n\n const { startDistance } = this;\n const currentDistance = calcDistance(points[0], points[1]);\n\n // 缩放比例\n moveEvent.scale = currentDistance / startDistance;\n moveEvent.center = this.center;\n moveEvent.points = points;\n this.triggerStartEvent('pinch', moveEvent);\n this.triggerEvent('pinch', moveEvent);\n };\n\n private onEnd = (ev: FederatedPointerEvent) => {\n const endEvent = ev.clone() as unknown as GestureEvent;\n const { cachedEvents, startPoints } = this;\n const points = cachedEvents.map(ev => {\n return { x: ev.x, y: ev.y };\n });\n endEvent.points = points;\n this.triggerEndEvent(endEvent);\n\n if (cachedEvents.length === 1) {\n const now = clock.now();\n const lastMoveTime = this.lastMoveTime;\n // 做这个判断是为了最后一次touchmove后到end前,是否还有一个停顿的过程\n // 100 是拍的一个值,理论这个值会很短,一般不卡顿的话在10ms以内\n if (now - lastMoveTime < 100) {\n const prevMoveTime = this.prevMoveTime || this.startTime;\n const intervalTime = lastMoveTime - prevMoveTime;\n // 时间间隔一定要大于0, 否则计算没意义\n if (intervalTime > 0) {\n const prevMovePoint = this.prevMovePoint || startPoints[0];\n const lastMovePoint = this.lastMovePoint || startPoints[0];\n const distance = calcDistance(prevMovePoint, lastMovePoint);\n // move速率\n const velocity = distance / intervalTime;\n // 0.3 是参考hammerjs的设置\n if (velocity > this.config.swipe.velocity && distance > this.config.swipe.threshold) {\n endEvent.velocity = velocity;\n endEvent.direction = calcDirection(prevMovePoint, lastMovePoint);\n this.triggerEvent('swipe', endEvent);\n\n this.cachedEvents = [];\n this.startPoints = [];\n this.reset();\n return;\n }\n }\n }\n\n if (now - this.startTime < this.config.press.time) {\n if (now - this.lastTapTime < this.config.tap.interval && ev.target === this.lastTapTarget) {\n this.tapCount++;\n } else {\n this.tapCount = 1;\n }\n this.lastTapTime = now;\n this.lastTapTarget = ev.target;\n\n if (this.tapCount === 1) {\n this.triggerEvent('tap', endEvent);\n } else if (this.tapCount === 2) {\n this.triggerEvent('doubletap', endEvent);\n this.tapCount = 0; // reset tapCount after doubletap\n }\n }\n }\n\n for (let i = 0, len = cachedEvents.length; i < len; i++) {\n if (cachedEvents[i].pointerId === endEvent.pointerId) {\n cachedEvents.splice(i, 1);\n startPoints.splice(i, 1);\n break;\n }\n }\n\n this.reset();\n\n // 多指离开 1 指后,重新触发一次start\n if (cachedEvents.length > 0) {\n this.onStart();\n }\n };\n\n private getEventType(point: IPointLike) {\n const { eventType, startTime, startPoints } = this;\n if (eventType === 'press') {\n return eventType;\n }\n\n let type;\n const now = clock.now();\n if (now - startTime > this.config.press.time && calcDistance(startPoints[0], point) < this.config.press.threshold) {\n type = 'press';\n } else {\n type = 'pan';\n }\n this.eventType = type;\n return type;\n }\n\n private enable(eventType: string) {\n this.processEvent[eventType] = true;\n }\n\n // 是否进行中的事件\n private isProcess(eventType: string) {\n return this.processEvent[eventType];\n }\n\n private pushEvent(type: string, ev: GestureEvent) {\n const { emitThrottles } = this;\n const newEvent = { type, ev };\n for (let i = 0, len = emitThrottles.length; i < len; i++) {\n if (emitThrottles[i].type === type) {\n emitThrottles.splice(i, 1, newEvent);\n return;\n }\n }\n emitThrottles.push(newEvent);\n }\n\n private clearPressTimeout() {\n if (this.pressTimeout) {\n clearTimeout(this.pressTimeout);\n this.pressTimeout = null;\n }\n }\n\n private reset() {\n this.clearPressTimeout();\n this.startTime = 0;\n this.startDistance = 0;\n this.direction = null;\n this.eventType = null;\n this.prevMoveTime = 0;\n this.prevMovePoint = null;\n this.lastMoveTime = 0;\n this.lastMovePoint = null;\n }\n\n private triggerEvent(type: string, ev: GestureEvent) {\n // 主要是节流处理\n this.pushEvent(type, ev);\n const { throttleTimer, emitThrottles } = this;\n if (throttleTimer) {\n return;\n }\n\n this.throttleTimer = application.global.getRequestAnimationFrame()(() => {\n application.global.getCancelAnimationFrame()(this.throttleTimer);\n this.throttleTimer = null;\n\n for (let i = 0, len = emitThrottles.length; i < len; i++) {\n const { type, ev } = emitThrottles[i];\n this.emitEvent(type, ev);\n }\n // 清空\n this.emitThrottles.length = 0;\n });\n }\n\n // 触发start事件\n private triggerStartEvent(type: string, ev: GestureEvent) {\n if (this.isProcess(type)) {\n return;\n }\n this.enable(type);\n this.triggerEvent(`${type}start`, ev);\n }\n\n private triggerEndEvent(ev: GestureEvent) {\n const processEvent = this.processEvent;\n Object.keys(processEvent).forEach(type => {\n this.triggerEvent(`${type}end`, ev);\n if (type === 'press') {\n // pressend 别名,pressup\n this.triggerEvent(`${type}up`, ev);\n }\n delete processEvent[type];\n });\n }\n\n private emitEvent(type: string, e: GestureEvent) {\n if (!this.element) {\n return;\n }\n const events = (this.element as unknown as any)._events;\n this._callListeners(type, e, events[WILDCARD]);\n this._callListeners(type, e, events[type]);\n\n this.emit(type, e);\n }\n\n private _callListeners(type: string, e: GestureEvent, listeners: any) {\n if (!listeners) {\n return;\n }\n if ('fn' in listeners) {\n listeners.fn.call(listeners.context, e, type);\n } else {\n for (let i = 0, j = listeners.length; i < j && !e.propagationImmediatelyStopped; i++) {\n listeners[i].fn.call(listeners[i].context, e, type);\n }\n }\n }\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.createGifImage = exports.GifImage = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), gifuct_js_1 = require("gifuct-js"), constants_1 = require("./constants");
7
+ const application_1 = require("@visactor/vrender-core/application"), vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), gifuct_js_1 = require("gifuct-js"), constants_1 = require("./constants");
8
8
 
9
9
  class GifImage extends vrender_core_1.Image {
10
10
  constructor(params) {
@@ -23,8 +23,8 @@ class GifImage extends vrender_core_1.Image {
23
23
  }
24
24
  }
25
25
  renderGIF(frames) {
26
- this.loadedFrames = frames, this.frameIndex = 0, this.tempCanvas || (this.tempCanvas = vrender_core_1.application.global.createCanvas({}),
27
- this.tempCtx = this.tempCanvas.getContext("2d")), this.gifCanvas || (this.gifCanvas = vrender_core_1.application.global.createCanvas({}),
26
+ this.loadedFrames = frames, this.frameIndex = 0, this.tempCanvas || (this.tempCanvas = application_1.application.global.createCanvas({}),
27
+ this.tempCtx = this.tempCanvas.getContext("2d")), this.gifCanvas || (this.gifCanvas = application_1.application.global.createCanvas({}),
28
28
  this.gifCtx = this.gifCanvas.getContext("2d")), this.gifCanvas.width = frames[0].dims.width,
29
29
  this.gifCanvas.height = frames[0].dims.height, this.playing = !0, this.lastTime = (new Date).getTime();
30
30
  const animation = this.animate();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/gif-image.ts"],"names":[],"mappings":"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","file":"gif-image.js","sourcesContent":["import type { IImageGraphicAttribute, ISetAttributeContext } from '@visactor/vrender-core';\nimport { application, Image, ResourceLoader } from '@visactor/vrender-core';\nimport type { ITimeline } from '@visactor/vrender-core';\nimport { isString } from '@visactor/vutils';\nimport type { ParsedFrame } from 'gifuct-js';\nimport { decompressFrames, parseGIF } from 'gifuct-js';\nimport type { IGifImage, IGifImageGraphicAttribute } from '../interface/gif-image';\nimport { GIFIMAGE_NUMBER_TYPE } from './constants';\n\nexport class GifImage extends Image implements IGifImage {\n type: any = 'gif-image';\n declare attribute: IGifImageGraphicAttribute;\n\n frameImageData?: ImageData;\n tempCanvas?: HTMLCanvasElement;\n tempCtx?: CanvasRenderingContext2D;\n gifCanvas?: HTMLCanvasElement;\n gifCtx?: CanvasRenderingContext2D;\n loadedFrames?: ParsedFrame[];\n frameIndex?: number;\n playing?: boolean;\n lastTime?: number;\n\n constructor(params: IGifImageGraphicAttribute) {\n super(params);\n this.numberType = GIFIMAGE_NUMBER_TYPE;\n this.loadGif();\n }\n\n loadGif() {\n if (isString(this.attribute.gifImage)) {\n ResourceLoader.GetFile(this.attribute.gifImage, 'arrayBuffer')\n .then((res: ArrayBuffer) => {\n const gif = parseGIF(res);\n const frames = decompressFrames(gif, true);\n this.renderGIF(frames);\n })\n .catch(e => {\n console.error('Gif load error: ', e);\n });\n } else if (this.attribute.gifImage instanceof ArrayBuffer) {\n const gif = parseGIF(this.attribute.gifImage);\n const frames = decompressFrames(gif, true);\n this.renderGIF(frames);\n }\n }\n\n renderGIF(frames: ParsedFrame[]) {\n this.loadedFrames = frames;\n this.frameIndex = 0;\n\n if (!this.tempCanvas) {\n this.tempCanvas = application.global.createCanvas({});\n this.tempCtx = this.tempCanvas.getContext('2d');\n }\n\n if (!this.gifCanvas) {\n this.gifCanvas = application.global.createCanvas({});\n this.gifCtx = this.gifCanvas.getContext('2d');\n }\n\n this.gifCanvas.width = frames[0].dims.width;\n this.gifCanvas.height = frames[0].dims.height;\n\n this.playing = true;\n this.lastTime = new Date().getTime();\n const animation = this.animate();\n if (this.attribute.timeline) {\n animation.setTimeline(this.attribute.timeline);\n }\n animation.to({}, 1000, 'linear').loop(Infinity);\n }\n\n renderFrame(context: CanvasRenderingContext2D, x: number, y: number) {\n // get the frame\n const frame = this.loadedFrames[this.frameIndex || 0];\n\n if (frame.disposalType === 2) {\n this.gifCtx.clearRect(0, 0, this.gifCanvas.width, this.gifCanvas.height);\n }\n\n // draw image into gifCanvas\n this.drawPatch(frame);\n\n // draw gifCanvas into stage\n this.manipulate(context, x, y);\n\n // update the frame index\n const diff = new Date().getTime() - this.lastTime;\n if (frame.delay < diff) {\n this.frameIndex++;\n this.lastTime = new Date().getTime();\n }\n if (this.frameIndex >= this.loadedFrames.length) {\n this.frameIndex = 0;\n }\n }\n\n drawPatch(frame: ParsedFrame) {\n const dims = frame.dims;\n\n if (\n !this.frameImageData ||\n dims.width !== this.frameImageData.width ||\n dims.height !== this.frameImageData.height\n ) {\n this.tempCanvas.width = dims.width;\n this.tempCanvas.height = dims.height;\n this.frameImageData = this.tempCtx.createImageData(dims.width, dims.height);\n }\n\n // set the patch data as an override\n this.frameImageData.data.set(frame.patch);\n\n // draw the patch back over the canvas\n this.tempCtx.putImageData(this.frameImageData, 0, 0);\n\n this.gifCtx.drawImage(this.tempCanvas, dims.left, dims.top);\n }\n\n manipulate(context: CanvasRenderingContext2D, x: number, y: number) {\n context.drawImage(\n this.gifCanvas,\n 0,\n 0,\n this.gifCanvas.width,\n this.gifCanvas.height,\n x,\n y,\n this.attribute.width,\n this.attribute.height\n );\n }\n\n setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void {\n super.setAttribute(key, value, forceUpdateTag, context);\n if (key === 'gifImage') {\n this.loadGif();\n }\n }\n\n setAttributes(\n params: Partial<IGifImageGraphicAttribute>,\n forceUpdateTag?: boolean,\n context?: ISetAttributeContext\n ): void {\n super.setAttributes(params, forceUpdateTag, context);\n if (params.gifImage) {\n this.loadGif();\n }\n }\n}\n\nexport function createGifImage(attributes: IGifImageGraphicAttribute): IGifImage {\n return new GifImage(attributes);\n}\n"]}
1
+ {"version":3,"sources":["../src/graphic/gif-image.ts"],"names":[],"mappings":"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","file":"gif-image.js","sourcesContent":["import type { IImageGraphicAttribute, ISetAttributeContext } from '@visactor/vrender-core';\nimport { application } from '@visactor/vrender-core/application';\nimport { Image, ResourceLoader } from '@visactor/vrender-core';\nimport type { ITimeline } from '@visactor/vrender-core';\nimport { isString } from '@visactor/vutils';\nimport type { ParsedFrame } from 'gifuct-js';\nimport { decompressFrames, parseGIF } from 'gifuct-js';\nimport type { IGifImage, IGifImageGraphicAttribute } from '../interface/gif-image';\nimport { GIFIMAGE_NUMBER_TYPE } from './constants';\n\nexport class GifImage extends Image implements IGifImage {\n type: any = 'gif-image';\n declare attribute: IGifImageGraphicAttribute;\n\n frameImageData?: ImageData;\n tempCanvas?: HTMLCanvasElement;\n tempCtx?: CanvasRenderingContext2D;\n gifCanvas?: HTMLCanvasElement;\n gifCtx?: CanvasRenderingContext2D;\n loadedFrames?: ParsedFrame[];\n frameIndex?: number;\n playing?: boolean;\n lastTime?: number;\n\n constructor(params: IGifImageGraphicAttribute) {\n super(params);\n this.numberType = GIFIMAGE_NUMBER_TYPE;\n this.loadGif();\n }\n\n loadGif() {\n if (isString(this.attribute.gifImage)) {\n ResourceLoader.GetFile(this.attribute.gifImage, 'arrayBuffer')\n .then((res: ArrayBuffer) => {\n const gif = parseGIF(res);\n const frames = decompressFrames(gif, true);\n this.renderGIF(frames);\n })\n .catch(e => {\n console.error('Gif load error: ', e);\n });\n } else if (this.attribute.gifImage instanceof ArrayBuffer) {\n const gif = parseGIF(this.attribute.gifImage);\n const frames = decompressFrames(gif, true);\n this.renderGIF(frames);\n }\n }\n\n renderGIF(frames: ParsedFrame[]) {\n this.loadedFrames = frames;\n this.frameIndex = 0;\n\n if (!this.tempCanvas) {\n this.tempCanvas = application.global.createCanvas({});\n this.tempCtx = this.tempCanvas.getContext('2d');\n }\n\n if (!this.gifCanvas) {\n this.gifCanvas = application.global.createCanvas({});\n this.gifCtx = this.gifCanvas.getContext('2d');\n }\n\n this.gifCanvas.width = frames[0].dims.width;\n this.gifCanvas.height = frames[0].dims.height;\n\n this.playing = true;\n this.lastTime = new Date().getTime();\n const animation = this.animate();\n if (this.attribute.timeline) {\n animation.setTimeline(this.attribute.timeline);\n }\n animation.to({}, 1000, 'linear').loop(Infinity);\n }\n\n renderFrame(context: CanvasRenderingContext2D, x: number, y: number) {\n // get the frame\n const frame = this.loadedFrames[this.frameIndex || 0];\n\n if (frame.disposalType === 2) {\n this.gifCtx.clearRect(0, 0, this.gifCanvas.width, this.gifCanvas.height);\n }\n\n // draw image into gifCanvas\n this.drawPatch(frame);\n\n // draw gifCanvas into stage\n this.manipulate(context, x, y);\n\n // update the frame index\n const diff = new Date().getTime() - this.lastTime;\n if (frame.delay < diff) {\n this.frameIndex++;\n this.lastTime = new Date().getTime();\n }\n if (this.frameIndex >= this.loadedFrames.length) {\n this.frameIndex = 0;\n }\n }\n\n drawPatch(frame: ParsedFrame) {\n const dims = frame.dims;\n\n if (\n !this.frameImageData ||\n dims.width !== this.frameImageData.width ||\n dims.height !== this.frameImageData.height\n ) {\n this.tempCanvas.width = dims.width;\n this.tempCanvas.height = dims.height;\n this.frameImageData = this.tempCtx.createImageData(dims.width, dims.height);\n }\n\n // set the patch data as an override\n this.frameImageData.data.set(frame.patch);\n\n // draw the patch back over the canvas\n this.tempCtx.putImageData(this.frameImageData, 0, 0);\n\n this.gifCtx.drawImage(this.tempCanvas, dims.left, dims.top);\n }\n\n manipulate(context: CanvasRenderingContext2D, x: number, y: number) {\n context.drawImage(\n this.gifCanvas,\n 0,\n 0,\n this.gifCanvas.width,\n this.gifCanvas.height,\n x,\n y,\n this.attribute.width,\n this.attribute.height\n );\n }\n\n setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void {\n super.setAttribute(key, value, forceUpdateTag, context);\n if (key === 'gifImage') {\n this.loadGif();\n }\n }\n\n setAttributes(\n params: Partial<IGifImageGraphicAttribute>,\n forceUpdateTag?: boolean,\n context?: ISetAttributeContext\n ): void {\n super.setAttributes(params, forceUpdateTag, context);\n if (params.gifImage) {\n this.loadGif();\n }\n }\n}\n\nexport function createGifImage(attributes: IGifImageGraphicAttribute): IGifImage {\n return new GifImage(attributes);\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.installMathPickersToApp = exports.installNodePickersToApp = exports.installBrowserPickersToApp = exports.installDefaultGraphicsToApp = exports.installHarmonyEnvToApp = exports.installLynxEnvToApp = exports.installWxEnvToApp = exports.installTTEnvToApp = exports.installFeishuEnvToApp = exports.installTaroEnvToApp = exports.installNodeEnvToApp = exports.installBrowserEnvToApp = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core"), modules_1 = require("../canvas/contributions/browser/modules"), modules_2 = require("../canvas/contributions/feishu/modules"), modules_3 = require("../canvas/contributions/harmony/modules"), modules_4 = require("../canvas/contributions/lynx/modules"), modules_5 = require("../canvas/contributions/node/modules"), modules_6 = require("../canvas/contributions/taro/modules"), modules_7 = require("../canvas/contributions/tt/modules"), modules_8 = require("../canvas/contributions/wx/modules"), browser_1 = require("../env/browser"), feishu_1 = require("../env/feishu"), harmony_1 = require("../env/harmony"), lynx_1 = require("../env/lynx"), node_1 = require("../env/node"), taro_1 = require("../env/taro"), tt_1 = require("../env/tt"), wx_1 = require("../env/wx"), arc3d_module_1 = require("../picker/contributions/canvas-picker/arc3d-module"), arc_module_1 = require("../picker/contributions/canvas-picker/arc-module"), area_module_1 = require("../picker/contributions/canvas-picker/area-module"), circle_module_1 = require("../picker/contributions/canvas-picker/circle-module"), gif_image_module_1 = require("../picker/contributions/canvas-picker/gif-image-module"), glyph_module_1 = require("../picker/contributions/canvas-picker/glyph-module"), image_module_1 = require("../picker/contributions/canvas-picker/image-module"), line_module_1 = require("../picker/contributions/canvas-picker/line-module"), path_module_1 = require("../picker/contributions/canvas-picker/path-module"), polygon_module_1 = require("../picker/contributions/canvas-picker/polygon-module"), pyramid3d_module_1 = require("../picker/contributions/canvas-picker/pyramid3d-module"), rect3d_module_1 = require("../picker/contributions/canvas-picker/rect3d-module"), rect_module_1 = require("../picker/contributions/canvas-picker/rect-module"), richtext_module_1 = require("../picker/contributions/canvas-picker/richtext-module"), star_module_1 = require("../picker/contributions/canvas-picker/star-module"), symbol_module_1 = require("../picker/contributions/canvas-picker/symbol-module"), text_module_1 = require("../picker/contributions/canvas-picker/text-module"), constants_1 = require("../picker/contributions/constants"), canvas_module_1 = require("../picker/canvas-module"), canvas_picker_service_1 = require("../picker/canvas-picker-service"), math_module_1 = require("../picker/math-module"), math_picker_service_1 = require("../picker/math-picker-service"), register_gif_1 = require("../register/register-gif"), gif_image_module_2 = require("../render/contributions/canvas/gif-image-module"), browser_contribution_1 = require("../window/contributions/browser-contribution"), feishu_contribution_1 = require("../window/contributions/feishu-contribution"), harmony_contribution_1 = require("../window/contributions/harmony-contribution"), lynx_contribution_1 = require("../window/contributions/lynx-contribution"), node_contribution_1 = require("../window/contributions/node-contribution"), taro_contribution_1 = require("../window/contributions/taro-contribution"), tt_contribution_1 = require("../window/contributions/tt-contribution"), wx_contribution_1 = require("../window/contributions/wx-contribution"), defaultGraphicInstallSteps = [ {
7
+ const constants_1 = require("@visactor/vrender-core/picker/constants"), application_1 = require("@visactor/vrender-core/application"), vrender_core_1 = require("@visactor/vrender-core"), modules_1 = require("../canvas/contributions/browser/modules"), modules_2 = require("../canvas/contributions/feishu/modules"), modules_3 = require("../canvas/contributions/harmony/modules"), modules_4 = require("../canvas/contributions/lynx/modules"), modules_5 = require("../canvas/contributions/node/modules"), modules_6 = require("../canvas/contributions/taro/modules"), modules_7 = require("../canvas/contributions/tt/modules"), modules_8 = require("../canvas/contributions/wx/modules"), browser_1 = require("../env/browser"), feishu_1 = require("../env/feishu"), harmony_1 = require("../env/harmony"), lynx_1 = require("../env/lynx"), node_1 = require("../env/node"), taro_1 = require("../env/taro"), tt_1 = require("../env/tt"), wx_1 = require("../env/wx"), arc3d_module_1 = require("../picker/contributions/canvas-picker/arc3d-module"), arc_module_1 = require("../picker/contributions/canvas-picker/arc-module"), area_module_1 = require("../picker/contributions/canvas-picker/area-module"), circle_module_1 = require("../picker/contributions/canvas-picker/circle-module"), gif_image_module_1 = require("../picker/contributions/canvas-picker/gif-image-module"), glyph_module_1 = require("../picker/contributions/canvas-picker/glyph-module"), image_module_1 = require("../picker/contributions/canvas-picker/image-module"), line_module_1 = require("../picker/contributions/canvas-picker/line-module"), path_module_1 = require("../picker/contributions/canvas-picker/path-module"), polygon_module_1 = require("../picker/contributions/canvas-picker/polygon-module"), pyramid3d_module_1 = require("../picker/contributions/canvas-picker/pyramid3d-module"), rect3d_module_1 = require("../picker/contributions/canvas-picker/rect3d-module"), rect_module_1 = require("../picker/contributions/canvas-picker/rect-module"), richtext_module_1 = require("../picker/contributions/canvas-picker/richtext-module"), star_module_1 = require("../picker/contributions/canvas-picker/star-module"), symbol_module_1 = require("../picker/contributions/canvas-picker/symbol-module"), text_module_1 = require("../picker/contributions/canvas-picker/text-module"), constants_2 = require("../picker/contributions/constants"), canvas_module_1 = require("../picker/canvas-module"), canvas_picker_service_1 = require("../picker/canvas-picker-service"), math_module_1 = require("../picker/math-module"), math_picker_service_1 = require("../picker/math-picker-service"), register_gif_1 = require("../register/register-gif"), gif_image_module_2 = require("../render/contributions/canvas/gif-image-module"), browser_contribution_1 = require("../window/contributions/browser-contribution"), feishu_contribution_1 = require("../window/contributions/feishu-contribution"), harmony_contribution_1 = require("../window/contributions/harmony-contribution"), lynx_contribution_1 = require("../window/contributions/lynx-contribution"), node_contribution_1 = require("../window/contributions/node-contribution"), taro_contribution_1 = require("../window/contributions/taro-contribution"), tt_contribution_1 = require("../window/contributions/tt-contribution"), wx_contribution_1 = require("../window/contributions/wx-contribution"), defaultGraphicInstallSteps = [ {
8
8
  register: vrender_core_1.registerArcGraphic,
9
9
  bindModule: vrender_core_1.arcModule
10
10
  }, {
@@ -73,15 +73,15 @@ function createRegistryContributionProvider(entries) {
73
73
  }
74
74
 
75
75
  function configureBrowserPickerFactory(app) {
76
- const bindingContext = (0, vrender_core_1.getRuntimeInstallerBindingContext)(), pickerContributions = createRegistryContributionProvider((() => app.registry.picker.getAll())), pickItemInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(vrender_core_1.PickItemInterceptor) ? bindingContext.getAll(vrender_core_1.PickItemInterceptor) : [])), pickServiceInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(vrender_core_1.PickServiceInterceptor) ? bindingContext.getAll(vrender_core_1.PickServiceInterceptor) : [])), global = (0,
76
+ const bindingContext = (0, vrender_core_1.getRuntimeInstallerBindingContext)(), pickerContributions = createRegistryContributionProvider((() => app.registry.picker.getAll())), pickItemInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(constants_1.PickItemInterceptor) ? bindingContext.getAll(constants_1.PickItemInterceptor) : [])), pickServiceInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(constants_1.PickServiceInterceptor) ? bindingContext.getAll(constants_1.PickServiceInterceptor) : [])), global = (0,
77
77
  vrender_core_1.getRuntimeInstallerGlobal)();
78
- vrender_core_1.application.pickerServiceFactory = () => new canvas_picker_service_1.DefaultCanvasPickerService(pickerContributions, {}, pickItemInterceptors, pickServiceInterceptors),
79
- vrender_core_1.application.global = global;
78
+ application_1.application.pickerServiceFactory = () => new canvas_picker_service_1.DefaultCanvasPickerService(pickerContributions, {}, pickItemInterceptors, pickServiceInterceptors),
79
+ application_1.application.global = global;
80
80
  }
81
81
 
82
82
  function configureNodePickerFactory(app) {
83
- const bindingContext = (0, vrender_core_1.getRuntimeInstallerBindingContext)(), pickerContributions = createRegistryContributionProvider((() => app.registry.picker.getAll())), pickItemInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(vrender_core_1.PickItemInterceptor) ? bindingContext.getAll(vrender_core_1.PickItemInterceptor) : [])), pickServiceInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(vrender_core_1.PickServiceInterceptor) ? bindingContext.getAll(vrender_core_1.PickServiceInterceptor) : []));
84
- vrender_core_1.application.pickerServiceFactory = () => new math_picker_service_1.DefaultMathPickerService(pickerContributions, pickItemInterceptors, pickServiceInterceptors);
83
+ const bindingContext = (0, vrender_core_1.getRuntimeInstallerBindingContext)(), pickerContributions = createRegistryContributionProvider((() => app.registry.picker.getAll())), pickItemInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(constants_1.PickItemInterceptor) ? bindingContext.getAll(constants_1.PickItemInterceptor) : [])), pickServiceInterceptors = createRegistryContributionProvider((() => bindingContext.isBound(constants_1.PickServiceInterceptor) ? bindingContext.getAll(constants_1.PickServiceInterceptor) : []));
84
+ application_1.application.pickerServiceFactory = () => new math_picker_service_1.DefaultMathPickerService(pickerContributions, pickItemInterceptors, pickServiceInterceptors);
85
85
  }
86
86
 
87
87
  function ensureDefaultGraphicsInstalled() {
@@ -192,14 +192,14 @@ function installBrowserPickersToApp(app) {
192
192
  (0, vrender_core_1.configureRuntimeApplicationForApp)(app);
193
193
  const bindingContext = (0, vrender_core_1.getRuntimeInstallerBindingContext)();
194
194
  browserPickerInstallers.forEach((bindPicker => bindPicker(bindingContext))), (0,
195
- canvas_module_1.bindCanvasPicker)(bindingContext), (0, vrender_core_1.installRuntimePickersToApp)(app, constants_1.CanvasPickerContribution),
195
+ canvas_module_1.bindCanvasPicker)(bindingContext), (0, vrender_core_1.installRuntimePickersToApp)(app, constants_2.CanvasPickerContribution),
196
196
  configureBrowserPickerFactory(app);
197
197
  }
198
198
 
199
199
  function installNodePickersToApp(app) {
200
200
  (0, vrender_core_1.configureRuntimeApplicationForApp)(app);
201
201
  const bindingContext = (0, vrender_core_1.getRuntimeInstallerBindingContext)();
202
- (0, math_module_1.loadMathPicker)(bindingContext), (0, vrender_core_1.installRuntimePickersToApp)(app, constants_1.MathPickerContribution),
202
+ (0, math_module_1.loadMathPicker)(bindingContext), (0, vrender_core_1.installRuntimePickersToApp)(app, constants_2.MathPickerContribution),
203
203
  configureNodePickerFactory(app);
204
204
  }
205
205
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/installers/app.ts"],"names":[],"mappings":";;;AAAA,yDAqDgC;AAChC,qEAAmF;AACnF,oEAAiF;AACjF,qEAAmF;AACnF,kEAA6E;AAC7E,kEAA6E;AAC7E,kEAA6E;AAC7E,gEAAyE;AACzE,gEAAyE;AACzE,4CAAgD;AAChD,0CAA8C;AAC9C,4CAAgD;AAChD,sCAA0C;AAC1C,sCAA0C;AAC1C,sCAA0C;AAC1C,kCAAsC;AACtC,kCAAsC;AACtC,qFAAuG;AACvG,iFAAmG;AACnG,mFAAqG;AACrG,uFAAyG;AACzG,6FAA8G;AAC9G,qFAAuG;AACvG,qFAAuG;AACvG,mFAAqG;AACrG,mFAAqG;AACrG,yFAA2G;AAC3G,6FAA+G;AAC/G,uFAAyG;AACzG,mFAAqG;AACrG,2FAA6G;AAC7G,mFAAqG;AACrG,uFAAyG;AACzG,mFAAqG;AACrG,iEAAqG;AACrG,2DAA2D;AAC3D,2EAA6E;AAC7E,uDAAuD;AACvD,uEAAyE;AACzE,2DAA8D;AAC9D,sFAAiG;AACjG,uFAA6F;AAC7F,qFAA2F;AAC3F,uFAA6F;AAC7F,iFAAuF;AACvF,iFAAuF;AACvF,iFAAuF;AACvF,6EAAmF;AACnF,6EAAmF;AAkBnF,MAAM,0BAA0B,GAAgC;IAC9D,EAAE,QAAQ,EAAE,iCAAkB,EAAE,UAAU,EAAE,wBAAgB,EAAE;IAC9D,EAAE,QAAQ,EAAE,mCAAoB,EAAE,UAAU,EAAE,0BAAkB,EAAE;IAClE,EAAE,QAAQ,EAAE,kCAAmB,EAAE,UAAU,EAAE,yBAAiB,EAAE;IAChE,EAAE,QAAQ,EAAE,oCAAqB,EAAE,UAAU,EAAE,2BAAmB,EAAE;IACpE,EAAE,QAAQ,EAAE,mCAAoB,EAAE,UAAU,EAAE,0BAAkB,EAAE;IAClE,EAAE,QAAQ,EAAE,mCAAoB,EAAE;IAClC,EAAE,QAAQ,EAAE,mCAAoB,EAAE,UAAU,EAAE,0BAAkB,EAAE;IAClE,EAAE,QAAQ,EAAE,kCAAmB,EAAE,UAAU,EAAE,yBAAiB,EAAE;IAChE,EAAE,QAAQ,EAAE,kCAAmB,EAAE,UAAU,EAAE,yBAAiB,EAAE;IAChE,EAAE,QAAQ,EAAE,qCAAsB,EAAE,UAAU,EAAE,4BAAoB,EAAE;IACtE,EAAE,QAAQ,EAAE,uCAAwB,EAAE,UAAU,EAAE,8BAAsB,EAAE;IAC1E,EAAE,QAAQ,EAAE,kCAAmB,EAAE,UAAU,EAAE,yBAAiB,EAAE;IAChE,EAAE,QAAQ,EAAE,oCAAqB,EAAE,UAAU,EAAE,2BAAmB,EAAE;IACpE,EAAE,QAAQ,EAAE,sCAAuB,EAAE,UAAU,EAAE,6BAAqB,EAAE;IACxE,EAAE,QAAQ,EAAE,wCAAyB,EAAE;IACvC,EAAE,QAAQ,EAAE,kCAAmB,EAAE,UAAU,EAAE,yBAAiB,EAAE;IAChE,EAAE,QAAQ,EAAE,oCAAqB,EAAE,UAAU,EAAE,2BAAmB,EAAE;IACpE,EAAE,QAAQ,EAAE,kCAAmB,EAAE,UAAU,EAAE,yBAAiB,EAAE;IAChE,EAAE,QAAQ,EAAE,sCAAuB,EAAE;IACrC,EAAE,QAAQ,EAAE,iCAAkB,EAAE;CACjC,CAAC;AAEF,IAAI,wBAAwB,GAAG,KAAK,CAAC;AAErC,MAAM,uBAAuB,GAAG;IAC9B,4CAA+B;IAC/B,gDAAiC;IACjC,8CAAgC;IAChC,kDAAkC;IAClC,gDAAiC;IACjC,gDAAiC;IACjC,8CAAgC;IAChC,8CAAgC;IAChC,oDAAmC;IACnC,wDAAqC;IACrC,8CAAgC;IAChC,kDAAkC;IAClC,sDAAoC;IACpC,8CAAgC;IAChC,kDAAkC;IAClC,8CAAgC;IAChC,uDAAoC;CACrC,CAAC;AAEF,SAAS,kCAAkC,CAAI,OAAkB;IAC/D,OAAO;QACL,gBAAgB,EAAE,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,GAAS;IAC9C,MAAM,cAAc,GAAG,IAAA,gDAAiC,GAAE,CAAC;IAC3D,MAAM,mBAAmB,GAAG,kCAAkC,CAC5D,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAsB,CACvD,CAAC;IACF,MAAM,oBAAoB,GAAG,kCAAkC,CAAmC,GAAG,EAAE,CACrG,cAAc,CAAC,OAAO,CAAC,kCAAmB,CAAC;QACzC,CAAC,CAAE,cAAc,CAAC,MAAM,CAAC,kCAAmB,CAAwC;QACpF,CAAC,CAAC,EAAE,CACP,CAAC;IACF,MAAM,uBAAuB,GAAG,kCAAkC,CAAsC,GAAG,EAAE,CAC3G,cAAc,CAAC,OAAO,CAAC,qCAAsB,CAAC;QAC5C,CAAC,CAAE,cAAc,CAAC,MAAM,CAAC,qCAAsB,CAA2C;QAC1F,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,wCAAyB,GAAE,CAAC;IAC3C,0BAAW,CAAC,oBAAoB,GAAG,GAAG,EAAE,CACtC,IAAI,kDAA0B,CAAC,mBAAmB,EAAE,EAAS,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,CAAC;IAChH,0BAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9B,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAS;IAC3C,MAAM,cAAc,GAAG,IAAA,gDAAiC,GAAE,CAAC;IAC3D,MAAM,mBAAmB,GAAG,kCAAkC,CAC5D,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAsB,CACvD,CAAC;IACF,MAAM,oBAAoB,GAAG,kCAAkC,CAAmC,GAAG,EAAE,CACrG,cAAc,CAAC,OAAO,CAAC,kCAAmB,CAAC;QACzC,CAAC,CAAE,cAAc,CAAC,MAAM,CAAC,kCAAmB,CAAwC;QACpF,CAAC,CAAC,EAAE,CACP,CAAC;IACF,MAAM,uBAAuB,GAAG,kCAAkC,CAAsC,GAAG,EAAE,CAC3G,cAAc,CAAC,OAAO,CAAC,qCAAsB,CAAC;QAC5C,CAAC,CAAE,cAAc,CAAC,MAAM,CAAC,qCAAsB,CAA2C;QAC1F,CAAC,CAAC,EAAE,CACP,CAAC;IACF,0BAAW,CAAC,oBAAoB,GAAG,GAAG,EAAE,CACtC,IAAI,8CAAwB,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,8BAA8B;IACrC,IAAI,wBAAwB,EAAE;QAC5B,OAAO;KACR;IAED,MAAM,cAAc,GAAG,IAAA,gDAAiC,GAAE,CAAC;IAC3D,wBAAwB,GAAG,IAAI,CAAC;IAChC,0BAA0B,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QAC9D,QAAQ,EAAE,CAAC;QACX,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,IAAA,iDAA8B,EAAC,cAAc,CAAC,CAAC;IAC/C,IAAA,mDAAoC,GAAE,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAAuB,SAA0C;IAC7F,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,UAAU,CAAC,EAAE;QAC3F,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAC;QAC3D,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;QAC7B,OAAO,eAAsC,CAAC;KAC/C;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,CAAC;AAChD,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAS,EACT,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,KAAqC,EAAE;IAEjE,IAAA,wCAAyB,GAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAS,EACT,GAAS,EACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAyB,EAC7E,SAA+B;IAE/B,IAAA,gDAAiC,EAAC,GAAG,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,gDAAiC,GAAE,CAAC;IAC3D,OAAO,CAAC,cAAc,CAAC,CAAC;IACxB,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAClC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACvC,IAAA,mDAAoC,GAAE,CAAC;IACvC,kBAAkB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,sBAAsB,CAAC,GAAS,EAAE,SAAoC;IACpF,sBAAsB,CACpB,GAAG,EACH,SAAS,EACT;QACE,OAAO,EAAE,wBAAc;QACvB,iBAAiB,EAAE,kCAAwB;QAC3C,sBAAsB,EAAE,oDAA6B;KACtD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,wDAWC;AAED,SAAgB,mBAAmB,CAAC,GAAS,EAAE,SAAiC;IAC9E,sBAAsB,CACpB,GAAG,EACH,MAAM,EACN;QACE,OAAO,EAAE,kBAAW;QACpB,iBAAiB,EAAE,+BAAqB;QACxC,sBAAsB,EAAE,8CAA0B;KACnD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED,SAAgB,mBAAmB,CAAC,GAAS,EAAE,SAAiC;IAC9E,sBAAsB,CACpB,GAAG,EACH,MAAM,EACN;QACE,OAAO,EAAE,kBAAW;QACpB,iBAAiB,EAAE,+BAAqB;QACxC,sBAAsB,EAAE,8CAA0B;KACnD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED,SAAgB,qBAAqB,CAAC,GAAS,EAAE,SAAmC;IAClF,sBAAsB,CACpB,GAAG,EACH,QAAQ,EACR;QACE,OAAO,EAAE,sBAAa;QACtB,iBAAiB,EAAE,iCAAuB;QAC1C,sBAAsB,EAAE,kDAA4B;KACrD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,sDAWC;AAED,SAAgB,iBAAiB,CAAC,GAAS,EAAE,SAA+B;IAC1E,sBAAsB,CACpB,GAAG,EACH,IAAI,EACJ;QACE,OAAO,EAAE,cAAS;QAClB,iBAAiB,EAAE,6BAAmB;QACtC,sBAAsB,EAAE,0CAAwB;KACjD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,8CAWC;AAED,SAAgB,iBAAiB,CAAC,GAAS,EAAE,SAA+B;IAC1E,sBAAsB,CACpB,GAAG,EACH,IAAI,EACJ;QACE,OAAO,EAAE,cAAS;QAClB,iBAAiB,EAAE,6BAAmB;QACtC,sBAAsB,EAAE,0CAAwB;KACjD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,8CAWC;AAED,SAAgB,mBAAmB,CAAC,GAAS,EAAE,SAAiC;IAC9E,sBAAsB,CACpB,GAAG,EACH,MAAM,EACN;QACE,OAAO,EAAE,kBAAW;QACpB,iBAAiB,EAAE,+BAAqB;QACxC,sBAAsB,EAAE,8CAA0B;KACnD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED,SAAgB,sBAAsB,CAAC,GAAS,EAAE,SAAoC;IACpF,sBAAsB,CACpB,GAAG,EACH,SAAS,EACT;QACE,OAAO,EAAE,wBAAc;QACvB,iBAAiB,EAAE,kCAAwB;QAC3C,sBAAsB,EAAE,oDAA6B;KACtD,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAXD,wDAWC;AAED,SAAgB,2BAA2B,CAAC,GAAS;IACnD,IAAA,gDAAiC,EAAC,GAAG,CAAC,CAAC;IACvC,8BAA8B,EAAE,CAAC;IACjC,IAAA,mDAAoC,EAAC,GAAG,CAAC,CAAC;IAC1C,IAAA,kDAAmC,EAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AALD,kEAKC;AAED,SAAgB,0BAA0B,CAAC,GAAS;IAClD,IAAA,gDAAiC,EAAC,GAAG,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,gDAAiC,GAAE,CAAC;IAC3D,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1E,IAAA,gCAAgB,EAAC,cAAc,CAAC,CAAC;IACjC,IAAA,yCAA0B,EAAC,GAAG,EAAE,oCAAwB,CAAC,CAAC;IAC1D,6BAA6B,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAPD,gEAOC;AAED,SAAgB,uBAAuB,CAAC,GAAS;IAC/C,IAAA,gDAAiC,EAAC,GAAG,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,gDAAiC,GAAE,CAAC;IAC3D,IAAA,4BAAc,EAAC,cAAc,CAAC,CAAC;IAC/B,IAAA,yCAA0B,EAAC,GAAG,EAAE,kCAAsB,CAAC,CAAC;IACxD,0BAA0B,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAND,0DAMC;AAED,SAAgB,uBAAuB,CAAC,GAAS;IAC/C,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAFD,0DAEC","file":"app.js","sourcesContent":["import {\n PickItemInterceptor,\n PickServiceInterceptor,\n application,\n arc3dModule,\n arcModule,\n areaModule,\n circleModule,\n configureRuntimeApplicationForApp,\n getRuntimeInstallerBindingContext,\n getRuntimeInstallerGlobal,\n glyphModule,\n imageModule,\n installRuntimeDrawContributionsToApp,\n installRuntimeGraphicRenderersToApp,\n installRuntimePickersToApp,\n lineModule,\n pathModule,\n polygonModule,\n pyramid3dModule,\n rect3dModule,\n rectModule,\n refreshRuntimeInstallerContributions,\n registerArc3dGraphic,\n registerArcGraphic,\n registerAreaGraphic,\n registerCircleGraphic,\n registerGlyphGraphic,\n registerGroupGraphic,\n registerImageGraphic,\n registerLineGraphic,\n registerPathGraphic,\n registerPolygonGraphic,\n registerPyramid3dGraphic,\n registerRect3dGraphic,\n registerRectGraphic,\n registerRichtextGraphic,\n registerShadowRootGraphic,\n registerStarGraphic,\n registerSymbolGraphic,\n registerTextGraphic,\n registerWrapTextGraphic,\n richtextModule,\n starModule,\n symbolModule,\n textModule,\n type EnvType,\n type IContributionProvider,\n type IEnvParamsMap,\n type IGraphicPicker,\n type IPickItemInterceptorContribution,\n type IPickServiceInterceptorContribution,\n type IApp\n} from '@visactor/vrender-core';\nimport { bindBrowserCanvasModules } from '../canvas/contributions/browser/modules';\nimport { bindFeishuCanvasModules } from '../canvas/contributions/feishu/modules';\nimport { bindHarmonyCanvasModules } from '../canvas/contributions/harmony/modules';\nimport { bindLynxCanvasModules } from '../canvas/contributions/lynx/modules';\nimport { bindNodeCanvasModules } from '../canvas/contributions/node/modules';\nimport { bindTaroCanvasModules } from '../canvas/contributions/taro/modules';\nimport { bindTTCanvasModules } from '../canvas/contributions/tt/modules';\nimport { bindWxCanvasModules } from '../canvas/contributions/wx/modules';\nimport { bindBrowserEnv } from '../env/browser';\nimport { bindFeishuEnv } from '../env/feishu';\nimport { bindHarmonyEnv } from '../env/harmony';\nimport { bindLynxEnv } from '../env/lynx';\nimport { bindNodeEnv } from '../env/node';\nimport { bindTaroEnv } from '../env/taro';\nimport { bindTTEnv } from '../env/tt';\nimport { bindWxEnv } from '../env/wx';\nimport { bindArc3dCanvasPickerContribution } from '../picker/contributions/canvas-picker/arc3d-module';\nimport { bindArcCanvasPickerContribution } from '../picker/contributions/canvas-picker/arc-module';\nimport { bindAreaCanvasPickerContribution } from '../picker/contributions/canvas-picker/area-module';\nimport { bindCircleCanvasPickerContribution } from '../picker/contributions/canvas-picker/circle-module';\nimport { bindGifImageCanvasPickerContribution } from '../picker/contributions/canvas-picker/gif-image-module';\nimport { bindGlyphCanvasPickerContribution } from '../picker/contributions/canvas-picker/glyph-module';\nimport { bindImageCanvasPickerContribution } from '../picker/contributions/canvas-picker/image-module';\nimport { bindLineCanvasPickerContribution } from '../picker/contributions/canvas-picker/line-module';\nimport { bindPathCanvasPickerContribution } from '../picker/contributions/canvas-picker/path-module';\nimport { bindPolygonCanvasPickerContribution } from '../picker/contributions/canvas-picker/polygon-module';\nimport { bindPyramid3dCanvasPickerContribution } from '../picker/contributions/canvas-picker/pyramid3d-module';\nimport { bindRect3dCanvasPickerContribution } from '../picker/contributions/canvas-picker/rect3d-module';\nimport { bindRectCanvasPickerContribution } from '../picker/contributions/canvas-picker/rect-module';\nimport { bindRichtextCanvasPickerContribution } from '../picker/contributions/canvas-picker/richtext-module';\nimport { bindStarCanvasPickerContribution } from '../picker/contributions/canvas-picker/star-module';\nimport { bindSymbolCanvasPickerContribution } from '../picker/contributions/canvas-picker/symbol-module';\nimport { bindTextCanvasPickerContribution } from '../picker/contributions/canvas-picker/text-module';\nimport { CanvasPickerContribution, MathPickerContribution } from '../picker/contributions/constants';\nimport { bindCanvasPicker } from '../picker/canvas-module';\nimport { DefaultCanvasPickerService } from '../picker/canvas-picker-service';\nimport { loadMathPicker } from '../picker/math-module';\nimport { DefaultMathPickerService } from '../picker/math-picker-service';\nimport { registerGifGraphic } from '../register/register-gif';\nimport { bindGifImageRenderContribution } from '../render/contributions/canvas/gif-image-module';\nimport { bindBrowserWindowContribution } from '../window/contributions/browser-contribution';\nimport { bindFeishuWindowContribution } from '../window/contributions/feishu-contribution';\nimport { bindHarmonyWindowContribution } from '../window/contributions/harmony-contribution';\nimport { bindLynxWindowContribution } from '../window/contributions/lynx-contribution';\nimport { bindNodeWindowContribution } from '../window/contributions/node-contribution';\nimport { bindTaroWindowContribution } from '../window/contributions/taro-contribution';\nimport { bindTTWindowContribution } from '../window/contributions/tt-contribution';\nimport { bindWxWindowContribution } from '../window/contributions/wx-contribution';\n\ntype RuntimeBindingContext = ReturnType<typeof getRuntimeInstallerBindingContext>;\ntype RuntimeEnvInstallOptions<TEnv extends EnvType> = {\n envParams?: IEnvParamsMap[TEnv];\n force?: boolean;\n};\ntype RuntimeEnvBindingStep = {\n bindEnv: (context: RuntimeBindingContext) => void;\n bindCanvasModules: (context: RuntimeBindingContext) => void;\n bindWindowContribution: (context: RuntimeBindingContext) => void;\n};\n\ntype RuntimeGraphicInstallStep = {\n register: () => void;\n bindModule?: (context: { bind: RuntimeBindingContext['bind'] }) => void;\n};\n\nconst defaultGraphicInstallSteps: RuntimeGraphicInstallStep[] = [\n { register: registerArcGraphic, bindModule: arcModule as any },\n { register: registerArc3dGraphic, bindModule: arc3dModule as any },\n { register: registerAreaGraphic, bindModule: areaModule as any },\n { register: registerCircleGraphic, bindModule: circleModule as any },\n { register: registerGlyphGraphic, bindModule: glyphModule as any },\n { register: registerGroupGraphic },\n { register: registerImageGraphic, bindModule: imageModule as any },\n { register: registerLineGraphic, bindModule: lineModule as any },\n { register: registerPathGraphic, bindModule: pathModule as any },\n { register: registerPolygonGraphic, bindModule: polygonModule as any },\n { register: registerPyramid3dGraphic, bindModule: pyramid3dModule as any },\n { register: registerRectGraphic, bindModule: rectModule as any },\n { register: registerRect3dGraphic, bindModule: rect3dModule as any },\n { register: registerRichtextGraphic, bindModule: richtextModule as any },\n { register: registerShadowRootGraphic },\n { register: registerStarGraphic, bindModule: starModule as any },\n { register: registerSymbolGraphic, bindModule: symbolModule as any },\n { register: registerTextGraphic, bindModule: textModule as any },\n { register: registerWrapTextGraphic },\n { register: registerGifGraphic }\n];\n\nlet defaultGraphicsInstalled = false;\n\nconst browserPickerInstallers = [\n bindArcCanvasPickerContribution,\n bindArc3dCanvasPickerContribution,\n bindAreaCanvasPickerContribution,\n bindCircleCanvasPickerContribution,\n bindGlyphCanvasPickerContribution,\n bindImageCanvasPickerContribution,\n bindLineCanvasPickerContribution,\n bindPathCanvasPickerContribution,\n bindPolygonCanvasPickerContribution,\n bindPyramid3dCanvasPickerContribution,\n bindRectCanvasPickerContribution,\n bindRect3dCanvasPickerContribution,\n bindRichtextCanvasPickerContribution,\n bindStarCanvasPickerContribution,\n bindSymbolCanvasPickerContribution,\n bindTextCanvasPickerContribution,\n bindGifImageCanvasPickerContribution\n];\n\nfunction createRegistryContributionProvider<T>(entries: () => T[]): IContributionProvider<T> {\n return {\n getContributions: entries\n };\n}\n\nfunction configureBrowserPickerFactory(app: IApp): void {\n const bindingContext = getRuntimeInstallerBindingContext();\n const pickerContributions = createRegistryContributionProvider<IGraphicPicker>(\n () => app.registry.picker.getAll() as IGraphicPicker[]\n );\n const pickItemInterceptors = createRegistryContributionProvider<IPickItemInterceptorContribution>(() =>\n bindingContext.isBound(PickItemInterceptor)\n ? (bindingContext.getAll(PickItemInterceptor) as IPickItemInterceptorContribution[])\n : []\n );\n const pickServiceInterceptors = createRegistryContributionProvider<IPickServiceInterceptorContribution>(() =>\n bindingContext.isBound(PickServiceInterceptor)\n ? (bindingContext.getAll(PickServiceInterceptor) as IPickServiceInterceptorContribution[])\n : []\n );\n\n const global = getRuntimeInstallerGlobal();\n application.pickerServiceFactory = () =>\n new DefaultCanvasPickerService(pickerContributions, {} as any, pickItemInterceptors, pickServiceInterceptors);\n application.global = global;\n}\n\nfunction configureNodePickerFactory(app: IApp): void {\n const bindingContext = getRuntimeInstallerBindingContext();\n const pickerContributions = createRegistryContributionProvider<IGraphicPicker>(\n () => app.registry.picker.getAll() as IGraphicPicker[]\n );\n const pickItemInterceptors = createRegistryContributionProvider<IPickItemInterceptorContribution>(() =>\n bindingContext.isBound(PickItemInterceptor)\n ? (bindingContext.getAll(PickItemInterceptor) as IPickItemInterceptorContribution[])\n : []\n );\n const pickServiceInterceptors = createRegistryContributionProvider<IPickServiceInterceptorContribution>(() =>\n bindingContext.isBound(PickServiceInterceptor)\n ? (bindingContext.getAll(PickServiceInterceptor) as IPickServiceInterceptorContribution[])\n : []\n );\n application.pickerServiceFactory = () =>\n new DefaultMathPickerService(pickerContributions, pickItemInterceptors, pickServiceInterceptors);\n}\n\nfunction ensureDefaultGraphicsInstalled(): void {\n if (defaultGraphicsInstalled) {\n return;\n }\n\n const bindingContext = getRuntimeInstallerBindingContext();\n defaultGraphicsInstalled = true;\n defaultGraphicInstallSteps.forEach(({ register, bindModule }) => {\n register();\n bindModule?.({ bind: bindingContext.bind });\n });\n bindGifImageRenderContribution(bindingContext);\n refreshRuntimeInstallerContributions();\n}\n\nfunction createForcedEnvParams<TEnv extends EnvType>(envParams: IEnvParamsMap[TEnv] | undefined): IEnvParamsMap[TEnv] {\n if (envParams != null && (typeof envParams === 'object' || typeof envParams === 'function')) {\n const forcedEnvParams = Object.create(envParams as object);\n forcedEnvParams.force = true;\n return forcedEnvParams as IEnvParamsMap[TEnv];\n }\n\n return { force: true } as IEnvParamsMap[TEnv];\n}\n\nfunction activateRuntimeEnv<TEnv extends EnvType>(\n env: TEnv,\n { envParams, force = false }: RuntimeEnvInstallOptions<TEnv> = {}\n): void {\n getRuntimeInstallerGlobal().setEnv(env, force ? createForcedEnvParams(envParams) : envParams);\n}\n\nfunction installRuntimeEnvToApp<TEnv extends EnvType>(\n app: IApp,\n env: TEnv,\n { bindEnv, bindCanvasModules, bindWindowContribution }: RuntimeEnvBindingStep,\n envParams?: IEnvParamsMap[TEnv]\n): void {\n configureRuntimeApplicationForApp(app);\n const bindingContext = getRuntimeInstallerBindingContext();\n bindEnv(bindingContext);\n bindCanvasModules(bindingContext);\n bindWindowContribution(bindingContext);\n refreshRuntimeInstallerContributions();\n activateRuntimeEnv(env, { envParams, force: true });\n}\n\nexport function installBrowserEnvToApp(app: IApp, envParams?: IEnvParamsMap['browser']): void {\n installRuntimeEnvToApp(\n app,\n 'browser',\n {\n bindEnv: bindBrowserEnv,\n bindCanvasModules: bindBrowserCanvasModules,\n bindWindowContribution: bindBrowserWindowContribution\n },\n envParams\n );\n}\n\nexport function installNodeEnvToApp(app: IApp, envParams?: IEnvParamsMap['node']): void {\n installRuntimeEnvToApp(\n app,\n 'node',\n {\n bindEnv: bindNodeEnv,\n bindCanvasModules: bindNodeCanvasModules,\n bindWindowContribution: bindNodeWindowContribution\n },\n envParams\n );\n}\n\nexport function installTaroEnvToApp(app: IApp, envParams?: IEnvParamsMap['taro']): void {\n installRuntimeEnvToApp(\n app,\n 'taro',\n {\n bindEnv: bindTaroEnv,\n bindCanvasModules: bindTaroCanvasModules,\n bindWindowContribution: bindTaroWindowContribution\n },\n envParams\n );\n}\n\nexport function installFeishuEnvToApp(app: IApp, envParams?: IEnvParamsMap['feishu']): void {\n installRuntimeEnvToApp(\n app,\n 'feishu',\n {\n bindEnv: bindFeishuEnv,\n bindCanvasModules: bindFeishuCanvasModules,\n bindWindowContribution: bindFeishuWindowContribution\n },\n envParams\n );\n}\n\nexport function installTTEnvToApp(app: IApp, envParams?: IEnvParamsMap['tt']): void {\n installRuntimeEnvToApp(\n app,\n 'tt',\n {\n bindEnv: bindTTEnv,\n bindCanvasModules: bindTTCanvasModules,\n bindWindowContribution: bindTTWindowContribution\n },\n envParams\n );\n}\n\nexport function installWxEnvToApp(app: IApp, envParams?: IEnvParamsMap['wx']): void {\n installRuntimeEnvToApp(\n app,\n 'wx',\n {\n bindEnv: bindWxEnv,\n bindCanvasModules: bindWxCanvasModules,\n bindWindowContribution: bindWxWindowContribution\n },\n envParams\n );\n}\n\nexport function installLynxEnvToApp(app: IApp, envParams?: IEnvParamsMap['lynx']): void {\n installRuntimeEnvToApp(\n app,\n 'lynx',\n {\n bindEnv: bindLynxEnv,\n bindCanvasModules: bindLynxCanvasModules,\n bindWindowContribution: bindLynxWindowContribution\n },\n envParams\n );\n}\n\nexport function installHarmonyEnvToApp(app: IApp, envParams?: IEnvParamsMap['harmony']): void {\n installRuntimeEnvToApp(\n app,\n 'harmony',\n {\n bindEnv: bindHarmonyEnv,\n bindCanvasModules: bindHarmonyCanvasModules,\n bindWindowContribution: bindHarmonyWindowContribution\n },\n envParams\n );\n}\n\nexport function installDefaultGraphicsToApp(app: IApp): void {\n configureRuntimeApplicationForApp(app);\n ensureDefaultGraphicsInstalled();\n installRuntimeDrawContributionsToApp(app);\n installRuntimeGraphicRenderersToApp(app);\n}\n\nexport function installBrowserPickersToApp(app: IApp): void {\n configureRuntimeApplicationForApp(app);\n const bindingContext = getRuntimeInstallerBindingContext();\n browserPickerInstallers.forEach(bindPicker => bindPicker(bindingContext));\n bindCanvasPicker(bindingContext);\n installRuntimePickersToApp(app, CanvasPickerContribution);\n configureBrowserPickerFactory(app);\n}\n\nexport function installNodePickersToApp(app: IApp): void {\n configureRuntimeApplicationForApp(app);\n const bindingContext = getRuntimeInstallerBindingContext();\n loadMathPicker(bindingContext);\n installRuntimePickersToApp(app, MathPickerContribution);\n configureNodePickerFactory(app);\n}\n\nexport function installMathPickersToApp(app: IApp): void {\n installNodePickersToApp(app);\n}\n"]}
1
+ {"version":3,"sources":["../src/installers/app.ts"],"names":[],"mappings":"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","file":"app.js","sourcesContent":["import { PickItemInterceptor, PickServiceInterceptor } from '@visactor/vrender-core/picker/constants';\nimport { application } from '@visactor/vrender-core/application';\nimport {\n arc3dModule,\n arcModule,\n areaModule,\n circleModule,\n configureRuntimeApplicationForApp,\n getRuntimeInstallerBindingContext,\n getRuntimeInstallerGlobal,\n glyphModule,\n imageModule,\n installRuntimeDrawContributionsToApp,\n installRuntimeGraphicRenderersToApp,\n installRuntimePickersToApp,\n lineModule,\n pathModule,\n polygonModule,\n pyramid3dModule,\n rect3dModule,\n rectModule,\n refreshRuntimeInstallerContributions,\n registerArc3dGraphic,\n registerArcGraphic,\n registerAreaGraphic,\n registerCircleGraphic,\n registerGlyphGraphic,\n registerGroupGraphic,\n registerImageGraphic,\n registerLineGraphic,\n registerPathGraphic,\n registerPolygonGraphic,\n registerPyramid3dGraphic,\n registerRect3dGraphic,\n registerRectGraphic,\n registerRichtextGraphic,\n registerShadowRootGraphic,\n registerStarGraphic,\n registerSymbolGraphic,\n registerTextGraphic,\n registerWrapTextGraphic,\n richtextModule,\n starModule,\n symbolModule,\n textModule,\n type EnvType,\n type IContributionProvider,\n type IEnvParamsMap,\n type IGraphicPicker,\n type IPickItemInterceptorContribution,\n type IPickServiceInterceptorContribution,\n type IApp\n} from '@visactor/vrender-core';\nimport { bindBrowserCanvasModules } from '../canvas/contributions/browser/modules';\nimport { bindFeishuCanvasModules } from '../canvas/contributions/feishu/modules';\nimport { bindHarmonyCanvasModules } from '../canvas/contributions/harmony/modules';\nimport { bindLynxCanvasModules } from '../canvas/contributions/lynx/modules';\nimport { bindNodeCanvasModules } from '../canvas/contributions/node/modules';\nimport { bindTaroCanvasModules } from '../canvas/contributions/taro/modules';\nimport { bindTTCanvasModules } from '../canvas/contributions/tt/modules';\nimport { bindWxCanvasModules } from '../canvas/contributions/wx/modules';\nimport { bindBrowserEnv } from '../env/browser';\nimport { bindFeishuEnv } from '../env/feishu';\nimport { bindHarmonyEnv } from '../env/harmony';\nimport { bindLynxEnv } from '../env/lynx';\nimport { bindNodeEnv } from '../env/node';\nimport { bindTaroEnv } from '../env/taro';\nimport { bindTTEnv } from '../env/tt';\nimport { bindWxEnv } from '../env/wx';\nimport { bindArc3dCanvasPickerContribution } from '../picker/contributions/canvas-picker/arc3d-module';\nimport { bindArcCanvasPickerContribution } from '../picker/contributions/canvas-picker/arc-module';\nimport { bindAreaCanvasPickerContribution } from '../picker/contributions/canvas-picker/area-module';\nimport { bindCircleCanvasPickerContribution } from '../picker/contributions/canvas-picker/circle-module';\nimport { bindGifImageCanvasPickerContribution } from '../picker/contributions/canvas-picker/gif-image-module';\nimport { bindGlyphCanvasPickerContribution } from '../picker/contributions/canvas-picker/glyph-module';\nimport { bindImageCanvasPickerContribution } from '../picker/contributions/canvas-picker/image-module';\nimport { bindLineCanvasPickerContribution } from '../picker/contributions/canvas-picker/line-module';\nimport { bindPathCanvasPickerContribution } from '../picker/contributions/canvas-picker/path-module';\nimport { bindPolygonCanvasPickerContribution } from '../picker/contributions/canvas-picker/polygon-module';\nimport { bindPyramid3dCanvasPickerContribution } from '../picker/contributions/canvas-picker/pyramid3d-module';\nimport { bindRect3dCanvasPickerContribution } from '../picker/contributions/canvas-picker/rect3d-module';\nimport { bindRectCanvasPickerContribution } from '../picker/contributions/canvas-picker/rect-module';\nimport { bindRichtextCanvasPickerContribution } from '../picker/contributions/canvas-picker/richtext-module';\nimport { bindStarCanvasPickerContribution } from '../picker/contributions/canvas-picker/star-module';\nimport { bindSymbolCanvasPickerContribution } from '../picker/contributions/canvas-picker/symbol-module';\nimport { bindTextCanvasPickerContribution } from '../picker/contributions/canvas-picker/text-module';\nimport { CanvasPickerContribution, MathPickerContribution } from '../picker/contributions/constants';\nimport { bindCanvasPicker } from '../picker/canvas-module';\nimport { DefaultCanvasPickerService } from '../picker/canvas-picker-service';\nimport { loadMathPicker } from '../picker/math-module';\nimport { DefaultMathPickerService } from '../picker/math-picker-service';\nimport { registerGifGraphic } from '../register/register-gif';\nimport { bindGifImageRenderContribution } from '../render/contributions/canvas/gif-image-module';\nimport { bindBrowserWindowContribution } from '../window/contributions/browser-contribution';\nimport { bindFeishuWindowContribution } from '../window/contributions/feishu-contribution';\nimport { bindHarmonyWindowContribution } from '../window/contributions/harmony-contribution';\nimport { bindLynxWindowContribution } from '../window/contributions/lynx-contribution';\nimport { bindNodeWindowContribution } from '../window/contributions/node-contribution';\nimport { bindTaroWindowContribution } from '../window/contributions/taro-contribution';\nimport { bindTTWindowContribution } from '../window/contributions/tt-contribution';\nimport { bindWxWindowContribution } from '../window/contributions/wx-contribution';\n\ntype RuntimeBindingContext = ReturnType<typeof getRuntimeInstallerBindingContext>;\ntype RuntimeEnvInstallOptions<TEnv extends EnvType> = {\n envParams?: IEnvParamsMap[TEnv];\n force?: boolean;\n};\ntype RuntimeEnvBindingStep = {\n bindEnv: (context: RuntimeBindingContext) => void;\n bindCanvasModules: (context: RuntimeBindingContext) => void;\n bindWindowContribution: (context: RuntimeBindingContext) => void;\n};\n\ntype RuntimeGraphicInstallStep = {\n register: () => void;\n bindModule?: (context: { bind: RuntimeBindingContext['bind'] }) => void;\n};\n\nconst defaultGraphicInstallSteps: RuntimeGraphicInstallStep[] = [\n { register: registerArcGraphic, bindModule: arcModule as any },\n { register: registerArc3dGraphic, bindModule: arc3dModule as any },\n { register: registerAreaGraphic, bindModule: areaModule as any },\n { register: registerCircleGraphic, bindModule: circleModule as any },\n { register: registerGlyphGraphic, bindModule: glyphModule as any },\n { register: registerGroupGraphic },\n { register: registerImageGraphic, bindModule: imageModule as any },\n { register: registerLineGraphic, bindModule: lineModule as any },\n { register: registerPathGraphic, bindModule: pathModule as any },\n { register: registerPolygonGraphic, bindModule: polygonModule as any },\n { register: registerPyramid3dGraphic, bindModule: pyramid3dModule as any },\n { register: registerRectGraphic, bindModule: rectModule as any },\n { register: registerRect3dGraphic, bindModule: rect3dModule as any },\n { register: registerRichtextGraphic, bindModule: richtextModule as any },\n { register: registerShadowRootGraphic },\n { register: registerStarGraphic, bindModule: starModule as any },\n { register: registerSymbolGraphic, bindModule: symbolModule as any },\n { register: registerTextGraphic, bindModule: textModule as any },\n { register: registerWrapTextGraphic },\n { register: registerGifGraphic }\n];\n\nlet defaultGraphicsInstalled = false;\n\nconst browserPickerInstallers = [\n bindArcCanvasPickerContribution,\n bindArc3dCanvasPickerContribution,\n bindAreaCanvasPickerContribution,\n bindCircleCanvasPickerContribution,\n bindGlyphCanvasPickerContribution,\n bindImageCanvasPickerContribution,\n bindLineCanvasPickerContribution,\n bindPathCanvasPickerContribution,\n bindPolygonCanvasPickerContribution,\n bindPyramid3dCanvasPickerContribution,\n bindRectCanvasPickerContribution,\n bindRect3dCanvasPickerContribution,\n bindRichtextCanvasPickerContribution,\n bindStarCanvasPickerContribution,\n bindSymbolCanvasPickerContribution,\n bindTextCanvasPickerContribution,\n bindGifImageCanvasPickerContribution\n];\n\nfunction createRegistryContributionProvider<T>(entries: () => T[]): IContributionProvider<T> {\n return {\n getContributions: entries\n };\n}\n\nfunction configureBrowserPickerFactory(app: IApp): void {\n const bindingContext = getRuntimeInstallerBindingContext();\n const pickerContributions = createRegistryContributionProvider<IGraphicPicker>(\n () => app.registry.picker.getAll() as IGraphicPicker[]\n );\n const pickItemInterceptors = createRegistryContributionProvider<IPickItemInterceptorContribution>(() =>\n bindingContext.isBound(PickItemInterceptor)\n ? (bindingContext.getAll(PickItemInterceptor) as IPickItemInterceptorContribution[])\n : []\n );\n const pickServiceInterceptors = createRegistryContributionProvider<IPickServiceInterceptorContribution>(() =>\n bindingContext.isBound(PickServiceInterceptor)\n ? (bindingContext.getAll(PickServiceInterceptor) as IPickServiceInterceptorContribution[])\n : []\n );\n\n const global = getRuntimeInstallerGlobal();\n application.pickerServiceFactory = () =>\n new DefaultCanvasPickerService(pickerContributions, {} as any, pickItemInterceptors, pickServiceInterceptors);\n application.global = global;\n}\n\nfunction configureNodePickerFactory(app: IApp): void {\n const bindingContext = getRuntimeInstallerBindingContext();\n const pickerContributions = createRegistryContributionProvider<IGraphicPicker>(\n () => app.registry.picker.getAll() as IGraphicPicker[]\n );\n const pickItemInterceptors = createRegistryContributionProvider<IPickItemInterceptorContribution>(() =>\n bindingContext.isBound(PickItemInterceptor)\n ? (bindingContext.getAll(PickItemInterceptor) as IPickItemInterceptorContribution[])\n : []\n );\n const pickServiceInterceptors = createRegistryContributionProvider<IPickServiceInterceptorContribution>(() =>\n bindingContext.isBound(PickServiceInterceptor)\n ? (bindingContext.getAll(PickServiceInterceptor) as IPickServiceInterceptorContribution[])\n : []\n );\n application.pickerServiceFactory = () =>\n new DefaultMathPickerService(pickerContributions, pickItemInterceptors, pickServiceInterceptors);\n}\n\nfunction ensureDefaultGraphicsInstalled(): void {\n if (defaultGraphicsInstalled) {\n return;\n }\n\n const bindingContext = getRuntimeInstallerBindingContext();\n defaultGraphicsInstalled = true;\n defaultGraphicInstallSteps.forEach(({ register, bindModule }) => {\n register();\n bindModule?.({ bind: bindingContext.bind });\n });\n bindGifImageRenderContribution(bindingContext);\n refreshRuntimeInstallerContributions();\n}\n\nfunction createForcedEnvParams<TEnv extends EnvType>(envParams: IEnvParamsMap[TEnv] | undefined): IEnvParamsMap[TEnv] {\n if (envParams != null && (typeof envParams === 'object' || typeof envParams === 'function')) {\n const forcedEnvParams = Object.create(envParams as object);\n forcedEnvParams.force = true;\n return forcedEnvParams as IEnvParamsMap[TEnv];\n }\n\n return { force: true } as IEnvParamsMap[TEnv];\n}\n\nfunction activateRuntimeEnv<TEnv extends EnvType>(\n env: TEnv,\n { envParams, force = false }: RuntimeEnvInstallOptions<TEnv> = {}\n): void {\n getRuntimeInstallerGlobal().setEnv(env, force ? createForcedEnvParams(envParams) : envParams);\n}\n\nfunction installRuntimeEnvToApp<TEnv extends EnvType>(\n app: IApp,\n env: TEnv,\n { bindEnv, bindCanvasModules, bindWindowContribution }: RuntimeEnvBindingStep,\n envParams?: IEnvParamsMap[TEnv]\n): void {\n configureRuntimeApplicationForApp(app);\n const bindingContext = getRuntimeInstallerBindingContext();\n bindEnv(bindingContext);\n bindCanvasModules(bindingContext);\n bindWindowContribution(bindingContext);\n refreshRuntimeInstallerContributions();\n activateRuntimeEnv(env, { envParams, force: true });\n}\n\nexport function installBrowserEnvToApp(app: IApp, envParams?: IEnvParamsMap['browser']): void {\n installRuntimeEnvToApp(\n app,\n 'browser',\n {\n bindEnv: bindBrowserEnv,\n bindCanvasModules: bindBrowserCanvasModules,\n bindWindowContribution: bindBrowserWindowContribution\n },\n envParams\n );\n}\n\nexport function installNodeEnvToApp(app: IApp, envParams?: IEnvParamsMap['node']): void {\n installRuntimeEnvToApp(\n app,\n 'node',\n {\n bindEnv: bindNodeEnv,\n bindCanvasModules: bindNodeCanvasModules,\n bindWindowContribution: bindNodeWindowContribution\n },\n envParams\n );\n}\n\nexport function installTaroEnvToApp(app: IApp, envParams?: IEnvParamsMap['taro']): void {\n installRuntimeEnvToApp(\n app,\n 'taro',\n {\n bindEnv: bindTaroEnv,\n bindCanvasModules: bindTaroCanvasModules,\n bindWindowContribution: bindTaroWindowContribution\n },\n envParams\n );\n}\n\nexport function installFeishuEnvToApp(app: IApp, envParams?: IEnvParamsMap['feishu']): void {\n installRuntimeEnvToApp(\n app,\n 'feishu',\n {\n bindEnv: bindFeishuEnv,\n bindCanvasModules: bindFeishuCanvasModules,\n bindWindowContribution: bindFeishuWindowContribution\n },\n envParams\n );\n}\n\nexport function installTTEnvToApp(app: IApp, envParams?: IEnvParamsMap['tt']): void {\n installRuntimeEnvToApp(\n app,\n 'tt',\n {\n bindEnv: bindTTEnv,\n bindCanvasModules: bindTTCanvasModules,\n bindWindowContribution: bindTTWindowContribution\n },\n envParams\n );\n}\n\nexport function installWxEnvToApp(app: IApp, envParams?: IEnvParamsMap['wx']): void {\n installRuntimeEnvToApp(\n app,\n 'wx',\n {\n bindEnv: bindWxEnv,\n bindCanvasModules: bindWxCanvasModules,\n bindWindowContribution: bindWxWindowContribution\n },\n envParams\n );\n}\n\nexport function installLynxEnvToApp(app: IApp, envParams?: IEnvParamsMap['lynx']): void {\n installRuntimeEnvToApp(\n app,\n 'lynx',\n {\n bindEnv: bindLynxEnv,\n bindCanvasModules: bindLynxCanvasModules,\n bindWindowContribution: bindLynxWindowContribution\n },\n envParams\n );\n}\n\nexport function installHarmonyEnvToApp(app: IApp, envParams?: IEnvParamsMap['harmony']): void {\n installRuntimeEnvToApp(\n app,\n 'harmony',\n {\n bindEnv: bindHarmonyEnv,\n bindCanvasModules: bindHarmonyCanvasModules,\n bindWindowContribution: bindHarmonyWindowContribution\n },\n envParams\n );\n}\n\nexport function installDefaultGraphicsToApp(app: IApp): void {\n configureRuntimeApplicationForApp(app);\n ensureDefaultGraphicsInstalled();\n installRuntimeDrawContributionsToApp(app);\n installRuntimeGraphicRenderersToApp(app);\n}\n\nexport function installBrowserPickersToApp(app: IApp): void {\n configureRuntimeApplicationForApp(app);\n const bindingContext = getRuntimeInstallerBindingContext();\n browserPickerInstallers.forEach(bindPicker => bindPicker(bindingContext));\n bindCanvasPicker(bindingContext);\n installRuntimePickersToApp(app, CanvasPickerContribution);\n configureBrowserPickerFactory(app);\n}\n\nexport function installNodePickersToApp(app: IApp): void {\n configureRuntimeApplicationForApp(app);\n const bindingContext = getRuntimeInstallerBindingContext();\n loadMathPicker(bindingContext);\n installRuntimePickersToApp(app, MathPickerContribution);\n configureNodePickerFactory(app);\n}\n\nexport function installMathPickersToApp(app: IApp): void {\n installNodePickersToApp(app);\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { Group } from '@visactor/vrender-core';
1
+ import { Group } from '@visactor/vrender-core/graphic/group';
2
2
  export declare function jsx(type: string | any, config: Record<string, any>, ...children: any): any;
3
3
  export declare const Fragment: typeof Group;
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.Fragment = exports.jsx = void 0;
16
16
 
17
- const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), graphicType_1 = require("./graphicType");
17
+ const vutils_1 = require("@visactor/vutils"), group_1 = require("@visactor/vrender-core/graphic/group"), vrender_core_1 = require("@visactor/vrender-core"), graphicType_1 = require("./graphicType");
18
18
 
19
19
  function flatten(list, out) {
20
20
  if ((0, vutils_1.isArray)(list)) return list.forEach((i => flatten(i, out)));
@@ -60,5 +60,5 @@ function parseToGraphic(g, childrenList, props) {
60
60
  }))) : "richtext" === g.type && (g.attribute.textConfig = childrenList.map((item => item.attribute)).filter((item => item)));
61
61
  }
62
62
 
63
- exports.jsx = jsx, exports.Fragment = vrender_core_1.Group;
63
+ exports.jsx = jsx, exports.Fragment = group_1.Group;
64
64
  //# sourceMappingURL=jsx-classic.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/jsx/jsx-classic.ts"],"names":[],"mappings":"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","file":"jsx-classic.js","sourcesContent":["import { isArray, isString } from '@visactor/vutils';\nimport { Group, graphicCreator } from '@visactor/vrender-core';\nimport { REACT_TO_CANOPUS_EVENTS } from './graphicType';\n\nfunction flatten(list: any, out: any[]): void {\n if (isArray(list)) {\n return list.forEach(i => flatten(i, out));\n }\n out.push(list);\n}\n\nexport function jsx(type: string | any, config: Record<string, any>, ...children: any) {\n const { name, id, attribute, states, animation, timeline, ...props } = config || {};\n\n let c = type;\n if (isString(type)) {\n c = graphicCreator[type];\n }\n\n const childrenList: any[] = [];\n if (children.length) {\n flatten(children.length === 1 ? children[0] : children, childrenList);\n }\n\n const g = c.name === 'Group' ? new c(attribute) : c(config);\n parseToGraphic(g, childrenList, props);\n\n if (name) {\n g.name = name;\n }\n\n if (id) {\n g.id = id;\n }\n\n if (states) {\n g.states = states;\n }\n\n if (isArray(animation)) {\n // animation={[\n // ['to', { angle: 2 * Math.PI }, 1000, 'linear'],\n // ['loop', Infinity]\n // ]}\n const animate = g.animate();\n timeline && animate.setTimeline(timeline);\n animation.forEach((item: any[]) => {\n animate[item[0]](...item.slice(1));\n });\n }\n\n return g;\n}\n\nfunction parseToGraphic(g: any, childrenList: any[], props: any) {\n let isGraphic: boolean = false;\n let out: any;\n switch (g.type) {\n case 'richtext':\n break;\n case 'rich/text':\n out = g.attribute || {};\n childrenList[0] && (out.text = childrenList[0]);\n break;\n case 'rich/image':\n break;\n default:\n isGraphic = true;\n }\n\n if (isGraphic) {\n childrenList.forEach((c: any) => {\n c && g.add(c);\n });\n\n Object.keys(props).forEach(k => {\n const en = REACT_TO_CANOPUS_EVENTS[k];\n if (en) {\n g.on(en, props[k]);\n }\n });\n } else {\n if (g.type === 'richtext') {\n g.attribute.textConfig = childrenList.map(item => item.attribute).filter(item => item);\n }\n }\n}\n\nexport const Fragment = Group;\n"]}
1
+ {"version":3,"sources":["../src/jsx/jsx-classic.ts"],"names":[],"mappings":"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","file":"jsx-classic.js","sourcesContent":["import { isArray, isString } from '@visactor/vutils';\nimport { Group } from '@visactor/vrender-core/graphic/group';\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { REACT_TO_CANOPUS_EVENTS } from './graphicType';\n\nfunction flatten(list: any, out: any[]): void {\n if (isArray(list)) {\n return list.forEach(i => flatten(i, out));\n }\n out.push(list);\n}\n\nexport function jsx(type: string | any, config: Record<string, any>, ...children: any) {\n const { name, id, attribute, states, animation, timeline, ...props } = config || {};\n\n let c = type;\n if (isString(type)) {\n c = graphicCreator[type];\n }\n\n const childrenList: any[] = [];\n if (children.length) {\n flatten(children.length === 1 ? children[0] : children, childrenList);\n }\n\n const g = c.name === 'Group' ? new c(attribute) : c(config);\n parseToGraphic(g, childrenList, props);\n\n if (name) {\n g.name = name;\n }\n\n if (id) {\n g.id = id;\n }\n\n if (states) {\n g.states = states;\n }\n\n if (isArray(animation)) {\n // animation={[\n // ['to', { angle: 2 * Math.PI }, 1000, 'linear'],\n // ['loop', Infinity]\n // ]}\n const animate = g.animate();\n timeline && animate.setTimeline(timeline);\n animation.forEach((item: any[]) => {\n animate[item[0]](...item.slice(1));\n });\n }\n\n return g;\n}\n\nfunction parseToGraphic(g: any, childrenList: any[], props: any) {\n let isGraphic: boolean = false;\n let out: any;\n switch (g.type) {\n case 'richtext':\n break;\n case 'rich/text':\n out = g.attribute || {};\n childrenList[0] && (out.text = childrenList[0]);\n break;\n case 'rich/image':\n break;\n default:\n isGraphic = true;\n }\n\n if (isGraphic) {\n childrenList.forEach((c: any) => {\n c && g.add(c);\n });\n\n Object.keys(props).forEach(k => {\n const en = REACT_TO_CANOPUS_EVENTS[k];\n if (en) {\n g.on(en, props[k]);\n }\n });\n } else {\n if (g.type === 'richtext') {\n g.attribute.textConfig = childrenList.map(item => item.attribute).filter(item => item);\n }\n }\n}\n\nexport const Fragment = Group;\n"]}