@shopify/react-native-skia 0.1.214 → 0.1.216

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. package/cpp/api/JsiSkMatrix.h +31 -0
  2. package/cpp/api/JsiSkPath.h +15 -7
  3. package/lib/commonjs/animation/functions/interpolatePaths.d.ts +1 -1
  4. package/lib/commonjs/animation/functions/interpolatePaths.js +4 -4
  5. package/lib/commonjs/animation/functions/interpolatePaths.js.map +1 -1
  6. package/lib/commonjs/external/reanimated/index.d.ts +2 -1
  7. package/lib/commonjs/external/reanimated/index.js +17 -4
  8. package/lib/commonjs/external/reanimated/index.js.map +1 -1
  9. package/lib/commonjs/external/reanimated/interpolators.d.ts +9 -0
  10. package/lib/commonjs/external/reanimated/interpolators.js +56 -0
  11. package/lib/commonjs/external/reanimated/interpolators.js.map +1 -0
  12. package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +8 -6
  13. package/lib/commonjs/external/reanimated/moduleWrapper.js +6 -11
  14. package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
  15. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +1 -0
  16. package/lib/commonjs/external/reanimated/renderHelpers.js +16 -3
  17. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  18. package/lib/commonjs/external/reanimated/useAnimatedImageValue.d.ts +2 -0
  19. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js +53 -0
  20. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -0
  21. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +1 -2
  22. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +2 -1
  23. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +1 -1
  24. package/lib/commonjs/mock/index.js +8 -0
  25. package/lib/commonjs/mock/index.js.map +1 -1
  26. package/lib/commonjs/renderer/HostConfig.js +6 -5
  27. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  28. package/lib/commonjs/skia/core/AnimatedImage.d.ts +0 -1
  29. package/lib/commonjs/skia/core/AnimatedImage.js +1 -45
  30. package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -1
  31. package/lib/commonjs/skia/types/Matrix.d.ts +4 -0
  32. package/lib/commonjs/skia/types/Matrix.js.map +1 -1
  33. package/lib/commonjs/skia/types/Path/Path.d.ts +10 -9
  34. package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
  35. package/lib/commonjs/skia/web/JsiSkMatrix.d.ts +6 -0
  36. package/lib/commonjs/skia/web/JsiSkMatrix.js +33 -5
  37. package/lib/commonjs/skia/web/JsiSkMatrix.js.map +1 -1
  38. package/lib/commonjs/skia/web/JsiSkPath.d.ts +9 -9
  39. package/lib/commonjs/skia/web/JsiSkPath.js +15 -2
  40. package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
  41. package/lib/module/animation/functions/interpolatePaths.d.ts +1 -1
  42. package/lib/module/animation/functions/interpolatePaths.js +4 -4
  43. package/lib/module/animation/functions/interpolatePaths.js.map +1 -1
  44. package/lib/module/external/reanimated/index.d.ts +2 -1
  45. package/lib/module/external/reanimated/index.js +2 -1
  46. package/lib/module/external/reanimated/index.js.map +1 -1
  47. package/lib/module/external/reanimated/interpolators.d.ts +9 -0
  48. package/lib/module/external/reanimated/interpolators.js +34 -0
  49. package/lib/module/external/reanimated/interpolators.js.map +1 -0
  50. package/lib/module/external/reanimated/moduleWrapper.d.ts +8 -6
  51. package/lib/module/external/reanimated/moduleWrapper.js +4 -7
  52. package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
  53. package/lib/module/external/reanimated/renderHelpers.d.ts +1 -0
  54. package/lib/module/external/reanimated/renderHelpers.js +12 -3
  55. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  56. package/lib/module/external/reanimated/useAnimatedImageValue.d.ts +2 -0
  57. package/lib/module/external/reanimated/useAnimatedImageValue.js +41 -0
  58. package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -0
  59. package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +1 -2
  60. package/lib/module/external/reanimated/useDerivedValueOnJS.js +3 -2
  61. package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +1 -1
  62. package/lib/module/mock/index.js +8 -0
  63. package/lib/module/mock/index.js.map +1 -1
  64. package/lib/module/renderer/HostConfig.js +2 -1
  65. package/lib/module/renderer/HostConfig.js.map +1 -1
  66. package/lib/module/skia/core/AnimatedImage.d.ts +0 -1
  67. package/lib/module/skia/core/AnimatedImage.js +0 -40
  68. package/lib/module/skia/core/AnimatedImage.js.map +1 -1
  69. package/lib/module/skia/types/Matrix.d.ts +4 -0
  70. package/lib/module/skia/types/Matrix.js.map +1 -1
  71. package/lib/module/skia/types/Path/Path.d.ts +10 -9
  72. package/lib/module/skia/types/Path/Path.js.map +1 -1
  73. package/lib/module/skia/web/JsiSkMatrix.d.ts +6 -0
  74. package/lib/module/skia/web/JsiSkMatrix.js +33 -5
  75. package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
  76. package/lib/module/skia/web/JsiSkPath.d.ts +9 -9
  77. package/lib/module/skia/web/JsiSkPath.js +15 -2
  78. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  79. package/lib/typescript/jestEnv.d.mts +5 -0
  80. package/lib/typescript/jestSetup.d.mts +1 -0
  81. package/lib/typescript/src/animation/functions/interpolatePaths.d.ts +1 -1
  82. package/lib/typescript/src/external/reanimated/index.d.ts +2 -1
  83. package/lib/typescript/src/external/reanimated/interpolators.d.ts +9 -0
  84. package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +8 -6
  85. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +1 -0
  86. package/lib/typescript/src/external/reanimated/useAnimatedImageValue.d.ts +2 -0
  87. package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +1 -2
  88. package/lib/typescript/src/skia/core/AnimatedImage.d.ts +0 -1
  89. package/lib/typescript/src/skia/types/Matrix.d.ts +4 -0
  90. package/lib/typescript/src/skia/types/Path/Path.d.ts +10 -9
  91. package/lib/typescript/src/skia/web/JsiSkMatrix.d.ts +6 -0
  92. package/lib/typescript/src/skia/web/JsiSkPath.d.ts +9 -9
  93. package/package.json +4 -3
  94. package/src/animation/functions/interpolatePaths.ts +7 -4
  95. package/src/external/reanimated/index.ts +2 -1
  96. package/src/external/reanimated/interpolators.ts +89 -0
  97. package/src/external/reanimated/moduleWrapper.ts +33 -16
  98. package/src/external/reanimated/renderHelpers.ts +14 -5
  99. package/src/external/reanimated/useAnimatedImageValue.ts +51 -0
  100. package/src/external/reanimated/useDerivedValueOnJS.ts +4 -3
  101. package/src/mock/index.ts +5 -0
  102. package/src/renderer/HostConfig.ts +3 -1
  103. package/src/skia/core/AnimatedImage.ts +0 -47
  104. package/src/skia/types/Matrix.ts +4 -0
  105. package/src/skia/types/Path/Path.ts +10 -9
  106. package/src/skia/web/JsiSkMatrix.ts +33 -27
  107. package/src/skia/web/JsiSkPath.ts +15 -2
  108. package/globalJestSetup.js +0 -6
  109. package/lib/commonjs/external/reanimated/useSharedValueEffect.d.ts +0 -8
  110. package/lib/commonjs/external/reanimated/useSharedValueEffect.js +0 -49
  111. package/lib/commonjs/external/reanimated/useSharedValueEffect.js.map +0 -1
  112. package/lib/module/external/reanimated/useSharedValueEffect.d.ts +0 -8
  113. package/lib/module/external/reanimated/useSharedValueEffect.js +0 -39
  114. package/lib/module/external/reanimated/useSharedValueEffect.js.map +0 -1
  115. package/lib/typescript/globalJestSetup.d.ts +0 -2
  116. package/lib/typescript/src/external/reanimated/useSharedValueEffect.d.ts +0 -8
  117. package/src/external/reanimated/useSharedValueEffect.ts +0 -55
