@shopify/react-native-skia 2.11.2 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Package.swift +117 -0
- package/android/CMakeLists.txt +1 -2
- package/cpp/api/JsiSkSVGFactory.h +4 -0
- package/cpp/jsi/JSICache.cpp +99 -0
- package/cpp/jsi/JSICache.h +90 -0
- package/cpp/jsi/NativeObject.h +30 -97
- package/cpp/jsi/ViewProperty.h +0 -24
- package/cpp/rnskia/RNDawnContext.h +2 -1
- package/cpp/rnskia/RNDawnWindowContext.h +22 -0
- package/cpp/rnskia/RNSkManager.cpp +0 -11
- package/cpp/skia/include/core/RasterContext.h +25 -0
- package/cpp/skia/include/core/SkCanvas.h +0 -1
- package/cpp/skia/include/core/SkContext.h +62 -0
- package/cpp/skia/include/core/SkContextOptions.h +15 -0
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPicture.h +36 -18
- package/cpp/skia/include/core/SkRecorder.h +8 -0
- package/cpp/skia/include/core/SkSerialProcs.h +2 -6
- package/cpp/skia/include/effects/SkImageFilters.h +15 -2
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +73 -47
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +7 -4
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DDirectContext.h +12 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +11 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +11 -0
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +13 -0
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +6 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +5 -4
- package/cpp/skia/include/gpu/graphite/PrecompileContext.h +9 -1
- package/cpp/skia/include/gpu/graphite/Recorder.h +0 -2
- package/cpp/skia/include/gpu/graphite/Recording.h +3 -0
- package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +8 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +11 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteContext.h +11 -0
- package/cpp/skia/include/private/SkLog.h +1 -19
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +2 -1
- package/cpp/skia/include/utils/SkLogHandler.h +53 -0
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -0
- package/cpp/skia/modules/skcms/src/Transform_inl.h +9 -10
- package/cpp/skia/modules/skcms/src/skcms_internals.h +8 -3
- package/cpp/skia/modules/skottie/include/SkottieProperty.h +2 -0
- package/cpp/skia/modules/skottie/include/TextShaper.h +1 -0
- package/cpp/skia/modules/skshaper/include/SkShaper.h +23 -1
- package/include/ReactNativeSkia.h +6 -0
- package/lib/commonjs/skia/web/JsiSkCanvas.js +4 -4
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImage.js +6 -3
- package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPathBuilder.d.ts +1 -1
- package/lib/commonjs/skia/web/JsiSkPathBuilder.js +2 -2
- package/lib/commonjs/skia/web/JsiSkPathBuilder.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkTextStyle.js +5 -5
- package/lib/commonjs/skia/web/JsiSkTextStyle.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkottieAnimation.js +8 -8
- package/lib/commonjs/skia/web/JsiSkottieAnimation.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/commands/Drawing.js +2 -1
- package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
- package/lib/commonjs/views/SkiaPictureView.web.js +228 -43
- package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js +4 -4
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkImage.js +6 -3
- package/lib/module/skia/web/JsiSkImage.js.map +1 -1
- package/lib/module/skia/web/JsiSkPathBuilder.d.ts +1 -1
- package/lib/module/skia/web/JsiSkPathBuilder.js +2 -2
- package/lib/module/skia/web/JsiSkPathBuilder.js.map +1 -1
- package/lib/module/skia/web/JsiSkTextStyle.js +5 -5
- package/lib/module/skia/web/JsiSkTextStyle.js.map +1 -1
- package/lib/module/skia/web/JsiSkottieAnimation.js +8 -8
- package/lib/module/skia/web/JsiSkottieAnimation.js.map +1 -1
- package/lib/module/sksg/Recorder/commands/Drawing.js +2 -1
- package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
- package/lib/module/views/SkiaPictureView.web.js +228 -43
- package/lib/module/views/SkiaPictureView.web.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkPathBuilder.d.ts +1 -1
- package/lib/typescript/lib/module/skia/web/JsiSkPathBuilder.d.ts +1 -1
- package/lib/typescript/react-native.config.d.ts +3 -0
- package/lib/typescript/src/skia/web/JsiSkPathBuilder.d.ts +1 -1
- package/package.json +12 -9
- package/react-native.config.js +5 -0
- package/src/skia/web/JsiSkCanvas.ts +11 -6
- package/src/skia/web/JsiSkImage.ts +6 -3
- package/src/skia/web/JsiSkPathBuilder.ts +2 -2
- package/src/skia/web/JsiSkTextStyle.ts +20 -15
- package/src/skia/web/JsiSkottieAnimation.ts +8 -8
- package/src/sksg/Recorder/commands/Drawing.ts +2 -1
- package/src/views/SkiaPictureView.web.tsx +228 -43
- package/cpp/jsi/RuntimeAwareCache.cpp +0 -8
- package/cpp/jsi/RuntimeAwareCache.h +0 -146
- package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
- package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Host","require","_JsiSkMatrix","_JsiSkShader","toBase64String","bytes","Buffer","from","toString","CHUNK_SIZE","index","length","result","slice","Math","min","String","fromCharCode","apply","btoa","exports","JsiSkImage","HostObject","constructor","CanvasKit","ref","height","width","getImageInfo","info","colorType","value","alphaType","makeShaderOptions","tx","ty","fm","mm","localMatrix","JsiSkShader","getEnum","JsiSkMatrix","fromValue","undefined","makeShaderCubic","B","C","encodeToBytes","fmt","quality","Error","encodeToBase64","readPixels","srcX","srcY","imageInfo","_imageInfo$width","_imageInfo$height","pxInfo","colorSpace","ColorSpace","SRGB","makeNonTextureImage","partialInfo","getColorSpace","pixels","img","MakeImage","getNativeTextureUnstable","console","warn"],"sources":["JsiSkImage.ts"],"sourcesContent":["import type {\n CanvasKit,\n ImageInfo as CKImageInfo,\n Image,\n} from \"canvaskit-wasm\";\n\nimport type {\n FilterMode,\n MipmapMode,\n SkImage,\n SkMatrix,\n SkShader,\n TileMode,\n ImageFormat,\n ImageInfo,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\n// https://github.com/google/skia/blob/1f193df9b393d50da39570dab77a0bb5d28ec8ef/modules/canvaskit/htmlcanvas/util.js\nexport const toBase64String = (bytes: Uint8Array) => {\n if (typeof Buffer !== \"undefined\") {\n // Are we on node?\n return Buffer.from(bytes).toString(\"base64\");\n } else {\n // From https://stackoverflow.com/a/25644409\n // because the naive solution of\n // btoa(String.fromCharCode.apply(null, bytes));\n // would occasionally throw \"Maximum call stack size exceeded\"\n var CHUNK_SIZE = 0x8000; //arbitrary number\n var index = 0;\n var { length } = bytes;\n var result = \"\";\n var slice;\n while (index < length) {\n slice = bytes.slice(index, Math.min(index + CHUNK_SIZE, length));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result += String.fromCharCode.apply(null, slice as any);\n index += CHUNK_SIZE;\n }\n return btoa(result);\n }\n};\n\nexport class JsiSkImage extends HostObject<Image, \"Image\"> implements SkImage {\n constructor(CanvasKit: CanvasKit, ref: Image) {\n super(CanvasKit, ref, \"Image\");\n }\n\n height() {\n return this.ref.height();\n }\n\n width() {\n return this.ref.width();\n }\n\n getImageInfo(): ImageInfo {\n const info = this.ref.getImageInfo();\n return {\n width: info.width,\n height: info.height,\n colorType: info.colorType.value,\n alphaType: info.alphaType.value,\n };\n }\n\n makeShaderOptions(\n tx: TileMode,\n ty: TileMode,\n fm: FilterMode,\n mm: MipmapMode,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderOptions(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n makeShaderCubic(\n tx: TileMode,\n ty: TileMode,\n B: number,\n C: number,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderCubic(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n B,\n C,\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n encodeToBytes(fmt?: ImageFormat, quality?: number) {\n let result: Uint8Array | null;\n if (fmt && quality) {\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt),\n quality\n );\n } else if (fmt) {\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt)\n );\n } else {\n result = this.ref.encodeToBytes();\n }\n if (!result) {\n throw new Error(\"encodeToBytes failed\");\n }\n return result;\n }\n\n encodeToBase64(fmt?: ImageFormat, quality?: number) {\n const bytes = this.encodeToBytes(fmt, quality);\n return toBase64String(bytes);\n }\n\n // TODO: this is leaking on Web\n // Add signature with allocated buffer\n readPixels(srcX?: number, srcY?: number, imageInfo?: ImageInfo) {\n const info = this.getImageInfo();\n const pxInfo: CKImageInfo = {\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n width: imageInfo?.width ?? info.width,\n height: imageInfo?.height ?? info.height,\n alphaType: getEnum(\n this.CanvasKit,\n \"AlphaType\",\n (imageInfo ?? info).alphaType\n ),\n colorType: getEnum(\n this.CanvasKit,\n \"ColorType\",\n (imageInfo ?? info).colorType\n ),\n };\n return this.ref.readPixels(srcX ?? 0, srcY ?? 0, pxInfo);\n }\n\n makeNonTextureImage(): SkImage {\n // if the image is already a non-texture image, this is a no-op\n const partialInfo = this.ref.getImageInfo();\n const colorSpace = this.ref.getColorSpace();\n const info = {\n ...partialInfo,\n colorSpace,\n };\n const pixels = this.ref.readPixels(0, 0, info) as Uint8Array | null;\n if (!pixels) {\n throw new Error(\"Could not read pixels from image\");\n }\n const img = this.CanvasKit.MakeImage(info, pixels, info.width * 4);\n if (!img) {\n throw new Error(\"Could not create image from bytes\");\n }\n return new JsiSkImage(this.CanvasKit, img);\n }\n\n getNativeTextureUnstable(): unknown {\n console.warn(\"getBackendTexture is not implemented on Web\");\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Host","require","_JsiSkMatrix","_JsiSkShader","toBase64String","bytes","Buffer","from","toString","CHUNK_SIZE","index","length","result","slice","Math","min","String","fromCharCode","apply","btoa","exports","JsiSkImage","HostObject","constructor","CanvasKit","ref","height","width","getImageInfo","info","colorType","value","alphaType","makeShaderOptions","tx","ty","fm","mm","localMatrix","JsiSkShader","getEnum","JsiSkMatrix","fromValue","undefined","makeShaderCubic","B","C","encodeToBytes","fmt","quality","max","Error","encodeToBase64","readPixels","srcX","srcY","imageInfo","_imageInfo$width","_imageInfo$height","pxInfo","colorSpace","ColorSpace","SRGB","makeNonTextureImage","partialInfo","getColorSpace","pixels","img","MakeImage","getNativeTextureUnstable","console","warn"],"sources":["JsiSkImage.ts"],"sourcesContent":["import type {\n CanvasKit,\n ImageInfo as CKImageInfo,\n Image,\n} from \"canvaskit-wasm\";\n\nimport type {\n FilterMode,\n MipmapMode,\n SkImage,\n SkMatrix,\n SkShader,\n TileMode,\n ImageFormat,\n ImageInfo,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\n// https://github.com/google/skia/blob/1f193df9b393d50da39570dab77a0bb5d28ec8ef/modules/canvaskit/htmlcanvas/util.js\nexport const toBase64String = (bytes: Uint8Array) => {\n if (typeof Buffer !== \"undefined\") {\n // Are we on node?\n return Buffer.from(bytes).toString(\"base64\");\n } else {\n // From https://stackoverflow.com/a/25644409\n // because the naive solution of\n // btoa(String.fromCharCode.apply(null, bytes));\n // would occasionally throw \"Maximum call stack size exceeded\"\n var CHUNK_SIZE = 0x8000; //arbitrary number\n var index = 0;\n var { length } = bytes;\n var result = \"\";\n var slice;\n while (index < length) {\n slice = bytes.slice(index, Math.min(index + CHUNK_SIZE, length));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result += String.fromCharCode.apply(null, slice as any);\n index += CHUNK_SIZE;\n }\n return btoa(result);\n }\n};\n\nexport class JsiSkImage extends HostObject<Image, \"Image\"> implements SkImage {\n constructor(CanvasKit: CanvasKit, ref: Image) {\n super(CanvasKit, ref, \"Image\");\n }\n\n height() {\n return this.ref.height();\n }\n\n width() {\n return this.ref.width();\n }\n\n getImageInfo(): ImageInfo {\n const info = this.ref.getImageInfo();\n return {\n width: info.width,\n height: info.height,\n colorType: info.colorType.value,\n alphaType: info.alphaType.value,\n };\n }\n\n makeShaderOptions(\n tx: TileMode,\n ty: TileMode,\n fm: FilterMode,\n mm: MipmapMode,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderOptions(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n makeShaderCubic(\n tx: TileMode,\n ty: TileMode,\n B: number,\n C: number,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderCubic(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n B,\n C,\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n encodeToBytes(fmt?: ImageFormat, quality?: number) {\n let result: Uint8Array | null;\n if (fmt !== undefined && quality !== undefined) {\n // CanvasKit's encodeToBytes() applies `quality || 100`, which would\n // turn a valid quality of 0 into 100. The encoders clamp any quality\n // below 1 up to 1 anyway, so pass 1 to get the same output as 0.\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt),\n Math.max(quality, 1)\n );\n } else if (fmt !== undefined) {\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt)\n );\n } else {\n result = this.ref.encodeToBytes();\n }\n if (!result) {\n throw new Error(\"encodeToBytes failed\");\n }\n return result;\n }\n\n encodeToBase64(fmt?: ImageFormat, quality?: number) {\n const bytes = this.encodeToBytes(fmt, quality);\n return toBase64String(bytes);\n }\n\n // TODO: this is leaking on Web\n // Add signature with allocated buffer\n readPixels(srcX?: number, srcY?: number, imageInfo?: ImageInfo) {\n const info = this.getImageInfo();\n const pxInfo: CKImageInfo = {\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n width: imageInfo?.width ?? info.width,\n height: imageInfo?.height ?? info.height,\n alphaType: getEnum(\n this.CanvasKit,\n \"AlphaType\",\n (imageInfo ?? info).alphaType\n ),\n colorType: getEnum(\n this.CanvasKit,\n \"ColorType\",\n (imageInfo ?? info).colorType\n ),\n };\n return this.ref.readPixels(srcX ?? 0, srcY ?? 0, pxInfo);\n }\n\n makeNonTextureImage(): SkImage {\n // if the image is already a non-texture image, this is a no-op\n const partialInfo = this.ref.getImageInfo();\n const colorSpace = this.ref.getColorSpace();\n const info = {\n ...partialInfo,\n colorSpace,\n };\n const pixels = this.ref.readPixels(0, 0, info) as Uint8Array | null;\n if (!pixels) {\n throw new Error(\"Could not read pixels from image\");\n }\n const img = this.CanvasKit.MakeImage(info, pixels, info.width * 4);\n if (!img) {\n throw new Error(\"Could not create image from bytes\");\n }\n return new JsiSkImage(this.CanvasKit, img);\n }\n\n getNativeTextureUnstable(): unknown {\n console.warn(\"getBackendTexture is not implemented on Web\");\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ export declare class JsiSkPathBuilder extends HostObject<CKPathBuilder, "PathBui
|
|
|
25
25
|
addOval(oval: SkRect, isCCW?: boolean, startIndex?: number): this;
|
|
26
26
|
addArc(oval: SkRect, startAngleInDegrees: number, sweepAngleInDegrees: number): this;
|
|
27
27
|
addRRect(rrect: InputRRect, isCCW?: boolean): this;
|
|
28
|
-
addCircle(x: number, y: number, r: number,
|
|
28
|
+
addCircle(x: number, y: number, r: number, isCCW?: boolean): this;
|
|
29
29
|
addPoly(points: SkPoint[], close: boolean): this;
|
|
30
30
|
addPath(src: SkPath, matrix?: SkMatrix, extend?: boolean): this;
|
|
31
31
|
setFillType(fill: FillType): this;
|
|
@@ -101,8 +101,8 @@ class JsiSkPathBuilder extends _Host.HostObject {
|
|
|
101
101
|
this.ref.addRRect(_JsiSkRRect.JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);
|
|
102
102
|
return this;
|
|
103
103
|
}
|
|
104
|
-
addCircle(x, y, r,
|
|
105
|
-
this.ref.addCircle(x, y, r);
|
|
104
|
+
addCircle(x, y, r, isCCW) {
|
|
105
|
+
this.ref.addCircle(x, y, r, isCCW);
|
|
106
106
|
return this;
|
|
107
107
|
}
|
|
108
108
|
addPoly(points, close) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Host","require","_JsiSkPath","_JsiSkMatrix","_JsiSkPoint","_JsiSkRect","_JsiSkRRect","JsiSkPathBuilder","HostObject","constructor","CanvasKit","ref","moveTo","x","y","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","x3","y3","rCubicTo","close","arcToOval","oval","startAngleInDegrees","sweepAngleInDegrees","forceMoveTo","JsiSkRect","fromValue","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","isCCW","rArcTo","dx","dy","arcToTangent","radius","addRect","rect","addOval","startIndex","addArc","addRRect","rrect","JsiSkRRect","addCircle","r","_isCCW","addPoly","points","addPolygon","map","p","Array","from","JsiSkPoint","flat","addPath","src","matrix","extend","srcPath","JsiSkPath","pathFromValue","args","JsiSkMatrix","delete","setFillType","fill","getEnum","setIsVolatile","_isVolatile","reset","newBuilder","PathBuilder","offset","transform","m","toMatrix3x3","computeBounds","getBounds","isEmpty","getLastPt","count","countPoints","path","snapshot","pt","getPoint","build","builder","detach","exports"],"sources":["JsiSkPathBuilder.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } from \"canvaskit-wasm\";\n\nimport type {\n FillType,\n InputMatrix,\n InputRRect,\n SkMatrix,\n SkPath,\n SkPathBuilder,\n SkPoint,\n SkRect,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPath, toMatrix3x3 } from \"./JsiSkPath\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\n\n/**\n * Web implementation of SkPathBuilder using CanvasKit's native PathBuilder.\n */\nexport class JsiSkPathBuilder\n extends HostObject<CKPathBuilder, \"PathBuilder\">\n implements SkPathBuilder\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"PathBuilder\");\n }\n\n // Movement methods\n moveTo(x: number, y: number) {\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\n return this;\n }\n\n // Curve methods\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ) {\n this.ref.cubicTo(x1, y1, x2, y2, x3, y3);\n return this;\n }\n\n rCubicTo(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ) {\n this.ref.rCubicTo(x1, y1, x2, y2, x3, y3);\n return this;\n }\n\n close() {\n this.ref.close();\n return this;\n }\n\n // Arc methods\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees,\n forceMoveTo\n );\n return this;\n }\n\n arcToRotated(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n x: number,\n y: number\n ) {\n this.ref.arcToRotated(\n rx,\n ry,\n xAxisRotateInDegrees,\n useSmallArc,\n isCCW,\n x,\n y\n );\n return this;\n }\n\n rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n // Shape methods\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number, _isCCW?: boolean) {\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n const srcPath = JsiSkPath.pathFromValue(src);\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n // Configuration methods\n setFillType(fill: FillType) {\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_isVolatile: boolean) {\n // Not supported in CanvasKit PathBuilder - no-op\n return this;\n }\n\n reset() {\n // CanvasKit PathBuilder doesn't have reset - recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n // Swap the ref - delete old one\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n // Query methods\n computeBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n isEmpty(): boolean {\n return this.ref.isEmpty();\n }\n\n getLastPt(): { x: number; y: number } {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n // PathBuilder doesn't have getPoint - snapshot to get it\n const path = this.ref.snapshot();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n countPoints(): number {\n return this.ref.countPoints();\n }\n\n // Build methods\n build(): SkPath {\n const path = this.ref.snapshot();\n const builder = new this.CanvasKit.PathBuilder(path);\n path.delete();\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n detach(): SkPath {\n const path = this.ref.detach();\n const builder = new this.CanvasKit.PathBuilder(path);\n path.delete();\n return new JsiSkPath(this.CanvasKit, builder);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Host","require","_JsiSkPath","_JsiSkMatrix","_JsiSkPoint","_JsiSkRect","_JsiSkRRect","JsiSkPathBuilder","HostObject","constructor","CanvasKit","ref","moveTo","x","y","rMoveTo","lineTo","rLineTo","quadTo","x1","y1","x2","y2","rQuadTo","conicTo","w","rConicTo","cubicTo","x3","y3","rCubicTo","close","arcToOval","oval","startAngleInDegrees","sweepAngleInDegrees","forceMoveTo","JsiSkRect","fromValue","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","isCCW","rArcTo","dx","dy","arcToTangent","radius","addRect","rect","addOval","startIndex","addArc","addRRect","rrect","JsiSkRRect","addCircle","r","addPoly","points","addPolygon","map","p","Array","from","JsiSkPoint","flat","addPath","src","matrix","extend","srcPath","JsiSkPath","pathFromValue","args","JsiSkMatrix","delete","setFillType","fill","getEnum","setIsVolatile","_isVolatile","reset","newBuilder","PathBuilder","offset","transform","m","toMatrix3x3","computeBounds","getBounds","isEmpty","getLastPt","count","countPoints","path","snapshot","pt","getPoint","build","builder","detach","exports"],"sources":["JsiSkPathBuilder.ts"],"sourcesContent":["import type { CanvasKit, PathBuilder as CKPathBuilder } from \"canvaskit-wasm\";\n\nimport type {\n FillType,\n InputMatrix,\n InputRRect,\n SkMatrix,\n SkPath,\n SkPathBuilder,\n SkPoint,\n SkRect,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPath, toMatrix3x3 } from \"./JsiSkPath\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\n\n/**\n * Web implementation of SkPathBuilder using CanvasKit's native PathBuilder.\n */\nexport class JsiSkPathBuilder\n extends HostObject<CKPathBuilder, \"PathBuilder\">\n implements SkPathBuilder\n{\n constructor(CanvasKit: CanvasKit, ref: CKPathBuilder) {\n super(CanvasKit, ref, \"PathBuilder\");\n }\n\n // Movement methods\n moveTo(x: number, y: number) {\n this.ref.moveTo(x, y);\n return this;\n }\n\n rMoveTo(x: number, y: number) {\n this.ref.rMoveTo(x, y);\n return this;\n }\n\n lineTo(x: number, y: number) {\n this.ref.lineTo(x, y);\n return this;\n }\n\n rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\n return this;\n }\n\n // Curve methods\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n rQuadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.rQuadTo(x1, y1, x2, y2);\n return this;\n }\n\n conicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.conicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n rConicTo(x1: number, y1: number, x2: number, y2: number, w: number) {\n this.ref.rConicTo(x1, y1, x2, y2, w);\n return this;\n }\n\n cubicTo(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ) {\n this.ref.cubicTo(x1, y1, x2, y2, x3, y3);\n return this;\n }\n\n rCubicTo(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ) {\n this.ref.rCubicTo(x1, y1, x2, y2, x3, y3);\n return this;\n }\n\n close() {\n this.ref.close();\n return this;\n }\n\n // Arc methods\n arcToOval(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number,\n forceMoveTo: boolean\n ) {\n this.ref.arcToOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees,\n forceMoveTo\n );\n return this;\n }\n\n arcToRotated(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n x: number,\n y: number\n ) {\n this.ref.arcToRotated(\n rx,\n ry,\n xAxisRotateInDegrees,\n useSmallArc,\n isCCW,\n x,\n y\n );\n return this;\n }\n\n rArcTo(\n rx: number,\n ry: number,\n xAxisRotateInDegrees: number,\n useSmallArc: boolean,\n isCCW: boolean,\n dx: number,\n dy: number\n ) {\n this.ref.rArcTo(rx, ry, xAxisRotateInDegrees, useSmallArc, isCCW, dx, dy);\n return this;\n }\n\n arcToTangent(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.ref.arcToTangent(x1, y1, x2, y2, radius);\n return this;\n }\n\n // Shape methods\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addOval(oval: SkRect, isCCW?: boolean, startIndex?: number) {\n this.ref.addOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n isCCW,\n startIndex\n );\n return this;\n }\n\n addArc(\n oval: SkRect,\n startAngleInDegrees: number,\n sweepAngleInDegrees: number\n ) {\n this.ref.addArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngleInDegrees,\n sweepAngleInDegrees\n );\n return this;\n }\n\n addRRect(rrect: InputRRect, isCCW?: boolean) {\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n addCircle(x: number, y: number, r: number, isCCW?: boolean) {\n this.ref.addCircle(x, y, r, isCCW);\n return this;\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPolygon(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n const srcPath = JsiSkPath.pathFromValue(src);\n const args = [\n srcPath,\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\n srcPath.delete();\n return this;\n }\n\n // Configuration methods\n setFillType(fill: FillType) {\n this.ref.setFillType(getEnum(this.CanvasKit, \"FillType\", fill));\n return this;\n }\n\n setIsVolatile(_isVolatile: boolean) {\n // Not supported in CanvasKit PathBuilder - no-op\n return this;\n }\n\n reset() {\n // CanvasKit PathBuilder doesn't have reset - recreate\n const newBuilder = new this.CanvasKit.PathBuilder();\n // Swap the ref - delete old one\n if (\n this.ref !== null &&\n typeof this.ref === \"object\" &&\n \"delete\" in this.ref &&\n typeof this.ref.delete === \"function\"\n ) {\n this.ref.delete();\n }\n this.ref = newBuilder;\n return this;\n }\n\n offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\n return this;\n }\n\n transform(m: InputMatrix) {\n const matrix = toMatrix3x3(m);\n this.ref.transform(matrix);\n return this;\n }\n\n // Query methods\n computeBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n isEmpty(): boolean {\n return this.ref.isEmpty();\n }\n\n getLastPt(): { x: number; y: number } {\n const count = this.ref.countPoints();\n if (count === 0) {\n return { x: 0, y: 0 };\n }\n // PathBuilder doesn't have getPoint - snapshot to get it\n const path = this.ref.snapshot();\n const pt = path.getPoint(count - 1);\n path.delete();\n return { x: pt[0], y: pt[1] };\n }\n\n countPoints(): number {\n return this.ref.countPoints();\n }\n\n // Build methods\n build(): SkPath {\n const path = this.ref.snapshot();\n const builder = new this.CanvasKit.PathBuilder(path);\n path.delete();\n return new JsiSkPath(this.CanvasKit, builder);\n }\n\n detach(): SkPath {\n const path = this.ref.detach();\n const builder = new this.CanvasKit.PathBuilder(path);\n path.delete();\n return new JsiSkPath(this.CanvasKit, builder);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,20 +11,20 @@ class JsiSkTextStyle {
|
|
|
11
11
|
color: value.color,
|
|
12
12
|
decoration: value.decoration,
|
|
13
13
|
decorationColor: value.decorationColor,
|
|
14
|
-
decorationStyle: value.decorationStyle ? {
|
|
14
|
+
decorationStyle: value.decorationStyle !== undefined ? {
|
|
15
15
|
value: value.decorationStyle
|
|
16
16
|
} : undefined,
|
|
17
17
|
decorationThickness: value.decorationThickness,
|
|
18
18
|
fontFamilies: value.fontFamilies,
|
|
19
19
|
fontSize: value.fontSize,
|
|
20
20
|
fontStyle: value.fontStyle ? {
|
|
21
|
-
slant: value.fontStyle.slant ? {
|
|
21
|
+
slant: value.fontStyle.slant !== undefined ? {
|
|
22
22
|
value: value.fontStyle.slant
|
|
23
23
|
} : undefined,
|
|
24
|
-
weight: value.fontStyle.weight ? {
|
|
24
|
+
weight: value.fontStyle.weight !== undefined ? {
|
|
25
25
|
value: value.fontStyle.weight
|
|
26
26
|
} : undefined,
|
|
27
|
-
width: value.fontStyle.width ? {
|
|
27
|
+
width: value.fontStyle.width !== undefined ? {
|
|
28
28
|
value: value.fontStyle.width
|
|
29
29
|
} : undefined
|
|
30
30
|
} : undefined,
|
|
@@ -40,7 +40,7 @@ class JsiSkTextStyle {
|
|
|
40
40
|
color: shadow.color,
|
|
41
41
|
offset: shadow.offset ? [shadow.offset.x, shadow.offset.y] : undefined
|
|
42
42
|
})) : undefined,
|
|
43
|
-
textBaseline: value.textBaseline ? {
|
|
43
|
+
textBaseline: value.textBaseline !== undefined ? {
|
|
44
44
|
value: value.textBaseline
|
|
45
45
|
} : undefined,
|
|
46
46
|
wordSpacing: value.wordSpacing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["JsiSkTextStyle","toTextStyle","value","backgroundColor","color","decoration","decorationColor","decorationStyle","undefined","decorationThickness","fontFamilies","fontSize","fontStyle","slant","weight","width","fontFeatures","foregroundColor","fontVariations","halfLeading","heightMultiplier","letterSpacing","locale","shadows","map","shadow","blurRadius","offset","x","y","textBaseline","wordSpacing","exports"],"sources":["JsiSkTextStyle.ts"],"sourcesContent":["import type { TextStyle } from \"canvaskit-wasm\";\n\nimport type { SkTextStyle } from \"../types\";\n\nexport class JsiSkTextStyle {\n static toTextStyle(value: SkTextStyle): TextStyle {\n return {\n backgroundColor: value.backgroundColor,\n color: value.color,\n decoration: value.decoration,\n decorationColor: value.decorationColor,\n decorationStyle
|
|
1
|
+
{"version":3,"names":["JsiSkTextStyle","toTextStyle","value","backgroundColor","color","decoration","decorationColor","decorationStyle","undefined","decorationThickness","fontFamilies","fontSize","fontStyle","slant","weight","width","fontFeatures","foregroundColor","fontVariations","halfLeading","heightMultiplier","letterSpacing","locale","shadows","map","shadow","blurRadius","offset","x","y","textBaseline","wordSpacing","exports"],"sources":["JsiSkTextStyle.ts"],"sourcesContent":["import type { TextStyle } from \"canvaskit-wasm\";\n\nimport type { SkTextStyle } from \"../types\";\n\nexport class JsiSkTextStyle {\n static toTextStyle(value: SkTextStyle): TextStyle {\n return {\n backgroundColor: value.backgroundColor,\n color: value.color,\n decoration: value.decoration,\n decorationColor: value.decorationColor,\n decorationStyle:\n value.decorationStyle !== undefined\n ? { value: value.decorationStyle }\n : undefined,\n decorationThickness: value.decorationThickness,\n fontFamilies: value.fontFamilies,\n fontSize: value.fontSize,\n fontStyle: value.fontStyle\n ? {\n slant:\n value.fontStyle.slant !== undefined\n ? { value: value.fontStyle.slant }\n : undefined,\n weight:\n value.fontStyle.weight !== undefined\n ? { value: value.fontStyle.weight }\n : undefined,\n width:\n value.fontStyle.width !== undefined\n ? { value: value.fontStyle.width }\n : undefined,\n }\n : undefined,\n fontFeatures: value.fontFeatures,\n foregroundColor: value.foregroundColor,\n fontVariations: value.fontVariations,\n halfLeading: value.halfLeading,\n heightMultiplier: value.heightMultiplier,\n letterSpacing: value.letterSpacing,\n locale: value.locale,\n shadows: value.shadows\n ? value.shadows.map((shadow) => ({\n blurRadius: shadow.blurRadius,\n color: shadow.color,\n offset: shadow.offset\n ? [shadow.offset.x, shadow.offset.y]\n : undefined,\n }))\n : undefined,\n textBaseline:\n value.textBaseline !== undefined\n ? { value: value.textBaseline }\n : undefined,\n wordSpacing: value.wordSpacing,\n };\n }\n}\n"],"mappings":";;;;;;AAIO,MAAMA,cAAc,CAAC;EAC1B,OAAOC,WAAWA,CAACC,KAAkB,EAAa;IAChD,OAAO;MACLC,eAAe,EAAED,KAAK,CAACC,eAAe;MACtCC,KAAK,EAAEF,KAAK,CAACE,KAAK;MAClBC,UAAU,EAAEH,KAAK,CAACG,UAAU;MAC5BC,eAAe,EAAEJ,KAAK,CAACI,eAAe;MACtCC,eAAe,EACbL,KAAK,CAACK,eAAe,KAAKC,SAAS,GAC/B;QAAEN,KAAK,EAAEA,KAAK,CAACK;MAAgB,CAAC,GAChCC,SAAS;MACfC,mBAAmB,EAAEP,KAAK,CAACO,mBAAmB;MAC9CC,YAAY,EAAER,KAAK,CAACQ,YAAY;MAChCC,QAAQ,EAAET,KAAK,CAACS,QAAQ;MACxBC,SAAS,EAAEV,KAAK,CAACU,SAAS,GACtB;QACEC,KAAK,EACHX,KAAK,CAACU,SAAS,CAACC,KAAK,KAAKL,SAAS,GAC/B;UAAEN,KAAK,EAAEA,KAAK,CAACU,SAAS,CAACC;QAAM,CAAC,GAChCL,SAAS;QACfM,MAAM,EACJZ,KAAK,CAACU,SAAS,CAACE,MAAM,KAAKN,SAAS,GAChC;UAAEN,KAAK,EAAEA,KAAK,CAACU,SAAS,CAACE;QAAO,CAAC,GACjCN,SAAS;QACfO,KAAK,EACHb,KAAK,CAACU,SAAS,CAACG,KAAK,KAAKP,SAAS,GAC/B;UAAEN,KAAK,EAAEA,KAAK,CAACU,SAAS,CAACG;QAAM,CAAC,GAChCP;MACR,CAAC,GACDA,SAAS;MACbQ,YAAY,EAAEd,KAAK,CAACc,YAAY;MAChCC,eAAe,EAAEf,KAAK,CAACe,eAAe;MACtCC,cAAc,EAAEhB,KAAK,CAACgB,cAAc;MACpCC,WAAW,EAAEjB,KAAK,CAACiB,WAAW;MAC9BC,gBAAgB,EAAElB,KAAK,CAACkB,gBAAgB;MACxCC,aAAa,EAAEnB,KAAK,CAACmB,aAAa;MAClCC,MAAM,EAAEpB,KAAK,CAACoB,MAAM;MACpBC,OAAO,EAAErB,KAAK,CAACqB,OAAO,GAClBrB,KAAK,CAACqB,OAAO,CAACC,GAAG,CAAEC,MAAM,KAAM;QAC7BC,UAAU,EAAED,MAAM,CAACC,UAAU;QAC7BtB,KAAK,EAAEqB,MAAM,CAACrB,KAAK;QACnBuB,MAAM,EAAEF,MAAM,CAACE,MAAM,GACjB,CAACF,MAAM,CAACE,MAAM,CAACC,CAAC,EAAEH,MAAM,CAACE,MAAM,CAACE,CAAC,CAAC,GAClCrB;MACN,CAAC,CAAC,CAAC,GACHA,SAAS;MACbsB,YAAY,EACV5B,KAAK,CAAC4B,YAAY,KAAKtB,SAAS,GAC5B;QAAEN,KAAK,EAAEA,KAAK,CAAC4B;MAAa,CAAC,GAC7BtB,SAAS;MACfuB,WAAW,EAAE7B,KAAK,CAAC6B;IACrB,CAAC;EACH;AACF;AAACC,OAAA,CAAAhC,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -149,28 +149,28 @@ class JsiSkottieAnimation extends _Host.HostObject {
|
|
|
149
149
|
if (result.text) {
|
|
150
150
|
textSlot.text = result.text;
|
|
151
151
|
}
|
|
152
|
-
if (result.textSize) {
|
|
152
|
+
if (result.textSize !== undefined) {
|
|
153
153
|
textSlot.textSize = result.textSize;
|
|
154
154
|
}
|
|
155
|
-
if (result.minTextSize) {
|
|
155
|
+
if (result.minTextSize !== undefined) {
|
|
156
156
|
textSlot.minTextSize = result.minTextSize;
|
|
157
157
|
}
|
|
158
|
-
if (result.maxTextSize) {
|
|
158
|
+
if (result.maxTextSize !== undefined) {
|
|
159
159
|
textSlot.maxTextSize = result.maxTextSize;
|
|
160
160
|
}
|
|
161
|
-
if (result.strokeWidth) {
|
|
161
|
+
if (result.strokeWidth !== undefined) {
|
|
162
162
|
textSlot.strokeWidth = result.strokeWidth;
|
|
163
163
|
}
|
|
164
|
-
if (result.lineHeight) {
|
|
164
|
+
if (result.lineHeight !== undefined) {
|
|
165
165
|
textSlot.lineHeight = result.lineHeight;
|
|
166
166
|
}
|
|
167
|
-
if (result.lineShift) {
|
|
167
|
+
if (result.lineShift !== undefined) {
|
|
168
168
|
textSlot.lineShift = result.lineShift;
|
|
169
169
|
}
|
|
170
|
-
if (result.ascent) {
|
|
170
|
+
if (result.ascent !== undefined) {
|
|
171
171
|
textSlot.ascent = result.ascent;
|
|
172
172
|
}
|
|
173
|
-
if (result.maxLines) {
|
|
173
|
+
if (result.maxLines !== undefined) {
|
|
174
174
|
textSlot.maxLines = result.maxLines;
|
|
175
175
|
}
|
|
176
176
|
// if (result.horizAlign) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Host","require","_JsiSkTypeface","_JsiSkColor","_JsiSkRect","JsiSkottieAnimation","HostObject","constructor","CanvasKit","ref","getOpacityProps","getTextProps","getColorProps","map","key","value","Color","getTransformProps","anchor","x","y","position","scale","rotation","skew","skewAxis","skew_axis","setColor","color","setText","text","size","setOpacity","opacity","setTransform","a","Float32Array","of","p","s","getSlotInfo","setColorSlot","setScalarSlot","scalar","setVec2Slot","vec2","setTextSlot","_text$text","_text$textSize","_text$minTextSize","_text$maxTextSize","_text$strokeWidth","_text$lineHeight","_text$lineShift","txt","typeface","JsiSkTypeface","textSize","minTextSize","maxTextSize","Number","MAX_VALUE","strokeWidth","lineHeight","lineShift","ascent","maxLines","horizAlign","TextAlign","Left","vertAlign","VerticalTextAlign","Top","strokeJoin","StrokeJoin","Miter","direction","TextDirection","LTR","linebreak","LineBreakType","HardLineBreak","resize","ResizePolicy","None","boundingBox","XYWHRect","width","height","fillColor","TRANSPARENT","strokeColor","setImageSlot","assetName","getColorSlot","getScalarSlot","getVec2Slot","getTextSlot","result","textSlot","duration","fps","render","canvas","dstRect","JsiSkRect","seekFrame","frame","damageRect","version","exports"],"sources":["JsiSkottieAnimation.ts"],"sourcesContent":["import type {\n CanvasKit,\n ManagedSkottieAnimation,\n SlottableTextProperty as CKSlottableTextProperty,\n} from \"canvaskit-wasm\";\n\nimport type {\n SkSkottieAnimation,\n SlotInfo,\n SlottableTextProperty,\n} from \"../types/Skottie\";\nimport type { SkColor, SkPoint, SkRect } from \"../types\";\n\nimport { HostObject } from \"./Host\";\nimport type { JsiSkCanvas } from \"./JsiSkCanvas\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nexport class JsiSkottieAnimation\n extends HostObject<ManagedSkottieAnimation, \"SkottieAnimation\">\n implements SkSkottieAnimation\n{\n constructor(CanvasKit: CanvasKit, ref: ManagedSkottieAnimation) {\n super(CanvasKit, ref, \"SkottieAnimation\");\n }\n getOpacityProps() {\n return this.ref.getOpacityProps();\n }\n getTextProps() {\n return this.ref.getTextProps();\n }\n getColorProps() {\n return this.ref\n .getColorProps()\n .map(({ key, value }) => ({ key, value: Color(value) }));\n }\n getTransformProps() {\n return this.ref.getTransformProps().map(({ key, value }) => ({\n key,\n value: {\n anchor: { x: value.anchor[0], y: value.anchor[1] },\n position: { x: value.position[0], y: value.position[1] },\n scale: { x: value.scale[0], y: value.scale[1] },\n rotation: value.rotation,\n skew: value.skew,\n skewAxis: value.skew_axis,\n },\n }));\n }\n setColor(key: string, color: SkColor) {\n return this.ref.setColor(key, color);\n }\n setText(key: string, text: string, size: number) {\n return this.ref.setText(key, text, size);\n }\n setOpacity(key: string, opacity: number) {\n return this.ref.setOpacity(key, opacity);\n }\n setTransform(\n key: string,\n anchor: SkPoint,\n position: SkPoint,\n scale: SkPoint,\n rotation: number,\n skew: number,\n skewAxis: number\n ) {\n const a = Float32Array.of(anchor.x, anchor.y);\n const p = Float32Array.of(position.x, position.y);\n const s = Float32Array.of(scale.x, scale.y);\n return this.ref.setTransform(key, a, p, s, rotation, skew, skewAxis);\n }\n\n getSlotInfo(): SlotInfo {\n return this.ref.getSlotInfo();\n }\n setColorSlot(key: string, color: SkColor) {\n return this.ref.setColorSlot(key, color);\n }\n setScalarSlot(key: string, scalar: number) {\n return this.ref.setScalarSlot(key, scalar);\n }\n setVec2Slot(key: string, vec2: SkPoint) {\n return this.ref.setVec2Slot(key, Float32Array.of(vec2.x, vec2.y));\n }\n setTextSlot(key: string, text: SlottableTextProperty): boolean {\n const txt: CKSlottableTextProperty = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n typeface:\n text.typeface && text.typeface instanceof JsiSkTypeface\n ? text.typeface.ref\n : null,\n text: text.text ?? \"\",\n textSize: text.textSize ?? 0,\n minTextSize: text.minTextSize ?? 0,\n maxTextSize: text.maxTextSize ?? Number.MAX_VALUE,\n strokeWidth: text.strokeWidth ?? 0,\n lineHeight: text.lineHeight ?? 0,\n lineShift: text.lineShift ?? 0,\n ascent: text.ascent,\n maxLines: text.maxLines,\n // TODO: implement\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n horizAlign: this.CanvasKit.TextAlign.Left,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n vertAlign: this.CanvasKit.VerticalTextAlign.Top,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n strokeJoin: this.CanvasKit.StrokeJoin.Miter,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n direction: this.CanvasKit.TextDirection.LTR,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n linebreak: this.CanvasKit.LineBreakType.HardLineBreak,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n resize: this.CanvasKit.ResizePolicy.None,\n boundingBox: text.boundingBox\n ? this.CanvasKit.XYWHRect(\n text.boundingBox.x,\n text.boundingBox.y,\n text.boundingBox.width,\n text.boundingBox.height\n )\n : [0, 0, 0, 0],\n fillColor: text.fillColor\n ? Color(text.fillColor)\n : this.CanvasKit.TRANSPARENT,\n strokeColor: text.strokeColor\n ? Color(text.strokeColor)\n : this.CanvasKit.TRANSPARENT,\n };\n return this.ref.setTextSlot(key, txt);\n }\n setImageSlot(key: string, assetName: string) {\n return this.ref.setImageSlot(key, assetName);\n }\n getColorSlot(key: string): SkColor | null {\n const color = this.ref.getColorSlot(key);\n return color;\n }\n getScalarSlot(key: string) {\n return this.ref.getScalarSlot(key);\n }\n getVec2Slot(key: string): SkPoint | null {\n const vec2 = this.ref.getVec2Slot(key);\n if (!vec2) {\n return null;\n }\n return { x: vec2[0], y: vec2[1] };\n }\n getTextSlot(key: string): SlottableTextProperty | null {\n const result = this.ref.getTextSlot(key);\n const textSlot: SlottableTextProperty = {};\n if (result) {\n if (result.typeface) {\n textSlot.typeface = new JsiSkTypeface(this.CanvasKit, result.typeface);\n }\n if (result.text) {\n textSlot.text = result.text;\n }\n if (result.textSize) {\n textSlot.textSize = result.textSize;\n }\n if (result.minTextSize) {\n textSlot.minTextSize = result.minTextSize;\n }\n if (result.maxTextSize) {\n textSlot.maxTextSize = result.maxTextSize;\n }\n if (result.strokeWidth) {\n textSlot.strokeWidth = result.strokeWidth;\n }\n if (result.lineHeight) {\n textSlot.lineHeight = result.lineHeight;\n }\n if (result.lineShift) {\n textSlot.lineShift = result.lineShift;\n }\n if (result.ascent) {\n textSlot.ascent = result.ascent;\n }\n if (result.maxLines) {\n textSlot.maxLines = result.maxLines;\n }\n // if (result.horizAlign) {\n // textSlot.horizAlign = result.horizAlign;\n // }\n // if (result.vertAlign) {\n // textSlot.vertAlign = result.vertAlign;\n // }\n // if (result.strokeJoin) {\n // textSlot.strokeJoin = result.strokeJoin;\n // }\n // if (result.direction) {\n // textSlot.direction = result.direction;\n // }\n // if (result.linebreak) {\n // textSlot.linebreak = result.linebreak;\n // }\n // if (result.resize) {\n // textSlot.resize = result.resize;\n // }\n // if (result.boundingBox) {\n // textSlot.boundingBox = new JsiSkRect(\n // this.CanvasKit,\n // result.boundingBox\n // );\n // }\n // if (result.fillColor) {\n // textSlot.fillColor = Color(result.fillColor);\n // }\n // if (result.strokeColor) {\n // textSlot.strokeColor = Color(result.strokeColor);\n // }\n }\n return textSlot;\n }\n\n duration() {\n return this.ref.duration();\n }\n fps() {\n return this.ref.fps();\n }\n render(canvas: JsiSkCanvas, dstRect?: SkRect) {\n const [width, height] = this.ref.size();\n this.ref.render(\n canvas.ref,\n dstRect && dstRect instanceof JsiSkRect\n ? dstRect.ref\n : Float32Array.of(0, 0, width, height)\n );\n }\n seekFrame(frame: number, damageRect?: JsiSkRect) {\n const result = this.ref.seekFrame(frame);\n if (damageRect && damageRect instanceof JsiSkRect) {\n damageRect.ref[0] = result[0];\n damageRect.ref[1] = result[1];\n damageRect.ref[2] = result[2];\n damageRect.ref[3] = result[3];\n }\n }\n size() {\n const [width, height] = this.ref.size();\n return { width, height };\n }\n version() {\n return this.ref.version();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Host","require","_JsiSkTypeface","_JsiSkColor","_JsiSkRect","JsiSkottieAnimation","HostObject","constructor","CanvasKit","ref","getOpacityProps","getTextProps","getColorProps","map","key","value","Color","getTransformProps","anchor","x","y","position","scale","rotation","skew","skewAxis","skew_axis","setColor","color","setText","text","size","setOpacity","opacity","setTransform","a","Float32Array","of","p","s","getSlotInfo","setColorSlot","setScalarSlot","scalar","setVec2Slot","vec2","setTextSlot","_text$text","_text$textSize","_text$minTextSize","_text$maxTextSize","_text$strokeWidth","_text$lineHeight","_text$lineShift","txt","typeface","JsiSkTypeface","textSize","minTextSize","maxTextSize","Number","MAX_VALUE","strokeWidth","lineHeight","lineShift","ascent","maxLines","horizAlign","TextAlign","Left","vertAlign","VerticalTextAlign","Top","strokeJoin","StrokeJoin","Miter","direction","TextDirection","LTR","linebreak","LineBreakType","HardLineBreak","resize","ResizePolicy","None","boundingBox","XYWHRect","width","height","fillColor","TRANSPARENT","strokeColor","setImageSlot","assetName","getColorSlot","getScalarSlot","getVec2Slot","getTextSlot","result","textSlot","undefined","duration","fps","render","canvas","dstRect","JsiSkRect","seekFrame","frame","damageRect","version","exports"],"sources":["JsiSkottieAnimation.ts"],"sourcesContent":["import type {\n CanvasKit,\n ManagedSkottieAnimation,\n SlottableTextProperty as CKSlottableTextProperty,\n} from \"canvaskit-wasm\";\n\nimport type {\n SkSkottieAnimation,\n SlotInfo,\n SlottableTextProperty,\n} from \"../types/Skottie\";\nimport type { SkColor, SkPoint, SkRect } from \"../types\";\n\nimport { HostObject } from \"./Host\";\nimport type { JsiSkCanvas } from \"./JsiSkCanvas\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nexport class JsiSkottieAnimation\n extends HostObject<ManagedSkottieAnimation, \"SkottieAnimation\">\n implements SkSkottieAnimation\n{\n constructor(CanvasKit: CanvasKit, ref: ManagedSkottieAnimation) {\n super(CanvasKit, ref, \"SkottieAnimation\");\n }\n getOpacityProps() {\n return this.ref.getOpacityProps();\n }\n getTextProps() {\n return this.ref.getTextProps();\n }\n getColorProps() {\n return this.ref\n .getColorProps()\n .map(({ key, value }) => ({ key, value: Color(value) }));\n }\n getTransformProps() {\n return this.ref.getTransformProps().map(({ key, value }) => ({\n key,\n value: {\n anchor: { x: value.anchor[0], y: value.anchor[1] },\n position: { x: value.position[0], y: value.position[1] },\n scale: { x: value.scale[0], y: value.scale[1] },\n rotation: value.rotation,\n skew: value.skew,\n skewAxis: value.skew_axis,\n },\n }));\n }\n setColor(key: string, color: SkColor) {\n return this.ref.setColor(key, color);\n }\n setText(key: string, text: string, size: number) {\n return this.ref.setText(key, text, size);\n }\n setOpacity(key: string, opacity: number) {\n return this.ref.setOpacity(key, opacity);\n }\n setTransform(\n key: string,\n anchor: SkPoint,\n position: SkPoint,\n scale: SkPoint,\n rotation: number,\n skew: number,\n skewAxis: number\n ) {\n const a = Float32Array.of(anchor.x, anchor.y);\n const p = Float32Array.of(position.x, position.y);\n const s = Float32Array.of(scale.x, scale.y);\n return this.ref.setTransform(key, a, p, s, rotation, skew, skewAxis);\n }\n\n getSlotInfo(): SlotInfo {\n return this.ref.getSlotInfo();\n }\n setColorSlot(key: string, color: SkColor) {\n return this.ref.setColorSlot(key, color);\n }\n setScalarSlot(key: string, scalar: number) {\n return this.ref.setScalarSlot(key, scalar);\n }\n setVec2Slot(key: string, vec2: SkPoint) {\n return this.ref.setVec2Slot(key, Float32Array.of(vec2.x, vec2.y));\n }\n setTextSlot(key: string, text: SlottableTextProperty): boolean {\n const txt: CKSlottableTextProperty = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n typeface:\n text.typeface && text.typeface instanceof JsiSkTypeface\n ? text.typeface.ref\n : null,\n text: text.text ?? \"\",\n textSize: text.textSize ?? 0,\n minTextSize: text.minTextSize ?? 0,\n maxTextSize: text.maxTextSize ?? Number.MAX_VALUE,\n strokeWidth: text.strokeWidth ?? 0,\n lineHeight: text.lineHeight ?? 0,\n lineShift: text.lineShift ?? 0,\n ascent: text.ascent,\n maxLines: text.maxLines,\n // TODO: implement\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n horizAlign: this.CanvasKit.TextAlign.Left,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n vertAlign: this.CanvasKit.VerticalTextAlign.Top,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n strokeJoin: this.CanvasKit.StrokeJoin.Miter,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n direction: this.CanvasKit.TextDirection.LTR,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n linebreak: this.CanvasKit.LineBreakType.HardLineBreak,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n resize: this.CanvasKit.ResizePolicy.None,\n boundingBox: text.boundingBox\n ? this.CanvasKit.XYWHRect(\n text.boundingBox.x,\n text.boundingBox.y,\n text.boundingBox.width,\n text.boundingBox.height\n )\n : [0, 0, 0, 0],\n fillColor: text.fillColor\n ? Color(text.fillColor)\n : this.CanvasKit.TRANSPARENT,\n strokeColor: text.strokeColor\n ? Color(text.strokeColor)\n : this.CanvasKit.TRANSPARENT,\n };\n return this.ref.setTextSlot(key, txt);\n }\n setImageSlot(key: string, assetName: string) {\n return this.ref.setImageSlot(key, assetName);\n }\n getColorSlot(key: string): SkColor | null {\n const color = this.ref.getColorSlot(key);\n return color;\n }\n getScalarSlot(key: string) {\n return this.ref.getScalarSlot(key);\n }\n getVec2Slot(key: string): SkPoint | null {\n const vec2 = this.ref.getVec2Slot(key);\n if (!vec2) {\n return null;\n }\n return { x: vec2[0], y: vec2[1] };\n }\n getTextSlot(key: string): SlottableTextProperty | null {\n const result = this.ref.getTextSlot(key);\n const textSlot: SlottableTextProperty = {};\n if (result) {\n if (result.typeface) {\n textSlot.typeface = new JsiSkTypeface(this.CanvasKit, result.typeface);\n }\n if (result.text) {\n textSlot.text = result.text;\n }\n if (result.textSize !== undefined) {\n textSlot.textSize = result.textSize;\n }\n if (result.minTextSize !== undefined) {\n textSlot.minTextSize = result.minTextSize;\n }\n if (result.maxTextSize !== undefined) {\n textSlot.maxTextSize = result.maxTextSize;\n }\n if (result.strokeWidth !== undefined) {\n textSlot.strokeWidth = result.strokeWidth;\n }\n if (result.lineHeight !== undefined) {\n textSlot.lineHeight = result.lineHeight;\n }\n if (result.lineShift !== undefined) {\n textSlot.lineShift = result.lineShift;\n }\n if (result.ascent !== undefined) {\n textSlot.ascent = result.ascent;\n }\n if (result.maxLines !== undefined) {\n textSlot.maxLines = result.maxLines;\n }\n // if (result.horizAlign) {\n // textSlot.horizAlign = result.horizAlign;\n // }\n // if (result.vertAlign) {\n // textSlot.vertAlign = result.vertAlign;\n // }\n // if (result.strokeJoin) {\n // textSlot.strokeJoin = result.strokeJoin;\n // }\n // if (result.direction) {\n // textSlot.direction = result.direction;\n // }\n // if (result.linebreak) {\n // textSlot.linebreak = result.linebreak;\n // }\n // if (result.resize) {\n // textSlot.resize = result.resize;\n // }\n // if (result.boundingBox) {\n // textSlot.boundingBox = new JsiSkRect(\n // this.CanvasKit,\n // result.boundingBox\n // );\n // }\n // if (result.fillColor) {\n // textSlot.fillColor = Color(result.fillColor);\n // }\n // if (result.strokeColor) {\n // textSlot.strokeColor = Color(result.strokeColor);\n // }\n }\n return textSlot;\n }\n\n duration() {\n return this.ref.duration();\n }\n fps() {\n return this.ref.fps();\n }\n render(canvas: JsiSkCanvas, dstRect?: SkRect) {\n const [width, height] = this.ref.size();\n this.ref.render(\n canvas.ref,\n dstRect && dstRect instanceof JsiSkRect\n ? dstRect.ref\n : Float32Array.of(0, 0, width, height)\n );\n }\n seekFrame(frame: number, damageRect?: JsiSkRect) {\n const result = this.ref.seekFrame(frame);\n if (damageRect && damageRect instanceof JsiSkRect) {\n damageRect.ref[0] = result[0];\n damageRect.ref[1] = result[1];\n damageRect.ref[2] = result[2];\n damageRect.ref[3] = result[3];\n }\n }\n size() {\n const [width, height] = this.ref.size();\n return { width, height };\n }\n version() {\n return this.ref.version();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -293,7 +293,8 @@ const drawImageSVG = (ctx, props) => {
|
|
|
293
293
|
return;
|
|
294
294
|
}
|
|
295
295
|
canvas.save();
|
|
296
|
-
|
|
296
|
+
// An offset of 0 is a valid position, so it must not be read as "unset".
|
|
297
|
+
if (x !== undefined && y !== undefined) {
|
|
297
298
|
canvas.translate(x, y);
|
|
298
299
|
}
|
|
299
300
|
canvas.drawSvg(svg, width, height);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_nodes","require","_processors","_types","drawLine","ctx","props","p1","p2","canvas","x","y","paint","exports","drawOval","rect","processRect","Skia","drawImage","image","sampling","_props$fit","fit","src","dst","fitRects","width","height","isCubicSampling","drawImageRectCubic","B","C","_sampling$filter","_sampling$mipmap","drawImageRectOptions","filter","FilterMode","Linear","mipmap","MipmapMode","None","drawPoints","points","mode","PointMode","enumKey","drawVertices","textures","colors","indices","blendMode","vertexMode","VertexMode","Triangles","vertices","MakeVertices","map","c","processColor","undefined","defaultBlendMode","BlendMode","DstOver","SrcOver","blend","drawDiffRect","outer","inner","drawDRRect","drawTextPath","path","processPath","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","track","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","Math","fround","saturate","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","trimmed","Path","Trim","builder","PathBuilder","MakeFromPath","setFillType","FillType","build","stroked","Stroke","drawRect","drawRRect","processRRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","save","translate","drawSvg","restore","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","colorBlendMode","drawCircle","processCircle","r","drawSkottie","animation","frame","seekFrame","render"],"sources":["Drawing.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n processCircle,\n processColor,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n CircleProps,\n DiffRectProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n SkottieProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n FillType,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => processColor(ctx.Skia, c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = ctx.track(meas.next());\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = ctx.track(meas.next());\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => processColor(ctx.Skia, c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = Math.fround(saturate(trimStart));\n const end = Math.fround(saturate(trimEnd));\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n\n let path = processPath(ctx.Skia, pathProps.path);\n\n // Trim runs first, so start/end address the path the caller drew. Stroking\n // first would replace it with its outline and leave the offsets walking that\n // outline's perimeter instead. The native recorder orders these the same way.\n if (hasStartOffset || hasEndOffset) {\n const trimmed = ctx.Skia.Path.Trim(path, start, end, false);\n if (trimmed) {\n path = trimmed;\n }\n }\n\n // Apply fill type using PathBuilder\n if (hasFillType) {\n const builder = ctx.Skia.PathBuilder.MakeFromPath(path);\n builder.setFillType(FillType[enumKey(fillType)]);\n path = ctx.track(builder.build());\n }\n\n // Apply stroke using static Path.Stroke\n if (hasStrokeOptions) {\n const stroked = ctx.Skia.Path.Stroke(path, stroke);\n if (stroked) {\n path = stroked;\n }\n }\n\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, colorBlendMode, sampling } =\n props;\n const blend = colorBlendMode ? BlendMode[enumKey(colorBlendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawSkottie = (ctx: DrawingContext, props: SkottieProps) => {\n \"worklet\";\n const { animation, frame } = props;\n if (animation) {\n props.animation.seekFrame(frame);\n props.animation.render(ctx.canvas);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_nodes","require","_processors","_types","drawLine","ctx","props","p1","p2","canvas","x","y","paint","exports","drawOval","rect","processRect","Skia","drawImage","image","sampling","_props$fit","fit","src","dst","fitRects","width","height","isCubicSampling","drawImageRectCubic","B","C","_sampling$filter","_sampling$mipmap","drawImageRectOptions","filter","FilterMode","Linear","mipmap","MipmapMode","None","drawPoints","points","mode","PointMode","enumKey","drawVertices","textures","colors","indices","blendMode","vertexMode","VertexMode","Triangles","vertices","MakeVertices","map","c","processColor","undefined","defaultBlendMode","BlendMode","DstOver","SrcOver","blend","drawDiffRect","outer","inner","drawDRRect","drawTextPath","path","processPath","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","track","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","Math","fround","saturate","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","trimmed","Path","Trim","builder","PathBuilder","MakeFromPath","setFillType","FillType","build","stroked","Stroke","drawRect","drawRRect","processRRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","save","translate","drawSvg","restore","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","colorBlendMode","drawCircle","processCircle","r","drawSkottie","animation","frame","seekFrame","render"],"sources":["Drawing.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n processCircle,\n processColor,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n CircleProps,\n DiffRectProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n SkottieProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n FillType,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => processColor(ctx.Skia, c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = ctx.track(meas.next());\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = ctx.track(meas.next());\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => processColor(ctx.Skia, c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = Math.fround(saturate(trimStart));\n const end = Math.fround(saturate(trimEnd));\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n\n let path = processPath(ctx.Skia, pathProps.path);\n\n // Trim runs first, so start/end address the path the caller drew. Stroking\n // first would replace it with its outline and leave the offsets walking that\n // outline's perimeter instead. The native recorder orders these the same way.\n if (hasStartOffset || hasEndOffset) {\n const trimmed = ctx.Skia.Path.Trim(path, start, end, false);\n if (trimmed) {\n path = trimmed;\n }\n }\n\n // Apply fill type using PathBuilder\n if (hasFillType) {\n const builder = ctx.Skia.PathBuilder.MakeFromPath(path);\n builder.setFillType(FillType[enumKey(fillType)]);\n path = ctx.track(builder.build());\n }\n\n // Apply stroke using static Path.Stroke\n if (hasStrokeOptions) {\n const stroked = ctx.Skia.Path.Stroke(path, stroke);\n if (stroked) {\n path = stroked;\n }\n }\n\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n // An offset of 0 is a valid position, so it must not be read as \"unset\".\n if (x !== undefined && y !== undefined) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, colorBlendMode, sampling } =\n props;\n const blend = colorBlendMode ? BlendMode[enumKey(colorBlendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawSkottie = (ctx: DrawingContext, props: SkottieProps) => {\n \"worklet\";\n const { animation, frame } = props;\n if (animation) {\n props.animation.seekFrame(frame);\n props.animation.render(ctx.canvas);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|