@shopify/react-native-skia 2.4.16 → 2.4.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/android/CMakeLists.txt +30 -0
  2. package/lib/commonjs/Platform/Platform.web.js +1 -2
  3. package/lib/commonjs/Platform/Platform.web.js.map +1 -1
  4. package/lib/commonjs/external/reanimated/buffers.js.map +1 -1
  5. package/lib/commonjs/external/reanimated/interpolators.d.ts +1 -4
  6. package/lib/commonjs/renderer/Canvas.js +4 -3
  7. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  8. package/lib/commonjs/renderer/components/Group.js +1 -2
  9. package/lib/commonjs/renderer/components/Group.js.map +1 -1
  10. package/lib/commonjs/renderer/components/shapes/FitBox.js +1 -2
  11. package/lib/commonjs/renderer/components/shapes/FitBox.js.map +1 -1
  12. package/lib/commonjs/skia/types/ContourMeasure.js.map +1 -1
  13. package/lib/commonjs/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
  14. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js +2 -2
  15. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js.map +1 -1
  16. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js.map +1 -1
  17. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  18. package/lib/commonjs/sksg/Recorder/commands/PathEffects.js.map +1 -1
  19. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  20. package/lib/commonjs/views/SkiaPictureView.web.js +4 -4
  21. package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
  22. package/lib/commonjs/web/WithSkiaWeb.js +1 -2
  23. package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
  24. package/lib/module/external/reanimated/buffers.js.map +1 -1
  25. package/lib/module/external/reanimated/interpolators.d.ts +1 -4
  26. package/lib/module/renderer/Canvas.js +3 -1
  27. package/lib/module/renderer/Canvas.js.map +1 -1
  28. package/lib/module/skia/types/ContourMeasure.js.map +1 -1
  29. package/lib/module/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
  30. package/lib/module/skia/web/JsiSkParagraphStyle.js +2 -2
  31. package/lib/module/skia/web/JsiSkParagraphStyle.js.map +1 -1
  32. package/lib/module/sksg/Recorder/commands/ColorFilters.js.map +1 -1
  33. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  34. package/lib/module/sksg/Recorder/commands/PathEffects.js.map +1 -1
  35. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  36. package/lib/module/views/SkiaPictureView.web.js +3 -2
  37. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  38. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -1
  39. package/lib/typescript/lib/module/views/SkiaPictureView.d.ts +1 -1
  40. package/lib/typescript/src/external/reanimated/interpolators.d.ts +1 -4
  41. package/package.json +16 -12
  42. package/react-native-skia.podspec +48 -10
  43. package/scripts/install-skia.mjs +95 -45
  44. package/src/external/reanimated/buffers.ts +1 -1
  45. package/src/renderer/Canvas.tsx +3 -2
  46. package/src/skia/types/ContourMeasure.tsx +1 -2
  47. package/src/skia/types/RuntimeEffect/RuntimeEffect.ts +1 -2
  48. package/src/sksg/Recorder/commands/ColorFilters.ts +3 -2
  49. package/src/sksg/Recorder/commands/ImageFilters.ts +3 -2
  50. package/src/sksg/Recorder/commands/PathEffects.ts +3 -2
  51. package/src/sksg/Recorder/commands/Shaders.ts +3 -2
  52. package/src/views/SkiaPictureView.web.tsx +4 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareDiscretePathEffect","ctx","props","length","deviation","seed","pe","Skia","PathEffect","MakeDiscrete","pathEffects","push","declarePath2DPathEffect","matrix","path","processPath","MakePath2D","Error","declareDashPathEffect","intervals","phase","MakeDash","declareCornerPathEffect","r","MakeCorner","declareSumPathEffect","pes","splice","composeDeclarations","MakeSum","bind","declareLine2DPathEffect","width","MakeLine2D","declarePath1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey","isPushPathEffect","command","type","CommandType","PushPathEffect","exports","isPathEffect","pathEffectType","composePathEffects","outer","pop","inner","MakeCompose","pushPathEffect","NodeType","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","CornerPathEffect","SumPathEffect","Line2DPathEffect","imageFilterType"],"sources":["PathEffects.ts"],"sourcesContent":["import { enumKey, processPath } from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../../dom/types\";\nimport { Path1DEffectStyle } from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareDiscretePathEffect = (\n ctx: DrawingContext,\n props: DiscretePathEffectProps\n) => {\n \"worklet\";\n const { length, deviation, seed } = props;\n const pe = ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath2DPathEffect = (\n ctx: DrawingContext,\n props: Path2DPathEffectProps\n) => {\n \"worklet\";\n const { matrix } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffect: invalid path\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareDashPathEffect = (\n ctx: DrawingContext,\n props: DashPathEffectProps\n) => {\n \"worklet\";\n const { intervals, phase } = props;\n const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);\n ctx.pathEffects.push(pe);\n};\n\nconst declareCornerPathEffect = (\n ctx: DrawingContext,\n props: CornerPathEffectProps\n) => {\n \"worklet\";\n const { r } = props;\n const pe = ctx.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffect: couldn't create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareSumPathEffect = (ctx: DrawingContext) => {\n \"worklet\";\n // Note: decorateChildren functionality needs to be handled differently\n const pes = ctx.pathEffects.splice(0, ctx.pathEffects.length);\n const pe = composeDeclarations(\n pes,\n ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n};\n\nconst declareLine2DPathEffect = (\n ctx: DrawingContext,\n props: Line2DPathEffectProps\n) => {\n \"worklet\";\n const { width, matrix } = props;\n const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath1DPathEffect = (\n ctx: DrawingContext,\n props: Path1DPathEffectProps\n) => {\n \"worklet\";\n const { advance, phase, style } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nexport const isPushPathEffect = (\n command: Command\n): command is Command<CommandType.PushPathEffect> => {\n \"worklet\";\n return command.type === CommandType.PushPathEffect;\n};\n\ntype Props = {\n [NodeType.DiscretePathEffect]: DiscretePathEffectProps;\n [NodeType.DashPathEffect]: DashPathEffectProps;\n [NodeType.Path1DPathEffect]: Path1DPathEffectProps;\n [NodeType.Path2DPathEffect]: Path2DPathEffectProps;\n [NodeType.CornerPathEffect]: CornerPathEffectProps;\n [NodeType.SumPathEffect]: Record<string, never>;\n [NodeType.Line2DPathEffect]: Line2DPathEffectProps;\n};\n\ninterface PushPathEffect<T extends keyof Props>\n extends Command<CommandType.PushPathEffect> {\n pathEffectType: T;\n props: Props[T];\n}\n\nconst isPathEffect = <T extends keyof Props>(\n command: Command<CommandType.PushPathEffect>,\n type: T\n): command is PushPathEffect<T> => {\n \"worklet\";\n return command.pathEffectType === type;\n};\n\nexport const composePathEffects = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.pathEffects.length > 1) {\n const outer = ctx.pathEffects.pop()!;\n const inner = ctx.pathEffects.pop()!;\n ctx.pathEffects.push(ctx.Skia.PathEffect.MakeCompose(outer, inner));\n }\n};\n\nexport const pushPathEffect = (\n ctx: DrawingContext,\n command: Command<CommandType.PushPathEffect>\n) => {\n \"worklet\";\n if (isPathEffect(command, NodeType.DiscretePathEffect)) {\n declareDiscretePathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.DashPathEffect)) {\n declareDashPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path1DPathEffect)) {\n declarePath1DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path2DPathEffect)) {\n declarePath2DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.CornerPathEffect)) {\n declareCornerPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.SumPathEffect)) {\n declareSumPathEffect(ctx);\n } else if (isPathEffect(command, NodeType.Line2DPathEffect)) {\n declareLine2DPathEffect(ctx, command.props);\n } else {\n throw new Error(\"Invalid image filter type: \" + command.imageFilterType);\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareDiscretePathEffect","ctx","props","length","deviation","seed","pe","Skia","PathEffect","MakeDiscrete","pathEffects","push","declarePath2DPathEffect","matrix","path","processPath","MakePath2D","Error","declareDashPathEffect","intervals","phase","MakeDash","declareCornerPathEffect","r","MakeCorner","declareSumPathEffect","pes","splice","composeDeclarations","MakeSum","bind","declareLine2DPathEffect","width","MakeLine2D","declarePath1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey","isPushPathEffect","command","type","CommandType","PushPathEffect","exports","isPathEffect","pathEffectType","composePathEffects","outer","pop","inner","MakeCompose","pushPathEffect","NodeType","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","CornerPathEffect","SumPathEffect","Line2DPathEffect","imageFilterType"],"sources":["PathEffects.ts"],"sourcesContent":["import { enumKey, processPath } from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../../dom/types\";\nimport { Path1DEffectStyle } from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareDiscretePathEffect = (\n ctx: DrawingContext,\n props: DiscretePathEffectProps\n) => {\n \"worklet\";\n const { length, deviation, seed } = props;\n const pe = ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath2DPathEffect = (\n ctx: DrawingContext,\n props: Path2DPathEffectProps\n) => {\n \"worklet\";\n const { matrix } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffect: invalid path\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareDashPathEffect = (\n ctx: DrawingContext,\n props: DashPathEffectProps\n) => {\n \"worklet\";\n const { intervals, phase } = props;\n const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);\n ctx.pathEffects.push(pe);\n};\n\nconst declareCornerPathEffect = (\n ctx: DrawingContext,\n props: CornerPathEffectProps\n) => {\n \"worklet\";\n const { r } = props;\n const pe = ctx.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffect: couldn't create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareSumPathEffect = (ctx: DrawingContext) => {\n \"worklet\";\n // Note: decorateChildren functionality needs to be handled differently\n const pes = ctx.pathEffects.splice(0, ctx.pathEffects.length);\n const pe = composeDeclarations(\n pes,\n ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n};\n\nconst declareLine2DPathEffect = (\n ctx: DrawingContext,\n props: Line2DPathEffectProps\n) => {\n \"worklet\";\n const { width, matrix } = props;\n const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath1DPathEffect = (\n ctx: DrawingContext,\n props: Path1DPathEffectProps\n) => {\n \"worklet\";\n const { advance, phase, style } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nexport const isPushPathEffect = (\n command: Command\n): command is Command<CommandType.PushPathEffect> => {\n \"worklet\";\n return command.type === CommandType.PushPathEffect;\n};\n\ntype Props = {\n [NodeType.DiscretePathEffect]: DiscretePathEffectProps;\n [NodeType.DashPathEffect]: DashPathEffectProps;\n [NodeType.Path1DPathEffect]: Path1DPathEffectProps;\n [NodeType.Path2DPathEffect]: Path2DPathEffectProps;\n [NodeType.CornerPathEffect]: CornerPathEffectProps;\n [NodeType.SumPathEffect]: Record<string, never>;\n [NodeType.Line2DPathEffect]: Line2DPathEffectProps;\n};\n\ninterface PushPathEffect<\n T extends keyof Props,\n> extends Command<CommandType.PushPathEffect> {\n pathEffectType: T;\n props: Props[T];\n}\n\nconst isPathEffect = <T extends keyof Props>(\n command: Command<CommandType.PushPathEffect>,\n type: T\n): command is PushPathEffect<T> => {\n \"worklet\";\n return command.pathEffectType === type;\n};\n\nexport const composePathEffects = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.pathEffects.length > 1) {\n const outer = ctx.pathEffects.pop()!;\n const inner = ctx.pathEffects.pop()!;\n ctx.pathEffects.push(ctx.Skia.PathEffect.MakeCompose(outer, inner));\n }\n};\n\nexport const pushPathEffect = (\n ctx: DrawingContext,\n command: Command<CommandType.PushPathEffect>\n) => {\n \"worklet\";\n if (isPathEffect(command, NodeType.DiscretePathEffect)) {\n declareDiscretePathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.DashPathEffect)) {\n declareDashPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path1DPathEffect)) {\n declarePath1DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path2DPathEffect)) {\n declarePath2DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.CornerPathEffect)) {\n declareCornerPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.SumPathEffect)) {\n declareSumPathEffect(ctx);\n } else if (isPathEffect(command, NodeType.Line2DPathEffect)) {\n declareLine2DPathEffect(ctx, command.props);\n } else {\n throw new Error(\"Invalid image filter type: \" + command.imageFilterType);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareShader","ctx","props","children","source","uniforms","transform","m3","Skia","Matrix","processTransformProps","shader","makeShaderWithChildren","processUniforms","shaders","splice","push","declareColorShader","color","Shader","MakeColor","processColor","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","processGradientProps","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","getRect","rects","fitRects","width","height","sx","sy","rect2rect","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","isCubicSampling","makeShaderCubic","TileMode","enumKey","B","C","_sampling$filter","_sampling$mipmap","filter","FilterMode","Linear","mipmap","MipmapMode","None","declareBlend","blend","BlendMode","length","composer","MakeBlend","bind","composeDeclarations","isPushShader","command","type","CommandType","PushShader","exports","isShader","shaderType","pushShader","NodeType","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processColor,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport {\n BlendMode,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (\n ctx: DrawingContext,\n props: ShaderProps,\n children: number\n) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, children),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(processColor(ctx.Skia, color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n let shader: SkShader;\n if (sampling && isCubicSampling(sampling)) {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling.B,\n sampling.C,\n lm\n );\n } else {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n lm\n );\n }\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n children: number;\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props, command.children);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareShader","ctx","props","children","source","uniforms","transform","m3","Skia","Matrix","processTransformProps","shader","makeShaderWithChildren","processUniforms","shaders","splice","push","declareColorShader","color","Shader","MakeColor","processColor","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","processGradientProps","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","getRect","rects","fitRects","width","height","sx","sy","rect2rect","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","isCubicSampling","makeShaderCubic","TileMode","enumKey","B","C","_sampling$filter","_sampling$mipmap","filter","FilterMode","Linear","mipmap","MipmapMode","None","declareBlend","blend","BlendMode","length","composer","MakeBlend","bind","composeDeclarations","isPushShader","command","type","CommandType","PushShader","exports","isShader","shaderType","pushShader","NodeType","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processColor,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport {\n BlendMode,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (\n ctx: DrawingContext,\n props: ShaderProps,\n children: number\n) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, children),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(processColor(ctx.Skia, color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n let shader: SkShader;\n if (sampling && isCubicSampling(sampling)) {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling.B,\n sampling.C,\n lm\n );\n } else {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n lm\n );\n }\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<\n T extends keyof Props,\n> extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n children: number;\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props, command.children);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _JsiSkSurface = require("../skia/web/JsiSkSurface");
9
9
  var _Platform = require("../Platform");
10
10
  var _SkiaViewNativeId = require("./SkiaViewNativeId");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
12
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
13
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -314,8 +313,9 @@ const SkiaPictureView = props => {
314
313
  }), /*#__PURE__*/_react.default.createElement("canvas", {
315
314
  ref: canvasRef,
316
315
  style: {
317
- display: "flex",
318
- flex: 1
316
+ display: "block",
317
+ width: "100%",
318
+ height: "100%"
319
319
  }
320
320
  }));