@@ -1 +1 @@
1
- {"version":3,"names":["PathVerb","ckEnum","HostObject","optEnum","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkMatrix","CommandCount","Move","Line","Quad","Conic","Cubic","Close","pinT","t","Math","min","max","JsiSkPath","constructor","CanvasKit","ref","delete","addPath","src","matrix","extend","args","fromValue","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","countPoints","addPoly","points","close","map","p","Array","from","flat","moveTo","x","y","lineTo","makeAsWinding","result","offset","dx","dy","rArcTo","rx","ry","xAxisRotateInDegrees","useSmallArc","rConicTo","dx1","dy1","dx2","dy2","w","rCubicTo","cpx1","cpy1","cpx2","cpy2","rMoveTo","rLineTo","rQuadTo","x1","y1","x2","y2","setFillType","fill","setIsVolatile","volatile","stroke","opts","undefined","width","miter_limit","precision","join","cap","reset","rewind","computeTightBounds","arcToOval","forceMoveTo","arcToRotated","arcToTangent","radius","conicTo","contains","copy","cubicTo","dash","on","off","phase","equals","other","getBounds","getFillType","value","quadTo","addRect","rect","addRRect","rrect","getPoint","index","isEmpty","isVolatile","addCircle","r","getLastPt","op","path","simplify","toSVGString","trim","start","stop","isComplement","startT","stopT","transform","m3","interpolate","end","Path","MakeFromPathInterpolation","isInterpolatable","path2","CanInterpolate","toCmds","cmds","reduce","acc","cmd","i","push","current","length"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, Path } from \"canvaskit-wasm\";\n\nimport { PathVerb } from \"../types\";\nimport type {\n FillType,\n PathCommand,\n PathOp,\n SkMatrix,\n SkPath,\n SkPoint,\n SkRect,\n SkRRect,\n StrokeOpts,\n} from \"../types\";\n\nimport { ckEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\n\nconst CommandCount = {\n [PathVerb.Move]: 3,\n [PathVerb.Line]: 3,\n [PathVerb.Quad]: 5,\n [PathVerb.Conic]: 6,\n [PathVerb.Cubic]: 7,\n [PathVerb.Close]: 1,\n};\n\nconst pinT = (t: number) => Math.min(Math.max(t, 0), 1);\n\nexport class JsiSkPath extends HostObject<Path, \"Path\"> implements SkPath {\n constructor(CanvasKit: CanvasKit, ref: Path) {\n super(CanvasKit, ref, \"Path\");\n }\n\n dispose = () => {\n this.ref.delete();\n };\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n const args = [\n JsiSkPath.fromValue(src),\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\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 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 countPoints() {\n return this.ref.countPoints();\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPoly(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n moveTo(x: number, y: number) {\n this.ref.moveTo(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 makeAsWinding() {\n const result = this.ref.makeAsWinding();\n return result === null ? result : this;\n }\n\n offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\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 rConicTo(dx1: number, dy1: number, dx2: number, dy2: number, w: number) {\n this.ref.rConicTo(dx1, dy1, dx2, dy2, w);\n return this;\n }\n\n rCubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, 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 rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\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 setFillType(fill: FillType) {\n this.ref.setFillType(ckEnum(fill));\n }\n\n setIsVolatile(volatile: boolean) {\n this.ref.setIsVolatile(volatile);\n }\n\n stroke(opts?: StrokeOpts) {\n const result = this.ref.stroke(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.width,\n precision: opts.width,\n join: optEnum(opts.join),\n cap: optEnum(opts.cap),\n }\n );\n return result === null ? result : this;\n }\n\n close() {\n this.ref.close();\n }\n\n reset() {\n this.ref.reset();\n }\n\n rewind() {\n this.ref.rewind();\n }\n\n computeTightBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.computeTightBounds());\n }\n\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 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 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 contains(x: number, y: number) {\n return this.ref.contains(x, y);\n }\n\n copy() {\n return new JsiSkPath(this.CanvasKit, this.ref.copy());\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n dash(on: number, off: number, phase: number) {\n return this.ref.dash(on, off, phase);\n }\n\n equals(other: SkPath) {\n return this.ref.equals(JsiSkPath.fromValue(other));\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType() {\n return this.ref.getFillType().value;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n }\n\n addRRect(rrect: SkRRect, isCCW?: boolean) {\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n getPoint(index: number) {\n return new JsiSkPoint(this.CanvasKit, this.ref.getPoint(index));\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return this.ref.isVolatile();\n }\n\n addCircle(x: number, y: number, r: number) {\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n getLastPt() {\n return new JsiSkPoint(\n this.CanvasKit,\n this.ref.getPoint(this.ref.countPoints() - 1)\n );\n }\n\n op(path: SkPath, op: PathOp) {\n return this.ref.op(JsiSkPath.fromValue(path), ckEnum(op));\n }\n\n simplify() {\n return this.ref.simplify();\n }\n\n toSVGString() {\n return this.ref.toSVGString();\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n const startT = pinT(start);\n const stopT = pinT(stop);\n if (startT === 0 && stopT === 1) {\n return this;\n }\n const result = this.ref.trim(startT, stopT, isComplement);\n return result === null ? result : this;\n }\n\n transform(m3: SkMatrix) {\n this.ref.transform(JsiSkMatrix.fromValue(m3));\n }\n\n interpolate(end: SkPath, t: number) {\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(\n this.ref,\n JsiSkPath.fromValue(end),\n t\n );\n if (path === null) {\n return null;\n }\n return new JsiSkPath(this.CanvasKit, path);\n }\n\n isInterpolatable(path2: SkPath): boolean {\n return this.CanvasKit.Path.CanInterpolate(\n this.ref,\n JsiSkPath.fromValue(path2)\n );\n }\n\n toCmds() {\n const cmds = this.ref.toCmds();\n const result = cmds.reduce<PathCommand[]>((acc, cmd, i) => {\n if (i === 0) {\n acc.push([]);\n }\n const current = acc[acc.length - 1];\n if (current.length === 0) {\n current.push(cmd);\n const length = CommandCount[current[0] as PathVerb];\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n } else {\n const length = CommandCount[current[0] as PathVerb];\n if (current.length < length) {\n current.push(cmd);\n }\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n }\n return acc;\n }, []);\n return result;\n }\n}\n"],"mappings":";;AAEA,SAASA,QAAT,QAAyB,UAAzB;AAaA,SAASC,MAAT,EAAiBC,UAAjB,EAA6BC,OAA7B,QAA4C,QAA5C;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,WAAT,QAA4B,eAA5B;AAEA,MAAMC,YAAY,GAAG;EACnB,CAACR,QAAQ,CAACS,IAAV,GAAiB,CADE;EAEnB,CAACT,QAAQ,CAACU,IAAV,GAAiB,CAFE;EAGnB,CAACV,QAAQ,CAACW,IAAV,GAAiB,CAHE;EAInB,CAACX,QAAQ,CAACY,KAAV,GAAkB,CAJC;EAKnB,CAACZ,QAAQ,CAACa,KAAV,GAAkB,CALC;EAMnB,CAACb,QAAQ,CAACc,KAAV,GAAkB;AANC,CAArB;;AASA,MAAMC,IAAI,GAAIC,CAAD,IAAeC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASH,CAAT,EAAY,CAAZ,CAAT,EAAyB,CAAzB,CAA5B;;AAEA,OAAO,MAAMI,SAAN,SAAwBlB,UAAxB,CAAmE;EACxEmB,WAAW,CAACC,SAAD,EAAuBC,GAAvB,EAAkC;IAC3C,MAAMD,SAAN,EAAiBC,GAAjB,EAAsB,MAAtB;;IAD2C,iCAInC,MAAM;MACd,KAAKA,GAAL,CAASC,MAAT;IACD,CAN4C;EAE5C;;EAMDC,OAAO,CAACC,GAAD,EAAcC,MAAd,EAAiD;IAAA,IAAhBC,MAAgB,uEAAP,KAAO;IACtD,MAAMC,IAAI,GAAG,CACXT,SAAS,CAACU,SAAV,CAAoBJ,GAApB,CADW,EAEX,IAAIC,MAAM,GAAGpB,WAAW,CAACuB,SAAZ,CAAoCH,MAApC,CAAH,GAAiD,EAA3D,CAFW,EAGXC,MAHW,CAAb;IAKA,KAAKL,GAAL,CAASE,OAAT,CAAiB,GAAGI,IAApB;IACA,OAAO,IAAP;EACD;;EAEDE,MAAM,CACJC,IADI,EAEJC,mBAFI,EAGJC,mBAHI,EAIJ;IACA,KAAKX,GAAL,CAASQ,MAAT,CACE1B,SAAS,CAACyB,SAAV,CAAoB,KAAKR,SAAzB,EAAoCU,IAApC,CADF,EAEEC,mBAFF,EAGEC,mBAHF;IAKA,OAAO,IAAP;EACD;;EAEDC,OAAO,CAACH,IAAD,EAAeI,KAAf,EAAgCC,UAAhC,EAAqD;IAC1D,KAAKd,GAAL,CAASY,OAAT,CACE9B,SAAS,CAACyB,SAAV,CAAoB,KAAKR,SAAzB,EAAoCU,IAApC,CADF,EAEEI,KAFF,EAGEC,UAHF;IAKA,OAAO,IAAP;EACD;;EAEDC,WAAW,GAAG;IACZ,OAAO,KAAKf,GAAL,CAASe,WAAT,EAAP;EACD;;EAEDC,OAAO,CAACC,MAAD,EAAoBC,KAApB,EAAoC;IACzC,KAAKlB,GAAL,CAASgB,OAAT,CACEC,MAAM,CAACE,GAAP,CAAYC,CAAD,IAAOC,KAAK,CAACC,IAAN,CAAWzC,UAAU,CAAC0B,SAAX,CAAqBa,CAArB,CAAX,CAAlB,EAAuDG,IAAvD,EADF,EAEEL,KAFF;IAIA,OAAO,IAAP;EACD;;EAEDM,MAAM,CAACC,CAAD,EAAYC,CAAZ,EAAuB;IAC3B,KAAK1B,GAAL,CAASwB,MAAT,CAAgBC,CAAhB,EAAmBC,CAAnB;IACA,OAAO,IAAP;EACD;;EAEDC,MAAM,CAACF,CAAD,EAAYC,CAAZ,EAAuB;IAC3B,KAAK1B,GAAL,CAAS2B,MAAT,CAAgBF,CAAhB,EAAmBC,CAAnB;IACA,OAAO,IAAP;EACD;;EAEDE,aAAa,GAAG;IACd,MAAMC,MAAM,GAAG,KAAK7B,GAAL,CAAS4B,aAAT,EAAf;IACA,OAAOC,MAAM,KAAK,IAAX,GAAkBA,MAAlB,GAA2B,IAAlC;EACD;;EAEDC,MAAM,CAACC,EAAD,EAAaC,EAAb,EAAyB;IAC7B,KAAKhC,GAAL,CAAS8B,MAAT,CAAgBC,EAAhB,EAAoBC,EAApB;IACA,OAAO,IAAP;EACD;;EAEDC,MAAM,CACJC,EADI,EAEJC,EAFI,EAGJC,oBAHI,EAIJC,WAJI,EAKJxB,KALI,EAMJkB,EANI,EAOJC,EAPI,EAQJ;IACA,KAAKhC,GAAL,CAASiC,MAAT,CAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,oBAAxB,EAA8CC,WAA9C,EAA2DxB,KAA3D,EAAkEkB,EAAlE,EAAsEC,EAAtE;IACA,OAAO,IAAP;EACD;;EAEDM,QAAQ,CAACC,GAAD,EAAcC,GAAd,EAA2BC,GAA3B,EAAwCC,GAAxC,EAAqDC,CAArD,EAAgE;IACtE,KAAK3C,GAAL,CAASsC,QAAT,CAAkBC,GAAlB,EAAuBC,GAAvB,EAA4BC,GAA5B,EAAiCC,GAAjC,EAAsCC,CAAtC;IACA,OAAO,IAAP;EACD;;EAEDC,QAAQ,CACNC,IADM,EAENC,IAFM,EAGNC,IAHM,EAINC,IAJM,EAKNvB,CALM,EAMNC,CANM,EAON;IACA,KAAK1B,GAAL,CAAS4C,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8BC,IAA9B,EAAoCC,IAApC,EAA0CvB,CAA1C,EAA6CC,CAA7C;IACA,OAAO,IAAP;EACD;;EAEDuB,OAAO,CAACxB,CAAD,EAAYC,CAAZ,EAAuB;IAC5B,KAAK1B,GAAL,CAASiD,OAAT,CAAiBxB,CAAjB,EAAoBC,CAApB;IACA,OAAO,IAAP;EACD;;EAEDwB,OAAO,CAACzB,CAAD,EAAYC,CAAZ,EAAuB;IAC5B,KAAK1B,GAAL,CAASkD,OAAT,CAAiBzB,CAAjB,EAAoBC,CAApB;IACA,OAAO,IAAP;EACD;;EAEDyB,OAAO,CAACC,EAAD,EAAaC,EAAb,EAAyBC,EAAzB,EAAqCC,EAArC,EAAiD;IACtD,KAAKvD,GAAL,CAASmD,OAAT,CAAiBC,EAAjB,EAAqBC,EAArB,EAAyBC,EAAzB,EAA6BC,EAA7B;IACA,OAAO,IAAP;EACD;;EAEDC,WAAW,CAACC,IAAD,EAAiB;IAC1B,KAAKzD,GAAL,CAASwD,WAAT,CAAqB9E,MAAM,CAAC+E,IAAD,CAA3B;EACD;;EAEDC,aAAa,CAACC,QAAD,EAAoB;IAC/B,KAAK3D,GAAL,CAAS0D,aAAT,CAAuBC,QAAvB;EACD;;EAEDC,MAAM,CAACC,IAAD,EAAoB;IACxB,MAAMhC,MAAM,GAAG,KAAK7B,GAAL,CAAS4D,MAAT,CACbC,IAAI,KAAKC,SAAT,GACIA,SADJ,GAEI;MACEC,KAAK,EAAEF,IAAI,CAACE,KADd;MAEE;MACAC,WAAW,EAAEH,IAAI,CAACE,KAHpB;MAIEE,SAAS,EAAEJ,IAAI,CAACE,KAJlB;MAKEG,IAAI,EAAEtF,OAAO,CAACiF,IAAI,CAACK,IAAN,CALf;MAMEC,GAAG,EAAEvF,OAAO,CAACiF,IAAI,CAACM,GAAN;IANd,CAHS,CAAf;IAYA,OAAOtC,MAAM,KAAK,IAAX,GAAkBA,MAAlB,GAA2B,IAAlC;EACD;;EAEDX,KAAK,GAAG;IACN,KAAKlB,GAAL,CAASkB,KAAT;EACD;;EAEDkD,KAAK,GAAG;IACN,KAAKpE,GAAL,CAASoE,KAAT;EACD;;EAEDC,MAAM,GAAG;IACP,KAAKrE,GAAL,CAASqE,MAAT;EACD;;EAEDC,kBAAkB,GAAW;IAC3B,OAAO,IAAIxF,SAAJ,CAAc,KAAKiB,SAAnB,EAA8B,KAAKC,GAAL,CAASsE,kBAAT,EAA9B,CAAP;EACD;;EAEDC,SAAS,CACP9D,IADO,EAEPC,mBAFO,EAGPC,mBAHO,EAIP6D,WAJO,EAKP;IACA,KAAKxE,GAAL,CAASuE,SAAT,CACEzF,SAAS,CAACyB,SAAV,CAAoB,KAAKR,SAAzB,EAAoCU,IAApC,CADF,EAEEC,mBAFF,EAGEC,mBAHF,EAIE6D,WAJF;IAMA,OAAO,IAAP;EACD;;EAEDC,YAAY,CACVvC,EADU,EAEVC,EAFU,EAGVC,oBAHU,EAIVC,WAJU,EAKVxB,KALU,EAMVY,CANU,EAOVC,CAPU,EAQV;IACA,KAAK1B,GAAL,CAASyE,YAAT,CACEvC,EADF,EAEEC,EAFF,EAGEC,oBAHF,EAIEC,WAJF,EAKExB,KALF,EAMEY,CANF,EAOEC,CAPF;IASA,OAAO,IAAP;EACD;;EAEDgD,YAAY,CAACtB,EAAD,EAAaC,EAAb,EAAyBC,EAAzB,EAAqCC,EAArC,EAAiDoB,MAAjD,EAAiE;IAC3E,KAAK3E,GAAL,CAAS0E,YAAT,CAAsBtB,EAAtB,EAA0BC,EAA1B,EAA8BC,EAA9B,EAAkCC,EAAlC,EAAsCoB,MAAtC;IACA,OAAO,IAAP;EACD;;EAEDC,OAAO,CAACxB,EAAD,EAAaC,EAAb,EAAyBC,EAAzB,EAAqCC,EAArC,EAAiDZ,CAAjD,EAA4D;IACjE,KAAK3C,GAAL,CAAS4E,OAAT,CAAiBxB,EAAjB,EAAqBC,EAArB,EAAyBC,EAAzB,EAA6BC,EAA7B,EAAiCZ,CAAjC;IACA,OAAO,IAAP;EACD;;EAEDkC,QAAQ,CAACpD,CAAD,EAAYC,CAAZ,EAAuB;IAC7B,OAAO,KAAK1B,GAAL,CAAS6E,QAAT,CAAkBpD,CAAlB,EAAqBC,CAArB,CAAP;EACD;;EAEDoD,IAAI,GAAG;IACL,OAAO,IAAIjF,SAAJ,CAAc,KAAKE,SAAnB,EAA8B,KAAKC,GAAL,CAAS8E,IAAT,EAA9B,CAAP;EACD;;EAEDC,OAAO,CACLlC,IADK,EAELC,IAFK,EAGLC,IAHK,EAILC,IAJK,EAKLvB,CALK,EAMLC,CANK,EAOL;IACA,KAAK1B,GAAL,CAAS+E,OAAT,CAAiBlC,IAAjB,EAAuBC,IAAvB,EAA6BC,IAA7B,EAAmCC,IAAnC,EAAyCvB,CAAzC,EAA4CC,CAA5C;IACA,OAAO,IAAP;EACD;;EAEDsD,IAAI,CAACC,EAAD,EAAaC,GAAb,EAA0BC,KAA1B,EAAyC;IAC3C,OAAO,KAAKnF,GAAL,CAASgF,IAAT,CAAcC,EAAd,EAAkBC,GAAlB,EAAuBC,KAAvB,CAAP;EACD;;EAEDC,MAAM,CAACC,KAAD,EAAgB;IACpB,OAAO,KAAKrF,GAAL,CAASoF,MAAT,CAAgBvF,SAAS,CAACU,SAAV,CAAoB8E,KAApB,CAAhB,CAAP;EACD;;EAEDC,SAAS,GAAG;IACV,OAAO,IAAIxG,SAAJ,CAAc,KAAKiB,SAAnB,EAA8B,KAAKC,GAAL,CAASsF,SAAT,EAA9B,CAAP;EACD;;EAEDC,WAAW,GAAG;IACZ,OAAO,KAAKvF,GAAL,CAASuF,WAAT,GAAuBC,KAA9B;EACD;;EAEDC,MAAM,CAACrC,EAAD,EAAaC,EAAb,EAAyBC,EAAzB,EAAqCC,EAArC,EAAiD;IACrD,KAAKvD,GAAL,CAASyF,MAAT,CAAgBrC,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B;EACD;;EAEDmC,OAAO,CAACC,IAAD,EAAe9E,KAAf,EAAgC;IACrC,KAAKb,GAAL,CAAS0F,OAAT,CAAiB5G,SAAS,CAACyB,SAAV,CAAoB,KAAKR,SAAzB,EAAoC4F,IAApC,CAAjB,EAA4D9E,KAA5D;EACD;;EAED+E,QAAQ,CAACC,KAAD,EAAiBhF,KAAjB,EAAkC;IACxC,KAAKb,GAAL,CAAS4F,QAAT,CAAkB7G,UAAU,CAACwB,SAAX,CAAqB,KAAKR,SAA1B,EAAqC8F,KAArC,CAAlB,EAA+DhF,KAA/D;IACA,OAAO,IAAP;EACD;;EAEDiF,QAAQ,CAACC,KAAD,EAAgB;IACtB,OAAO,IAAIlH,UAAJ,CAAe,KAAKkB,SAApB,EAA+B,KAAKC,GAAL,CAAS8F,QAAT,CAAkBC,KAAlB,CAA/B,CAAP;EACD;;EAEDC,OAAO,GAAG;IACR,OAAO,KAAKhG,GAAL,CAASgG,OAAT,EAAP;EACD;;EAEDC,UAAU,GAAG;IACX,OAAO,KAAKjG,GAAL,CAASiG,UAAT,EAAP;EACD;;EAEDC,SAAS,CAACzE,CAAD,EAAYC,CAAZ,EAAuByE,CAAvB,EAAkC;IACzC,KAAKnG,GAAL,CAASkG,SAAT,CAAmBzE,CAAnB,EAAsBC,CAAtB,EAAyByE,CAAzB;IACA,OAAO,IAAP;EACD;;EAEDC,SAAS,GAAG;IACV,OAAO,IAAIvH,UAAJ,CACL,KAAKkB,SADA,EAEL,KAAKC,GAAL,CAAS8F,QAAT,CAAkB,KAAK9F,GAAL,CAASe,WAAT,KAAyB,CAA3C,CAFK,CAAP;EAID;;EAEDsF,EAAE,CAACC,IAAD,EAAeD,EAAf,EAA2B;IAC3B,OAAO,KAAKrG,GAAL,CAASqG,EAAT,CAAYxG,SAAS,CAACU,SAAV,CAAoB+F,IAApB,CAAZ,EAAuC5H,MAAM,CAAC2H,EAAD,CAA7C,CAAP;EACD;;EAEDE,QAAQ,GAAG;IACT,OAAO,KAAKvG,GAAL,CAASuG,QAAT,EAAP;EACD;;EAEDC,WAAW,GAAG;IACZ,OAAO,KAAKxG,GAAL,CAASwG,WAAT,EAAP;EACD;;EAEDC,IAAI,CAACC,KAAD,EAAgBC,IAAhB,EAA8BC,YAA9B,EAAqD;IACvD,MAAMC,MAAM,GAAGrH,IAAI,CAACkH,KAAD,CAAnB;IACA,MAAMI,KAAK,GAAGtH,IAAI,CAACmH,IAAD,CAAlB;;IACA,IAAIE,MAAM,KAAK,CAAX,IAAgBC,KAAK,KAAK,CAA9B,EAAiC;MAC/B,OAAO,IAAP;IACD;;IACD,MAAMjF,MAAM,GAAG,KAAK7B,GAAL,CAASyG,IAAT,CAAcI,MAAd,EAAsBC,KAAtB,EAA6BF,YAA7B,CAAf;IACA,OAAO/E,MAAM,KAAK,IAAX,GAAkBA,MAAlB,GAA2B,IAAlC;EACD;;EAEDkF,SAAS,CAACC,EAAD,EAAe;IACtB,KAAKhH,GAAL,CAAS+G,SAAT,CAAmB/H,WAAW,CAACuB,SAAZ,CAAsByG,EAAtB,CAAnB;EACD;;EAEDC,WAAW,CAACC,GAAD,EAAczH,CAAd,EAAyB;IAClC,MAAM6G,IAAI,GAAG,KAAKvG,SAAL,CAAeoH,IAAf,CAAoBC,yBAApB,CACX,KAAKpH,GADM,EAEXH,SAAS,CAACU,SAAV,CAAoB2G,GAApB,CAFW,EAGXzH,CAHW,CAAb;;IAKA,IAAI6G,IAAI,KAAK,IAAb,EAAmB;MACjB,OAAO,IAAP;IACD;;IACD,OAAO,IAAIzG,SAAJ,CAAc,KAAKE,SAAnB,EAA8BuG,IAA9B,CAAP;EACD;;EAEDe,gBAAgB,CAACC,KAAD,EAAyB;IACvC,OAAO,KAAKvH,SAAL,CAAeoH,IAAf,CAAoBI,cAApB,CACL,KAAKvH,GADA,EAELH,SAAS,CAACU,SAAV,CAAoB+G,KAApB,CAFK,CAAP;EAID;;EAEDE,MAAM,GAAG;IACP,MAAMC,IAAI,GAAG,KAAKzH,GAAL,CAASwH,MAAT,EAAb;IACA,MAAM3F,MAAM,GAAG4F,IAAI,CAACC,MAAL,CAA2B,CAACC,GAAD,EAAMC,GAAN,EAAWC,CAAX,KAAiB;MACzD,IAAIA,CAAC,KAAK,CAAV,EAAa;QACXF,GAAG,CAACG,IAAJ,CAAS,EAAT;MACD;;MACD,MAAMC,OAAO,GAAGJ,GAAG,CAACA,GAAG,CAACK,MAAJ,GAAa,CAAd,CAAnB;;MACA,IAAID,OAAO,CAACC,MAAR,KAAmB,CAAvB,EAA0B;QACxBD,OAAO,CAACD,IAAR,CAAaF,GAAb;QACA,MAAMI,MAAM,GAAG/I,YAAY,CAAC8I,OAAO,CAAC,CAAD,CAAR,CAA3B;;QACA,IAAIA,OAAO,CAACC,MAAR,KAAmBA,MAAnB,IAA6BH,CAAC,KAAKJ,IAAI,CAACO,MAAL,GAAc,CAArD,EAAwD;UACtDL,GAAG,CAACG,IAAJ,CAAS,EAAT;QACD;MACF,CAND,MAMO;QACL,MAAME,MAAM,GAAG/I,YAAY,CAAC8I,OAAO,CAAC,CAAD,CAAR,CAA3B;;QACA,IAAIA,OAAO,CAACC,MAAR,GAAiBA,MAArB,EAA6B;UAC3BD,OAAO,CAACD,IAAR,CAAaF,GAAb;QACD;;QACD,IAAIG,OAAO,CAACC,MAAR,KAAmBA,MAAnB,IAA6BH,CAAC,KAAKJ,IAAI,CAACO,MAAL,GAAc,CAArD,EAAwD;UACtDL,GAAG,CAACG,IAAJ,CAAS,EAAT;QACD;MACF;;MACD,OAAOH,GAAP;IACD,CArBc,EAqBZ,EArBY,CAAf;IAsBA,OAAO9F,MAAP;EACD;;AA3VuE"}
1
+ {"version":3,"names":["PathVerb","ckEnum","HostObject","optEnum","JsiSkPoint","JsiSkRect","JsiSkRRect","JsiSkMatrix","CommandCount","Move","Line","Quad","Conic","Cubic","Close","pinT","t","Math","min","max","JsiSkPath","constructor","CanvasKit","ref","delete","addPath","src","matrix","extend","args","fromValue","addArc","oval","startAngleInDegrees","sweepAngleInDegrees","addOval","isCCW","startIndex","countPoints","addPoly","points","close","map","p","Array","from","flat","moveTo","x","y","lineTo","makeAsWinding","result","offset","dx","dy","rArcTo","rx","ry","xAxisRotateInDegrees","useSmallArc","rConicTo","dx1","dy1","dx2","dy2","w","rCubicTo","cpx1","cpy1","cpx2","cpy2","rMoveTo","rLineTo","rQuadTo","x1","y1","x2","y2","setFillType","fill","setIsVolatile","volatile","stroke","opts","undefined","width","miter_limit","precision","join","cap","reset","rewind","computeTightBounds","arcToOval","forceMoveTo","arcToRotated","arcToTangent","radius","conicTo","contains","copy","cubicTo","dash","on","off","phase","equals","other","getBounds","getFillType","value","quadTo","addRect","rect","addRRect","rrect","getPoint","index","isEmpty","isVolatile","addCircle","r","getLastPt","op","path","simplify","toSVGString","trim","start","stop","isComplement","startT","stopT","transform","m3","interpolate","end","output","Path","MakeFromPathInterpolation","isInterpolatable","path2","CanInterpolate","toCmds","cmds","reduce","acc","cmd","i","push","current","length"],"sources":["JsiSkPath.ts"],"sourcesContent":["import type { CanvasKit, Path } from \"canvaskit-wasm\";\n\nimport { PathVerb } from \"../types\";\nimport type {\n FillType,\n PathCommand,\n PathOp,\n SkMatrix,\n SkPath,\n SkPoint,\n SkRect,\n SkRRect,\n StrokeOpts,\n} from \"../types\";\n\nimport { ckEnum, HostObject, optEnum } from \"./Host\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\n\nconst CommandCount = {\n [PathVerb.Move]: 3,\n [PathVerb.Line]: 3,\n [PathVerb.Quad]: 5,\n [PathVerb.Conic]: 6,\n [PathVerb.Cubic]: 7,\n [PathVerb.Close]: 1,\n};\n\nconst pinT = (t: number) => Math.min(Math.max(t, 0), 1);\n\nexport class JsiSkPath extends HostObject<Path, \"Path\"> implements SkPath {\n constructor(CanvasKit: CanvasKit, ref: Path) {\n super(CanvasKit, ref, \"Path\");\n }\n\n dispose = () => {\n this.ref.delete();\n };\n\n addPath(src: SkPath, matrix?: SkMatrix, extend = false) {\n const args = [\n JsiSkPath.fromValue(src),\n ...(matrix ? JsiSkMatrix.fromValue<Float32Array>(matrix) : []),\n extend,\n ];\n this.ref.addPath(...args);\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 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 countPoints() {\n return this.ref.countPoints();\n }\n\n addPoly(points: SkPoint[], close: boolean) {\n this.ref.addPoly(\n points.map((p) => Array.from(JsiSkPoint.fromValue(p))).flat(),\n close\n );\n return this;\n }\n\n moveTo(x: number, y: number) {\n this.ref.moveTo(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 makeAsWinding() {\n const result = this.ref.makeAsWinding();\n return result === null ? result : this;\n }\n\n offset(dx: number, dy: number) {\n this.ref.offset(dx, dy);\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 rConicTo(dx1: number, dy1: number, dx2: number, dy2: number, w: number) {\n this.ref.rConicTo(dx1, dy1, dx2, dy2, w);\n return this;\n }\n\n rCubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.rCubicTo(cpx1, cpy1, cpx2, cpy2, 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 rLineTo(x: number, y: number) {\n this.ref.rLineTo(x, y);\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 setFillType(fill: FillType) {\n this.ref.setFillType(ckEnum(fill));\n return this;\n }\n\n setIsVolatile(volatile: boolean) {\n this.ref.setIsVolatile(volatile);\n return this;\n }\n\n stroke(opts?: StrokeOpts) {\n const result = this.ref.stroke(\n opts === undefined\n ? undefined\n : {\n width: opts.width,\n // eslint-disable-next-line camelcase\n miter_limit: opts.width,\n precision: opts.width,\n join: optEnum(opts.join),\n cap: optEnum(opts.cap),\n }\n );\n return result === null ? result : this;\n }\n\n close() {\n this.ref.close();\n return this;\n }\n\n reset() {\n this.ref.reset();\n return this;\n }\n\n rewind() {\n this.ref.rewind();\n return this;\n }\n\n computeTightBounds(): SkRect {\n return new JsiSkRect(this.CanvasKit, this.ref.computeTightBounds());\n }\n\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 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 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 contains(x: number, y: number) {\n return this.ref.contains(x, y);\n }\n\n copy() {\n return new JsiSkPath(this.CanvasKit, this.ref.copy());\n }\n\n cubicTo(\n cpx1: number,\n cpy1: number,\n cpx2: number,\n cpy2: number,\n x: number,\n y: number\n ) {\n this.ref.cubicTo(cpx1, cpy1, cpx2, cpy2, x, y);\n return this;\n }\n\n dash(on: number, off: number, phase: number) {\n return this.ref.dash(on, off, phase);\n }\n\n equals(other: SkPath) {\n return this.ref.equals(JsiSkPath.fromValue(other));\n }\n\n getBounds() {\n return new JsiSkRect(this.CanvasKit, this.ref.getBounds());\n }\n\n getFillType() {\n return this.ref.getFillType().value;\n }\n\n quadTo(x1: number, y1: number, x2: number, y2: number) {\n this.ref.quadTo(x1, y1, x2, y2);\n return this;\n }\n\n addRect(rect: SkRect, isCCW?: boolean) {\n this.ref.addRect(JsiSkRect.fromValue(this.CanvasKit, rect), isCCW);\n return this;\n }\n\n addRRect(rrect: SkRRect, isCCW?: boolean) {\n this.ref.addRRect(JsiSkRRect.fromValue(this.CanvasKit, rrect), isCCW);\n return this;\n }\n\n getPoint(index: number) {\n return new JsiSkPoint(this.CanvasKit, this.ref.getPoint(index));\n }\n\n isEmpty() {\n return this.ref.isEmpty();\n }\n\n isVolatile() {\n return this.ref.isVolatile();\n }\n\n addCircle(x: number, y: number, r: number) {\n this.ref.addCircle(x, y, r);\n return this;\n }\n\n getLastPt() {\n return new JsiSkPoint(\n this.CanvasKit,\n this.ref.getPoint(this.ref.countPoints() - 1)\n );\n }\n\n op(path: SkPath, op: PathOp) {\n return this.ref.op(JsiSkPath.fromValue(path), ckEnum(op));\n }\n\n simplify() {\n return this.ref.simplify();\n }\n\n toSVGString() {\n return this.ref.toSVGString();\n }\n\n trim(start: number, stop: number, isComplement: boolean) {\n const startT = pinT(start);\n const stopT = pinT(stop);\n if (startT === 0 && stopT === 1) {\n return this;\n }\n const result = this.ref.trim(startT, stopT, isComplement);\n return result === null ? result : this;\n }\n\n transform(m3: SkMatrix) {\n this.ref.transform(JsiSkMatrix.fromValue(m3));\n return this;\n }\n\n interpolate(end: SkPath, t: number, output?: SkPath) {\n const path = this.CanvasKit.Path.MakeFromPathInterpolation(\n this.ref,\n JsiSkPath.fromValue(end),\n t\n );\n if (path === null) {\n return null;\n }\n if (output) {\n (output as JsiSkPath).ref = path;\n return output;\n } else {\n return new JsiSkPath(this.CanvasKit, path);\n }\n }\n\n isInterpolatable(path2: SkPath): boolean {\n return this.CanvasKit.Path.CanInterpolate(\n this.ref,\n JsiSkPath.fromValue(path2)\n );\n }\n\n toCmds() {\n const cmds = this.ref.toCmds();\n const result = cmds.reduce<PathCommand[]>((acc, cmd, i) => {\n if (i === 0) {\n acc.push([]);\n }\n const current = acc[acc.length - 1];\n if (current.length === 0) {\n current.push(cmd);\n const length = CommandCount[current[0] as PathVerb];\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n } else {\n const length = CommandCount[current[0] as PathVerb];\n if (current.length < length) {\n current.push(cmd);\n }\n if (current.length === length && i !== cmds.length - 1) {\n acc.push([]);\n }\n }\n return acc;\n }, []);\n return result;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ declare const SkiaEnvironment_base: typeof import("jest-environment-node").default;
2
+ export default class SkiaEnvironment extends SkiaEnvironment_base {
3
+ constructor(config: any, context: any);
4
+ }
5
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -16,4 +16,4 @@ import type { ExtrapolationType } from "./interpolate";
16
16
  * path2.lineTo(0, 100);
17
17
  * const path = interpolatePath(0.5, [0, 1], [path1, path2]);
18
18
  */
19
- export declare const interpolatePaths: (value: number, input: number[], outputRange: SkPath[], options?: ExtrapolationType) => SkPath;
19
+ export declare const interpolatePaths: (value: number, input: number[], outputRange: SkPath[], options?: ExtrapolationType, output?: SkPath) => SkPath;
@@ -1,3 +1,4 @@
1
- export * from "./useSharedValueEffect";
1
+ export * from "./useAnimatedImageValue";
2
2
  export * from "./useDerivedValueOnJS";
3
3
  export * from "./renderHelpers";
4
+ export * from "./interpolators";
@@ -0,0 +1,9 @@
1
+ import type { ExtrapolationType, SharedValue } from "react-native-reanimated";
2
+ import type { SkPath, SkPoint } from "../../skia/types";
3
+ export declare const notifyChange: (value: SharedValue<unknown>) => void;
4
+ export declare const useClock: () => SharedValue<number>;
5
+ export declare const usePathInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPath[], options?: ExtrapolationType) => SharedValue<SkPath>;
6
+ export declare const useVectorInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPoint[], options?: ExtrapolationType) => SharedValue<{
7
+ x: number;
8
+ y: number;
9
+ }>;
@@ -1,10 +1,12 @@
1
- import type { SharedValueType } from "../../renderer/processors/Animations";
1
+ import type { DependencyList } from "react";
2
+ import type { FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
2
3
  export declare const HAS_REANIMATED2: boolean;
3
4
  export declare const HAS_REANIMATED3: boolean;
4
5
  export declare function throwOnMissingReanimated(): void;
5
- export declare const useSharedValue: any;
6
- export declare const useFrameCallback: (...args: any[]) => any;
7
- export declare const startMapper: any;
8
- export declare const stopMapper: any;
6
+ export declare const useSharedValue: <T>(init: T, oneWayReadsOnly?: boolean) => SharedValue<T>;
7
+ export declare const useFrameCallback: (callback: (frameInfo: FrameInfo) => void, autostart?: boolean) => FrameCallback;
8
+ export declare const startMapper: (worklet: () => void, inputs?: unknown[], outputs?: unknown[]) => number;
9
+ export declare const stopMapper: (mapperID: number) => void;
9
10
  export declare const runOnJS: any;
10
- export declare const isSharedValue: <T>(value: unknown) => value is SharedValueType<T>;
11
+ export declare const useAnimatedReaction: <T>(prepare: () => T, react: (v: T) => void, dependencies?: DependencyList) => void;
12
+ export declare const isSharedValue: <T>(value: unknown) => value is SharedValue<T>;
@@ -1,5 +1,6 @@
1
1
  import type { Container } from "../../renderer/Container";
2
2
  import type { AnimatedProps } from "../../renderer/processors";
3
3
  import type { Node } from "../../dom/types";
4
+ export declare const unbindReanimatedNode: (node: Node<unknown>) => void;
4
5
  export declare function extractReanimatedProps(props: AnimatedProps<any>): AnimatedProps<any, never>[];
5
6
  export declare function bindReanimatedProps(container: Container, node: Node<any>, reanimatedProps: AnimatedProps<any>): void;
@@ -0,0 +1,2 @@
1
+ import type { DataSourceParam, SkImage } from "../../skia/types";
2
+ export declare const useAnimatedImageValue: (source: DataSourceParam) => import("react-native-reanimated").SharedValue<SkImage | null>;
@@ -1,2 +1 @@
1
- import { type DependencyList } from "react";
2
- export declare const useDerivedValueOnJS: (fn: () => any, deps?: DependencyList) => any;
1
+ export declare const useDerivedValueOnJS: (fn: () => any, deps: unknown[]) => import("react-native-reanimated").SharedValue<any>;
@@ -3,4 +3,3 @@ import type { DataSourceParam } from "../types";
3
3
  * Returns a Skia Animated Image object
4
4
  * */
5
5
  export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => import("../types").SkAnimatedImage | null;
6
- export declare const useAnimatedImageValue: (source: DataSourceParam) => any;
@@ -18,6 +18,10 @@ export interface SkMatrix extends SkJSIInstance<"Matrix"> {
18
18
  scale: (x: number, y?: number) => SkMatrix;
19
19
  skew: (x: number, y: number) => SkMatrix;
20
20
  rotate: (theta: number) => SkMatrix;
21
+ postTranslate: (x: number, y: number) => SkMatrix;
22
+ postScale: (x: number, y?: number) => SkMatrix;
23
+ postSkew: (x: number, y: number) => SkMatrix;
24
+ postRotate: (theta: number) => SkMatrix;
21
25
  identity: () => SkMatrix;
22
26
  get: () => number[];
23
27
  }
@@ -167,7 +167,7 @@ export interface SkPath extends SkJSIInstance<"Path"> {
167
167
  * Sets FillType, the rule used to fill Path.
168
168
  * @param fill
169
169
  */
170
- setFillType(fill: FillType): void;
170
+ setFillType(fill: FillType): SkPath;
171
171
  /**
172
172
  * Specifies whether Path is volatile; whether it will be altered or discarded
173
173
  * by the caller after it is drawn. Path by default have volatile set false.
@@ -176,7 +176,7 @@ export interface SkPath extends SkJSIInstance<"Path"> {
176
176
  * Mark unchanging Path non-volatile to improve repeated rendering.
177
177
  * @param volatile
178
178
  */
179
- setIsVolatile(volatile: boolean): void;
179
+ setIsVolatile(volatile: boolean): SkPath;
180
180
  /**
181
181
  * Turns this path into the filled equivalent of the stroked path. Returns false if the operation
182
182
  * fails (e.g. the path is a hairline).
@@ -188,13 +188,13 @@ export interface SkPath extends SkJSIInstance<"Path"> {
188
188
  * Appends CLOSE_VERB to Path. A closed contour connects the first and last point
189
189
  * with a line, forming a continuous loop.
190
190
  */
191
- close(): void;
191
+ close(): SkPath;
192
192
  /**
193
193
  * Sets Path to its initial state.
194
194
  * Removes verb array, point array, and weights, and sets FillType to Winding.
195
195
  * Internal storage associated with Path is released
196
196
  */
197
- reset(): void;
197
+ reset(): SkPath;
198
198
  /**
199
199
  * Sets Path to its initial state.
200
200
  * Removes verb array, point array, and weights, and sets FillType to Winding.
@@ -202,7 +202,7 @@ export interface SkPath extends SkJSIInstance<"Path"> {
202
202
  * Use rewind() instead of reset() if Path storage will be reused and performance
203
203
  * is critical.
204
204
  */
205
- rewind(): void;
205
+ rewind(): SkPath;
206
206
  /**
207
207
  * Returns minimum and maximum axes values of the lines and curves in Path.
208
208
  * Returns (0, 0, 0, 0) if Path contains no points.
@@ -330,7 +330,7 @@ export interface SkPath extends SkJSIInstance<"Path"> {
330
330
  reference to SkPath
331
331
  example: https://fiddle.skia.org/c/@Path_quadTo
332
332
  */
333
- quadTo(x1: number, y1: number, x2: number, y2: number): void;
333
+ quadTo(x1: number, y1: number, x2: number, y2: number): SkPath;
334
334
  /**
335
335
  * Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb,
336
336
  * starting with top-left corner of Rect; followed by top-right, bottom-right,
@@ -340,7 +340,7 @@ export interface SkPath extends SkJSIInstance<"Path"> {
340
340
  * @param rect
341
341
  * @param isCCW
342
342
  */
343
- addRect(rect: SkRect, isCCW?: boolean): void;
343
+ addRect(rect: SkRect, isCCW?: boolean): SkPath;
344
344
  /**
345
345
  * Adds rrect to Path, creating a new closed contour.
346
346
  * Returns the modified path for easier chaining.
@@ -440,7 +440,7 @@ export interface SkPath extends SkJSIInstance<"Path"> {
440
440
  /**
441
441
  * Transforms the path by the specified matrix.
442
442
  */
443
- transform(m3: SkMatrix): void;
443
+ transform(m3: SkMatrix): SkPath;
444
444
  /**
445
445
  * Interpolates between Path with point array of equal size.
446
446
  * Copy verb array and weights to result, and set result path to a weighted
@@ -457,10 +457,11 @@ export interface SkPath extends SkJSIInstance<"Path"> {
457
457
  * @param ending path to interpolate with
458
458
  * @param weight contribution of this path, and
459
459
  * one minus contribution of ending path
460
+ * @param output path to be replaced with the interpolated averages
460
461
  * @return Path replaced by interpolated averages or null if
461
462
  * not interpolatable
462
463
  * */
463
- interpolate(end: SkPath, weight: number): SkPath | null;
464
+ interpolate(end: SkPath, weight: number, output?: SkPath): SkPath | null;
464
465
  /** Returns true if Path contain equal verbs and equal weights.
465
466
  * @param compare path to compare
466
467
  * @return true if Path can be interpolated equivalent
@@ -3,12 +3,18 @@ import type { SkMatrix } from "../types";
3
3
  import { HostObject } from "./Host";
4
4
  export declare class JsiSkMatrix extends HostObject<Matrix3x3, "Matrix"> implements SkMatrix {
5
5
  constructor(CanvasKit: CanvasKit, ref: Matrix3x3);
6
+ private preMultiply;
7
+ private postMultiply;
6
8
  dispose: () => void;
7
9
  concat(matrix: SkMatrix): this;
8
10
  translate(x: number, y: number): this;
11
+ postTranslate(x: number, y: number): this;
9
12
  scale(x: number, y?: number): this;
13
+ postScale(x: number, y?: number): this;
10
14
  skew(x: number, y: number): this;
15
+ postSkew(x: number, y: number): this;
11
16
  rotate(value: number): this;
17
+ postRotate(value: number): this;
12
18
  identity(): this;
13
19
  get(): number[];
14
20
  }
@@ -21,12 +21,12 @@ export declare class JsiSkPath extends HostObject<Path, "Path"> implements SkPat
21
21
  rMoveTo(x: number, y: number): this;
22
22
  rLineTo(x: number, y: number): this;
23
23
  rQuadTo(x1: number, y1: number, x2: number, y2: number): this;
24
- setFillType(fill: FillType): void;
25
- setIsVolatile(volatile: boolean): void;
24
+ setFillType(fill: FillType): this;
25
+ setIsVolatile(volatile: boolean): this;
26
26
  stroke(opts?: StrokeOpts): this | null;
27
- close(): void;
28
- reset(): void;
29
- rewind(): void;
27
+ close(): this;
28
+ reset(): this;
29
+ rewind(): this;
30
30
  computeTightBounds(): SkRect;
31
31
  arcToOval(oval: SkRect, startAngleInDegrees: number, sweepAngleInDegrees: number, forceMoveTo: boolean): this;
32
32
  arcToRotated(rx: number, ry: number, xAxisRotateInDegrees: number, useSmallArc: boolean, isCCW: boolean, x: number, y: number): this;
@@ -39,8 +39,8 @@ export declare class JsiSkPath extends HostObject<Path, "Path"> implements SkPat
39
39
  equals(other: SkPath): boolean;
40
40
  getBounds(): JsiSkRect;
41
41
  getFillType(): number;
42
- quadTo(x1: number, y1: number, x2: number, y2: number): void;
43
- addRect(rect: SkRect, isCCW?: boolean): void;
42
+ quadTo(x1: number, y1: number, x2: number, y2: number): this;
43
+ addRect(rect: SkRect, isCCW?: boolean): this;
44
44
  addRRect(rrect: SkRRect, isCCW?: boolean): this;
45
45
  getPoint(index: number): JsiSkPoint;
46
46
  isEmpty(): boolean;
@@ -51,8 +51,8 @@ export declare class JsiSkPath extends HostObject<Path, "Path"> implements SkPat
51
51
  simplify(): boolean;
52
52
  toSVGString(): string;
53
53
  trim(start: number, stop: number, isComplement: boolean): this | null;
54
- transform(m3: SkMatrix): void;
55
- interpolate(end: SkPath, t: number): JsiSkPath | null;
54
+ transform(m3: SkMatrix): this;
55
+ interpolate(end: SkPath, t: number, output?: SkPath): SkPath | JsiSkPath | null;
56
56
  isInterpolatable(path2: SkPath): boolean;
57
57
  toCmds(): PathCommand[];
58
58
  }
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "setup-skia-web": "./scripts/setup-canvaskit.js"
8
8
  },
9
9
  "title": "React Native Skia",
10
- "version": "0.1.214",
10
+ "version": "0.1.216",
11
11
  "description": "High-performance React Native Graphics using Skia",
12
12
  "main": "lib/module/index.js",
13
13
  "files": [
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "devDependencies": {
85
85
  "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
86
- "@types/jest": "^28.1.6",
86
+ "@types/jest": "29.5.6",
87
87
  "@types/pixelmatch": "^5.2.4",
88
88
  "@types/pngjs": "^6.0.1",
89
89
  "@types/react-native": "0.70.6",
@@ -92,13 +92,14 @@
92
92
  "eslint": "8.21.0",
93
93
  "eslint-config-react-native-wcandillon": "3.9.0",
94
94
  "eslint-plugin-reanimated": "2.0.0",
95
- "jest": "28.1.3",
95
+ "jest": "29.6.4",
96
96
  "merge-dirs": "^0.2.1",
97
97
  "pixelmatch": "^5.3.0",
98
98
  "pngjs": "^6.0.0",
99
99
  "react": "18.1.0",
100
100
  "react-native": "0.71.7",
101
101
  "react-native-builder-bob": "^0.18.2",
102
+ "react-native-reanimated": "^3.5.4",
102
103
  "ts-jest": "^28.0.7",
103
104
  "typescript": "4.8.3",
104
105
  "ws": "^8.11.0"
@@ -9,11 +9,12 @@ const lerp = (
9
9
  from: number,
10
10
  to: number,
11
11
  p1: SkPath,
12
- p2: SkPath
12
+ p2: SkPath,
13
+ output?: SkPath
13
14
  ) => {
14
15
  "worklet";
15
16
  const t = (value - from) / (to - from);
16
- return p2.interpolate(p1, t)!;
17
+ return p2.interpolate(p1, t, output)!;
17
18
  };
18
19
 
19
20
  /**
@@ -36,7 +37,8 @@ export const interpolatePaths = (
36
37
  value: number,
37
38
  input: number[],
38
39
  outputRange: SkPath[],
39
- options?: ExtrapolationType
40
+ options?: ExtrapolationType,
41
+ output?: SkPath
40
42
  ) => {
41
43
  "worklet";
42
44
  const extrapolation = validateInterpolationOptions(options);
@@ -84,6 +86,7 @@ export const interpolatePaths = (
84
86
  input[i],
85
87
  input[i + 1],
86
88
  outputRange[i],
87
- outputRange[i + 1]
89
+ outputRange[i + 1],
90
+ output
88
91
  );
89
92
  };
@@ -1,3 +1,4 @@
1
- export * from "./useSharedValueEffect";
1
+ export * from "./useAnimatedImageValue";
2
2
  export * from "./useDerivedValueOnJS";
3
3
  export * from "./renderHelpers";
4
+ export * from "./interpolators";
@@ -0,0 +1,89 @@
1
+ import type { ExtrapolationType, SharedValue } from "react-native-reanimated";
2
+ import { useMemo } from "react";
3
+
4
+ import type { SkPath, SkPoint } from "../../skia/types";
5
+ import { interpolatePaths, interpolateVector } from "../../animation";
6
+ import { Skia } from "../../skia";
7
+
8
+ import {
9
+ useAnimatedReaction,
10
+ useFrameCallback,
11
+ useSharedValue,
12
+ } from "./moduleWrapper";
13
+
14
+ export const notifyChange = (value: SharedValue<unknown>) => {
15
+ "worklet";
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ (value as any)._value = value.value;
18
+ };
19
+
20
+ export const useClock = () => {
21
+ const clock = useSharedValue(0);
22
+ useFrameCallback((info) => {
23
+ clock.value = info.timeSinceFirstFrame;
24
+ });
25
+ return clock;
26
+ };
27
+
28
+ /**
29
+ * @worklet
30
+ */
31
+ type Interpolator<T> = (
32
+ value: number,
33
+ input: number[],
34
+ output: T[],
35
+ options: ExtrapolationType,
36
+ result: T
37
+ ) => T;
38
+
39
+ const useInterpolator = <T>(
40
+ factory: () => T,
41
+ value: SharedValue<number>,
42
+ interpolator: Interpolator<T>,
43
+ input: number[],
44
+ output: T[],
45
+ options?: ExtrapolationType
46
+ ) => {
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ const init = useMemo(() => factory(), []);
49
+ const result = useSharedValue(init);
50
+ useAnimatedReaction(
51
+ () => value.value,
52
+ (val) => {
53
+ result.value = interpolator(val, input, output, options, result.value);
54
+ notifyChange(result);
55
+ },
56
+ [input, output, options]
57
+ );
58
+ return result;
59
+ };
60
+
61
+ export const usePathInterpolation = (
62
+ value: SharedValue<number>,
63
+ input: number[],
64
+ outputRange: SkPath[],
65
+ options?: ExtrapolationType
66
+ ) =>
67
+ useInterpolator(
68
+ () => Skia.Path.Make(),
69
+ value,
70
+ interpolatePaths,
71
+ input,
72
+ outputRange,
73
+ options
74
+ );
75
+
76
+ export const useVectorInterpolation = (
77
+ value: SharedValue<number>,
78
+ input: number[],
79
+ outputRange: SkPoint[],
80
+ options?: ExtrapolationType
81
+ ) =>
82
+ useInterpolator(
83
+ () => Skia.Point(0, 0),
84
+ value,
85
+ interpolateVector,
86
+ input,
87
+ outputRange,
88
+ options
89
+ );
@@ -1,7 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { useMemo } from "react";
3
-
4
- import type { SharedValueType } from "../../renderer/processors/Animations";
2
+ import type { DependencyList } from "react";
3
+ import type {
4
+ FrameCallback,
5
+ FrameInfo,
6
+ SharedValue,
7
+ } from "react-native-reanimated";
5
8
 
6
9
  // This one is needed for the deprecated useSharedValue function
7
10
  // We can remove it once we remove the deprecation
@@ -13,9 +16,7 @@ let reanimatedVersion: string;
13
16
 
14
17
  try {
15
18
  Reanimated2 = require("react-native-reanimated");
16
- reanimatedVersion =
17
- // eslint-disable-next-line import/extensions
18
- require("react-native-reanimated/package.json").version;
19
+ reanimatedVersion = require("react-native-reanimated/package.json").version;
19
20
  if (
20
21
  reanimatedVersion &&
21
22
  (reanimatedVersion >= "3.0.0" || reanimatedVersion.includes("3.0.0-"))
@@ -36,18 +37,34 @@ export function throwOnMissingReanimated() {
36
37
  }
37
38
  }
38
39
 
39
- export const useSharedValue =
40
- Reanimated2?.useSharedValue ||
41
- ((value: number) => useMemo(() => ({ value }), [value]));
42
- export const useFrameCallback: (...args: any[]) => any =
43
- Reanimated2?.useFrameCallback || throwOnMissingReanimated;
40
+ export const useSharedValue: <T>(
41
+ init: T,
42
+ oneWayReadsOnly?: boolean
43
+ ) => SharedValue<T> = Reanimated2?.useSharedValue || throwOnMissingReanimated;
44
+
45
+ export const useFrameCallback: (
46
+ callback: (frameInfo: FrameInfo) => void,
47
+ autostart?: boolean
48
+ ) => FrameCallback = Reanimated2?.useFrameCallback || throwOnMissingReanimated;
49
+
50
+ export const startMapper: (
51
+ worklet: () => void,
52
+ inputs?: unknown[],
53
+ outputs?: unknown[]
54
+ ) => number = Reanimated2?.startMapper || throwOnMissingReanimated;
55
+
56
+ export const stopMapper: (mapperID: number) => void =
57
+ Reanimated2?.stopMapper || throwOnMissingReanimated;
44
58
 
45
- export const startMapper = Reanimated2?.startMapper || throwOnMissingReanimated;
46
- export const stopMapper = Reanimated2?.stopMapper || throwOnMissingReanimated;
47
59
  export const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;
48
- export const isSharedValue = <T>(
49
- value: unknown
50
- ): value is SharedValueType<T> => {
60
+
61
+ export const useAnimatedReaction: <T>(
62
+ prepare: () => T,
63
+ react: (v: T) => void,
64
+ dependencies?: DependencyList
65
+ ) => void = Reanimated2?.useAnimatedReaction || throwOnMissingReanimated;
66
+
67
+ export const isSharedValue = <T>(value: unknown): value is SharedValue<T> => {
51
68
  return (
52
69
  !!value &&
53
70
  (Reanimated3
@@ -15,6 +15,13 @@ import {
15
15
 
16
16
  const _bindings = new WeakMap<Node<unknown>, unknown>();
17
17
 
18
+ export const unbindReanimatedNode = (node: Node<unknown>) => {
19
+ const previousMapperId = _bindings.get(node);
20
+ if (previousMapperId !== undefined) {
21
+ stopMapper(previousMapperId as number);
22
+ }
23
+ };
24
+
18
25
  export function extractReanimatedProps(props: AnimatedProps<any>) {
19
26
  if (!HAS_REANIMATED3 && !HAS_REANIMATED2) {
20
27
  return [props, {}];
@@ -44,7 +51,7 @@ function bindReanimatedProps2(
44
51
  const sharedValues = Object.values(reanimatedProps);
45
52
  const previousMapperId = _bindings.get(node);
46
53
  if (previousMapperId !== undefined) {
47
- stopMapper(previousMapperId);
54
+ stopMapper(previousMapperId as number);
48
55
  }
49
56
  if (sharedValues.length > 0) {
50
57
  const viewId = container.getNativeId();
@@ -76,7 +83,7 @@ export function bindReanimatedProps(
76
83
  node: Node<any>,
77
84
  reanimatedProps: AnimatedProps<any>
78
85
  ) {
79
- if (HAS_REANIMATED2) {
86
+ if (HAS_REANIMATED2 && !HAS_REANIMATED3) {
80
87
  return bindReanimatedProps2(container, node, reanimatedProps);
81
88
  }
82
89
  if (!HAS_REANIMATED3) {
@@ -85,15 +92,17 @@ export function bindReanimatedProps(
85
92
  const sharedValues = Object.values(reanimatedProps);
86
93
  const previousMapperId = _bindings.get(node);
87
94
  if (previousMapperId !== undefined) {
88
- stopMapper(previousMapperId);
95
+ stopMapper(previousMapperId as number);
89
96
  }
90
97
  if (sharedValues.length > 0) {
91
98
  const viewId = container.getNativeId();
92
99
  const { SkiaViewApi } = global;
93
100
  const mapperId = startMapper(() => {
94
101
  "worklet";
95
- for (const propName in reanimatedProps) {
96
- node && node.setProp(propName, reanimatedProps[propName].value);
102
+ if (node) {
103
+ for (const propName in reanimatedProps) {
104
+ node.setProp(propName, reanimatedProps[propName].value);
105
+ }
97
106
  }
98
107
  // On React Native we use the SkiaViewApi to redraw because it can
99
108
  // run on the worklet thread (container.redraw can't)