@shopify/react-native-skia 1.9.1 → 1.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. package/lib/commonjs/dom/nodes/datatypes/Gradient.d.ts +1 -0
  2. package/lib/commonjs/dom/nodes/datatypes/Gradient.js +14 -2
  3. package/lib/commonjs/dom/nodes/datatypes/Gradient.js.map +1 -1
  4. package/lib/commonjs/index.d.ts +1 -1
  5. package/lib/commonjs/index.js +8 -8
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/renderer/Canvas.d.ts +9 -10
  8. package/lib/commonjs/renderer/Canvas.js +67 -59
  9. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  10. package/lib/commonjs/renderer/CanvasOld.d.ts +11 -0
  11. package/lib/commonjs/renderer/CanvasOld.js +96 -0
  12. package/lib/commonjs/renderer/CanvasOld.js.map +1 -0
  13. package/lib/commonjs/sksg/Container.js +11 -6
  14. package/lib/commonjs/sksg/Container.js.map +1 -1
  15. package/lib/commonjs/sksg/HostConfig2.d.ts +19 -0
  16. package/lib/commonjs/sksg/HostConfig2.js +159 -0
  17. package/lib/commonjs/sksg/HostConfig2.js.map +1 -0
  18. package/lib/commonjs/sksg/Recorder/Core.js +1 -0
  19. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  20. package/lib/commonjs/sksg/Recorder/Player.js +2 -2
  21. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
  22. package/lib/commonjs/sksg/Recorder/Recorder.js +0 -1
  23. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  24. package/lib/commonjs/sksg/Recorder/commands/Box.js +1 -1
  25. package/lib/commonjs/sksg/Recorder/commands/Box.js.map +1 -1
  26. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js +1 -1
  27. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js.map +1 -1
  28. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +4 -4
  29. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  30. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js +1 -1
  31. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  32. package/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +0 -1
  33. package/lib/commonjs/sksg/Recorder/commands/Paint.js +2 -14
  34. package/lib/commonjs/sksg/Recorder/commands/Paint.js.map +1 -1
  35. package/lib/commonjs/sksg/Recorder/commands/Shaders.js +1 -1
  36. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  37. package/lib/module/dom/nodes/datatypes/Gradient.d.ts +1 -0
  38. package/lib/module/dom/nodes/datatypes/Gradient.js +12 -1
  39. package/lib/module/dom/nodes/datatypes/Gradient.js.map +1 -1
  40. package/lib/module/index.d.ts +1 -1
  41. package/lib/module/index.js +1 -1
  42. package/lib/module/index.js.map +1 -1
  43. package/lib/module/renderer/Canvas.d.ts +9 -10
  44. package/lib/module/renderer/Canvas.js +65 -55
  45. package/lib/module/renderer/Canvas.js.map +1 -1
  46. package/lib/module/renderer/CanvasOld.d.ts +11 -0
  47. package/lib/module/renderer/CanvasOld.js +87 -0
  48. package/lib/module/renderer/CanvasOld.js.map +1 -0
  49. package/lib/module/sksg/Container.js +11 -6
  50. package/lib/module/sksg/Container.js.map +1 -1
  51. package/lib/module/sksg/HostConfig2.d.ts +19 -0
  52. package/lib/module/sksg/HostConfig2.js +152 -0
  53. package/lib/module/sksg/HostConfig2.js.map +1 -0
  54. package/lib/module/sksg/Recorder/Core.js +1 -0
  55. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  56. package/lib/module/sksg/Recorder/Player.js +2 -2
  57. package/lib/module/sksg/Recorder/Player.js.map +1 -1
  58. package/lib/module/sksg/Recorder/Recorder.js +0 -1
  59. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  60. package/lib/module/sksg/Recorder/commands/Box.js +2 -2
  61. package/lib/module/sksg/Recorder/commands/Box.js.map +1 -1
  62. package/lib/module/sksg/Recorder/commands/ColorFilters.js +2 -2
  63. package/lib/module/sksg/Recorder/commands/ColorFilters.js.map +1 -1
  64. package/lib/module/sksg/Recorder/commands/Drawing.js +5 -5
  65. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  66. package/lib/module/sksg/Recorder/commands/ImageFilters.js +2 -2
  67. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  68. package/lib/module/sksg/Recorder/commands/Paint.d.ts +0 -1
  69. package/lib/module/sksg/Recorder/commands/Paint.js +1 -12
  70. package/lib/module/sksg/Recorder/commands/Paint.js.map +1 -1
  71. package/lib/module/sksg/Recorder/commands/Shaders.js +2 -2
  72. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  73. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Gradient.d.ts +1 -0
  74. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +2 -2
  75. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +3 -0
  76. package/lib/typescript/lib/commonjs/sksg/HostConfig2.d.ts +44 -0
  77. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +0 -1
  78. package/lib/typescript/lib/module/dom/nodes/datatypes/Gradient.d.ts +1 -0
  79. package/lib/typescript/lib/module/index.d.ts +1 -1
  80. package/lib/typescript/lib/module/mock/index.d.ts +1 -0
  81. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -3
  82. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +3 -0
  83. package/lib/typescript/lib/module/sksg/HostConfig2.d.ts +43 -0
  84. package/lib/typescript/lib/module/sksg/Recorder/commands/Paint.d.ts +0 -1
  85. package/lib/typescript/src/dom/nodes/datatypes/Gradient.d.ts +1 -0
  86. package/lib/typescript/src/index.d.ts +1 -1
  87. package/lib/typescript/src/renderer/Canvas.d.ts +9 -10
  88. package/lib/typescript/src/renderer/CanvasOld.d.ts +11 -0
  89. package/lib/typescript/src/sksg/HostConfig2.d.ts +19 -0
  90. package/lib/typescript/src/sksg/Recorder/commands/Paint.d.ts +0 -1
  91. package/package.json +1 -1
  92. package/src/dom/nodes/datatypes/Gradient.ts +17 -1
  93. package/src/index.ts +1 -1
  94. package/src/renderer/Canvas.tsx +80 -78
  95. package/src/renderer/CanvasOld.tsx +126 -0
  96. package/src/sksg/Container.ts +6 -2
  97. package/src/sksg/HostConfig2.ts +247 -0
  98. package/src/sksg/Recorder/Core.ts +1 -0
  99. package/src/sksg/Recorder/Player.ts +2 -2
  100. package/src/sksg/Recorder/Recorder.ts +0 -1
  101. package/src/sksg/Recorder/commands/Box.ts +2 -2
  102. package/src/sksg/Recorder/commands/ColorFilters.ts +2 -2
  103. package/src/sksg/Recorder/commands/Drawing.ts +5 -4
  104. package/src/sksg/Recorder/commands/ImageFilters.ts +2 -2
  105. package/src/sksg/Recorder/commands/Paint.ts +1 -17
  106. package/src/sksg/Recorder/commands/Shaders.ts +2 -1
  107. package/lib/commonjs/renderer/Canvas2.d.ts +0 -10
  108. package/lib/commonjs/renderer/Canvas2.js +0 -104
  109. package/lib/commonjs/renderer/Canvas2.js.map +0 -1
  110. package/lib/commonjs/renderer/Canvas2.web.d.ts +0 -3
  111. package/lib/commonjs/renderer/Canvas2.web.js +0 -9
  112. package/lib/commonjs/renderer/Canvas2.web.js.map +0 -1
  113. package/lib/module/renderer/Canvas2.d.ts +0 -10
  114. package/lib/module/renderer/Canvas2.js +0 -97
  115. package/lib/module/renderer/Canvas2.js.map +0 -1
  116. package/lib/module/renderer/Canvas2.web.d.ts +0 -3
  117. package/lib/module/renderer/Canvas2.web.js +0 -3
  118. package/lib/module/renderer/Canvas2.web.js.map +0 -1
  119. package/lib/typescript/lib/commonjs/renderer/Canvas2.d.ts +0 -3
  120. package/lib/typescript/lib/commonjs/renderer/Canvas2.web.d.ts +0 -2
  121. package/lib/typescript/lib/module/renderer/Canvas2.d.ts +0 -1
  122. package/lib/typescript/lib/module/renderer/Canvas2.web.d.ts +0 -1
  123. package/lib/typescript/src/renderer/Canvas2.d.ts +0 -10
  124. package/lib/typescript/src/renderer/Canvas2.web.d.ts +0 -3
  125. package/src/renderer/Canvas2.tsx +0 -128
  126. package/src/renderer/Canvas2.web.tsx +0 -6