321
321
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkSurface","_Platform","_SkiaViewNativeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","JsiSkSurface","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","Platform","PixelRatio","SkiaPictureView","props","canvasRef","useRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","useCallback","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","_ref","viewProps","createElement","View","style","display","flex","exports"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ref: _ref, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas ref={canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkSurface","_Platform","_SkiaViewNativeId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","JsiSkSurface","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","Platform","PixelRatio","SkiaPictureView","props","canvasRef","useRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","useCallback","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","_ref","viewProps","createElement","View","style","display","exports"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ref: _ref, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas\n ref={canvasRef}\n style={{ display: \"block\", width: \"100%\", height: \"100%\" }}\n />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -7,8 +7,7 @@ exports.WithSkiaWeb = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _Platform = require("../Platform");
9
9
  var _LoadSkiaWeb = require("./LoadSkiaWeb");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
11
  const WithSkiaWeb = ({
13
12
  getComponent,
14
13
  fallback,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_Platform","_LoadSkiaWeb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WithSkiaWeb","getComponent","fallback","opts","componentProps","Inner","useMemo","lazy","Platform","OS","LoadSkiaWeb","console","warn","createElement","Suspense","exports"],"sources":["WithSkiaWeb.tsx"],"sourcesContent":["import type { ComponentProps, ComponentType } from \"react\";\nimport React, { useMemo, lazy, Suspense } from \"react\";\n\nimport { Platform } from \"../Platform\";\n\nimport { LoadSkiaWeb } from \"./LoadSkiaWeb\";\n\ntype NonOptionalKeys<T> = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\ntype WithSkiaProps<TProps> = {\n fallback?: ComponentProps<typeof Suspense>[\"fallback\"];\n getComponent: () => Promise<{ default: ComponentType<TProps> }>;\n opts?: Parameters<typeof LoadSkiaWeb>[0];\n} & (NonOptionalKeys<TProps> extends never\n ? {\n componentProps?: TProps;\n }\n : {\n componentProps: TProps;\n });\n\nexport const WithSkiaWeb = <TProps extends object>({\n getComponent,\n fallback,\n opts,\n componentProps,\n}: WithSkiaProps<TProps>) => {\n const Inner = useMemo(\n // TODO: investigate\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (): any =>\n lazy(async () => {\n if (Platform.OS === \"web\") {\n await LoadSkiaWeb(opts);\n } else {\n console.warn(\n \"<WithSkiaWeb /> is only necessary on web. Consider not using on native.\"\n );\n }\n return getComponent();\n }),\n // We we to run this only once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n <Suspense fallback={fallback ?? null}>\n <Inner {...componentProps} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AAA4C,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAkBrC,MAAMW,WAAW,GAAGA,CAAwB;EACjDC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJC;AACqB,CAAC,KAAK;EAC3B,MAAMC,KAAK,GAAG,IAAAC,cAAO;EACnB;EACA;EACA,mBACE,IAAAC,WAAI,EAAC,YAAY;IACf,IAAIC,kBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAM,IAAAC,wBAAW,EAACP,IAAI,CAAC;IACzB,CAAC,MAAM;MACLQ,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;IACH;IACA,OAAOX,YAAY,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ;EACA;EACA,EACF,CAAC;EACD,oBACE1B,MAAA,CAAAW,OAAA,CAAA2B,aAAA,CAACtC,MAAA,CAAAuC,QAAQ;IAACZ,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EAAK,gBACnC3B,MAAA,CAAAW,OAAA,CAAA2B,aAAA,CAACR,KAAK,EAAKD,cAAiB,CACpB,CAAC;AAEf,CAAC;AAACW,OAAA,CAAAf,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Platform","_LoadSkiaWeb","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WithSkiaWeb","getComponent","fallback","opts","componentProps","Inner","useMemo","lazy","Platform","OS","LoadSkiaWeb","console","warn","createElement","Suspense","exports"],"sources":["WithSkiaWeb.tsx"],"sourcesContent":["import type { ComponentProps, ComponentType } from \"react\";\nimport React, { useMemo, lazy, Suspense } from \"react\";\n\nimport { Platform } from \"../Platform\";\n\nimport { LoadSkiaWeb } from \"./LoadSkiaWeb\";\n\ntype NonOptionalKeys<T> = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\ntype WithSkiaProps<TProps> = {\n fallback?: ComponentProps<typeof Suspense>[\"fallback\"];\n getComponent: () => Promise<{ default: ComponentType<TProps> }>;\n opts?: Parameters<typeof LoadSkiaWeb>[0];\n} & (NonOptionalKeys<TProps> extends never\n ? {\n componentProps?: TProps;\n }\n : {\n componentProps: TProps;\n });\n\nexport const WithSkiaWeb = <TProps extends object>({\n getComponent,\n fallback,\n opts,\n componentProps,\n}: WithSkiaProps<TProps>) => {\n const Inner = useMemo(\n // TODO: investigate\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (): any =>\n lazy(async () => {\n if (Platform.OS === \"web\") {\n await LoadSkiaWeb(opts);\n } else {\n console.warn(\n \"<WithSkiaWeb /> is only necessary on web. Consider not using on native.\"\n );\n }\n return getComponent();\n }),\n // We we to run this only once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n <Suspense fallback={fallback ?? null}>\n <Inner {...componentProps} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AAA4C,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAkBrC,MAAMkB,WAAW,GAAGA,CAAwB;EACjDC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJC;AACqB,CAAC,KAAK;EAC3B,MAAMC,KAAK,GAAG,IAAAC,cAAO;EACnB;EACA;EACA,mBACE,IAAAC,WAAI,EAAC,YAAY;IACf,IAAIC,kBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAM,IAAAC,wBAAW,EAACP,IAAI,CAAC;IACzB,CAAC,MAAM;MACLQ,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;IACH;IACA,OAAOX,YAAY,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ;EACA;EACA,EACF,CAAC;EACD,oBACEzB,MAAA,CAAAe,OAAA,CAAAsB,aAAA,CAACrC,MAAA,CAAAsC,QAAQ;IAACZ,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EAAK,gBACnC1B,MAAA,CAAAe,OAAA,CAAAsB,aAAA,CAACR,KAAK,EAAKD,cAAiB,CACpB,CAAC;AAEf,CAAC;AAACW,OAAA,CAAAf,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","Skia","notifyChange","Rea","useBufferValue","size","bufferInitializer","makeMutable","Array","fill","map","useBuffer","modifier","_mod$__closure","values","mod","deps","Object","__closure","mapperId","startMapper","value","forEach","val","index","stopMapper","useRectBuffer","XYWHRect","useRSXformBuffer","RSXform","usePointBuffer","Point","useColorBuffer","Color"],"sources":["buffers.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { WorkletFunction } from \"react-native-reanimated/lib/typescript/commonTypes\";\n\nimport type { SkColor, SkHostRect, SkPoint, SkRSXform } from \"../../skia/types\";\nimport { Skia } from \"../../skia\";\n\nimport { notifyChange } from \"./interpolators\";\nimport Rea from \"./ReanimatedProxy\";\n\ntype Modifier<T> = (input: T, index: number) => void;\n\nconst useBufferValue = <T>(size: number, bufferInitializer: () => T) => {\n return useMemo(\n () => Rea.makeMutable(new Array(size).fill(0).map(bufferInitializer)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [size]\n );\n};\n\nconst useBuffer = <T>(\n size: number,\n bufferInitializer: () => T,\n modifier: Modifier<T>\n) => {\n const values = useBufferValue(size, bufferInitializer);\n const mod = modifier as WorkletFunction;\n const deps = [size, ...Object.values(mod.__closure ?? {})];\n const mapperId = Rea.startMapper(() => {\n \"worklet\";\n values.value.forEach((val, index) => {\n modifier(val, index);\n });\n notifyChange(values);\n }, deps);\n\n useEffect(() => {\n return () => {\n Rea.stopMapper(mapperId);\n };\n }, [mapperId]);\n\n return values;\n};\n\nexport const useRectBuffer = (size: number, modifier: Modifier<SkHostRect>) =>\n useBuffer(size, () => Skia.XYWHRect(0, 0, 0, 0), modifier);\n\n// Usage for RSXform Buffer\nexport const useRSXformBuffer = (size: number, modifier: Modifier<SkRSXform>) =>\n useBuffer(size, () => Skia.RSXform(1, 0, 0, 0), modifier);\n\n// Usage for Point Buffer\nexport const usePointBuffer = (size: number, modifier: Modifier<SkPoint>) =>\n useBuffer(size, () => Skia.Point(0, 0), modifier);\n\n// Usage for Color Buffer\nexport const useColorBuffer = (size: number, modifier: Modifier<SkColor>) =>\n useBuffer(size, () => Skia.Color(\"black\"), modifier);\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAI1C,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,OAAOC,GAAG,MAAM,mBAAmB;AAInC,MAAMC,cAAc,GAAGA,CAAIC,IAAY,EAAEC,iBAA0B,KAAK;EACtE,OAAON,OAAO,CACZ,MAAMG,GAAG,CAACI,WAAW,CAAC,IAAIC,KAAK,CAACH,IAAI,CAAC,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAACJ,iBAAiB,CAAC,CAAC;EACrE;EACA,CAACD,IAAI,CACP,CAAC;AACH,CAAC;AAED,MAAMM,SAAS,GAAGA,CAChBN,IAAY,EACZC,iBAA0B,EAC1BM,QAAqB,KAClB;EAAA,IAAAC,cAAA;EACH,MAAMC,MAAM,GAAGV,cAAc,CAACC,IAAI,EAAEC,iBAAiB,CAAC;EACtD,MAAMS,GAAG,GAAGH,QAA2B;EACvC,MAAMI,IAAI,GAAG,CAACX,IAAI,EAAE,GAAGY,MAAM,CAACH,MAAM,EAAAD,cAAA,GAACE,GAAG,CAACG,SAAS,cAAAL,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC,CAAC,CAAC;EAC1D,MAAMM,QAAQ,GAAGhB,GAAG,CAACiB,WAAW,CAAC,MAAM;IACrC,SAAS;;IACTN,MAAM,CAACO,KAAK,CAACC,OAAO,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;MACnCZ,QAAQ,CAACW,GAAG,EAAEC,KAAK,CAAC;IACtB,CAAC,CAAC;IACFtB,YAAY,CAACY,MAAM,CAAC;EACtB,CAAC,EAAEE,IAAI,CAAC;EAERjB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXI,GAAG,CAACsB,UAAU,CAACN,QAAQ,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAOL,MAAM;AACf,CAAC;AAED,OAAO,MAAMY,aAAa,GAAGA,CAACrB,IAAY,EAAEO,QAA8B,KACxED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC0B,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEf,QAAQ,CAAC;;AAE5D;AACA,OAAO,MAAMgB,gBAAgB,GAAGA,CAACvB,IAAY,EAAEO,QAA6B,KAC1ED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC4B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEjB,QAAQ,CAAC;;AAE3D;AACA,OAAO,MAAMkB,cAAc,GAAGA,CAACzB,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC8B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEnB,QAAQ,CAAC;;AAEnD;AACA,OAAO,MAAMoB,cAAc,GAAGA,CAAC3B,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAACgC,KAAK,CAAC,OAAO,CAAC,EAAErB,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","Skia","notifyChange","Rea","useBufferValue","size","bufferInitializer","makeMutable","Array","fill","map","useBuffer","modifier","_mod$__closure","values","mod","deps","Object","__closure","mapperId","startMapper","value","forEach","val","index","stopMapper","useRectBuffer","XYWHRect","useRSXformBuffer","RSXform","usePointBuffer","Point","useColorBuffer","Color"],"sources":["buffers.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { WorkletFunction } from \"react-native-worklets\";\n\nimport type { SkColor, SkHostRect, SkPoint, SkRSXform } from \"../../skia/types\";\nimport { Skia } from \"../../skia\";\n\nimport { notifyChange } from \"./interpolators\";\nimport Rea from \"./ReanimatedProxy\";\n\ntype Modifier<T> = (input: T, index: number) => void;\n\nconst useBufferValue = <T>(size: number, bufferInitializer: () => T) => {\n return useMemo(\n () => Rea.makeMutable(new Array(size).fill(0).map(bufferInitializer)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [size]\n );\n};\n\nconst useBuffer = <T>(\n size: number,\n bufferInitializer: () => T,\n modifier: Modifier<T>\n) => {\n const values = useBufferValue(size, bufferInitializer);\n const mod = modifier as WorkletFunction;\n const deps = [size, ...Object.values(mod.__closure ?? {})];\n const mapperId = Rea.startMapper(() => {\n \"worklet\";\n values.value.forEach((val, index) => {\n modifier(val, index);\n });\n notifyChange(values);\n }, deps);\n\n useEffect(() => {\n return () => {\n Rea.stopMapper(mapperId);\n };\n }, [mapperId]);\n\n return values;\n};\n\nexport const useRectBuffer = (size: number, modifier: Modifier<SkHostRect>) =>\n useBuffer(size, () => Skia.XYWHRect(0, 0, 0, 0), modifier);\n\n// Usage for RSXform Buffer\nexport const useRSXformBuffer = (size: number, modifier: Modifier<SkRSXform>) =>\n useBuffer(size, () => Skia.RSXform(1, 0, 0, 0), modifier);\n\n// Usage for Point Buffer\nexport const usePointBuffer = (size: number, modifier: Modifier<SkPoint>) =>\n useBuffer(size, () => Skia.Point(0, 0), modifier);\n\n// Usage for Color Buffer\nexport const useColorBuffer = (size: number, modifier: Modifier<SkColor>) =>\n useBuffer(size, () => Skia.Color(\"black\"), modifier);\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAI1C,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,OAAOC,GAAG,MAAM,mBAAmB;AAInC,MAAMC,cAAc,GAAGA,CAAIC,IAAY,EAAEC,iBAA0B,KAAK;EACtE,OAAON,OAAO,CACZ,MAAMG,GAAG,CAACI,WAAW,CAAC,IAAIC,KAAK,CAACH,IAAI,CAAC,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAACJ,iBAAiB,CAAC,CAAC;EACrE;EACA,CAACD,IAAI,CACP,CAAC;AACH,CAAC;AAED,MAAMM,SAAS,GAAGA,CAChBN,IAAY,EACZC,iBAA0B,EAC1BM,QAAqB,KAClB;EAAA,IAAAC,cAAA;EACH,MAAMC,MAAM,GAAGV,cAAc,CAACC,IAAI,EAAEC,iBAAiB,CAAC;EACtD,MAAMS,GAAG,GAAGH,QAA2B;EACvC,MAAMI,IAAI,GAAG,CAACX,IAAI,EAAE,GAAGY,MAAM,CAACH,MAAM,EAAAD,cAAA,GAACE,GAAG,CAACG,SAAS,cAAAL,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC,CAAC,CAAC;EAC1D,MAAMM,QAAQ,GAAGhB,GAAG,CAACiB,WAAW,CAAC,MAAM;IACrC,SAAS;;IACTN,MAAM,CAACO,KAAK,CAACC,OAAO,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;MACnCZ,QAAQ,CAACW,GAAG,EAAEC,KAAK,CAAC;IACtB,CAAC,CAAC;IACFtB,YAAY,CAACY,MAAM,CAAC;EACtB,CAAC,EAAEE,IAAI,CAAC;EAERjB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXI,GAAG,CAACsB,UAAU,CAACN,QAAQ,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAOL,MAAM;AACf,CAAC;AAED,OAAO,MAAMY,aAAa,GAAGA,CAACrB,IAAY,EAAEO,QAA8B,KACxED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC0B,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEf,QAAQ,CAAC;;AAE5D;AACA,OAAO,MAAMgB,gBAAgB,GAAGA,CAACvB,IAAY,EAAEO,QAA6B,KAC1ED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC4B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEjB,QAAQ,CAAC;;AAE3D;AACA,OAAO,MAAMkB,cAAc,GAAGA,CAACzB,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC8B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEnB,QAAQ,CAAC;;AAEnD;AACA,OAAO,MAAMoB,cAAc,GAAGA,CAAC3B,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAACgC,KAAK,CAAC,OAAO,CAAC,EAAErB,QAAQ,CAAC","ignoreList":[]}
@@ -4,7 +4,4 @@ export declare const notifyChange: <T>(value: SharedValue<T>) => void;
4
4
  export declare const usePathValue: (cb: (path: SkPath) => void, init?: SkPath) => SharedValue<SkPath>;
5
5
  export declare const useClock: () => SharedValue<number>;
6
6
  export declare const usePathInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPath[], options?: ExtrapolationType) => SharedValue<SkPath>;
7
- export declare const useVectorInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPoint[], options?: ExtrapolationType) => SharedValue<{
8
- x: number;
9
- y: number;
10
- }>;
7
+ export declare const useVectorInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPoint[], options?: ExtrapolationType) => SharedValue<SkPoint>;
@@ -79,7 +79,9 @@ export const Canvas = ({
79
79
  measure(viewRef.current.canvasRef) : {
80
80
  width: 0,
81
81
  height: 0
82
- } : measure(viewRef);
82
+ } :
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ measure(viewRef);
83
85
  if (result) {
84
86
  const {
85
87
  width,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","Rea","SkiaViewNativeId","SkiaPictureViewNativeComponent","SkiaSGRoot","Skia","Platform","HAS_REANIMATED_3","useCanvasRef","useReanimatedFrame","useFrameCallback","measure","useCanvasRefPriv","useAnimatedRef","useCanvasSize","userRef","ourRef","ref","size","setSize","width","height","current","_x","_y","isFabric","Boolean","_global","global","nativeFabricUIManager","Canvas","debug","opaque","children","onSize","colorSpace","androidWarmup","onLayout","viewProps","console","error","viewRef","nativeId","root","_viewRef$current","result","OS","canvasRef","value","render","unmount","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","requestRedraw","getNativeId","callback","_viewRef$current2","measureInWindow","_viewRef$current3","onLayoutWeb","e","nativeEvent","layout","createElement","_extends","collapsable","nativeID"],"sources":["Canvas.tsx"],"sourcesContent":["import type { FC, RefObject } from \"react\";\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n LayoutChangeEvent,\n MeasureInWindowOnSuccessCallback,\n MeasureOnSuccessCallback,\n View,\n ViewProps,\n} from \"react-native\";\nimport type { AnimatedRef, SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkImage, SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport { Platform } from \"../Platform\";\nimport { HAS_REANIMATED_3 } from \"../external\";\n\nexport interface CanvasRef extends FC<CanvasProps> {\n makeImageSnapshot(rect?: SkRect): SkImage;\n makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;\n redraw(): void;\n getNativeId(): number;\n measure(callback: MeasureOnSuccessCallback): void;\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;\n}\n\nexport const useCanvasRef = () => useRef<CanvasRef>(null);\n\nconst useReanimatedFrame = !HAS_REANIMATED_3 ? () => {} : Rea.useFrameCallback;\nconst measure = !HAS_REANIMATED_3 ? null : Rea.measure;\n\nconst useCanvasRefPriv: typeof useRef<View> = !HAS_REANIMATED_3\n ? useRef\n : Rea.useAnimatedRef;\n\nexport const useCanvasSize = (userRef?: RefObject<CanvasRef | null>) => {\n const ourRef = useCanvasRef();\n const ref = userRef ?? ourRef;\n const [size, setSize] = useState<SkSize>({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (ref.current) {\n ref.current.measure((_x, _y, width, height) => {\n setSize({ width, height });\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return { ref, size };\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isFabric = Boolean((global as any)?.nativeFabricUIManager);\n\nexport interface CanvasProps extends Omit<ViewProps, \"onLayout\"> {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n colorSpace?: \"p3\" | \"srgb\";\n ref?: React.Ref<CanvasRef>;\n androidWarmup?: boolean;\n __destroyWebGLContextAfterRender?: boolean;\n}\n\nexport const Canvas = ({\n debug,\n opaque,\n children,\n onSize,\n colorSpace = \"p3\",\n androidWarmup = false,\n ref,\n // Here know this is a type error but this is done on purpose to check it at runtime\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n onLayout,\n ...viewProps\n}: CanvasProps) => {\n if (onLayout && isFabric) {\n console.error(\n \"<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size\"\n );\n }\n const viewRef = useCanvasRefPriv(null);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);\n\n useReanimatedFrame(() => {\n \"worklet\";\n if (onSize && measure) {\n const result =\n // eslint-disable-next-line no-nested-ternary\n Platform.OS === \"web\"\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n viewRef.current?.canvasRef\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n measure(viewRef.current.canvasRef)\n : { width: 0, height: 0 }\n : measure(viewRef as AnimatedRef<View>);\n if (result) {\n const { width, height } = result;\n if (onSize.value.width !== width || onSize.value.height !== height) {\n onSize.value = { width, height };\n }\n }\n }\n }, !!onSize);\n\n // Render effects\n useLayoutEffect(() => {\n root.render(children);\n }, [children, root, nativeId]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n // Component methods\n useImperativeHandle(\n ref,\n () =>\n ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n measure: (callback) => {\n viewRef.current?.measure(callback);\n },\n measureInWindow: (callback) => {\n viewRef.current?.measureInWindow(callback);\n },\n }) as CanvasRef\n );\n\n const onLayoutWeb = useCallback(\n (e: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(e);\n }\n if (Platform.OS === \"web\" && onSize) {\n const { width, height } = e.nativeEvent.layout;\n onSize.value = { width, height };\n }\n },\n [onLayout, onSize]\n );\n return (\n <SkiaPictureViewNativeComponent\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n colorSpace={colorSpace}\n androidWarmup={androidWarmup}\n onLayout={\n Platform.OS === \"web\" && (onSize || onLayout) ? onLayoutWeb : onLayout\n }\n {...viewProps}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","Rea","SkiaViewNativeId","SkiaPictureViewNativeComponent","SkiaSGRoot","Skia","Platform","HAS_REANIMATED_3","useCanvasRef","useReanimatedFrame","useFrameCallback","measure","useCanvasRefPriv","useAnimatedRef","useCanvasSize","userRef","ourRef","ref","size","setSize","width","height","current","_x","_y","isFabric","Boolean","_global","global","nativeFabricUIManager","Canvas","debug","opaque","children","onSize","colorSpace","androidWarmup","onLayout","viewProps","console","error","viewRef","nativeId","root","_viewRef$current","result","OS","canvasRef","value","render","unmount","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","requestRedraw","getNativeId","callback","_viewRef$current2","measureInWindow","_viewRef$current3","onLayoutWeb","e","nativeEvent","layout","createElement","_extends","collapsable","nativeID"],"sources":["Canvas.tsx"],"sourcesContent":["import type { FC, RefObject } from \"react\";\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n LayoutChangeEvent,\n MeasureInWindowOnSuccessCallback,\n MeasureOnSuccessCallback,\n View,\n ViewProps,\n} from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkImage, SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport { Platform } from \"../Platform\";\nimport { HAS_REANIMATED_3 } from \"../external\";\n\nexport interface CanvasRef extends FC<CanvasProps> {\n makeImageSnapshot(rect?: SkRect): SkImage;\n makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;\n redraw(): void;\n getNativeId(): number;\n measure(callback: MeasureOnSuccessCallback): void;\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;\n}\n\nexport const useCanvasRef = () => useRef<CanvasRef>(null);\n\nconst useReanimatedFrame = !HAS_REANIMATED_3 ? () => {} : Rea.useFrameCallback;\nconst measure = !HAS_REANIMATED_3 ? null : Rea.measure;\n\nconst useCanvasRefPriv: typeof useRef<View> = !HAS_REANIMATED_3\n ? useRef\n : Rea.useAnimatedRef;\n\nexport const useCanvasSize = (userRef?: RefObject<CanvasRef | null>) => {\n const ourRef = useCanvasRef();\n const ref = userRef ?? ourRef;\n const [size, setSize] = useState<SkSize>({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (ref.current) {\n ref.current.measure((_x, _y, width, height) => {\n setSize({ width, height });\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return { ref, size };\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isFabric = Boolean((global as any)?.nativeFabricUIManager);\n\nexport interface CanvasProps extends Omit<ViewProps, \"onLayout\"> {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n colorSpace?: \"p3\" | \"srgb\";\n ref?: React.Ref<CanvasRef>;\n androidWarmup?: boolean;\n __destroyWebGLContextAfterRender?: boolean;\n}\n\nexport const Canvas = ({\n debug,\n opaque,\n children,\n onSize,\n colorSpace = \"p3\",\n androidWarmup = false,\n ref,\n // Here know this is a type error but this is done on purpose to check it at runtime\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n onLayout,\n ...viewProps\n}: CanvasProps) => {\n if (onLayout && isFabric) {\n console.error(\n \"<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size\"\n );\n }\n const viewRef = useCanvasRefPriv(null);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);\n\n useReanimatedFrame(() => {\n \"worklet\";\n if (onSize && measure) {\n const result =\n // eslint-disable-next-line no-nested-ternary\n Platform.OS === \"web\"\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n viewRef.current?.canvasRef\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n measure(viewRef.current.canvasRef)\n : { width: 0, height: 0 }\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n measure(viewRef as any);\n if (result) {\n const { width, height } = result;\n if (onSize.value.width !== width || onSize.value.height !== height) {\n onSize.value = { width, height };\n }\n }\n }\n }, !!onSize);\n\n // Render effects\n useLayoutEffect(() => {\n root.render(children);\n }, [children, root, nativeId]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n // Component methods\n useImperativeHandle(\n ref,\n () =>\n ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n measure: (callback) => {\n viewRef.current?.measure(callback);\n },\n measureInWindow: (callback) => {\n viewRef.current?.measureInWindow(callback);\n },\n }) as CanvasRef\n );\n\n const onLayoutWeb = useCallback(\n (e: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(e);\n }\n if (Platform.OS === \"web\" && onSize) {\n const { width, height } = e.nativeEvent.layout;\n onSize.value = { width, height };\n }\n },\n [onLayout, onSize]\n );\n return (\n <SkiaPictureViewNativeComponent\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n colorSpace={colorSpace}\n androidWarmup={androidWarmup}\n onLayout={\n Platform.OS === \"web\" && (onSize || onLayout) ? onLayoutWeb : onLayout\n }\n {...viewProps}\n />\n );\n};\n"],"mappings":";;AACA,OAAOA,KAAK,IACVC,WAAW,EACXC,SAAS,EACTC,mBAAmB,EACnBC,eAAe,EACfC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AAUd,OAAOC,GAAG,MAAM,wCAAwC;AACxD,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,OAAOC,8BAA8B,MAAM,yCAAyC;AAEpF,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,gBAAgB,QAAQ,aAAa;AAW9C,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAMT,MAAM,CAAY,IAAI,CAAC;AAEzD,MAAMU,kBAAkB,GAAG,CAACF,gBAAgB,GAAG,MAAM,CAAC,CAAC,GAAGN,GAAG,CAACS,gBAAgB;AAC9E,MAAMC,OAAO,GAAG,CAACJ,gBAAgB,GAAG,IAAI,GAAGN,GAAG,CAACU,OAAO;AAEtD,MAAMC,gBAAqC,GAAG,CAACL,gBAAgB,GAC3DR,MAAM,GACNE,GAAG,CAACY,cAAc;AAEtB,OAAO,MAAMC,aAAa,GAAIC,OAAqC,IAAK;EACtE,MAAMC,MAAM,GAAGR,YAAY,CAAC,CAAC;EAC7B,MAAMS,GAAG,GAAGF,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIC,MAAM;EAC7B,MAAM,CAACE,IAAI,EAAEC,OAAO,CAAC,GAAGnB,QAAQ,CAAS;IAAEoB,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC,CAAC;EACjExB,eAAe,CAAC,MAAM;IACpB,IAAIoB,GAAG,CAACK,OAAO,EAAE;MACfL,GAAG,CAACK,OAAO,CAACX,OAAO,CAAC,CAACY,EAAE,EAAEC,EAAE,EAAEJ,KAAK,EAAEC,MAAM,KAAK;QAC7CF,OAAO,CAAC;UAAEC,KAAK;UAAEC;QAAO,CAAC,CAAC;MAC5B,CAAC,CAAC;IACJ;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEJ,GAAG;IAAEC;EAAK,CAAC;AACtB,CAAC;;AAED;AACA,OAAO,MAAMO,QAAQ,GAAGC,OAAO,EAAAC,OAAA,GAAEC,MAAM,cAAAD,OAAA,uBAAPA,OAAA,CAAiBE,qBAAqB,CAAC;AAYvE,OAAO,MAAMC,MAAM,GAAGA,CAAC;EACrBC,KAAK;EACLC,MAAM;EACNC,QAAQ;EACRC,MAAM;EACNC,UAAU,GAAG,IAAI;EACjBC,aAAa,GAAG,KAAK;EACrBnB,GAAG;EACH;EACA;EACA;EACAoB,QAAQ;EACR,GAAGC;AACQ,CAAC,KAAK;EACjB,IAAID,QAAQ,IAAIZ,QAAQ,EAAE;IACxBc,OAAO,CAACC,KAAK,CACX,2LACF,CAAC;EACH;EACA,MAAMC,OAAO,GAAG7B,gBAAgB,CAAC,IAAI,CAAC;EACtC;EACA,MAAM8B,QAAQ,GAAG5C,OAAO,CAAC,MAAM;IAC7B,OAAOI,gBAAgB,CAACoB,OAAO,EAAE;EACnC,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMqB,IAAI,GAAG7C,OAAO,CAAC,MAAM,IAAIM,UAAU,CAACC,IAAI,EAAEqC,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEtEjC,kBAAkB,CAAC,MAAM;IACvB,SAAS;;IACT,IAAIyB,MAAM,IAAIvB,OAAO,EAAE;MAAA,IAAAiC,gBAAA;MACrB,MAAMC,MAAM;MACV;MACAvC,QAAQ,CAACwC,EAAE,KAAK,KAAK;MACjB;MACA;MACA,CAAAF,gBAAA,GAAAH,OAAO,CAACnB,OAAO,cAAAsB,gBAAA,eAAfA,gBAAA,CAAiBG,SAAS;MACxB;MACA;MACApC,OAAO,CAAC8B,OAAO,CAACnB,OAAO,CAACyB,SAAS,CAAC,GAClC;QAAE3B,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAE,CAAC;MACzB;MACAV,OAAO,CAAC8B,OAAc,CAAC;MAC7B,IAAII,MAAM,EAAE;QACV,MAAM;UAAEzB,KAAK;UAAEC;QAAO,CAAC,GAAGwB,MAAM;QAChC,IAAIX,MAAM,CAACc,KAAK,CAAC5B,KAAK,KAAKA,KAAK,IAAIc,MAAM,CAACc,KAAK,CAAC3B,MAAM,KAAKA,MAAM,EAAE;UAClEa,MAAM,CAACc,KAAK,GAAG;YAAE5B,KAAK;YAAEC;UAAO,CAAC;QAClC;MACF;IACF;EACF,CAAC,EAAE,CAAC,CAACa,MAAM,CAAC;;EAEZ;EACArC,eAAe,CAAC,MAAM;IACpB8C,IAAI,CAACM,MAAM,CAAChB,QAAQ,CAAC;EACvB,CAAC,EAAE,CAACA,QAAQ,EAAEU,IAAI,EAAED,QAAQ,CAAC,CAAC;EAE9B/C,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXgD,IAAI,CAACO,OAAO,CAAC,CAAC;IAChB,CAAC;EACH,CAAC,EAAE,CAACP,IAAI,CAAC,CAAC;;EAEV;EACA/C,mBAAmB,CACjBqB,GAAG,EACH,OACG;IACCkC,iBAAiB,EAAGC,IAAa,IAAK;MACpC,OAAOC,WAAW,CAACF,iBAAiB,CAACT,QAAQ,EAAEU,IAAI,CAAC;IACtD,CAAC;IACDE,sBAAsB,EAAGF,IAAa,IAAK;MACzC,OAAOC,WAAW,CAACC,sBAAsB,CAACZ,QAAQ,EAAEU,IAAI,CAAC;IAC3D,CAAC;IACDG,MAAM,EAAEA,CAAA,KAAM;MACZF,WAAW,CAACG,aAAa,CAACd,QAAQ,CAAC;IACrC,CAAC;IACDe,WAAW,EAAEA,CAAA,KAAM;MACjB,OAAOf,QAAQ;IACjB,CAAC;IACD/B,OAAO,EAAG+C,QAAQ,IAAK;MAAA,IAAAC,iBAAA;MACrB,CAAAA,iBAAA,GAAAlB,OAAO,CAACnB,OAAO,cAAAqC,iBAAA,eAAfA,iBAAA,CAAiBhD,OAAO,CAAC+C,QAAQ,CAAC;IACpC,CAAC;IACDE,eAAe,EAAGF,QAAQ,IAAK;MAAA,IAAAG,iBAAA;MAC7B,CAAAA,iBAAA,GAAApB,OAAO,CAACnB,OAAO,cAAAuC,iBAAA,eAAfA,iBAAA,CAAiBD,eAAe,CAACF,QAAQ,CAAC;IAC5C;EACF,CAAC,CACL,CAAC;EAED,MAAMI,WAAW,GAAGpE,WAAW,CAC5BqE,CAAoB,IAAK;IACxB,IAAI1B,QAAQ,EAAE;MACZA,QAAQ,CAAC0B,CAAC,CAAC;IACb;IACA,IAAIzD,QAAQ,CAACwC,EAAE,KAAK,KAAK,IAAIZ,MAAM,EAAE;MACnC,MAAM;QAAEd,KAAK;QAAEC;MAAO,CAAC,GAAG0C,CAAC,CAACC,WAAW,CAACC,MAAM;MAC9C/B,MAAM,CAACc,KAAK,GAAG;QAAE5B,KAAK;QAAEC;MAAO,CAAC;IAClC;EACF,CAAC,EACD,CAACgB,QAAQ,EAAEH,MAAM,CACnB,CAAC;EACD,oBACEzC,KAAA,CAAAyE,aAAA,CAAC/D,8BAA8B,EAAAgE,QAAA;IAC7BlD,GAAG,EAAEwB,OAAQ;IACb2B,WAAW,EAAE,KAAM;IACnBC,QAAQ,EAAE,GAAG3B,QAAQ,EAAG;IACxBX,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfG,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,QAAQ,EACN/B,QAAQ,CAACwC,EAAE,KAAK,KAAK,KAAKZ,MAAM,IAAIG,QAAQ,CAAC,GAAGyB,WAAW,GAAGzB;EAC/D,GACGC,SAAS,CACd,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["ContourMeasure.tsx"],"sourcesContent":["import type { SkJSIInstance } from \"./JsiInstance\";\nimport type { SkPath } from \"./Path/Path\";\nimport type { SkPoint } from \"./Point\";\n\nexport interface PosTan {\n px: number;\n py: number;\n tx: number;\n ty: number;\n}\n\nexport interface SkContourMeasure extends SkJSIInstance<\"ContourMeasure\"> {\n /**\n * Returns the given position and tangent line for the distance on the given contour.\n * The return value an array of 2 vectors: [position, tangent]\n * @param distance - will be pinned between 0 and length().\n */\n getPosTan(distance: number): [position: SkPoint, tangent: SkPoint];\n\n /**\n * Returns an Path representing the segment of this contour.\n * @param startD - will be pinned between 0 and length()\n * @param stopD - will be pinned between 0 and length()\n * @param startWithMoveTo\n */\n getSegment(startD: number, stopD: number, startWithMoveTo: boolean): SkPath;\n\n /**\n * Returns true if the contour is closed.\n */\n isClosed(): boolean;\n\n /**\n * Returns the length of this contour.\n */\n length(): number;\n}\n\nexport interface SkContourMeasureIter\n extends SkJSIInstance<\"ContourMeasureIter\"> {\n /**\n * Iterates through contours in path, returning a contour-measure object for each contour\n * in the path. Returns null when it is done.\n *\n * See SkContourMeasure.h for more details.\n */\n next(): SkContourMeasure | null;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["ContourMeasure.tsx"],"sourcesContent":["import type { SkJSIInstance } from \"./JsiInstance\";\nimport type { SkPath } from \"./Path/Path\";\nimport type { SkPoint } from \"./Point\";\n\nexport interface PosTan {\n px: number;\n py: number;\n tx: number;\n ty: number;\n}\n\nexport interface SkContourMeasure extends SkJSIInstance<\"ContourMeasure\"> {\n /**\n * Returns the given position and tangent line for the distance on the given contour.\n * The return value an array of 2 vectors: [position, tangent]\n * @param distance - will be pinned between 0 and length().\n */\n getPosTan(distance: number): [position: SkPoint, tangent: SkPoint];\n\n /**\n * Returns an Path representing the segment of this contour.\n * @param startD - will be pinned between 0 and length()\n * @param stopD - will be pinned between 0 and length()\n * @param startWithMoveTo\n */\n getSegment(startD: number, stopD: number, startWithMoveTo: boolean): SkPath;\n\n /**\n * Returns true if the contour is closed.\n */\n isClosed(): boolean;\n\n /**\n * Returns the length of this contour.\n */\n length(): number;\n}\n\nexport interface SkContourMeasureIter extends SkJSIInstance<\"ContourMeasureIter\"> {\n /**\n * Iterates through contours in path, returning a contour-measure object for each contour\n * in the path. Returns null when it is done.\n *\n * See SkContourMeasure.h for more details.\n */\n next(): SkContourMeasure | null;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["RuntimeEffect.ts"],"sourcesContent":["import type { SkShader } from \"../Shader\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkMatrix } from \"../Matrix\";\n\nexport interface SkSLUniform {\n columns: number;\n rows: number;\n /** The index into the uniforms array that this uniform begins. */\n slot: number;\n isInteger: boolean;\n}\n\nexport interface SkRuntimeShaderBuilder\n extends SkJSIInstance<\"RuntimeShaderBuilder\"> {\n setUniform(name: string, value: readonly number[]): void;\n}\n\nexport interface SkRuntimeEffect extends SkJSIInstance<\"RuntimeEffect\"> {\n /**\n * Returns a shader executed using the given uniform data.\n * @param uniforms\n * @param localMatrix\n */\n makeShader(uniforms: number[], localMatrix?: SkMatrix): SkShader;\n\n /**\n * Returns a shader executed using the given uniform data and the children as inputs.\n * @param uniforms\n * @param children\n * @param localMatrix\n */\n makeShaderWithChildren(\n uniforms: number[],\n children?: SkShader[],\n localMatrix?: SkMatrix\n ): SkShader;\n\n /**\n * Returns the nth uniform from the effect.\n * @param index\n */\n getUniform(index: number): SkSLUniform;\n\n /**\n * Returns the number of uniforms in the effect.\n */\n getUniformCount(): number;\n\n /**\n * Returns the total number of floats across all uniforms on the effect. This is the length\n * of the uniforms array expected by makeShader. For example, an effect with a single float3\n * uniform, would return 1 from `getUniformCount()`, but 3 from `getUniformFloatCount()`.\n */\n getUniformFloatCount(): number;\n\n /**\n * Returns the name of the nth effect uniform.\n * @param index\n */\n getUniformName(index: number): string;\n\n /**\n * Returns the SkSL source of the runtime effect shader.\n */\n source(): string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["RuntimeEffect.ts"],"sourcesContent":["import type { SkShader } from \"../Shader\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkMatrix } from \"../Matrix\";\n\nexport interface SkSLUniform {\n columns: number;\n rows: number;\n /** The index into the uniforms array that this uniform begins. */\n slot: number;\n isInteger: boolean;\n}\n\nexport interface SkRuntimeShaderBuilder extends SkJSIInstance<\"RuntimeShaderBuilder\"> {\n setUniform(name: string, value: readonly number[]): void;\n}\n\nexport interface SkRuntimeEffect extends SkJSIInstance<\"RuntimeEffect\"> {\n /**\n * Returns a shader executed using the given uniform data.\n * @param uniforms\n * @param localMatrix\n */\n makeShader(uniforms: number[], localMatrix?: SkMatrix): SkShader;\n\n /**\n * Returns a shader executed using the given uniform data and the children as inputs.\n * @param uniforms\n * @param children\n * @param localMatrix\n */\n makeShaderWithChildren(\n uniforms: number[],\n children?: SkShader[],\n localMatrix?: SkMatrix\n ): SkShader;\n\n /**\n * Returns the nth uniform from the effect.\n * @param index\n */\n getUniform(index: number): SkSLUniform;\n\n /**\n * Returns the number of uniforms in the effect.\n */\n getUniformCount(): number;\n\n /**\n * Returns the total number of floats across all uniforms on the effect. This is the length\n * of the uniforms array expected by makeShader. For example, an effect with a single float3\n * uniform, would return 1 from `getUniformCount()`, but 3 from `getUniformFloatCount()`.\n */\n getUniformFloatCount(): number;\n\n /**\n * Returns the name of the nth effect uniform.\n * @param index\n */\n getUniformName(index: number): string;\n\n /**\n * Returns the SkSL source of the runtime effect shader.\n */\n source(): string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { TextDirection } from "../types";
2
2
  export class JsiSkParagraphStyle {
3
3
  static toParagraphStyle(ck, value) {
4
- var _value$disableHinting, _value$ellipsis, _value$heightMultipli, _value$maxLines, _value$replaceTabChar, _ps$strutStyle, _value$strutStyle$fon, _value$strutStyle, _value$strutStyle$fon2, _value$strutStyle2, _value$strutStyle$hei, _value$strutStyle3, _value$strutStyle$lea, _value$strutStyle4, _value$strutStyle$for, _value$strutStyle5, _ps$strutStyle$fontSt, _value$strutStyle6, _value$strutStyle7, _value$strutStyle8, _value$strutStyle$hal, _value$strutStyle9, _value$strutStyle$str, _value$strutStyle10;
4
+ var _value$disableHinting, _value$ellipsis, _value$heightMultipli, _value$maxLines, _value$replaceTabChar, _ps$strutStyle, _value$strutStyle$fon, _value$strutStyle, _value$strutStyle$fon2, _value$strutStyle2, _value$strutStyle$hei, _value$strutStyle3, _value$strutStyle$lea, _value$strutStyle4, _value$strutStyle$for, _value$strutStyle5, _ps$strutStyle$fontSt, _value$strutStyle6, _value$strutStyle7, _value$strutStyle8, _value$strutStyle$hal, _value$strutStyle9, _value$strutStyle$str, _value$strutStyle0;
5
5
  // Seems like we need to provide the textStyle.color value, otherwise
6
6
  // the constructor crashes.
7
7
  const ps = new ck.ParagraphStyle({
@@ -40,7 +40,7 @@ export class JsiSkParagraphStyle {
40
40
  value: value.strutStyle.fontStyle.weight
41
41
  } : ps.strutStyle.fontStyle.weight;
42
42
  ps.strutStyle.halfLeading = (_value$strutStyle$hal = (_value$strutStyle9 = value.strutStyle) === null || _value$strutStyle9 === void 0 ? void 0 : _value$strutStyle9.halfLeading) !== null && _value$strutStyle$hal !== void 0 ? _value$strutStyle$hal : ps.strutStyle.halfLeading;
43
- ps.strutStyle.strutEnabled = (_value$strutStyle$str = (_value$strutStyle10 = value.strutStyle) === null || _value$strutStyle10 === void 0 ? void 0 : _value$strutStyle10.strutEnabled) !== null && _value$strutStyle$str !== void 0 ? _value$strutStyle$str : ps.strutStyle.strutEnabled;
43
+ ps.strutStyle.strutEnabled = (_value$strutStyle$str = (_value$strutStyle0 = value.strutStyle) === null || _value$strutStyle0 === void 0 ? void 0 : _value$strutStyle0.strutEnabled) !== null && _value$strutStyle$str !== void 0 ? _value$strutStyle$str : ps.strutStyle.strutEnabled;
44
44
  return ps;
45
45
  }
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"names":["TextDirection","JsiSkParagraphStyle","toParagraphStyle","ck","value","_value$disableHinting","_value$ellipsis","_value$heightMultipli","_value$maxLines","_value$replaceTabChar","_ps$strutStyle","_value$strutStyle$fon","_value$strutStyle","_value$strutStyle$fon2","_value$strutStyle2","_value$strutStyle$hei","_value$strutStyle3","_value$strutStyle$lea","_value$strutStyle4","_value$strutStyle$for","_value$strutStyle5","_ps$strutStyle$fontSt","_value$strutStyle6","_value$strutStyle7","_value$strutStyle8","_value$strutStyle$hal","_value$strutStyle9","_value$strutStyle$str","_value$strutStyle10","ps","ParagraphStyle","textStyle","color","BLACK","disableHinting","ellipsis","heightMultiplier","maxLines","replaceTabCharacters","textAlign","undefined","textDirection","LTR","textHeightBehavior","strutStyle","fontFamilies","fontSize","leading","forceStrutHeight","fontStyle","slant","width","weight","halfLeading","strutEnabled"],"sources":["JsiSkParagraphStyle.ts"],"sourcesContent":["import type { CanvasKit, ParagraphStyle } from \"canvaskit-wasm\";\n\nimport { TextDirection } from \"../types\";\nimport type { SkParagraphStyle } from \"../types\";\n\nexport class JsiSkParagraphStyle {\n static toParagraphStyle(\n ck: CanvasKit,\n value: SkParagraphStyle\n ): ParagraphStyle {\n // Seems like we need to provide the textStyle.color value, otherwise\n // the constructor crashes.\n const ps = new ck.ParagraphStyle({ textStyle: { color: ck.BLACK } });\n\n ps.disableHinting = value.disableHinting ?? ps.disableHinting;\n ps.ellipsis = value.ellipsis ?? ps.ellipsis;\n ps.heightMultiplier = value.heightMultiplier ?? ps.heightMultiplier;\n ps.maxLines = value.maxLines ?? ps.maxLines;\n ps.replaceTabCharacters =\n value.replaceTabCharacters ?? ps.replaceTabCharacters;\n ps.textAlign =\n value.textAlign !== undefined ? { value: value.textAlign } : ps.textAlign;\n ps.textDirection =\n value.textDirection !== undefined\n ? { value: value.textDirection === TextDirection.LTR ? 1 : 0 }\n : ps.textDirection;\n ps.textHeightBehavior =\n value.textHeightBehavior !== undefined\n ? { value: value.textHeightBehavior }\n : ps.textHeightBehavior;\n\n ps.strutStyle = ps.strutStyle ?? {};\n ps.strutStyle.fontFamilies =\n value.strutStyle?.fontFamilies ?? ps.strutStyle.fontFamilies;\n ps.strutStyle.fontSize =\n value.strutStyle?.fontSize ?? ps.strutStyle.fontSize;\n ps.strutStyle.heightMultiplier =\n value.strutStyle?.heightMultiplier ?? ps.strutStyle.heightMultiplier;\n ps.strutStyle.leading = value.strutStyle?.leading ?? ps.strutStyle.leading;\n ps.strutStyle.forceStrutHeight =\n value.strutStyle?.forceStrutHeight ?? ps.strutStyle.forceStrutHeight;\n\n ps.strutStyle.fontStyle = ps.strutStyle.fontStyle ?? {};\n\n ps.strutStyle.fontStyle.slant =\n value.strutStyle?.fontStyle?.slant !== undefined\n ? { value: value.strutStyle.fontStyle.slant }\n : ps.strutStyle.fontStyle.slant;\n ps.strutStyle.fontStyle.width =\n value.strutStyle?.fontStyle?.width !== undefined\n ? { value: value.strutStyle.fontStyle.width }\n : ps.strutStyle.fontStyle.width;\n ps.strutStyle.fontStyle.weight =\n value.strutStyle?.fontStyle?.weight !== undefined\n ? { value: value.strutStyle.fontStyle.weight }\n : ps.strutStyle.fontStyle.weight;\n ps.strutStyle.halfLeading =\n value.strutStyle?.halfLeading ?? ps.strutStyle.halfLeading;\n ps.strutStyle.strutEnabled =\n value.strutStyle?.strutEnabled ?? ps.strutStyle.strutEnabled;\n\n return ps;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["TextDirection","JsiSkParagraphStyle","toParagraphStyle","ck","value","_value$disableHinting","_value$ellipsis","_value$heightMultipli","_value$maxLines","_value$replaceTabChar","_ps$strutStyle","_value$strutStyle$fon","_value$strutStyle","_value$strutStyle$fon2","_value$strutStyle2","_value$strutStyle$hei","_value$strutStyle3","_value$strutStyle$lea","_value$strutStyle4","_value$strutStyle$for","_value$strutStyle5","_ps$strutStyle$fontSt","_value$strutStyle6","_value$strutStyle7","_value$strutStyle8","_value$strutStyle$hal","_value$strutStyle9","_value$strutStyle$str","_value$strutStyle0","ps","ParagraphStyle","textStyle","color","BLACK","disableHinting","ellipsis","heightMultiplier","maxLines","replaceTabCharacters","textAlign","undefined","textDirection","LTR","textHeightBehavior","strutStyle","fontFamilies","fontSize","leading","forceStrutHeight","fontStyle","slant","width","weight","halfLeading","strutEnabled"],"sources":["JsiSkParagraphStyle.ts"],"sourcesContent":["import type { CanvasKit, ParagraphStyle } from \"canvaskit-wasm\";\n\nimport { TextDirection } from \"../types\";\nimport type { SkParagraphStyle } from \"../types\";\n\nexport class JsiSkParagraphStyle {\n static toParagraphStyle(\n ck: CanvasKit,\n value: SkParagraphStyle\n ): ParagraphStyle {\n // Seems like we need to provide the textStyle.color value, otherwise\n // the constructor crashes.\n const ps = new ck.ParagraphStyle({ textStyle: { color: ck.BLACK } });\n\n ps.disableHinting = value.disableHinting ?? ps.disableHinting;\n ps.ellipsis = value.ellipsis ?? ps.ellipsis;\n ps.heightMultiplier = value.heightMultiplier ?? ps.heightMultiplier;\n ps.maxLines = value.maxLines ?? ps.maxLines;\n ps.replaceTabCharacters =\n value.replaceTabCharacters ?? ps.replaceTabCharacters;\n ps.textAlign =\n value.textAlign !== undefined ? { value: value.textAlign } : ps.textAlign;\n ps.textDirection =\n value.textDirection !== undefined\n ? { value: value.textDirection === TextDirection.LTR ? 1 : 0 }\n : ps.textDirection;\n ps.textHeightBehavior =\n value.textHeightBehavior !== undefined\n ? { value: value.textHeightBehavior }\n : ps.textHeightBehavior;\n\n ps.strutStyle = ps.strutStyle ?? {};\n ps.strutStyle.fontFamilies =\n value.strutStyle?.fontFamilies ?? ps.strutStyle.fontFamilies;\n ps.strutStyle.fontSize =\n value.strutStyle?.fontSize ?? ps.strutStyle.fontSize;\n ps.strutStyle.heightMultiplier =\n value.strutStyle?.heightMultiplier ?? ps.strutStyle.heightMultiplier;\n ps.strutStyle.leading = value.strutStyle?.leading ?? ps.strutStyle.leading;\n ps.strutStyle.forceStrutHeight =\n value.strutStyle?.forceStrutHeight ?? ps.strutStyle.forceStrutHeight;\n\n ps.strutStyle.fontStyle = ps.strutStyle.fontStyle ?? {};\n\n ps.strutStyle.fontStyle.slant =\n value.strutStyle?.fontStyle?.slant !== undefined\n ? { value: value.strutStyle.fontStyle.slant }\n : ps.strutStyle.fontStyle.slant;\n ps.strutStyle.fontStyle.width =\n value.strutStyle?.fontStyle?.width !== undefined\n ? { value: value.strutStyle.fontStyle.width }\n : ps.strutStyle.fontStyle.width;\n ps.strutStyle.fontStyle.weight =\n value.strutStyle?.fontStyle?.weight !== undefined\n ? { value: value.strutStyle.fontStyle.weight }\n : ps.strutStyle.fontStyle.weight;\n ps.strutStyle.halfLeading =\n value.strutStyle?.halfLeading ?? ps.strutStyle.halfLeading;\n ps.strutStyle.strutEnabled =\n value.strutStyle?.strutEnabled ?? ps.strutStyle.strutEnabled;\n\n return ps;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["enumKey","processColor","NodeType","BlendMode","CommandType","isPushColorFilter","command","type","PushColorFilter","isColorFilter","colorFilterType","composeColorFilters","ctx","colorFilters","length","outer","pop","inner","push","Skia","ColorFilter","MakeCompose","pushColorFilter","cf","BlendColorFilter","props","mode","color","MakeBlend","MatrixColorFilter","matrix","MakeMatrix","LerpColorFilter","t","second","first","Error","MakeLerp","LumaColorFilter","MakeLumaColorFilter","LinearToSRGBGammaColorFilter","MakeLinearToSRGBGamma","SRGBToLinearGammaColorFilter","MakeSRGBToLinearGamma"],"sources":["ColorFilters.ts"],"sourcesContent":["import { enumKey, processColor } from \"../../../dom/nodes\";\nimport type {\n BlendColorFilterProps,\n LerpColorFilterProps,\n MatrixColorFilterProps,\n} from \"../../../dom/types\";\nimport { NodeType } from \"../../../dom/types\";\nimport type { SkColorFilter } from \"../../../skia/types\";\nimport { BlendMode } from \"../../../skia/types\";\nimport { CommandType } from \"../Core\";\nimport type { Command } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const isPushColorFilter = (\n command: Command\n): command is Command<CommandType.PushColorFilter> => {\n \"worklet\";\n return command.type === CommandType.PushColorFilter;\n};\n\ntype Props = {\n [NodeType.BlendColorFilter]: BlendColorFilterProps;\n [NodeType.MatrixColorFilter]: MatrixColorFilterProps;\n [NodeType.LerpColorFilter]: LerpColorFilterProps;\n [NodeType.LumaColorFilter]: Record<string, never>;\n [NodeType.LinearToSRGBGammaColorFilter]: Record<string, never>;\n [NodeType.SRGBToLinearGammaColorFilter]: Record<string, never>;\n};\n\ninterface PushColorFilter<T extends keyof Props>\n extends Command<CommandType.PushColorFilter> {\n colorFilterType: T;\n props: Props[T];\n}\n\nconst isColorFilter = <T extends keyof Props>(\n command: Command<CommandType.PushColorFilter>,\n type: T\n): command is PushColorFilter<T> => {\n \"worklet\";\n return command.colorFilterType === type;\n};\n\nexport const composeColorFilters = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.colorFilters.length > 1) {\n const outer = ctx.colorFilters.pop()!;\n const inner = ctx.colorFilters.pop()!;\n ctx.colorFilters.push(ctx.Skia.ColorFilter.MakeCompose(outer, inner));\n }\n};\n\nexport const pushColorFilter = (\n ctx: DrawingContext,\n command: Command<CommandType.PushColorFilter>\n) => {\n \"worklet\";\n let cf: SkColorFilter | undefined;\n if (isColorFilter(command, NodeType.BlendColorFilter)) {\n const { props } = command;\n const { mode } = props;\n const color = processColor(ctx.Skia, props.color);\n cf = ctx.Skia.ColorFilter.MakeBlend(color, BlendMode[enumKey(mode)]);\n } else if (isColorFilter(command, NodeType.MatrixColorFilter)) {\n const { matrix } = command.props;\n cf = ctx.Skia.ColorFilter.MakeMatrix(matrix);\n } else if (isColorFilter(command, NodeType.LerpColorFilter)) {\n const { props } = command;\n const { t } = props;\n const second = ctx.colorFilters.pop();\n const first = ctx.colorFilters.pop();\n if (!first || !second) {\n throw new Error(\"LerpColorFilter requires two color filters\");\n }\n cf = ctx.Skia.ColorFilter.MakeLerp(t, first, second);\n } else if (isColorFilter(command, NodeType.LumaColorFilter)) {\n cf = ctx.Skia.ColorFilter.MakeLumaColorFilter();\n } else if (isColorFilter(command, NodeType.LinearToSRGBGammaColorFilter)) {\n cf = ctx.Skia.ColorFilter.MakeLinearToSRGBGamma();\n } else if (isColorFilter(command, NodeType.SRGBToLinearGammaColorFilter)) {\n cf = ctx.Skia.ColorFilter.MakeSRGBToLinearGamma();\n }\n if (!cf) {\n throw new Error(`Unknown color filter type: ${command.colorFilterType}`);\n }\n ctx.colorFilters.push(cf);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["enumKey","processColor","NodeType","BlendMode","CommandType","isPushColorFilter","command","type","PushColorFilter","isColorFilter","colorFilterType","composeColorFilters","ctx","colorFilters","length","outer","pop","inner","push","Skia","ColorFilter","MakeCompose","pushColorFilter","cf","BlendColorFilter","props","mode","color","MakeBlend","MatrixColorFilter","matrix","MakeMatrix","LerpColorFilter","t","second","first","Error","MakeLerp","LumaColorFilter","MakeLumaColorFilter","LinearToSRGBGammaColorFilter","MakeLinearToSRGBGamma","SRGBToLinearGammaColorFilter","MakeSRGBToLinearGamma"],"sources":["ColorFilters.ts"],"sourcesContent":["import { enumKey, processColor } from \"../../../dom/nodes\";\nimport type {\n BlendColorFilterProps,\n LerpColorFilterProps,\n MatrixColorFilterProps,\n} from \"../../../dom/types\";\nimport { NodeType } from \"../../../dom/types\";\nimport type { SkColorFilter } from \"../../../skia/types\";\nimport { BlendMode } from \"../../../skia/types\";\nimport { CommandType } from \"../Core\";\nimport type { Command } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const isPushColorFilter = (\n command: Command\n): command is Command<CommandType.PushColorFilter> => {\n \"worklet\";\n return command.type === CommandType.PushColorFilter;\n};\n\ntype Props = {\n [NodeType.BlendColorFilter]: BlendColorFilterProps;\n [NodeType.MatrixColorFilter]: MatrixColorFilterProps;\n [NodeType.LerpColorFilter]: LerpColorFilterProps;\n [NodeType.LumaColorFilter]: Record<string, never>;\n [NodeType.LinearToSRGBGammaColorFilter]: Record<string, never>;\n [NodeType.SRGBToLinearGammaColorFilter]: Record<string, never>;\n};\n\ninterface PushColorFilter<\n T extends keyof Props,\n> extends Command<CommandType.PushColorFilter> {\n colorFilterType: T;\n props: Props[T];\n}\n\nconst isColorFilter = <T extends keyof Props>(\n command: Command<CommandType.PushColorFilter>,\n type: T\n): command is PushColorFilter<T> => {\n \"worklet\";\n return command.colorFilterType === type;\n};\n\nexport const composeColorFilters = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.colorFilters.length > 1) {\n const outer = ctx.colorFilters.pop()!;\n const inner = ctx.colorFilters.pop()!;\n ctx.colorFilters.push(ctx.Skia.ColorFilter.MakeCompose(outer, inner));\n }\n};\n\nexport const pushColorFilter = (\n ctx: DrawingContext,\n command: Command<CommandType.PushColorFilter>\n) => {\n \"worklet\";\n let cf: SkColorFilter | undefined;\n if (isColorFilter(command, NodeType.BlendColorFilter)) {\n const { props } = command;\n const { mode } = props;\n const color = processColor(ctx.Skia, props.color);\n cf = ctx.Skia.ColorFilter.MakeBlend(color, BlendMode[enumKey(mode)]);\n } else if (isColorFilter(command, NodeType.MatrixColorFilter)) {\n const { matrix } = command.props;\n cf = ctx.Skia.ColorFilter.MakeMatrix(matrix);\n } else if (isColorFilter(command, NodeType.LerpColorFilter)) {\n const { props } = command;\n const { t } = props;\n const second = ctx.colorFilters.pop();\n const first = ctx.colorFilters.pop();\n if (!first || !second) {\n throw new Error(\"LerpColorFilter requires two color filters\");\n }\n cf = ctx.Skia.ColorFilter.MakeLerp(t, first, second);\n } else if (isColorFilter(command, NodeType.LumaColorFilter)) {\n cf = ctx.Skia.ColorFilter.MakeLumaColorFilter();\n } else if (isColorFilter(command, NodeType.LinearToSRGBGammaColorFilter)) {\n cf = ctx.Skia.ColorFilter.MakeLinearToSRGBGamma();\n } else if (isColorFilter(command, NodeType.SRGBToLinearGammaColorFilter)) {\n cf = ctx.Skia.ColorFilter.MakeSRGBToLinearGamma();\n }\n if (!cf) {\n throw new Error(`Unknown color filter type: ${command.colorFilterType}`);\n }\n ctx.colorFilters.push(cf);\n};\n"],"mappings":"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","ignoreList":[]}