@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":["isCubicSampling","getEnum","HostObject","JsiSkPaint","JsiSkRect","JsiSkRRect","JsiSkImage","JsiSkVertices","JsiSkPath","JsiSkFont","JsiSkTextBlob","JsiSkPicture","JsiSkMatrix","JsiSkImageFilter","JsiSkPoint","JsiSkRSXform","JsiSkCanvas","constructor","CanvasKit","ref","drawRect","rect","paint","fromValue","drawImage","image","x","y","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","drawPatch","cubics","colors","texs","map","flat","flatMap","p","undefined","restoreToCount","saveCount","getTotalMatrix","Float32Array","of","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","drawDRRect","outer","inner","drawOval","drawPath","path","pathFromValue","delete","drawText","str","font","drawTextBlob","blob","drawGlyphs","glyphs","positions","drawSvg","svg","_width","_height","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","drawPicture","skp","drawAtlas","atlas","srcs","dsts","sampling","s","dst","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","width","height","colorSpace","ColorSpace","SRGB","alphaType","colorType"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n getTotalMatrix(): SkMatrix {\n return new JsiSkMatrix(\n this.CanvasKit,\n Float32Array.of(...this.ref.getTotalMatrix())\n );\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n const p = JsiSkPath.pathFromValue(path);\n this.ref.drawPath(p, JsiSkPaint.fromValue(paint));\n p.delete();\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, _width?: number, _height?: number) {\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n const p = JsiSkPath.pathFromValue(path);\n this.ref.clipPath(p, getEnum(this.CanvasKit, \"PathOp\", op), doAntiAlias);\n p.delete();\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"AAOA,SA0BEA,eAAe,QACV,UAAU;AAEjB,SAASC,OAAO,EAAEC,UAAU,QAAQ,QAAQ;AAC5C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,QAAQ,gBAAgB;AAG7C,OAAO,MAAMC,WAAW,SACdd,UAAU,CAEpB;EACEe,WAAWA,CAACC,SAAoB,EAAEC,GAAW,EAAE;IAC7C,KAAK,CAACD,SAAS,EAAEC,GAAG,EAAE,QAAQ,CAAC;EACjC;EAEAC,QAAQA,CAACC,IAAY,EAAEC,KAAc,EAAE;IACrC,IAAI,CAACH,GAAG,CAACC,QAAQ,CACfhB,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEG,IAAI,CAAC,EACzClB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEAE,SAASA,CAACC,KAAc,EAAEC,CAAS,EAAEC,CAAS,EAAEL,KAAe,EAAE;IAC/D,IAAI,CAACH,GAAG,CAACK,SAAS,CAChBlB,UAAU,CAACiB,SAAS,CAACE,KAAK,CAAC,EAC3BC,CAAC,EACDC,CAAC,EACDL,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAGA,KACxC,CAAC;EACH;EAEAM,aAAaA,CACXC,GAAY,EACZC,GAAW,EACXC,IAAY,EACZT,KAAc,EACdU,UAAoB,EACpB;IACA,IAAI,CAACb,GAAG,CAACS,aAAa,CACpBtB,UAAU,CAACiB,SAAS,CAACM,GAAG,CAAC,EACzBzB,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEY,GAAG,CAAC,EACxC1B,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEa,IAAI,CAAC,EACzC5B,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,EAC3BU,UACF,CAAC;EACH;EAEAC,cAAcA,CACZJ,GAAY,EACZK,IAAY,EACZC,GAAW,EACXC,CAAS,EACTC,CAAS,EACTf,KAAsB,EACtB;IACA,IAAI,CAACH,GAAG,CAACc,cAAc,CACrB3B,UAAU,CAACiB,SAAS,CAACM,GAAG,CAAC,EACzBK,IAAI,EACJC,GAAG,EACHC,CAAC,EACDC,CAAC,EACDf,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAGA,KACxC,CAAC;EACH;EAEAgB,gBAAgBA,CACdT,GAAY,EACZK,IAAY,EACZC,GAAW,EACXI,EAAc,EACdC,EAAc,EACdlB,KAAsB,EACtB;IACA,IAAI,CAACH,GAAG,CAACmB,gBAAgB,CACvBhC,UAAU,CAACiB,SAAS,CAACM,GAAG,CAAC,EACzBK,IAAI,EACJC,GAAG,EACHlC,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAEqB,EAAE,CAAC,EACzCtC,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAEsB,EAAE,CAAC,EACzClB,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAGA,KACxC,CAAC;EACH;EAEAmB,aAAaA,CACXZ,GAAY,EACZa,MAAc,EACdX,IAAY,EACZY,MAAkB,EAClBrB,KAAsB,EACtB;IACA,IAAI,CAACH,GAAG,CAACsB,aAAa,CACpBnC,UAAU,CAACiB,SAAS,CAACM,GAAG,CAAC,EACzBe,KAAK,CAACC,IAAI,CAACzC,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEwB,MAAM,CAAC,CAAC,EACvDtC,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEa,IAAI,CAAC,EACzC9B,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAEyB,MAAM,CAAC,EAC7CrB,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAGA,KACxC,CAAC;EACH;EAEAwB,kBAAkBA,CAChBjB,GAAY,EACZC,GAAW,EACXC,IAAY,EACZK,CAAS,EACTC,CAAS,EACTf,KAAsB,EACtB;IACA,IAAI,CAACH,GAAG,CAAC2B,kBAAkB,CACzBxC,UAAU,CAACiB,SAAS,CAACM,GAAG,CAAC,EACzBzB,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEY,GAAG,CAAC,EACxC1B,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEa,IAAI,CAAC,EACzCK,CAAC,EACDC,CAAC,EACDf,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAGA,KACxC,CAAC;EACH;EAEAyB,oBAAoBA,CAClBlB,GAAY,EACZC,GAAW,EACXC,IAAY,EACZQ,EAAc,EACdC,EAAc,EACdlB,KAAsB,EACtB;IACA,IAAI,CAACH,GAAG,CAAC4B,oBAAoB,CAC3BzC,UAAU,CAACiB,SAAS,CAACM,GAAG,CAAC,EACzBzB,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEY,GAAG,CAAC,EACxC1B,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEa,IAAI,CAAC,EACzC9B,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAEqB,EAAE,CAAC,EACzCtC,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAEsB,EAAE,CAAC,EACzClB,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAGA,KACxC,CAAC;EACH;EAEA0B,SAASA,CAAC1B,KAAc,EAAE;IACxB,IAAI,CAACH,GAAG,CAAC6B,SAAS,CAAC7C,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,CAAC;EACjD;EAEA2B,QAAQA,CAACC,EAAU,EAAEC,EAAU,EAAEC,EAAU,EAAEC,EAAU,EAAE/B,KAAc,EAAE;IACvE,IAAI,CAACH,GAAG,CAAC8B,QAAQ,CAACC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAElD,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,CAAC;EAChE;EAEAgC,UAAUA,CAACC,EAAU,EAAEC,EAAU,EAAEC,MAAc,EAAEnC,KAAc,EAAE;IACjE,IAAI,CAACH,GAAG,CAACmC,UAAU,CAACC,EAAE,EAAEC,EAAE,EAAEC,MAAM,EAAEtD,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,CAAC;EAClE;EAEAoC,YAAYA,CAACC,KAAiB,EAAEC,IAAe,EAAEtC,KAAc,EAAE;IAC/D,IAAI,CAACH,GAAG,CAACuC,YAAY,CACnBnD,aAAa,CAACgB,SAAS,CAACoC,KAAK,CAAC,EAC9B1D,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAE0C,IAAI,CAAC,EAC1CzD,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEAuC,SAASA,CACPC,MAAiB,EACjBC,MAAyB,EACzBC,IAAuB,EACvBJ,IAAuB,EACvBtC,KAAe,EACf;IACA,IAAI,CAACH,GAAG,CAAC0C,SAAS,CAChBC,MAAM,CAACG,GAAG,CAAC,CAAC;MAAEvC,CAAC;MAAEC;IAAE,CAAC,KAAK,CAACD,CAAC,EAAEC,CAAC,CAAC,CAAC,CAACuC,IAAI,CAAC,CAAC,EACvCH,MAAM,EACNC,IAAI,GAAGA,IAAI,CAACG,OAAO,CAAEC,CAAC,IAAKxB,KAAK,CAACC,IAAI,CAAC/B,UAAU,CAACS,SAAS,CAAC6C,CAAC,CAAC,CAAC,CAAC,GAAGJ,IAAI,EACtEJ,IAAI,GAAG3D,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAE0C,IAAI,CAAC,GAAG,IAAI,EACxDtC,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAG+C,SACxC,CAAC;EACH;EAEAC,cAAcA,CAACC,SAAiB,EAAE;IAChC,IAAI,CAACpD,GAAG,CAACmD,cAAc,CAACC,SAAS,CAAC;EACpC;EAEAC,cAAcA,CAAA,EAAa;IACzB,OAAO,IAAI5D,WAAW,CACpB,IAAI,CAACM,SAAS,EACduD,YAAY,CAACC,EAAE,CAAC,GAAG,IAAI,CAACvD,GAAG,CAACqD,cAAc,CAAC,CAAC,CAC9C,CAAC;EACH;EAEAG,UAAUA,CAACf,IAAe,EAAEgB,MAAiB,EAAEtD,KAAc,EAAE;IAC7D,IAAI,CAACH,GAAG,CAACwD,UAAU,CACjB1E,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAE0C,IAAI,CAAC,EAC1CgB,MAAM,CAACX,GAAG,CAAC,CAAC;MAAEvC,CAAC;MAAEC;IAAE,CAAC,KAAK,CAACD,CAAC,EAAEC,CAAC,CAAC,CAAC,CAACuC,IAAI,CAAC,CAAC,EACvC/D,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEAuD,OAAOA,CACLC,IAAY,EACZC,UAAkB,EAClBC,UAAkB,EAClBC,SAAkB,EAClB3D,KAAc,EACd;IACA,IAAI,CAACH,GAAG,CAAC0D,OAAO,CACdzE,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAE4D,IAAI,CAAC,EACzCC,UAAU,EACVC,UAAU,EACVC,SAAS,EACT9E,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEA4D,SAASA,CAACC,KAAiB,EAAE7D,KAAc,EAAE;IAC3C,IAAI,CAACH,GAAG,CAAC+D,SAAS,CAChB7E,UAAU,CAACkB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEiE,KAAK,CAAC,EAC3ChF,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEA8D,UAAUA,CAACC,KAAiB,EAAEC,KAAiB,EAAEhE,KAAc,EAAE;IAC/D,IAAI,CAACH,GAAG,CAACiE,UAAU,CACjB/E,UAAU,CAACkB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEmE,KAAK,CAAC,EAC3ChF,UAAU,CAACkB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEoE,KAAK,CAAC,EAC3CnF,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEAiE,QAAQA,CAACT,IAAY,EAAExD,KAAc,EAAE;IACrC,IAAI,CAACH,GAAG,CAACoE,QAAQ,CACfnF,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAE4D,IAAI,CAAC,EACzC3E,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEAkE,QAAQA,CAACC,IAAY,EAAEnE,KAAc,EAAE;IACrC,MAAM8C,CAAC,GAAG5D,SAAS,CAACkF,aAAa,CAACD,IAAI,CAAC;IACvC,IAAI,CAACtE,GAAG,CAACqE,QAAQ,CAACpB,CAAC,EAAEjE,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,CAAC;IACjD8C,CAAC,CAACuB,MAAM,CAAC,CAAC;EACZ;EAEAC,QAAQA,CAACC,GAAW,EAAEnE,CAAS,EAAEC,CAAS,EAAEL,KAAc,EAAEwE,IAAY,EAAE;IACxE,IAAI,CAAC3E,GAAG,CAACyE,QAAQ,CACfC,GAAG,EACHnE,CAAC,EACDC,CAAC,EACDxB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,EAC3Bb,SAAS,CAACc,SAAS,CAACuE,IAAI,CAC1B,CAAC;EACH;EAEAC,YAAYA,CAACC,IAAgB,EAAEtE,CAAS,EAAEC,CAAS,EAAEL,KAAc,EAAE;IACnE,IAAI,CAACH,GAAG,CAAC4E,YAAY,CACnBrF,aAAa,CAACa,SAAS,CAACyE,IAAI,CAAC,EAC7BtE,CAAC,EACDC,CAAC,EACDxB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEA2E,UAAUA,CACRC,MAAgB,EAChBC,SAAoB,EACpBzE,CAAS,EACTC,CAAS,EACTmE,IAAY,EACZxE,KAAc,EACd;IACA,IAAI,CAACH,GAAG,CAAC8E,UAAU,CACjBC,MAAM,EACNC,SAAS,CAAClC,GAAG,CAAEG,CAAC,IAAK,CAACA,CAAC,CAAC1C,CAAC,EAAE0C,CAAC,CAACzC,CAAC,CAAC,CAAC,CAACuC,IAAI,CAAC,CAAC,EACvCxC,CAAC,EACDC,CAAC,EACDlB,SAAS,CAACc,SAAS,CAACuE,IAAI,CAAC,EACzB3F,UAAU,CAACoB,SAAS,CAACD,KAAK,CAC5B,CAAC;EACH;EAEA8E,OAAOA,CAACC,GAAU,EAAEC,MAAe,EAAEC,OAAgB,EAAE;IACrD,MAAM9E,KAAK,GAAG,IAAI,CAACP,SAAS,CAACsF,8BAA8B,CACxDH,GAAG,CAAclF,GACpB,CAAC;IACD,IAAI,CAACA,GAAG,CAACK,SAAS,CAACC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;EACjC;EAEAgF,IAAIA,CAAA,EAAG;IACL,OAAO,IAAI,CAACtF,GAAG,CAACsF,IAAI,CAAC,CAAC;EACxB;EAEAC,SAASA,CACPpF,KAAe,EACfqF,MAAsB,EACtBC,QAA+B,EAC/BC,KAAqB,EACrB;IACA,OAAO,IAAI,CAAC1F,GAAG,CAACuF,SAAS,CACvBpF,KAAK,GAAGnB,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,GAAG+C,SAAS,EAC/CsC,MAAM,GAAGvG,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEyF,MAAM,CAAC,GAAGA,MAAM,EAC7DC,QAAQ,GAAG/F,gBAAgB,CAACU,SAAS,CAACqF,QAAQ,CAAC,GAAGA,QAAQ,EAC1DC,KACF,CAAC;EACH;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAAC3F,GAAG,CAAC2F,OAAO,CAAC,CAAC;EACpB;EAEAC,MAAMA,CAACC,iBAAyB,EAAEC,EAAU,EAAEC,EAAU,EAAE;IACxD,IAAI,CAAC/F,GAAG,CAAC4F,MAAM,CAACC,iBAAiB,EAAEC,EAAE,EAAEC,EAAE,CAAC;EAC5C;EAEAC,KAAKA,CAACC,EAAU,EAAEC,EAAU,EAAE;IAC5B,IAAI,CAAClG,GAAG,CAACgG,KAAK,CAACC,EAAE,EAAEC,EAAE,CAAC;EACxB;EAEAC,IAAIA,CAACF,EAAU,EAAEC,EAAU,EAAE;IAC3B,IAAI,CAAClG,GAAG,CAACmG,IAAI,CAACF,EAAE,EAAEC,EAAE,CAAC;EACvB;EAEAE,SAASA,CAACC,EAAU,EAAEC,EAAU,EAAE;IAChC,IAAI,CAACtG,GAAG,CAACoG,SAAS,CAACC,EAAE,EAAEC,EAAE,CAAC;EAC5B;EAEAC,SAASA,CAACC,KAAc,EAAEC,SAAqB,EAAE;IAC/C,IAAI,CAACzG,GAAG,CAACuG,SAAS,CAChBC,KAAK,EACLC,SAAS,GAAG3H,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAE0G,SAAS,CAAC,GAAGvD,SAChE,CAAC;EACH;EAEAwD,KAAKA,CAACF,KAAc,EAAE;IACpB,IAAI,CAACxG,GAAG,CAAC0G,KAAK,CAACF,KAAK,CAAC;EACvB;EAEAG,QAAQA,CAACrC,IAAY,EAAEsC,EAAU,EAAEC,WAAoB,EAAE;IACvD,MAAM5D,CAAC,GAAG5D,SAAS,CAACkF,aAAa,CAACD,IAAI,CAAC;IACvC,IAAI,CAACtE,GAAG,CAAC2G,QAAQ,CAAC1D,CAAC,EAAEnE,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,QAAQ,EAAE6G,EAAE,CAAC,EAAEC,WAAW,CAAC;IACxE5D,CAAC,CAACuB,MAAM,CAAC,CAAC;EACZ;EAEAsC,QAAQA,CAAC5G,IAAY,EAAE0G,EAAU,EAAEC,WAAoB,EAAE;IACvD,IAAI,CAAC7G,GAAG,CAAC8G,QAAQ,CACf7H,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEG,IAAI,CAAC,EACzCpB,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,QAAQ,EAAE6G,EAAE,CAAC,EACrCC,WACF,CAAC;EACH;EAEAE,SAASA,CAAC/C,KAAiB,EAAE4C,EAAU,EAAEC,WAAoB,EAAE;IAC7D,IAAI,CAAC7G,GAAG,CAAC+G,SAAS,CAChB7H,UAAU,CAACkB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAEiE,KAAK,CAAC,EAC3ClF,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,QAAQ,EAAE6G,EAAE,CAAC,EACrCC,WACF,CAAC;EACH;EAEAG,MAAMA,CAACC,CAAsB,EAAE;IAC7B,IAAI,CAACjH,GAAG,CAACgH,MAAM,CAACvF,KAAK,CAACyF,OAAO,CAACD,CAAC,CAAC,GAAGA,CAAC,GAAGxH,WAAW,CAACW,SAAS,CAAC6G,CAAC,CAAC,CAAC;EAClE;EAEAE,WAAWA,CAACC,GAAc,EAAE;IAC1B,IAAI,CAACpH,GAAG,CAACmH,WAAW,CAAC3H,YAAY,CAACY,SAAS,CAACgH,GAAG,CAAC,CAAC;EACnD;EAEAC,SAASA,CACPC,KAAc,EACdC,IAAc,EACdC,IAAiB,EACjBrH,KAAc,EACdsG,SAAqB,EACrB7D,MAAkB,EAClB6E,QAAyC,EACzC;IACA,MAAM9G,GAAG,GAAG4G,IAAI,CAACvE,OAAO,CAAE0E,CAAC,IACzBjG,KAAK,CAACC,IAAI,CAACzC,SAAS,CAACmB,SAAS,CAAC,IAAI,CAACL,SAAS,EAAE2H,CAAC,CAAC,CACnD,CAAC;IACD,MAAMC,GAAG,GAAGH,IAAI,CAACxE,OAAO,CAAE0E,CAAC,IAAKjG,KAAK,CAACC,IAAI,CAAC9B,YAAY,CAACQ,SAAS,CAACsH,CAAC,CAAC,CAAC,CAAC;IACtE,IAAIE,GAA4B;IAChC,IAAIhF,MAAM,EAAE;MACVgF,GAAG,GAAG,IAAIC,WAAW,CAACjF,MAAM,CAACkF,MAAM,CAAC;MACpC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnF,MAAM,CAACkF,MAAM,EAAEC,CAAC,EAAE,EAAE;QACtC,MAAM,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,GAAGvF,MAAM,CAACmF,CAAC,CAAC;QAC9BH,GAAG,CAACG,CAAC,CAAC,GAAG,IAAI,CAAChI,SAAS,CAACqI,UAAU,CAACJ,CAAC,GAAG,GAAG,EAAEC,CAAC,GAAG,GAAG,EAAEC,CAAC,GAAG,GAAG,EAAEC,CAAC,GAAG,GAAG,CAAC;MACxE;IACF;IACA,IAAIE,UAA8C,GAAG;MACnD7G,MAAM,EAAE,IAAI,CAACzB,SAAS,CAACuI,UAAU,CAACC,MAAM;MACxCC,MAAM,EAAE,IAAI,CAACzI,SAAS,CAAC0I,UAAU,CAACC;IACpC,CAAC;IACD,IAAIjB,QAAQ,IAAI5I,eAAe,CAAC4I,QAAQ,CAAC,EAAE;MACzCY,UAAU,GAAGZ,QAAQ;IACvB,CAAC,MAAM,IAAIA,QAAQ,EAAE;MACnBY,UAAU,GAAG;QACX7G,MAAM,EAAE1C,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAE0H,QAAQ,CAACjG,MAAM,CAAC;QAC9DgH,MAAM,EAAEf,QAAQ,CAACe,MAAM,GACnB1J,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,YAAY,EAAE0H,QAAQ,CAACe,MAAM,CAAC,GACtD,IAAI,CAACzI,SAAS,CAAC0I,UAAU,CAACC;MAChC,CAAC;IACH;IACA,IAAI,CAAC1I,GAAG,CAACqH,SAAS,CAChBlI,UAAU,CAACiB,SAAS,CAACkH,KAAK,CAAC,EAC3B3G,GAAG,EACHgH,GAAG,EACH3I,UAAU,CAACoB,SAAS,CAACD,KAAK,CAAC,EAC3BsG,SAAS,GACL3H,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAE0G,SAAS,CAAC,GAC/C,IAAI,CAAC1G,SAAS,CAAC4I,SAAS,CAACC,OAAO,EACpChB,GAAG,EACHS,UACF,CAAC;EACH;EAEAQ,UAAUA,CAACC,IAAY,EAAEC,IAAY,EAAEC,SAAoB,EAAE;IAC3D,MAAMC,MAAM,GAAG;MACbC,KAAK,EAAEF,SAAS,CAACE,KAAK;MACtBC,MAAM,EAAEH,SAAS,CAACG,MAAM;MACxBC,UAAU,EAAE,IAAI,CAACrJ,SAAS,CAACsJ,UAAU,CAACC,IAAI;MAC1CC,SAAS,EAAEzK,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAEiJ,SAAS,CAACO,SAAS,CAAC;MACpEC,SAAS,EAAE1K,OAAO,CAAC,IAAI,CAACiB,SAAS,EAAE,WAAW,EAAEiJ,SAAS,CAACQ,SAAS;IACrE,CAAC;IACD,OAAO,IAAI,CAACxJ,GAAG,CAAC6I,UAAU,CAACC,IAAI,EAAEC,IAAI,EAAEE,MAAM,CAAC;EAChD;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isCubicSampling","getEnum","HostObject","JsiSkPaint","JsiSkRect","JsiSkRRect","JsiSkImage","JsiSkVertices","JsiSkPath","JsiSkFont","JsiSkTextBlob","JsiSkPicture","JsiSkMatrix","JsiSkImageFilter","JsiSkPoint","JsiSkRSXform","JsiSkCanvas","constructor","CanvasKit","ref","drawRect","rect","paint","fromValue","drawImage","image","x","y","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","drawPatch","cubics","colors","texs","map","flat","flatMap","p","undefined","restoreToCount","saveCount","getTotalMatrix","Float32Array","of","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","drawDRRect","outer","inner","drawOval","drawPath","path","pathFromValue","delete","drawText","str","font","drawTextBlob","blob","drawGlyphs","glyphs","positions","drawSvg","svg","_width","_height","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","drawPicture","skp","drawAtlas","atlas","srcs","dsts","sampling","s","dst","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","width","height","colorSpace","ColorSpace","SRGB","alphaType","colorType"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode !== undefined && mode !== null\n ? getEnum(this.CanvasKit, \"BlendMode\", mode)\n : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n getTotalMatrix(): SkMatrix {\n return new JsiSkMatrix(\n this.CanvasKit,\n Float32Array.of(...this.ref.getTotalMatrix())\n );\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n const p = JsiSkPath.pathFromValue(path);\n this.ref.drawPath(p, JsiSkPaint.fromValue(paint));\n p.delete();\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, _width?: number, _height?: number) {\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode !== undefined\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n const p = JsiSkPath.pathFromValue(path);\n this.ref.clipPath(p, getEnum(this.CanvasKit, \"PathOp\", op), doAntiAlias);\n p.delete();\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap:\n sampling.mipmap !== undefined\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode !== undefined\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,9 +55,12 @@ export class JsiSkImage extends HostObject {
|
|
|
55
55
|
}
|
|
56
56
|
encodeToBytes(fmt, quality) {
|
|
57
57
|
let result;
|
|
58
|
-
if (fmt && quality) {
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
if (fmt !== undefined && quality !== undefined) {
|
|
59
|
+
// CanvasKit's encodeToBytes() applies `quality || 100`, which would
|
|
60
|
+
// turn a valid quality of 0 into 100. The encoders clamp any quality
|
|
61
|
+
// below 1 up to 1 anyway, so pass 1 to get the same output as 0.
|
|
62
|
+
result = this.ref.encodeToBytes(getEnum(this.CanvasKit, "ImageFormat", fmt), Math.max(quality, 1));
|
|
63
|
+
} else if (fmt !== undefined) {
|
|
61
64
|
result = this.ref.encodeToBytes(getEnum(this.CanvasKit, "ImageFormat", fmt));
|
|
62
65
|
} else {
|
|
63
66
|
result = this.ref.encodeToBytes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getEnum","HostObject","JsiSkMatrix","JsiSkShader","toBase64String","bytes","Buffer","from","toString","CHUNK_SIZE","index","length","result","slice","Math","min","String","fromCharCode","apply","btoa","JsiSkImage","constructor","CanvasKit","ref","height","width","getImageInfo","info","colorType","value","alphaType","makeShaderOptions","tx","ty","fm","mm","localMatrix","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":["getEnum","HostObject","JsiSkMatrix","JsiSkShader","toBase64String","bytes","Buffer","from","toString","CHUNK_SIZE","index","length","result","slice","Math","min","String","fromCharCode","apply","btoa","JsiSkImage","constructor","CanvasKit","ref","height","width","getImageInfo","info","colorType","value","alphaType","makeShaderOptions","tx","ty","fm","mm","localMatrix","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;
|
|
@@ -96,8 +96,8 @@ export class JsiSkPathBuilder extends HostObject {
|
|
|
96
96
|
this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);
|
|
97
97
|
return this;
|
|
98
98
|
}
|
|
99
|
-
addCircle(x, y, r,
|
|
100
|
-
this.ref.addCircle(x, y, r);
|
|
99
|
+
addCircle(x, y, r, isCCW) {
|
|
100
|
+
this.ref.addCircle(x, y, r, isCCW);
|
|
101
101
|
return this;
|
|
102
102
|
}
|
|
103
103
|
addPoly(points, close) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getEnum","HostObject","JsiSkPath","toMatrix3x3","JsiSkMatrix","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkPathBuilder","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","fromValue","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","isCCW","rArcTo","dx","dy","arcToTangent","radius","addRect","rect","addOval","startIndex","addArc","addRRect","rrect","addCircle","r","_isCCW","addPoly","points","addPolygon","map","p","Array","from","flat","addPath","src","matrix","extend","srcPath","pathFromValue","args","delete","setFillType","fill","setIsVolatile","_isVolatile","reset","newBuilder","PathBuilder","offset","transform","m","computeBounds","getBounds","isEmpty","getLastPt","count","countPoints","path","snapshot","pt","getPoint","build","builder","detach"],"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":["getEnum","HostObject","JsiSkPath","toMatrix3x3","JsiSkMatrix","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkPathBuilder","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","fromValue","arcToRotated","rx","ry","xAxisRotateInDegrees","useSmallArc","isCCW","rArcTo","dx","dy","arcToTangent","radius","addRect","rect","addOval","startIndex","addArc","addRRect","rrect","addCircle","r","addPoly","points","addPolygon","map","p","Array","from","flat","addPath","src","matrix","extend","srcPath","pathFromValue","args","delete","setFillType","fill","setIsVolatile","_isVolatile","reset","newBuilder","PathBuilder","offset","transform","m","computeBounds","getBounds","isEmpty","getLastPt","count","countPoints","path","snapshot","pt","getPoint","build","builder","detach"],"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":[]}
|
|
@@ -5,20 +5,20 @@ export class JsiSkTextStyle {
|
|
|
5
5
|
color: value.color,
|
|
6
6
|
decoration: value.decoration,
|
|
7
7
|
decorationColor: value.decorationColor,
|
|
8
|
-
decorationStyle: value.decorationStyle ? {
|
|
8
|
+
decorationStyle: value.decorationStyle !== undefined ? {
|
|
9
9
|
value: value.decorationStyle
|
|
10
10
|
} : undefined,
|
|
11
11
|
decorationThickness: value.decorationThickness,
|
|
12
12
|
fontFamilies: value.fontFamilies,
|
|
13
13
|
fontSize: value.fontSize,
|
|
14
14
|
fontStyle: value.fontStyle ? {
|
|
15
|
-
slant: value.fontStyle.slant ? {
|
|
15
|
+
slant: value.fontStyle.slant !== undefined ? {
|
|
16
16
|
value: value.fontStyle.slant
|
|
17
17
|
} : undefined,
|
|
18
|
-
weight: value.fontStyle.weight ? {
|
|
18
|
+
weight: value.fontStyle.weight !== undefined ? {
|
|
19
19
|
value: value.fontStyle.weight
|
|
20
20
|
} : undefined,
|
|
21
|
-
width: value.fontStyle.width ? {
|
|
21
|
+
width: value.fontStyle.width !== undefined ? {
|
|
22
22
|
value: value.fontStyle.width
|
|
23
23
|
} : undefined
|
|
24
24
|
} : undefined,
|
|
@@ -34,7 +34,7 @@ export class JsiSkTextStyle {
|
|
|
34
34
|
color: shadow.color,
|
|
35
35
|
offset: shadow.offset ? [shadow.offset.x, shadow.offset.y] : undefined
|
|
36
36
|
})) : undefined,
|
|
37
|
-
textBaseline: value.textBaseline ? {
|
|
37
|
+
textBaseline: value.textBaseline !== undefined ? {
|
|
38
38
|
value: value.textBaseline
|
|
39
39
|
} : undefined,
|
|
40
40
|
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"],"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"],"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":"AAIA,OAAO,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","ignoreList":[]}
|
|
@@ -143,28 +143,28 @@ export class JsiSkottieAnimation extends HostObject {
|
|
|
143
143
|
if (result.text) {
|
|
144
144
|
textSlot.text = result.text;
|
|
145
145
|
}
|
|
146
|
-
if (result.textSize) {
|
|
146
|
+
if (result.textSize !== undefined) {
|
|
147
147
|
textSlot.textSize = result.textSize;
|
|
148
148
|
}
|
|
149
|
-
if (result.minTextSize) {
|
|
149
|
+
if (result.minTextSize !== undefined) {
|
|
150
150
|
textSlot.minTextSize = result.minTextSize;
|
|
151
151
|
}
|
|
152
|
-
if (result.maxTextSize) {
|
|
152
|
+
if (result.maxTextSize !== undefined) {
|
|
153
153
|
textSlot.maxTextSize = result.maxTextSize;
|
|
154
154
|
}
|
|
155
|
-
if (result.strokeWidth) {
|
|
155
|
+
if (result.strokeWidth !== undefined) {
|
|
156
156
|
textSlot.strokeWidth = result.strokeWidth;
|
|
157
157
|
}
|
|
158
|
-
if (result.lineHeight) {
|
|
158
|
+
if (result.lineHeight !== undefined) {
|
|
159
159
|
textSlot.lineHeight = result.lineHeight;
|
|
160
160
|
}
|
|
161
|
-
if (result.lineShift) {
|
|
161
|
+
if (result.lineShift !== undefined) {
|
|
162
162
|
textSlot.lineShift = result.lineShift;
|
|
163
163
|
}
|
|
164
|
-
if (result.ascent) {
|
|
164
|
+
if (result.ascent !== undefined) {
|
|
165
165
|
textSlot.ascent = result.ascent;
|
|
166
166
|
}
|
|
167
|
-
if (result.maxLines) {
|
|
167
|
+
if (result.maxLines !== undefined) {
|
|
168
168
|
textSlot.maxLines = result.maxLines;
|
|
169
169
|
}
|
|
170
170
|
// if (result.horizAlign) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HostObject","JsiSkTypeface","Color","JsiSkRect","JsiSkottieAnimation","constructor","CanvasKit","ref","getOpacityProps","getTextProps","getColorProps","map","key","value","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","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","seekFrame","frame","damageRect","version"],"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":"AAaA,SAASA,UAAU,QAAQ,QAAQ;AAEnC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,KAAK,QAAQ,cAAc;AACpC,SAASC,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,mBAAmB,SACtBJ,UAAU,CAEpB;EACEK,WAAWA,CAACC,SAAoB,EAAEC,GAA4B,EAAE;IAC9D,KAAK,CAACD,SAAS,EAAEC,GAAG,EAAE,kBAAkB,CAAC;EAC3C;EACAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACD,GAAG,CAACC,eAAe,CAAC,CAAC;EACnC;EACAC,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAACF,GAAG,CAACE,YAAY,CAAC,CAAC;EAChC;EACAC,aAAaA,CAAA,EAAG;IACd,OAAO,IAAI,CAACH,GAAG,CACZG,aAAa,CAAC,CAAC,CACfC,GAAG,CAAC,CAAC;MAAEC,GAAG;MAAEC;IAAM,CAAC,MAAM;MAAED,GAAG;MAAEC,KAAK,EAAEX,KAAK,CAACW,KAAK;IAAE,CAAC,CAAC,CAAC;EAC5D;EACAC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACP,GAAG,CAACO,iBAAiB,CAAC,CAAC,CAACH,GAAG,CAAC,CAAC;MAAEC,GAAG;MAAEC;IAAM,CAAC,MAAM;MAC3DD,GAAG;MACHC,KAAK,EAAE;QACLE,MAAM,EAAE;UAAEC,CAAC,EAAEH,KAAK,CAACE,MAAM,CAAC,CAAC,CAAC;UAAEE,CAAC,EAAEJ,KAAK,CAACE,MAAM,CAAC,CAAC;QAAE,CAAC;QAClDG,QAAQ,EAAE;UAAEF,CAAC,EAAEH,KAAK,CAACK,QAAQ,CAAC,CAAC,CAAC;UAAED,CAAC,EAAEJ,KAAK,CAACK,QAAQ,CAAC,CAAC;QAAE,CAAC;QACxDC,KAAK,EAAE;UAAEH,CAAC,EAAEH,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC;UAAEF,CAAC,EAAEJ,KAAK,CAACM,KAAK,CAAC,CAAC;QAAE,CAAC;QAC/CC,QAAQ,EAAEP,KAAK,CAACO,QAAQ;QACxBC,IAAI,EAAER,KAAK,CAACQ,IAAI;QAChBC,QAAQ,EAAET,KAAK,CAACU;MAClB;IACF,CAAC,CAAC,CAAC;EACL;EACAC,QAAQA,CAACZ,GAAW,EAAEa,KAAc,EAAE;IACpC,OAAO,IAAI,CAAClB,GAAG,CAACiB,QAAQ,CAACZ,GAAG,EAAEa,KAAK,CAAC;EACtC;EACAC,OAAOA,CAACd,GAAW,EAAEe,IAAY,EAAEC,IAAY,EAAE;IAC/C,OAAO,IAAI,CAACrB,GAAG,CAACmB,OAAO,CAACd,GAAG,EAAEe,IAAI,EAAEC,IAAI,CAAC;EAC1C;EACAC,UAAUA,CAACjB,GAAW,EAAEkB,OAAe,EAAE;IACvC,OAAO,IAAI,CAACvB,GAAG,CAACsB,UAAU,CAACjB,GAAG,EAAEkB,OAAO,CAAC;EAC1C;EACAC,YAAYA,CACVnB,GAAW,EACXG,MAAe,EACfG,QAAiB,EACjBC,KAAc,EACdC,QAAgB,EAChBC,IAAY,EACZC,QAAgB,EAChB;IACA,MAAMU,CAAC,GAAGC,YAAY,CAACC,EAAE,CAACnB,MAAM,CAACC,CAAC,EAAED,MAAM,CAACE,CAAC,CAAC;IAC7C,MAAMkB,CAAC,GAAGF,YAAY,CAACC,EAAE,CAAChB,QAAQ,CAACF,CAAC,EAAEE,QAAQ,CAACD,CAAC,CAAC;IACjD,MAAMmB,CAAC,GAAGH,YAAY,CAACC,EAAE,CAACf,KAAK,CAACH,CAAC,EAAEG,KAAK,CAACF,CAAC,CAAC;IAC3C,OAAO,IAAI,CAACV,GAAG,CAACwB,YAAY,CAACnB,GAAG,EAAEoB,CAAC,EAAEG,CAAC,EAAEC,CAAC,EAAEhB,QAAQ,EAAEC,IAAI,EAAEC,QAAQ,CAAC;EACtE;EAEAe,WAAWA,CAAA,EAAa;IACtB,OAAO,IAAI,CAAC9B,GAAG,CAAC8B,WAAW,CAAC,CAAC;EAC/B;EACAC,YAAYA,CAAC1B,GAAW,EAAEa,KAAc,EAAE;IACxC,OAAO,IAAI,CAAClB,GAAG,CAAC+B,YAAY,CAAC1B,GAAG,EAAEa,KAAK,CAAC;EAC1C;EACAc,aAAaA,CAAC3B,GAAW,EAAE4B,MAAc,EAAE;IACzC,OAAO,IAAI,CAACjC,GAAG,CAACgC,aAAa,CAAC3B,GAAG,EAAE4B,MAAM,CAAC;EAC5C;EACAC,WAAWA,CAAC7B,GAAW,EAAE8B,IAAa,EAAE;IACtC,OAAO,IAAI,CAACnC,GAAG,CAACkC,WAAW,CAAC7B,GAAG,EAAEqB,YAAY,CAACC,EAAE,CAACQ,IAAI,CAAC1B,CAAC,EAAE0B,IAAI,CAACzB,CAAC,CAAC,CAAC;EACnE;EACA0B,WAAWA,CAAC/B,GAAW,EAAEe,IAA2B,EAAW;IAAA,IAAAiB,UAAA,EAAAC,cAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,gBAAA,EAAAC,eAAA;IAC7D,MAAMC,GAA4B,GAAG;MACnC;MACA;MACAC,QAAQ,EACNzB,IAAI,CAACyB,QAAQ,IAAIzB,IAAI,CAACyB,QAAQ,YAAYnD,aAAa,GACnD0B,IAAI,CAACyB,QAAQ,CAAC7C,GAAG,GACjB,IAAI;MACVoB,IAAI,GAAAiB,UAAA,GAAEjB,IAAI,CAACA,IAAI,cAAAiB,UAAA,cAAAA,UAAA,GAAI,EAAE;MACrBS,QAAQ,GAAAR,cAAA,GAAElB,IAAI,CAAC0B,QAAQ,cAAAR,cAAA,cAAAA,cAAA,GAAI,CAAC;MAC5BS,WAAW,GAAAR,iBAAA,GAAEnB,IAAI,CAAC2B,WAAW,cAAAR,iBAAA,cAAAA,iBAAA,GAAI,CAAC;MAClCS,WAAW,GAAAR,iBAAA,GAAEpB,IAAI,CAAC4B,WAAW,cAAAR,iBAAA,cAAAA,iBAAA,GAAIS,MAAM,CAACC,SAAS;MACjDC,WAAW,GAAAV,iBAAA,GAAErB,IAAI,CAAC+B,WAAW,cAAAV,iBAAA,cAAAA,iBAAA,GAAI,CAAC;MAClCW,UAAU,GAAAV,gBAAA,GAAEtB,IAAI,CAACgC,UAAU,cAAAV,gBAAA,cAAAA,gBAAA,GAAI,CAAC;MAChCW,SAAS,GAAAV,eAAA,GAAEvB,IAAI,CAACiC,SAAS,cAAAV,eAAA,cAAAA,eAAA,GAAI,CAAC;MAC9BW,MAAM,EAAElC,IAAI,CAACkC,MAAM;MACnBC,QAAQ,EAAEnC,IAAI,CAACmC,QAAQ;MACvB;MACA;MACA;MACAC,UAAU,EAAE,IAAI,CAACzD,SAAS,CAAC0D,SAAS,CAACC,IAAI;MACzC;MACA;MACAC,SAAS,EAAE,IAAI,CAAC5D,SAAS,CAAC6D,iBAAiB,CAACC,GAAG;MAC/C;MACA;MACAC,UAAU,EAAE,IAAI,CAAC/D,SAAS,CAACgE,UAAU,CAACC,KAAK;MAC3C;MACA;MACAC,SAAS,EAAE,IAAI,CAAClE,SAAS,CAACmE,aAAa,CAACC,GAAG;MAC3C;MACA;MACAC,SAAS,EAAE,IAAI,CAACrE,SAAS,CAACsE,aAAa,CAACC,aAAa;MACrD;MACA;MACAC,MAAM,EAAE,IAAI,CAACxE,SAAS,CAACyE,YAAY,CAACC,IAAI;MACxCC,WAAW,EAAEtD,IAAI,CAACsD,WAAW,GACzB,IAAI,CAAC3E,SAAS,CAAC4E,QAAQ,CACrBvD,IAAI,CAACsD,WAAW,CAACjE,CAAC,EAClBW,IAAI,CAACsD,WAAW,CAAChE,CAAC,EAClBU,IAAI,CAACsD,WAAW,CAACE,KAAK,EACtBxD,IAAI,CAACsD,WAAW,CAACG,MACnB,CAAC,GACD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAChBC,SAAS,EAAE1D,IAAI,CAAC0D,SAAS,GACrBnF,KAAK,CAACyB,IAAI,CAAC0D,SAAS,CAAC,GACrB,IAAI,CAAC/E,SAAS,CAACgF,WAAW;MAC9BC,WAAW,EAAE5D,IAAI,CAAC4D,WAAW,GACzBrF,KAAK,CAACyB,IAAI,CAAC4D,WAAW,CAAC,GACvB,IAAI,CAACjF,SAAS,CAACgF;IACrB,CAAC;IACD,OAAO,IAAI,CAAC/E,GAAG,CAACoC,WAAW,CAAC/B,GAAG,EAAEuC,GAAG,CAAC;EACvC;EACAqC,YAAYA,CAAC5E,GAAW,EAAE6E,SAAiB,EAAE;IAC3C,OAAO,IAAI,CAAClF,GAAG,CAACiF,YAAY,CAAC5E,GAAG,EAAE6E,SAAS,CAAC;EAC9C;EACAC,YAAYA,CAAC9E,GAAW,EAAkB;IACxC,MAAMa,KAAK,GAAG,IAAI,CAAClB,GAAG,CAACmF,YAAY,CAAC9E,GAAG,CAAC;IACxC,OAAOa,KAAK;EACd;EACAkE,aAAaA,CAAC/E,GAAW,EAAE;IACzB,OAAO,IAAI,CAACL,GAAG,CAACoF,aAAa,CAAC/E,GAAG,CAAC;EACpC;EACAgF,WAAWA,CAAChF,GAAW,EAAkB;IACvC,MAAM8B,IAAI,GAAG,IAAI,CAACnC,GAAG,CAACqF,WAAW,CAAChF,GAAG,CAAC;IACtC,IAAI,CAAC8B,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IACA,OAAO;MAAE1B,CAAC,EAAE0B,IAAI,CAAC,CAAC,CAAC;MAAEzB,CAAC,EAAEyB,IAAI,CAAC,CAAC;IAAE,CAAC;EACnC;EACAmD,WAAWA,CAACjF,GAAW,EAAgC;IACrD,MAAMkF,MAAM,GAAG,IAAI,CAACvF,GAAG,CAACsF,WAAW,CAACjF,GAAG,CAAC;IACxC,MAAMmF,QAA+B,GAAG,CAAC,CAAC;IAC1C,IAAID,MAAM,EAAE;MACV,IAAIA,MAAM,CAAC1C,QAAQ,EAAE;QACnB2C,QAAQ,CAAC3C,QAAQ,GAAG,IAAInD,aAAa,CAAC,IAAI,CAACK,SAAS,EAAEwF,MAAM,CAAC1C,QAAQ,CAAC;MACxE;MACA,IAAI0C,MAAM,CAACnE,IAAI,EAAE;QACfoE,QAAQ,CAACpE,IAAI,GAAGmE,MAAM,CAACnE,IAAI;MAC7B;MACA,IAAImE,MAAM,CAACzC,QAAQ,EAAE;QACnB0C,QAAQ,CAAC1C,QAAQ,GAAGyC,MAAM,CAACzC,QAAQ;MACrC;MACA,IAAIyC,MAAM,CAACxC,WAAW,EAAE;QACtByC,QAAQ,CAACzC,WAAW,GAAGwC,MAAM,CAACxC,WAAW;MAC3C;MACA,IAAIwC,MAAM,CAACvC,WAAW,EAAE;QACtBwC,QAAQ,CAACxC,WAAW,GAAGuC,MAAM,CAACvC,WAAW;MAC3C;MACA,IAAIuC,MAAM,CAACpC,WAAW,EAAE;QACtBqC,QAAQ,CAACrC,WAAW,GAAGoC,MAAM,CAACpC,WAAW;MAC3C;MACA,IAAIoC,MAAM,CAACnC,UAAU,EAAE;QACrBoC,QAAQ,CAACpC,UAAU,GAAGmC,MAAM,CAACnC,UAAU;MACzC;MACA,IAAImC,MAAM,CAAClC,SAAS,EAAE;QACpBmC,QAAQ,CAACnC,SAAS,GAAGkC,MAAM,CAAClC,SAAS;MACvC;MACA,IAAIkC,MAAM,CAACjC,MAAM,EAAE;QACjBkC,QAAQ,CAAClC,MAAM,GAAGiC,MAAM,CAACjC,MAAM;MACjC;MACA,IAAIiC,MAAM,CAAChC,QAAQ,EAAE;QACnBiC,QAAQ,CAACjC,QAAQ,GAAGgC,MAAM,CAAChC,QAAQ;MACrC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACF;IACA,OAAOiC,QAAQ;EACjB;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACzF,GAAG,CAACyF,QAAQ,CAAC,CAAC;EAC5B;EACAC,GAAGA,CAAA,EAAG;IACJ,OAAO,IAAI,CAAC1F,GAAG,CAAC0F,GAAG,CAAC,CAAC;EACvB;EACAC,MAAMA,CAACC,MAAmB,EAAEC,OAAgB,EAAE;IAC5C,MAAM,CAACjB,KAAK,EAAEC,MAAM,CAAC,GAAG,IAAI,CAAC7E,GAAG,CAACqB,IAAI,CAAC,CAAC;IACvC,IAAI,CAACrB,GAAG,CAAC2F,MAAM,CACbC,MAAM,CAAC5F,GAAG,EACV6F,OAAO,IAAIA,OAAO,YAAYjG,SAAS,GACnCiG,OAAO,CAAC7F,GAAG,GACX0B,YAAY,CAACC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEiD,KAAK,EAAEC,MAAM,CACzC,CAAC;EACH;EACAiB,SAASA,CAACC,KAAa,EAAEC,UAAsB,EAAE;IAC/C,MAAMT,MAAM,GAAG,IAAI,CAACvF,GAAG,CAAC8F,SAAS,CAACC,KAAK,CAAC;IACxC,IAAIC,UAAU,IAAIA,UAAU,YAAYpG,SAAS,EAAE;MACjDoG,UAAU,CAAChG,GAAG,CAAC,CAAC,CAAC,GAAGuF,MAAM,CAAC,CAAC,CAAC;MAC7BS,UAAU,CAAChG,GAAG,CAAC,CAAC,CAAC,GAAGuF,MAAM,CAAC,CAAC,CAAC;MAC7BS,UAAU,CAAChG,GAAG,CAAC,CAAC,CAAC,GAAGuF,MAAM,CAAC,CAAC,CAAC;MAC7BS,UAAU,CAAChG,GAAG,CAAC,CAAC,CAAC,GAAGuF,MAAM,CAAC,CAAC,CAAC;IAC/B;EACF;EACAlE,IAAIA,CAAA,EAAG;IACL,MAAM,CAACuD,KAAK,EAAEC,MAAM,CAAC,GAAG,IAAI,CAAC7E,GAAG,CAACqB,IAAI,CAAC,CAAC;IACvC,OAAO;MAAEuD,KAAK;MAAEC;IAAO,CAAC;EAC1B;EACAoB,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACjG,GAAG,CAACiG,OAAO,CAAC,CAAC;EAC3B;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["HostObject","JsiSkTypeface","Color","JsiSkRect","JsiSkottieAnimation","constructor","CanvasKit","ref","getOpacityProps","getTextProps","getColorProps","map","key","value","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","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","seekFrame","frame","damageRect","version"],"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":[]}
|
|
@@ -273,7 +273,8 @@ export const drawImageSVG = (ctx, props) => {
|
|
|
273
273
|
return;
|
|
274
274
|
}
|
|
275
275
|
canvas.save();
|
|
276
|
-
|
|
276
|
+
// An offset of 0 is a valid position, so it must not be read as "unset".
|
|
277
|
+
if (x !== undefined && y !== undefined) {
|
|
277
278
|
canvas.translate(x, y);
|
|
278
279
|
}
|
|
279
280
|
canvas.drawSvg(svg, width, height);
|