@@ -7,7 +7,7 @@ import { setPaintProperties } from "./commands/Paint";
7
7
  import { composePathEffects, isPushPathEffect, pushPathEffect } from "./commands/PathEffects";
8
8
  import { isPushShader, pushShader } from "./commands/Shaders";
9
9
  import { CommandType, isCommand, isDrawCommand, isGroup, materializeProps } from "./Core";
10
- const play = (ctx, command) => {
10
+ function play(ctx, command) {
11
11
  "worklet";
12
12
 
13
13
  if (isGroup(command)) {
@@ -113,7 +113,7 @@ const play = (ctx, command) => {
113
113
  ctx.paints.pop();
114
114
  });
115
115
  }
116
- };
116
+ }
117
117
  export const replay = (ctx, commands) => {
118
118
  "worklet";
119
119
 
@@ -1 +1 @@
1
- {"version":3,"names":["drawCircle","drawImage","drawOval","drawPath","drawPoints","drawRect","drawRRect","drawLine","drawAtlas","drawParagraph","drawImageSVG","drawPicture","drawGlyphs","drawTextBlob","drawTextPath","drawText","drawDiffRect","drawVertices","drawPatch","drawBox","isBoxCommand","composeColorFilters","isPushColorFilter","pushColorFilter","saveCTM","setBlurMaskFilter","isPushImageFilter","pushImageFilter","composeImageFilters","setPaintProperties","composePathEffects","isPushPathEffect","pushPathEffect","isPushShader","pushShader","CommandType","isCommand","isDrawCommand","isGroup","materializeProps","play","ctx","command","children","forEach","child","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","SavePaint","props","paints","push","savePaint","Skia","RestorePaint","restorePaint","ComposeColorFilter","RestorePaintDeclaration","Error","MaterializePaint","ComposePathEffect","ComposeImageFilter","PushBlurMaskFilter","SaveCTM","RestoreCTM","restore","p","DrawPaint","drawPaint","DrawImage","DrawCircle","DrawPoints","DrawPath","DrawRect","DrawRRect","DrawOval","DrawLine","DrawPatch","DrawVertices","DrawDiffRect","DrawText","DrawTextPath","DrawTextBlob","DrawGlyphs","DrawPicture","DrawImageSVG","DrawParagraph","DrawAtlas","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeProps,\n type Command,\n} from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\nconst play = (ctx: DrawingContext, command: Command) => {\n \"worklet\";\n if (isGroup(command)) {\n command.children.forEach((child) => play(ctx, child));\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n materializeProps(command as any);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n ctx.savePaint();\n setPaintProperties(ctx.Skia, ctx.paint, command.props);\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n const paints = [ctx.paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n};\n\nexport const replay = (ctx: DrawingContext, commands: Command[]) => {\n \"worklet\";\n commands.forEach((command) => {\n play(ctx, command);\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["drawCircle","drawImage","drawOval","drawPath","drawPoints","drawRect","drawRRect","drawLine","drawAtlas","drawParagraph","drawImageSVG","drawPicture","drawGlyphs","drawTextBlob","drawTextPath","drawText","drawDiffRect","drawVertices","drawPatch","drawBox","isBoxCommand","composeColorFilters","isPushColorFilter","pushColorFilter","saveCTM","setBlurMaskFilter","isPushImageFilter","pushImageFilter","composeImageFilters","setPaintProperties","composePathEffects","isPushPathEffect","pushPathEffect","isPushShader","pushShader","CommandType","isCommand","isDrawCommand","isGroup","materializeProps","play","ctx","command","children","forEach","child","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","SavePaint","props","paints","push","savePaint","Skia","RestorePaint","restorePaint","ComposeColorFilter","RestorePaintDeclaration","Error","MaterializePaint","ComposePathEffect","ComposeImageFilter","PushBlurMaskFilter","SaveCTM","RestoreCTM","restore","p","DrawPaint","drawPaint","DrawImage","DrawCircle","DrawPoints","DrawPath","DrawRect","DrawRRect","DrawOval","DrawLine","DrawPatch","DrawVertices","DrawDiffRect","DrawText","DrawTextPath","DrawTextBlob","DrawGlyphs","DrawPicture","DrawImageSVG","DrawParagraph","DrawAtlas","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeProps,\n type Command,\n} from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\nfunction play(ctx: DrawingContext, command: Command) {\n \"worklet\";\n if (isGroup(command)) {\n command.children.forEach((child) => play(ctx, child));\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n materializeProps(command as any);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n ctx.savePaint();\n setPaintProperties(ctx.Skia, ctx.paint, command.props);\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n const paints = [ctx.paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n}\n\nexport const replay = (ctx: DrawingContext, commands: Command[]) => {\n \"worklet\";\n commands.forEach((command) => {\n play(ctx, command);\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -26,7 +26,6 @@ export class Recorder {
26
26
  const prop = props[key];
27
27
  if (isSharedValue(prop)) {
28
28
  this.animationValues.add(prop);
29
- props[key] = prop.value;
30
29
  animatedProps[key] = prop;
31
30
  hasAnimatedProps = true;
32
31
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NodeType","isSharedValue","isColorFilter","isImageFilter","isPathEffect","isShader","CommandType","Recorder","constructor","_defineProperty","Set","cursors","push","commands","getRecording","paintPool","animationValues","processProps","props","animatedProps","hasAnimatedProps","key","prop","add","value","undefined","command","length","saveGroup","children","type","Group","restoreGroup","pop","savePaint","SavePaint","restorePaint","RestorePaint","restorePaintDeclaration","RestorePaintDeclaration","materializePaint","MaterializePaint","pushPathEffect","pathEffectType","Error","PushPathEffect","pushImageFilter","imageFilterType","PushImageFilter","pushColorFilter","colorFilterType","PushColorFilter","pushShader","shaderType","Blend","PushShader","pushBlurMaskFilter","PushBlurMaskFilter","composePathEffect","ComposePathEffect","composeColorFilter","ComposeColorFilter","composeImageFilter","ComposeImageFilter","saveCTM","SaveCTM","restoreCTM","RestoreCTM","drawPaint","DrawPaint","saveLayer","SaveLayer","saveBackdropFilter","SaveBackdropFilter","drawBox","boxProps","shadows","forEach","shadow","DrawBox","drawImage","DrawImage","drawCircle","DrawCircle","drawPoints","DrawPoints","drawPath","DrawPath","drawRect","DrawRect","drawRRect","DrawRRect","drawOval","DrawOval","drawLine","DrawLine","drawPatch","DrawPatch","drawVertices","DrawVertices","drawDiffRect","DrawDiffRect","drawText","DrawText","drawTextPath","DrawTextPath","drawTextBlob","DrawTextBlob","drawGlyphs","DrawGlyphs","drawPicture","DrawPicture","drawImageSVG","DrawImageSVG","drawParagraph","DrawParagraph","drawAtlas","DrawAtlas"],"sources":["Recorder.ts"],"sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nimport { NodeType } from \"../../dom/types\";\nimport type {\n BlurMaskFilterProps,\n CircleProps,\n CTMProps,\n ImageProps,\n PaintProps,\n PointsProps,\n PathProps,\n RectProps,\n RoundedRectProps,\n OvalProps,\n LineProps,\n PatchProps,\n VerticesProps,\n DiffRectProps,\n TextProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n PictureProps,\n ImageSVGProps,\n ParagraphProps,\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n} from \"../../dom/types\";\nimport type { AnimatedProps } from \"../../renderer\";\nimport { isSharedValue } from \"../utils\";\nimport { isColorFilter, isImageFilter, isPathEffect, isShader } from \"../Node\";\nimport type { SkPaint } from \"../../skia/types\";\n\nimport { CommandType } from \"./Core\";\nimport type { Command } from \"./Core\";\n\nexport interface Recording {\n commands: Command[];\n paintPool: SkPaint[];\n}\n\ninterface AnimationValues {\n animationValues: Set<SharedValue<unknown>>;\n}\n\nexport class Recorder {\n commands: Command[] = [];\n cursors: Command[][] = [];\n animationValues: Set<SharedValue<unknown>> = new Set();\n\n constructor() {\n this.cursors.push(this.commands);\n }\n\n getRecording(): Recording & AnimationValues {\n return {\n commands: this.commands,\n paintPool: [],\n animationValues: this.animationValues,\n };\n }\n\n private processProps(props: Record<string, unknown>) {\n const animatedProps: Record<string, SharedValue<unknown>> = {};\n let hasAnimatedProps = false;\n\n for (const key in props) {\n const prop = props[key];\n if (isSharedValue(prop)) {\n this.animationValues.add(prop);\n props[key] = prop.value;\n animatedProps[key] = prop;\n hasAnimatedProps = true;\n }\n }\n\n return {\n props,\n animatedProps: hasAnimatedProps ? animatedProps : undefined,\n };\n }\n\n private add(command: Command) {\n if (command.props) {\n const { animatedProps } = this.processProps(\n command.props as Record<string, unknown>\n );\n if (animatedProps) {\n command.animatedProps = animatedProps;\n }\n }\n this.cursors[this.cursors.length - 1].push(command);\n }\n\n saveGroup() {\n const children: Command[] = [];\n this.add({ type: CommandType.Group, children });\n this.cursors.push(children);\n }\n\n restoreGroup() {\n this.cursors.pop();\n }\n\n savePaint(props: AnimatedProps<PaintProps>) {\n this.add({ type: CommandType.SavePaint, props });\n }\n\n restorePaint() {\n this.add({ type: CommandType.RestorePaint });\n }\n\n restorePaintDeclaration() {\n this.add({ type: CommandType.RestorePaintDeclaration });\n }\n\n materializePaint() {\n this.add({ type: CommandType.MaterializePaint });\n }\n\n pushPathEffect(pathEffectType: NodeType, props: AnimatedProps<unknown>) {\n if (!isPathEffect(pathEffectType)) {\n throw new Error(\"Invalid color filter type: \" + pathEffectType);\n }\n this.add({\n type: CommandType.PushPathEffect,\n pathEffectType,\n props,\n });\n }\n\n pushImageFilter(imageFilterType: NodeType, props: AnimatedProps<unknown>) {\n if (!isImageFilter(imageFilterType)) {\n throw new Error(\"Invalid color filter type: \" + imageFilterType);\n }\n this.add({\n type: CommandType.PushImageFilter,\n imageFilterType,\n props,\n });\n }\n\n pushColorFilter(colorFilterType: NodeType, props: AnimatedProps<unknown>) {\n if (!isColorFilter(colorFilterType)) {\n throw new Error(\"Invalid color filter type: \" + colorFilterType);\n }\n this.add({\n type: CommandType.PushColorFilter,\n colorFilterType,\n props,\n });\n }\n\n pushShader(shaderType: NodeType, props: AnimatedProps<unknown>) {\n if (!isShader(shaderType) && !(shaderType === NodeType.Blend)) {\n throw new Error(\"Invalid color filter type: \" + shaderType);\n }\n this.add({ type: CommandType.PushShader, shaderType, props });\n }\n\n pushBlurMaskFilter(props: AnimatedProps<BlurMaskFilterProps>) {\n this.add({ type: CommandType.PushBlurMaskFilter, props });\n }\n\n composePathEffect() {\n this.add({ type: CommandType.ComposePathEffect });\n }\n\n composeColorFilter() {\n this.add({ type: CommandType.ComposeColorFilter });\n }\n\n composeImageFilter() {\n this.add({ type: CommandType.ComposeImageFilter });\n }\n\n saveCTM(props: AnimatedProps<CTMProps>) {\n this.add({ type: CommandType.SaveCTM, props });\n }\n\n restoreCTM() {\n this.add({ type: CommandType.RestoreCTM });\n }\n\n drawPaint() {\n this.add({ type: CommandType.DrawPaint });\n }\n\n saveLayer() {\n this.add({ type: CommandType.SaveLayer });\n }\n\n saveBackdropFilter() {\n this.add({ type: CommandType.SaveBackdropFilter });\n }\n\n drawBox(\n boxProps: AnimatedProps<BoxProps>,\n shadows: {\n props: BoxShadowProps;\n animatedProps?: Record<string, SharedValue<unknown>>;\n }[]\n ) {\n shadows.forEach((shadow) => {\n if (shadow.props) {\n if (shadow.props) {\n const { animatedProps } = this.processProps(\n shadow.props as unknown as Record<string, unknown>\n );\n if (animatedProps) {\n shadow.animatedProps = animatedProps;\n }\n }\n }\n });\n this.add({ type: CommandType.DrawBox, props: boxProps, shadows });\n }\n\n drawImage(props: AnimatedProps<ImageProps>) {\n this.add({ type: CommandType.DrawImage, props });\n }\n\n drawCircle(props: AnimatedProps<CircleProps>) {\n this.add({ type: CommandType.DrawCircle, props });\n }\n drawPoints(props: AnimatedProps<PointsProps>) {\n this.add({ type: CommandType.DrawPoints, props });\n }\n\n drawPath(props: AnimatedProps<PathProps>) {\n this.add({ type: CommandType.DrawPath, props });\n }\n\n drawRect(props: AnimatedProps<RectProps>) {\n this.add({ type: CommandType.DrawRect, props });\n }\n\n drawRRect(props: AnimatedProps<RoundedRectProps>) {\n this.add({ type: CommandType.DrawRRect, props });\n }\n\n drawOval(props: AnimatedProps<OvalProps>) {\n this.add({ type: CommandType.DrawOval, props });\n }\n\n drawLine(props: AnimatedProps<LineProps>) {\n this.add({ type: CommandType.DrawLine, props });\n }\n\n drawPatch(props: AnimatedProps<PatchProps>) {\n this.add({ type: CommandType.DrawPatch, props });\n }\n\n drawVertices(props: AnimatedProps<VerticesProps>) {\n this.add({ type: CommandType.DrawVertices, props });\n }\n\n drawDiffRect(props: AnimatedProps<DiffRectProps>) {\n this.add({ type: CommandType.DrawDiffRect, props });\n }\n\n drawText(props: AnimatedProps<TextProps>) {\n this.add({ type: CommandType.DrawText, props });\n }\n\n drawTextPath(props: AnimatedProps<TextPathProps>) {\n this.add({ type: CommandType.DrawTextPath, props });\n }\n\n drawTextBlob(props: AnimatedProps<TextBlobProps>) {\n this.add({ type: CommandType.DrawTextBlob, props });\n }\n\n drawGlyphs(props: AnimatedProps<GlyphsProps>) {\n this.add({ type: CommandType.DrawGlyphs, props });\n }\n\n drawPicture(props: AnimatedProps<PictureProps>) {\n this.add({ type: CommandType.DrawPicture, props });\n }\n\n drawImageSVG(props: AnimatedProps<ImageSVGProps>) {\n this.add({ type: CommandType.DrawImageSVG, props });\n }\n\n drawParagraph(props: AnimatedProps<ParagraphProps>) {\n this.add({ type: CommandType.DrawParagraph, props });\n }\n\n drawAtlas(props: AnimatedProps<AtlasProps>) {\n this.add({ type: CommandType.DrawAtlas, props });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NodeType","isSharedValue","isColorFilter","isImageFilter","isPathEffect","isShader","CommandType","Recorder","constructor","_defineProperty","Set","cursors","push","commands","getRecording","paintPool","animationValues","processProps","props","animatedProps","hasAnimatedProps","key","prop","add","undefined","command","length","saveGroup","children","type","Group","restoreGroup","pop","savePaint","SavePaint","restorePaint","RestorePaint","restorePaintDeclaration","RestorePaintDeclaration","materializePaint","MaterializePaint","pushPathEffect","pathEffectType","Error","PushPathEffect","pushImageFilter","imageFilterType","PushImageFilter","pushColorFilter","colorFilterType","PushColorFilter","pushShader","shaderType","Blend","PushShader","pushBlurMaskFilter","PushBlurMaskFilter","composePathEffect","ComposePathEffect","composeColorFilter","ComposeColorFilter","composeImageFilter","ComposeImageFilter","saveCTM","SaveCTM","restoreCTM","RestoreCTM","drawPaint","DrawPaint","saveLayer","SaveLayer","saveBackdropFilter","SaveBackdropFilter","drawBox","boxProps","shadows","forEach","shadow","DrawBox","drawImage","DrawImage","drawCircle","DrawCircle","drawPoints","DrawPoints","drawPath","DrawPath","drawRect","DrawRect","drawRRect","DrawRRect","drawOval","DrawOval","drawLine","DrawLine","drawPatch","DrawPatch","drawVertices","DrawVertices","drawDiffRect","DrawDiffRect","drawText","DrawText","drawTextPath","DrawTextPath","drawTextBlob","DrawTextBlob","drawGlyphs","DrawGlyphs","drawPicture","DrawPicture","drawImageSVG","DrawImageSVG","drawParagraph","DrawParagraph","drawAtlas","DrawAtlas"],"sources":["Recorder.ts"],"sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nimport { NodeType } from \"../../dom/types\";\nimport type {\n BlurMaskFilterProps,\n CircleProps,\n CTMProps,\n ImageProps,\n PaintProps,\n PointsProps,\n PathProps,\n RectProps,\n RoundedRectProps,\n OvalProps,\n LineProps,\n PatchProps,\n VerticesProps,\n DiffRectProps,\n TextProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n PictureProps,\n ImageSVGProps,\n ParagraphProps,\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n} from \"../../dom/types\";\nimport type { AnimatedProps } from \"../../renderer\";\nimport { isSharedValue } from \"../utils\";\nimport { isColorFilter, isImageFilter, isPathEffect, isShader } from \"../Node\";\nimport type { SkPaint } from \"../../skia/types\";\n\nimport { CommandType } from \"./Core\";\nimport type { Command } from \"./Core\";\n\nexport interface Recording {\n commands: Command[];\n paintPool: SkPaint[];\n}\n\ninterface AnimationValues {\n animationValues: Set<SharedValue<unknown>>;\n}\n\nexport class Recorder {\n commands: Command[] = [];\n cursors: Command[][] = [];\n animationValues: Set<SharedValue<unknown>> = new Set();\n\n constructor() {\n this.cursors.push(this.commands);\n }\n\n getRecording(): Recording & AnimationValues {\n return {\n commands: this.commands,\n paintPool: [],\n animationValues: this.animationValues,\n };\n }\n\n private processProps(props: Record<string, unknown>) {\n const animatedProps: Record<string, SharedValue<unknown>> = {};\n let hasAnimatedProps = false;\n\n for (const key in props) {\n const prop = props[key];\n if (isSharedValue(prop)) {\n this.animationValues.add(prop);\n animatedProps[key] = prop;\n hasAnimatedProps = true;\n }\n }\n\n return {\n props,\n animatedProps: hasAnimatedProps ? animatedProps : undefined,\n };\n }\n\n private add(command: Command) {\n if (command.props) {\n const { animatedProps } = this.processProps(\n command.props as Record<string, unknown>\n );\n if (animatedProps) {\n command.animatedProps = animatedProps;\n }\n }\n this.cursors[this.cursors.length - 1].push(command);\n }\n\n saveGroup() {\n const children: Command[] = [];\n this.add({ type: CommandType.Group, children });\n this.cursors.push(children);\n }\n\n restoreGroup() {\n this.cursors.pop();\n }\n\n savePaint(props: AnimatedProps<PaintProps>) {\n this.add({ type: CommandType.SavePaint, props });\n }\n\n restorePaint() {\n this.add({ type: CommandType.RestorePaint });\n }\n\n restorePaintDeclaration() {\n this.add({ type: CommandType.RestorePaintDeclaration });\n }\n\n materializePaint() {\n this.add({ type: CommandType.MaterializePaint });\n }\n\n pushPathEffect(pathEffectType: NodeType, props: AnimatedProps<unknown>) {\n if (!isPathEffect(pathEffectType)) {\n throw new Error(\"Invalid color filter type: \" + pathEffectType);\n }\n this.add({\n type: CommandType.PushPathEffect,\n pathEffectType,\n props,\n });\n }\n\n pushImageFilter(imageFilterType: NodeType, props: AnimatedProps<unknown>) {\n if (!isImageFilter(imageFilterType)) {\n throw new Error(\"Invalid color filter type: \" + imageFilterType);\n }\n this.add({\n type: CommandType.PushImageFilter,\n imageFilterType,\n props,\n });\n }\n\n pushColorFilter(colorFilterType: NodeType, props: AnimatedProps<unknown>) {\n if (!isColorFilter(colorFilterType)) {\n throw new Error(\"Invalid color filter type: \" + colorFilterType);\n }\n this.add({\n type: CommandType.PushColorFilter,\n colorFilterType,\n props,\n });\n }\n\n pushShader(shaderType: NodeType, props: AnimatedProps<unknown>) {\n if (!isShader(shaderType) && !(shaderType === NodeType.Blend)) {\n throw new Error(\"Invalid color filter type: \" + shaderType);\n }\n this.add({ type: CommandType.PushShader, shaderType, props });\n }\n\n pushBlurMaskFilter(props: AnimatedProps<BlurMaskFilterProps>) {\n this.add({ type: CommandType.PushBlurMaskFilter, props });\n }\n\n composePathEffect() {\n this.add({ type: CommandType.ComposePathEffect });\n }\n\n composeColorFilter() {\n this.add({ type: CommandType.ComposeColorFilter });\n }\n\n composeImageFilter() {\n this.add({ type: CommandType.ComposeImageFilter });\n }\n\n saveCTM(props: AnimatedProps<CTMProps>) {\n this.add({ type: CommandType.SaveCTM, props });\n }\n\n restoreCTM() {\n this.add({ type: CommandType.RestoreCTM });\n }\n\n drawPaint() {\n this.add({ type: CommandType.DrawPaint });\n }\n\n saveLayer() {\n this.add({ type: CommandType.SaveLayer });\n }\n\n saveBackdropFilter() {\n this.add({ type: CommandType.SaveBackdropFilter });\n }\n\n drawBox(\n boxProps: AnimatedProps<BoxProps>,\n shadows: {\n props: BoxShadowProps;\n animatedProps?: Record<string, SharedValue<unknown>>;\n }[]\n ) {\n shadows.forEach((shadow) => {\n if (shadow.props) {\n if (shadow.props) {\n const { animatedProps } = this.processProps(\n shadow.props as unknown as Record<string, unknown>\n );\n if (animatedProps) {\n shadow.animatedProps = animatedProps;\n }\n }\n }\n });\n this.add({ type: CommandType.DrawBox, props: boxProps, shadows });\n }\n\n drawImage(props: AnimatedProps<ImageProps>) {\n this.add({ type: CommandType.DrawImage, props });\n }\n\n drawCircle(props: AnimatedProps<CircleProps>) {\n this.add({ type: CommandType.DrawCircle, props });\n }\n drawPoints(props: AnimatedProps<PointsProps>) {\n this.add({ type: CommandType.DrawPoints, props });\n }\n\n drawPath(props: AnimatedProps<PathProps>) {\n this.add({ type: CommandType.DrawPath, props });\n }\n\n drawRect(props: AnimatedProps<RectProps>) {\n this.add({ type: CommandType.DrawRect, props });\n }\n\n drawRRect(props: AnimatedProps<RoundedRectProps>) {\n this.add({ type: CommandType.DrawRRect, props });\n }\n\n drawOval(props: AnimatedProps<OvalProps>) {\n this.add({ type: CommandType.DrawOval, props });\n }\n\n drawLine(props: AnimatedProps<LineProps>) {\n this.add({ type: CommandType.DrawLine, props });\n }\n\n drawPatch(props: AnimatedProps<PatchProps>) {\n this.add({ type: CommandType.DrawPatch, props });\n }\n\n drawVertices(props: AnimatedProps<VerticesProps>) {\n this.add({ type: CommandType.DrawVertices, props });\n }\n\n drawDiffRect(props: AnimatedProps<DiffRectProps>) {\n this.add({ type: CommandType.DrawDiffRect, props });\n }\n\n drawText(props: AnimatedProps<TextProps>) {\n this.add({ type: CommandType.DrawText, props });\n }\n\n drawTextPath(props: AnimatedProps<TextPathProps>) {\n this.add({ type: CommandType.DrawTextPath, props });\n }\n\n drawTextBlob(props: AnimatedProps<TextBlobProps>) {\n this.add({ type: CommandType.DrawTextBlob, props });\n }\n\n drawGlyphs(props: AnimatedProps<GlyphsProps>) {\n this.add({ type: CommandType.DrawGlyphs, props });\n }\n\n drawPicture(props: AnimatedProps<PictureProps>) {\n this.add({ type: CommandType.DrawPicture, props });\n }\n\n drawImageSVG(props: AnimatedProps<ImageSVGProps>) {\n this.add({ type: CommandType.DrawImageSVG, props });\n }\n\n drawParagraph(props: AnimatedProps<ParagraphProps>) {\n this.add({ type: CommandType.DrawParagraph, props });\n }\n\n drawAtlas(props: AnimatedProps<AtlasProps>) {\n this.add({ type: CommandType.DrawAtlas, props });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { deflate, inflate } from "../../../dom/nodes";
1
+ import { deflate, inflate, processColor } from "../../../dom/nodes";
2
2
  import { BlurStyle, ClipOp, isRRect } from "../../../skia/types";
3
3
  import { CommandType, materializeProps } from "../Core";
4
4
  export const isBoxCommand = command => {
@@ -33,7 +33,7 @@ export const drawBox = (ctx, command) => {
33
33
  dy = 0
34
34
  } = shadow;
35
35
  const lPaint = Skia.Paint();
36
- lPaint.setColor(Skia.Color(color));
36
+ lPaint.setColor(processColor(Skia, color));
37
37
  lPaint.setAlphaf(paint.getAlphaf() * opacity);
38
38
  lPaint.setMaskFilter(Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true));
39
39
  canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);
@@ -1 +1 @@
1
- {"version":3,"names":["deflate","inflate","BlurStyle","ClipOp","isRRect","CommandType","materializeProps","isBoxCommand","command","type","DrawBox","drawBox","ctx","shadows","forEach","shadow","map","props","paint","Skia","canvas","box","defaultBox","opacity","getAlphaf","RRectXY","filter","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","Color","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","Intersect","outer","x","y","drawDRRect","restore"],"sources":["Box.ts"],"sourcesContent":["import { deflate, inflate } from \"../../../dom/nodes\";\nimport type { BoxProps, BoxShadowProps } from \"../../../dom/types\";\nimport { BlurStyle, ClipOp, isRRect } from \"../../../skia/types\";\nimport type { Command } from \"../Core\";\nimport { CommandType, materializeProps } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\ninterface BoxCommand extends Command<CommandType.DrawBox> {\n props: BoxProps;\n shadows: { props: BoxShadowProps }[];\n}\n\nexport const isBoxCommand = (command: Command): command is BoxCommand => {\n \"worklet\";\n return command.type === CommandType.DrawBox;\n};\n\nexport const drawBox = (ctx: DrawingContext, command: BoxCommand) => {\n \"worklet\";\n command.shadows.forEach((shadow) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n materializeProps(shadow as any);\n });\n const shadows = command.shadows.map((shadow) => shadow.props);\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = command.props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["deflate","inflate","processColor","BlurStyle","ClipOp","isRRect","CommandType","materializeProps","isBoxCommand","command","type","DrawBox","drawBox","ctx","shadows","forEach","shadow","map","props","paint","Skia","canvas","box","defaultBox","opacity","getAlphaf","RRectXY","filter","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","Intersect","Color","outer","x","y","drawDRRect","restore"],"sources":["Box.ts"],"sourcesContent":["import { deflate, inflate, processColor } from \"../../../dom/nodes\";\nimport type { BoxProps, BoxShadowProps } from \"../../../dom/types\";\nimport { BlurStyle, ClipOp, isRRect } from \"../../../skia/types\";\nimport type { Command } from \"../Core\";\nimport { CommandType, materializeProps } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\ninterface BoxCommand extends Command<CommandType.DrawBox> {\n props: BoxProps;\n shadows: { props: BoxShadowProps }[];\n}\n\nexport const isBoxCommand = (command: Command): command is BoxCommand => {\n \"worklet\";\n return command.type === CommandType.DrawBox;\n};\n\nexport const drawBox = (ctx: DrawingContext, command: BoxCommand) => {\n \"worklet\";\n command.shadows.forEach((shadow) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n materializeProps(shadow as any);\n });\n const shadows = command.shadows.map((shadow) => shadow.props);\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = command.props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { enumKey } from "../../../dom/nodes";
1
+ import { enumKey, processColor } from "../../../dom/nodes";
2
2
  import { NodeType } from "../../../dom/types";
3
3
  import { BlendMode } from "../../../skia/types";
4
4
  import { CommandType } from "../Core";
@@ -32,7 +32,7 @@ export const pushColorFilter = (ctx, command) => {
32
32
  const {
33
33
  mode
34
34
  } = props;
35
- const color = ctx.Skia.Color(props.color);
35
+ const color = processColor(ctx.Skia, props.color);
36
36
  cf = ctx.Skia.ColorFilter.MakeBlend(color, BlendMode[enumKey(mode)]);
37
37
  } else if (isColorFilter(command, NodeType.MatrixColorFilter)) {
38
38
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["enumKey","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","Color","MakeBlend","MatrixColorFilter","matrix","MakeMatrix","LerpColorFilter","t","second","first","Error","MakeLerp","LumaColorFilter","MakeLumaColorFilter","LinearToSRGBGammaColorFilter","MakeLinearToSRGBGamma","SRGBToLinearGammaColorFilter","MakeSRGBToLinearGamma"],"sources":["ColorFilters.ts"],"sourcesContent":["import { enumKey } 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 = ctx.Skia.Color(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<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,4 +1,4 @@
1
- import { deflate, enumKey, fitRects, inflate, NodeType, processCircle, processPath, processRect, processRRect } from "../../../dom/nodes";
1
+ import { deflate, enumKey, fitRects, inflate, NodeType, processCircle, processColor, processPath, processRect, processRRect } from "../../../dom/nodes";
2
2
  import { saturate } from "../../../renderer/processors";
3
3
  import { BlendMode, BlurStyle, ClipOp, FillType, FilterMode, isCubicSampling, isRRect, MipmapMode, PointMode, VertexMode } from "../../../skia/types";
4
4
  import { materialize } from "../../utils";
@@ -45,7 +45,7 @@ export const drawBox = (ctx, props, children) => {
45
45
  dy = 0
46
46
  } = shadow;
47
47
  const lPaint = Skia.Paint();
48
- lPaint.setColor(Skia.Color(color));
48
+ lPaint.setColor(processColor(Skia, color));
49
49
  lPaint.setAlphaf(paint.getAlphaf() * opacity);
50
50
  lPaint.setMaskFilter(Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true));
51
51
  canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);
@@ -63,7 +63,7 @@ export const drawBox = (ctx, props, children) => {
63
63
  canvas.save();
64
64
  canvas.clipRRect(box, ClipOp.Intersect, false);
65
65
  const lPaint = Skia.Paint();
66
- lPaint.setColor(Skia.Color(color));
66
+ lPaint.setColor(processColor(Skia, color));
67
67
  lPaint.setAlphaf(paint.getAlphaf() * opacity);
68
68
  lPaint.setMaskFilter(Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true));
69
69
  const inner = deflate(Skia, box, spread, spread, dx, dy);
@@ -120,7 +120,7 @@ export const drawVertices = (ctx, props) => {
120
120
  blendMode
121
121
  } = props;
122
122
  const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;
123
- const vertices = ctx.Skia.MakeVertices(vertexMode, props.vertices, textures, colors ? colors.map(c => ctx.Skia.Color(c)) : undefined, indices);
123
+ const vertices = ctx.Skia.MakeVertices(vertexMode, props.vertices, textures, colors ? colors.map(c => processColor(ctx.Skia, c)) : undefined, indices);
124
124
  const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;
125
125
  const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;
126
126
  ctx.canvas.drawVertices(vertices, blend, ctx.paint);
@@ -208,7 +208,7 @@ export const drawPatch = (ctx, props) => {
208
208
  // C c1 c2 tl (the redundant point in the last command is removed)
209
209
 
210
210
  const points = [patch[0].pos, patch[0].c2, patch[1].c1, patch[1].pos, patch[1].c2, patch[2].c1, patch[2].pos, patch[2].c2, patch[3].c1, patch[3].pos, patch[3].c2, patch[0].c1];
211
- const colors = props.colors ? props.colors.map(c => ctx.Skia.Color(c)) : undefined;
211
+ const colors = props.colors ? props.colors.map(c => processColor(ctx.Skia, c)) : undefined;
212
212
  ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);
213
213
  };
214
214
  export const drawPath = (ctx, props) => {
@@ -1 +1 @@
1
- {"version":3,"names":["deflate","enumKey","fitRects","inflate","NodeType","processCircle","processPath","processRect","processRRect","saturate","BlendMode","BlurStyle","ClipOp","FillType","FilterMode","isCubicSampling","isRRect","MipmapMode","PointMode","VertexMode","materialize","drawLine","ctx","props","p1","p2","canvas","x","y","paint","drawOval","rect","Skia","drawBox","children","box","defaultBox","opacity","getAlphaf","RRectXY","shadows","map","node","type","BoxShadow","filter","n","shadow","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","Color","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","Intersect","outer","drawDRRect","restore","drawImage","image","sampling","_props$fit","fit","src","dst","width","height","drawImageRectCubic","B","C","_sampling$filter","_sampling$mipmap","drawImageRectOptions","Linear","mipmap","None","drawPoints","points","mode","drawVertices","textures","colors","indices","blendMode","vertexMode","Triangles","vertices","MakeVertices","c","undefined","defaultBlendMode","DstOver","SrcOver","blend","drawDiffRect","drawTextPath","path","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","willMutatePath","pristinePath","copy","setFillType","trim","drawRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","translate","drawSvg","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","drawCircle","r","drawFill","_props","drawPaint"],"sources":["Drawing.ts"],"sourcesContent":["import {\n deflate,\n enumKey,\n fitRects,\n inflate,\n NodeType,\n processCircle,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n CircleProps,\n DiffRectProps,\n DrawingNodeProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ClipOp,\n FillType,\n FilterMode,\n isCubicSampling,\n isRRect,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { Node } from \"../../Node\";\nimport { materialize } from \"../../utils\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawBox = (\n ctx: DrawingContext,\n props: BoxProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: Node<any>[]\n) => {\n \"worklet\";\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n const shadows = children\n .map((node) => {\n if (node.type === NodeType.BoxShadow) {\n return materialize(node.props);\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => ctx.Skia.Color(c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => ctx.Skia.Color(c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = saturate(trimStart);\n const end = saturate(trimEnd);\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n const willMutatePath =\n hasStartOffset || hasEndOffset || hasStrokeOptions || hasFillType;\n const pristinePath = processPath(ctx.Skia, pathProps.path);\n const path = willMutatePath ? pristinePath.copy() : pristinePath;\n if (hasFillType) {\n path.setFillType(FillType[enumKey(fillType)]);\n }\n if (hasStrokeOptions) {\n path.stroke(stroke);\n }\n if (hasStartOffset || hasEndOffset) {\n path.trim(start, end, false);\n }\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, blendMode, sampling } = props;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawFill = (ctx: DrawingContext, _props: DrawingNodeProps) => {\n \"worklet\";\n ctx.canvas.drawPaint(ctx.paint);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["deflate","enumKey","fitRects","inflate","NodeType","processCircle","processColor","processPath","processRect","processRRect","saturate","BlendMode","BlurStyle","ClipOp","FillType","FilterMode","isCubicSampling","isRRect","MipmapMode","PointMode","VertexMode","materialize","drawLine","ctx","props","p1","p2","canvas","x","y","paint","drawOval","rect","Skia","drawBox","children","box","defaultBox","opacity","getAlphaf","RRectXY","shadows","map","node","type","BoxShadow","filter","n","shadow","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","Intersect","outer","drawDRRect","restore","drawImage","image","sampling","_props$fit","fit","src","dst","width","height","drawImageRectCubic","B","C","_sampling$filter","_sampling$mipmap","drawImageRectOptions","Linear","mipmap","None","drawPoints","points","mode","drawVertices","textures","colors","indices","blendMode","vertexMode","Triangles","vertices","MakeVertices","c","undefined","defaultBlendMode","DstOver","SrcOver","blend","drawDiffRect","drawTextPath","path","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","willMutatePath","pristinePath","copy","setFillType","trim","drawRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","translate","drawSvg","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","drawCircle","r","drawFill","_props","drawPaint"],"sources":["Drawing.ts"],"sourcesContent":["import {\n deflate,\n enumKey,\n fitRects,\n inflate,\n NodeType,\n processCircle,\n processColor,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n CircleProps,\n DiffRectProps,\n DrawingNodeProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ClipOp,\n FillType,\n FilterMode,\n isCubicSampling,\n isRRect,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { Node } from \"../../Node\";\nimport { materialize } from \"../../utils\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawBox = (\n ctx: DrawingContext,\n props: BoxProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: Node<any>[]\n) => {\n \"worklet\";\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n const shadows = children\n .map((node) => {\n if (node.type === NodeType.BoxShadow) {\n return materialize(node.props);\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => processColor(ctx.Skia, c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => processColor(ctx.Skia, c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = saturate(trimStart);\n const end = saturate(trimEnd);\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n const willMutatePath =\n hasStartOffset || hasEndOffset || hasStrokeOptions || hasFillType;\n const pristinePath = processPath(ctx.Skia, pathProps.path);\n const path = willMutatePath ? pristinePath.copy() : pristinePath;\n if (hasFillType) {\n path.setFillType(FillType[enumKey(fillType)]);\n }\n if (hasStrokeOptions) {\n path.stroke(stroke);\n }\n if (hasStartOffset || hasEndOffset) {\n path.trim(start, end, false);\n }\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, blendMode, sampling } = props;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawFill = (ctx: DrawingContext, _props: DrawingNodeProps) => {\n \"worklet\";\n ctx.canvas.drawPaint(ctx.paint);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { enumKey, processRadius } from "../../../dom/nodes";
1
+ import { enumKey, processColor, processRadius } from "../../../dom/nodes";
2
2
  import { NodeType } from "../../../dom/types";
3
3
  import { BlendMode, BlurStyle, ColorChannel, processUniforms, TileMode } from "../../../skia/types";
4
4
  import { composeDeclarations } from "../../utils";
@@ -70,7 +70,7 @@ const declareDropShadowImageFilter = (ctx, props) => {
70
70
  color: cl,
71
71
  inner
72
72
  } = props;
73
- const color = ctx.Skia.Color(cl);
73
+ const color = processColor(ctx.Skia, cl);
74
74
  let factory;
75
75
  if (inner) {
76
76
  factory = MakeInnerShadow.bind(null, ctx.Skia, shadowOnly);
@@ -1 +1 @@
1
- {"version":3,"names":["enumKey","processRadius","NodeType","BlendMode","BlurStyle","ColorChannel","processUniforms","TileMode","composeDeclarations","CommandType","MorphologyOperator","Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","Decal","f4","MakeCompose","SrcOver","declareBlurImageFilter","ctx","props","mode","blur","sigma","imgf","x","y","imageFilters","push","declareMorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","declareOffsetImageFilter","declareDropShadowImageFilter","cl","inner","Color","factory","bind","MakeDropShadowOnly","MakeDropShadow","declareBlendImageFilter","blend","splice","length","composer","declareDisplacementMapImageFilter","channelX","channelY","scale","shader","shaders","pop","Error","map","MakeShader","MakeDisplacementMap","declareRuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","MakeRuntimeShader","composeImageFilters","outer","setBlurMaskFilter","style","respectCTM","mf","MaskFilter","paint","setMaskFilter","isPushImageFilter","command","type","PushImageFilter","isImageFilter","imageFilterType","pushImageFilter","BlurImageFilter","MorphologyImageFilter","BlendImageFilter","DisplacementMapImageFilter","DropShadowImageFilter","OffsetImageFilter","RuntimeShaderImageFilter"],"sources":["ImageFilters.ts"],"sourcesContent":["import { enumKey, processRadius } from \"../../../dom/nodes\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n BlurMaskFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../../dom/types\";\nimport { NodeType } from \"../../../dom/types\";\nimport type { SkColor, SkImageFilter, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ColorChannel,\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\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n \"worklet\";\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nconst declareBlurImageFilter = (\n ctx: DrawingContext,\n props: BlurImageFilterProps\n) => {\n \"worklet\";\n const { mode, blur } = props;\n const sigma = processRadius(ctx.Skia, blur);\n const imgf = ctx.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareMorphologyImageFilter = (\n ctx: DrawingContext,\n props: MorphologyImageFilterProps\n) => {\n \"worklet\";\n const { operator } = props;\n const r = processRadius(ctx.Skia, props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = ctx.Skia.ImageFilter.MakeErode(r.x, r.y, null);\n } else {\n imgf = ctx.Skia.ImageFilter.MakeDilate(r.x, r.y, null);\n }\n ctx.imageFilters.push(imgf);\n};\n\nconst declareOffsetImageFilter = (\n ctx: DrawingContext,\n props: OffsetImageFilterProps\n) => {\n \"worklet\";\n const { x, y } = props;\n const imgf = ctx.Skia.ImageFilter.MakeOffset(x, y, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareDropShadowImageFilter = (\n ctx: DrawingContext,\n props: DropShadowImageFilterProps\n) => {\n \"worklet\";\n const { dx, dy, blur, shadowOnly, color: cl, inner } = props;\n const color = ctx.Skia.Color(cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, ctx.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? ctx.Skia.ImageFilter.MakeDropShadowOnly.bind(ctx.Skia.ImageFilter)\n : ctx.Skia.ImageFilter.MakeDropShadow.bind(ctx.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareBlendImageFilter = (\n ctx: DrawingContext,\n props: BlendImageFilterProps\n) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode)];\n // Blend ImageFilters\n const imageFilters = ctx.imageFilters.splice(0, ctx.imageFilters.length);\n const composer = ctx.Skia.ImageFilter.MakeBlend.bind(\n ctx.Skia.ImageFilter,\n blend\n );\n ctx.imageFilters.push(composeDeclarations(imageFilters, composer));\n};\n\nconst declareDisplacementMapImageFilter = (\n ctx: DrawingContext,\n props: DisplacementMapImageFilterProps\n) => {\n \"worklet\";\n const { channelX, channelY, scale } = props;\n const shader = ctx.shaders.pop();\n if (!shader) {\n throw new Error(\"DisplacementMap expects a shader as child\");\n }\n const map = ctx.Skia.ImageFilter.MakeShader(shader, null);\n const imgf = ctx.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n map,\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareRuntimeShaderImageFilter = (\n ctx: DrawingContext,\n props: RuntimeShaderImageFilterProps\n) => {\n \"worklet\";\n const { source, uniforms } = props;\n const rtb = ctx.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = ctx.Skia.ImageFilter.MakeRuntimeShader(rtb, null, null);\n ctx.imageFilters.push(imgf);\n};\n\nexport const composeImageFilters = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.imageFilters.length > 1) {\n const outer = ctx.imageFilters.pop()!;\n const inner = ctx.imageFilters.pop()!;\n ctx.imageFilters.push(ctx.Skia.ImageFilter.MakeCompose(outer, inner));\n }\n};\n\nexport const setBlurMaskFilter = (\n ctx: DrawingContext,\n props: BlurMaskFilterProps\n) => {\n \"worklet\";\n const { blur, style, respectCTM } = props;\n const mf = ctx.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.paint.setMaskFilter(mf);\n};\n\nexport const isPushImageFilter = (\n command: Command\n): command is Command<CommandType.PushImageFilter> => {\n \"worklet\";\n return command.type === CommandType.PushImageFilter;\n};\n\ntype Props = {\n [NodeType.OffsetImageFilter]: OffsetImageFilterProps;\n [NodeType.DisplacementMapImageFilter]: DisplacementMapImageFilterProps;\n [NodeType.BlurImageFilter]: BlurImageFilterProps;\n [NodeType.DropShadowImageFilter]: DropShadowImageFilterProps;\n [NodeType.MorphologyImageFilter]: MorphologyImageFilterProps;\n [NodeType.BlendImageFilter]: BlendImageFilterProps;\n [NodeType.RuntimeShaderImageFilter]: RuntimeShaderImageFilterProps;\n};\n\ninterface PushImageFilter<T extends keyof Props>\n extends Command<CommandType.PushImageFilter> {\n imageFilterType: T;\n props: Props[T];\n}\n\nconst isImageFilter = <T extends keyof Props>(\n command: Command<CommandType.PushImageFilter>,\n type: T\n): command is PushImageFilter<T> => {\n \"worklet\";\n return command.imageFilterType === type;\n};\n\nexport const pushImageFilter = (\n ctx: DrawingContext,\n command: Command<CommandType.PushImageFilter>\n) => {\n \"worklet\";\n if (isImageFilter(command, NodeType.BlurImageFilter)) {\n declareBlurImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.MorphologyImageFilter)) {\n declareMorphologyImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.BlendImageFilter)) {\n declareBlendImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DisplacementMapImageFilter)) {\n declareDisplacementMapImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DropShadowImageFilter)) {\n declareDropShadowImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.OffsetImageFilter)) {\n declareOffsetImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.RuntimeShaderImageFilter)) {\n declareRuntimeShaderImageFilter(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":["enumKey","processColor","processRadius","NodeType","BlendMode","BlurStyle","ColorChannel","processUniforms","TileMode","composeDeclarations","CommandType","MorphologyOperator","Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","Decal","f4","MakeCompose","SrcOver","declareBlurImageFilter","ctx","props","mode","blur","sigma","imgf","x","y","imageFilters","push","declareMorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","declareOffsetImageFilter","declareDropShadowImageFilter","cl","inner","factory","bind","MakeDropShadowOnly","MakeDropShadow","declareBlendImageFilter","blend","splice","length","composer","declareDisplacementMapImageFilter","channelX","channelY","scale","shader","shaders","pop","Error","map","MakeShader","MakeDisplacementMap","declareRuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","MakeRuntimeShader","composeImageFilters","outer","setBlurMaskFilter","style","respectCTM","mf","MaskFilter","paint","setMaskFilter","isPushImageFilter","command","type","PushImageFilter","isImageFilter","imageFilterType","pushImageFilter","BlurImageFilter","MorphologyImageFilter","BlendImageFilter","DisplacementMapImageFilter","DropShadowImageFilter","OffsetImageFilter","RuntimeShaderImageFilter"],"sources":["ImageFilters.ts"],"sourcesContent":["import { enumKey, processColor, processRadius } from \"../../../dom/nodes\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n BlurMaskFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../../dom/types\";\nimport { NodeType } from \"../../../dom/types\";\nimport type { SkColor, SkImageFilter, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ColorChannel,\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\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n \"worklet\";\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nconst declareBlurImageFilter = (\n ctx: DrawingContext,\n props: BlurImageFilterProps\n) => {\n \"worklet\";\n const { mode, blur } = props;\n const sigma = processRadius(ctx.Skia, blur);\n const imgf = ctx.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareMorphologyImageFilter = (\n ctx: DrawingContext,\n props: MorphologyImageFilterProps\n) => {\n \"worklet\";\n const { operator } = props;\n const r = processRadius(ctx.Skia, props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = ctx.Skia.ImageFilter.MakeErode(r.x, r.y, null);\n } else {\n imgf = ctx.Skia.ImageFilter.MakeDilate(r.x, r.y, null);\n }\n ctx.imageFilters.push(imgf);\n};\n\nconst declareOffsetImageFilter = (\n ctx: DrawingContext,\n props: OffsetImageFilterProps\n) => {\n \"worklet\";\n const { x, y } = props;\n const imgf = ctx.Skia.ImageFilter.MakeOffset(x, y, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareDropShadowImageFilter = (\n ctx: DrawingContext,\n props: DropShadowImageFilterProps\n) => {\n \"worklet\";\n const { dx, dy, blur, shadowOnly, color: cl, inner } = props;\n const color = processColor(ctx.Skia, cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, ctx.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? ctx.Skia.ImageFilter.MakeDropShadowOnly.bind(ctx.Skia.ImageFilter)\n : ctx.Skia.ImageFilter.MakeDropShadow.bind(ctx.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareBlendImageFilter = (\n ctx: DrawingContext,\n props: BlendImageFilterProps\n) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode)];\n // Blend ImageFilters\n const imageFilters = ctx.imageFilters.splice(0, ctx.imageFilters.length);\n const composer = ctx.Skia.ImageFilter.MakeBlend.bind(\n ctx.Skia.ImageFilter,\n blend\n );\n ctx.imageFilters.push(composeDeclarations(imageFilters, composer));\n};\n\nconst declareDisplacementMapImageFilter = (\n ctx: DrawingContext,\n props: DisplacementMapImageFilterProps\n) => {\n \"worklet\";\n const { channelX, channelY, scale } = props;\n const shader = ctx.shaders.pop();\n if (!shader) {\n throw new Error(\"DisplacementMap expects a shader as child\");\n }\n const map = ctx.Skia.ImageFilter.MakeShader(shader, null);\n const imgf = ctx.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n map,\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareRuntimeShaderImageFilter = (\n ctx: DrawingContext,\n props: RuntimeShaderImageFilterProps\n) => {\n \"worklet\";\n const { source, uniforms } = props;\n const rtb = ctx.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = ctx.Skia.ImageFilter.MakeRuntimeShader(rtb, null, null);\n ctx.imageFilters.push(imgf);\n};\n\nexport const composeImageFilters = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.imageFilters.length > 1) {\n const outer = ctx.imageFilters.pop()!;\n const inner = ctx.imageFilters.pop()!;\n ctx.imageFilters.push(ctx.Skia.ImageFilter.MakeCompose(outer, inner));\n }\n};\n\nexport const setBlurMaskFilter = (\n ctx: DrawingContext,\n props: BlurMaskFilterProps\n) => {\n \"worklet\";\n const { blur, style, respectCTM } = props;\n const mf = ctx.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.paint.setMaskFilter(mf);\n};\n\nexport const isPushImageFilter = (\n command: Command\n): command is Command<CommandType.PushImageFilter> => {\n \"worklet\";\n return command.type === CommandType.PushImageFilter;\n};\n\ntype Props = {\n [NodeType.OffsetImageFilter]: OffsetImageFilterProps;\n [NodeType.DisplacementMapImageFilter]: DisplacementMapImageFilterProps;\n [NodeType.BlurImageFilter]: BlurImageFilterProps;\n [NodeType.DropShadowImageFilter]: DropShadowImageFilterProps;\n [NodeType.MorphologyImageFilter]: MorphologyImageFilterProps;\n [NodeType.BlendImageFilter]: BlendImageFilterProps;\n [NodeType.RuntimeShaderImageFilter]: RuntimeShaderImageFilterProps;\n};\n\ninterface PushImageFilter<T extends keyof Props>\n extends Command<CommandType.PushImageFilter> {\n imageFilterType: T;\n props: Props[T];\n}\n\nconst isImageFilter = <T extends keyof Props>(\n command: Command<CommandType.PushImageFilter>,\n type: T\n): command is PushImageFilter<T> => {\n \"worklet\";\n return command.imageFilterType === type;\n};\n\nexport const pushImageFilter = (\n ctx: DrawingContext,\n command: Command<CommandType.PushImageFilter>\n) => {\n \"worklet\";\n if (isImageFilter(command, NodeType.BlurImageFilter)) {\n declareBlurImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.MorphologyImageFilter)) {\n declareMorphologyImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.BlendImageFilter)) {\n declareBlendImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DisplacementMapImageFilter)) {\n declareDisplacementMapImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DropShadowImageFilter)) {\n declareDropShadowImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.OffsetImageFilter)) {\n declareOffsetImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.RuntimeShaderImageFilter)) {\n declareRuntimeShaderImageFilter(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,4 +1,3 @@
1
1
  import type { PaintProps } from "../../../dom/types";
2
2
  import type { SkPaint, Skia } from "../../../skia/types";
3
- export declare const processColor: (Skia: Skia, color: number | string | Float32Array | number[]) => Float32Array;
4
3
  export declare const setPaintProperties: (Skia: Skia, paint: SkPaint, { opacity, color, blendMode, strokeWidth, style, strokeJoin, strokeCap, strokeMiter, antiAlias, dither, }: PaintProps) => void;
@@ -1,16 +1,5 @@
1
- import { enumKey } from "../../../dom/nodes";
1
+ import { enumKey, processColor } from "../../../dom/nodes";
2
2
  import { BlendMode, PaintStyle, StrokeCap, StrokeJoin } from "../../../skia/types";
3
- export const processColor = (Skia, color) => {
4
- "worklet";
5
-
6
- if (typeof color === "string" || typeof color === "number") {
7
- return Skia.Color(color);
8
- } else if (Array.isArray(color) || color instanceof Float32Array) {
9
- return color instanceof Float32Array ? color : new Float32Array(color);
10
- } else {
11
- throw new Error(`Invalid color type: ${typeof color}. Expected number, string, or array.`);
12
- }
13
- };
14
3
  export const setPaintProperties = (Skia, paint, {
15
4
  opacity,
16
5
  color,