@shopify/react-native-skia 0.1.216 → 0.1.219

Sign up to get free protection for your applications and to get access to all the features.
Files changed (406) hide show
  1. package/android/build.gradle +22 -0
  2. package/android/src/main/java/com/shopify/reactnative/skia/PlatformContext.java +9 -10
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaModule.java +3 -3
  4. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +56 -2
  5. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +5 -1
  6. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseViewManager.java +3 -3
  7. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +14 -1
  8. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDrawViewManager.java +16 -1
  9. package/android/src/main/java/com/shopify/reactnative/skia/SkiaPictureViewManager.java +15 -1
  10. package/android/src/main/java/com/shopify/reactnative/skia/ViewScreenshotService.java +2 -2
  11. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +34 -0
  12. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +18 -0
  13. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDrawViewManagerDelegate.java +34 -0
  14. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDrawViewManagerInterface.java +18 -0
  15. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerDelegate.java +34 -0
  16. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerInterface.java +18 -0
  17. package/android/src/paper/java/com/shopify/reactnative/skia/NativeSkiaModuleSpec.java +38 -0
  18. package/cpp/rnskia/RNSkView.h +1 -1
  19. package/cpp/rnskia/dom/nodes/JsiImageNode.h +1 -1
  20. package/ios/RNSkia-iOS/SkiaDomView.h +7 -0
  21. package/ios/RNSkia-iOS/SkiaDomView.mm +64 -0
  22. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +1 -1
  23. package/ios/RNSkia-iOS/SkiaDrawView.h +7 -0
  24. package/ios/RNSkia-iOS/SkiaDrawView.mm +72 -0
  25. package/ios/RNSkia-iOS/SkiaDrawViewManager.mm +1 -1
  26. package/ios/RNSkia-iOS/SkiaPictureView.h +7 -0
  27. package/ios/RNSkia-iOS/SkiaPictureView.mm +66 -0
  28. package/ios/RNSkia-iOS/SkiaPictureViewManager.mm +1 -1
  29. package/ios/RNSkia-iOS/SkiaUIView.h +15 -2
  30. package/ios/RNSkia-iOS/SkiaUIView.mm +48 -16
  31. package/ios/RNSkiaModule.h +10 -1
  32. package/ios/RNSkiaModule.mm +8 -1
  33. package/lib/commonjs/Platform/IPlatform.d.ts +1 -3
  34. package/lib/commonjs/Platform/IPlatform.js.map +1 -1
  35. package/lib/commonjs/Platform/Platform.js +0 -2
  36. package/lib/commonjs/Platform/Platform.js.map +1 -1
  37. package/lib/commonjs/Platform/Platform.web.js +0 -4
  38. package/lib/commonjs/Platform/Platform.web.js.map +1 -1
  39. package/lib/commonjs/animation/functions/interpolate.d.ts +1 -1
  40. package/lib/commonjs/animation/timing/functions/types.d.ts +1 -1
  41. package/lib/commonjs/animation/types.d.ts +2 -2
  42. package/lib/commonjs/dom/nodes/Node.d.ts +1 -1
  43. package/lib/commonjs/dom/types/Common.d.ts +8 -8
  44. package/lib/commonjs/dom/types/DeclarationContext.d.ts +1 -1
  45. package/lib/commonjs/dom/types/DrawingContext.js.map +1 -1
  46. package/lib/commonjs/dom/types/Drawings.d.ts +5 -5
  47. package/lib/commonjs/dom/types/Node.d.ts +1 -1
  48. package/lib/commonjs/dom/types/SkDOM.d.ts +4 -4
  49. package/lib/commonjs/external/reanimated/renderHelpers.js +0 -2
  50. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  51. package/lib/commonjs/renderer/Canvas.d.ts +1 -1
  52. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  53. package/lib/commonjs/renderer/DependencyManager.d.ts +3 -3
  54. package/lib/commonjs/renderer/HostConfig.d.ts +12 -12
  55. package/lib/commonjs/renderer/Reconciler.d.ts +1 -1
  56. package/lib/commonjs/renderer/Reconciler.js +1 -0
  57. package/lib/commonjs/renderer/Reconciler.js.map +1 -1
  58. package/lib/commonjs/renderer/components/Blend.d.ts +2 -2
  59. package/lib/commonjs/renderer/components/Drawing.d.ts +2 -2
  60. package/lib/commonjs/renderer/components/Group.d.ts +2 -2
  61. package/lib/commonjs/renderer/components/Mask.d.ts +2 -1
  62. package/lib/commonjs/renderer/components/Paint.d.ts +2 -2
  63. package/lib/commonjs/renderer/components/Picture.d.ts +2 -2
  64. package/lib/commonjs/renderer/components/backdrop/BackdropBlur.d.ts +2 -2
  65. package/lib/commonjs/renderer/components/backdrop/BackdropFilter.d.ts +2 -1
  66. package/lib/commonjs/renderer/components/colorFilters/BlendColor.d.ts +2 -2
  67. package/lib/commonjs/renderer/components/colorFilters/Lerp.d.ts +2 -2
  68. package/lib/commonjs/renderer/components/colorFilters/LinearToSRGBGamma.d.ts +2 -2
  69. package/lib/commonjs/renderer/components/colorFilters/LumaColorFilter.d.ts +2 -2
  70. package/lib/commonjs/renderer/components/colorFilters/Matrix.d.ts +2 -2
  71. package/lib/commonjs/renderer/components/colorFilters/SRGBToLinearGamma.d.ts +2 -2
  72. package/lib/commonjs/renderer/components/image/Image.d.ts +2 -2
  73. package/lib/commonjs/renderer/components/image/ImageSVG.d.ts +2 -2
  74. package/lib/commonjs/renderer/components/image/ImageShader.d.ts +2 -2
  75. package/lib/commonjs/renderer/components/imageFilters/Blur.d.ts +2 -2
  76. package/lib/commonjs/renderer/components/imageFilters/DisplacementMap.d.ts +2 -2
  77. package/lib/commonjs/renderer/components/imageFilters/Morphology.d.ts +2 -2
  78. package/lib/commonjs/renderer/components/imageFilters/Offset.d.ts +2 -2
  79. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.d.ts +2 -2
  80. package/lib/commonjs/renderer/components/imageFilters/Shadow.d.ts +2 -2
  81. package/lib/commonjs/renderer/components/maskFilters/Blur.d.ts +2 -2
  82. package/lib/commonjs/renderer/components/pathEffects/Corner.d.ts +2 -2
  83. package/lib/commonjs/renderer/components/pathEffects/Dash.d.ts +2 -2
  84. package/lib/commonjs/renderer/components/pathEffects/Discrete.d.ts +2 -2
  85. package/lib/commonjs/renderer/components/pathEffects/Line2D.d.ts +2 -2
  86. package/lib/commonjs/renderer/components/pathEffects/Path1D.d.ts +2 -2
  87. package/lib/commonjs/renderer/components/pathEffects/Path2D.d.ts +2 -2
  88. package/lib/commonjs/renderer/components/pathEffects/Sum.d.ts +2 -2
  89. package/lib/commonjs/renderer/components/shaders/Color.d.ts +2 -2
  90. package/lib/commonjs/renderer/components/shaders/FractalNoise.d.ts +2 -2
  91. package/lib/commonjs/renderer/components/shaders/LinearGradient.d.ts +2 -2
  92. package/lib/commonjs/renderer/components/shaders/RadialGradient.d.ts +2 -2
  93. package/lib/commonjs/renderer/components/shaders/Shader.d.ts +2 -2
  94. package/lib/commonjs/renderer/components/shaders/SweepGradient.d.ts +2 -2
  95. package/lib/commonjs/renderer/components/shaders/Turbulence.d.ts +2 -2
  96. package/lib/commonjs/renderer/components/shaders/TwoPointConicalGradient.d.ts +2 -2
  97. package/lib/commonjs/renderer/components/shapes/Box.d.ts +3 -3
  98. package/lib/commonjs/renderer/components/shapes/Circle.d.ts +2 -2
  99. package/lib/commonjs/renderer/components/shapes/DiffRect.d.ts +2 -2
  100. package/lib/commonjs/renderer/components/shapes/Fill.d.ts +2 -2
  101. package/lib/commonjs/renderer/components/shapes/FitBox.d.ts +2 -1
  102. package/lib/commonjs/renderer/components/shapes/Line.d.ts +2 -2
  103. package/lib/commonjs/renderer/components/shapes/Oval.d.ts +2 -2
  104. package/lib/commonjs/renderer/components/shapes/Patch.d.ts +2 -2
  105. package/lib/commonjs/renderer/components/shapes/Path.d.ts +2 -2
  106. package/lib/commonjs/renderer/components/shapes/Points.d.ts +2 -2
  107. package/lib/commonjs/renderer/components/shapes/Rect.d.ts +2 -2
  108. package/lib/commonjs/renderer/components/shapes/RoundedRect.d.ts +2 -2
  109. package/lib/commonjs/renderer/components/shapes/Vertices.d.ts +2 -2
  110. package/lib/commonjs/renderer/components/text/Glyphs.d.ts +2 -2
  111. package/lib/commonjs/renderer/components/text/Text.d.ts +2 -2
  112. package/lib/commonjs/renderer/components/text/TextBlob.d.ts +2 -2
  113. package/lib/commonjs/renderer/components/text/TextPath.d.ts +2 -2
  114. package/lib/commonjs/renderer/processors/Animations/Animations.d.ts +6 -6
  115. package/lib/commonjs/skia/NativeSetup.js +5 -1
  116. package/lib/commonjs/skia/NativeSetup.js.map +1 -1
  117. package/lib/commonjs/skia/core/Font.d.ts +2 -2
  118. package/lib/commonjs/skia/types/Color.d.ts +2 -2
  119. package/lib/commonjs/skia/types/ColorFilter/ColorFilter.d.ts +1 -1
  120. package/lib/commonjs/skia/types/ColorFilter/ColorFilterFactory.d.ts +1 -1
  121. package/lib/commonjs/skia/types/Data/Data.d.ts +6 -6
  122. package/lib/commonjs/skia/types/ImageFilter/ImageFilter.d.ts +1 -1
  123. package/lib/commonjs/skia/types/MaskFilter.d.ts +1 -1
  124. package/lib/commonjs/skia/types/Matrix.d.ts +3 -3
  125. package/lib/commonjs/skia/types/Path/Path.d.ts +1 -1
  126. package/lib/commonjs/skia/types/PathEffect.d.ts +1 -1
  127. package/lib/commonjs/skia/types/Point.d.ts +1 -1
  128. package/lib/commonjs/skia/types/RSXform.d.ts +1 -1
  129. package/lib/commonjs/skia/types/Shader/Shader.d.ts +2 -2
  130. package/lib/commonjs/skia/types/TextBlob.d.ts +1 -1
  131. package/lib/commonjs/skia/web/JsiSkData.d.ts +1 -1
  132. package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +1 -1
  133. package/lib/commonjs/specs/NativeSkiaModule.d.ts +6 -0
  134. package/lib/commonjs/specs/NativeSkiaModule.js +14 -0
  135. package/lib/commonjs/specs/NativeSkiaModule.js.map +1 -0
  136. package/lib/commonjs/specs/NativeSkiaModule.web.d.ts +2 -0
  137. package/lib/commonjs/specs/NativeSkiaModule.web.js +13 -0
  138. package/lib/commonjs/specs/NativeSkiaModule.web.js.map +1 -0
  139. package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +8 -0
  140. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +16 -0
  141. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +1 -0
  142. package/lib/commonjs/specs/SkiaDrawViewNativeComponent.d.ts +8 -0
  143. package/lib/commonjs/specs/SkiaDrawViewNativeComponent.js +16 -0
  144. package/lib/commonjs/specs/SkiaDrawViewNativeComponent.js.map +1 -0
  145. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +8 -0
  146. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js +16 -0
  147. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js.map +1 -0
  148. package/lib/commonjs/values/selector.d.ts +1 -1
  149. package/lib/commonjs/views/SkiaBaseWebView.d.ts +1 -1
  150. package/lib/commonjs/views/SkiaDomView.d.ts +1 -1
  151. package/lib/commonjs/views/SkiaDomView.js +3 -1
  152. package/lib/commonjs/views/SkiaDomView.js.map +1 -1
  153. package/lib/commonjs/views/SkiaPictureView.d.ts +1 -1
  154. package/lib/commonjs/views/SkiaPictureView.js +3 -3
  155. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  156. package/lib/commonjs/views/SkiaView.d.ts +1 -1
  157. package/lib/commonjs/views/SkiaView.js +3 -4
  158. package/lib/commonjs/views/SkiaView.js.map +1 -1
  159. package/lib/commonjs/views/types.d.ts +6 -6
  160. package/lib/commonjs/web/WithSkiaWeb.d.ts +2 -2
  161. package/lib/module/Platform/IPlatform.d.ts +1 -3
  162. package/lib/module/Platform/IPlatform.js.map +1 -1
  163. package/lib/module/Platform/Platform.js +1 -3
  164. package/lib/module/Platform/Platform.js.map +1 -1
  165. package/lib/module/Platform/Platform.web.js +0 -4
  166. package/lib/module/Platform/Platform.web.js.map +1 -1
  167. package/lib/module/animation/functions/interpolate.d.ts +1 -1
  168. package/lib/module/animation/timing/functions/types.d.ts +1 -1
  169. package/lib/module/animation/types.d.ts +2 -2
  170. package/lib/module/dom/nodes/Node.d.ts +1 -1
  171. package/lib/module/dom/types/Common.d.ts +8 -8
  172. package/lib/module/dom/types/DeclarationContext.d.ts +1 -1
  173. package/lib/module/dom/types/DrawingContext.js.map +1 -1
  174. package/lib/module/dom/types/Drawings.d.ts +5 -5
  175. package/lib/module/dom/types/Node.d.ts +1 -1
  176. package/lib/module/dom/types/SkDOM.d.ts +4 -4
  177. package/lib/module/external/reanimated/renderHelpers.js +0 -2
  178. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  179. package/lib/module/renderer/Canvas.d.ts +1 -1
  180. package/lib/module/renderer/Canvas.js.map +1 -1
  181. package/lib/module/renderer/DependencyManager.d.ts +3 -3
  182. package/lib/module/renderer/HostConfig.d.ts +12 -12
  183. package/lib/module/renderer/Reconciler.d.ts +1 -1
  184. package/lib/module/renderer/Reconciler.js +1 -0
  185. package/lib/module/renderer/Reconciler.js.map +1 -1
  186. package/lib/module/renderer/components/Blend.d.ts +2 -2
  187. package/lib/module/renderer/components/Drawing.d.ts +2 -2
  188. package/lib/module/renderer/components/Group.d.ts +2 -2
  189. package/lib/module/renderer/components/Mask.d.ts +2 -1
  190. package/lib/module/renderer/components/Paint.d.ts +2 -2
  191. package/lib/module/renderer/components/Picture.d.ts +2 -2
  192. package/lib/module/renderer/components/backdrop/BackdropBlur.d.ts +2 -2
  193. package/lib/module/renderer/components/backdrop/BackdropFilter.d.ts +2 -1
  194. package/lib/module/renderer/components/colorFilters/BlendColor.d.ts +2 -2
  195. package/lib/module/renderer/components/colorFilters/Lerp.d.ts +2 -2
  196. package/lib/module/renderer/components/colorFilters/LinearToSRGBGamma.d.ts +2 -2
  197. package/lib/module/renderer/components/colorFilters/LumaColorFilter.d.ts +2 -2
  198. package/lib/module/renderer/components/colorFilters/Matrix.d.ts +2 -2
  199. package/lib/module/renderer/components/colorFilters/SRGBToLinearGamma.d.ts +2 -2
  200. package/lib/module/renderer/components/image/Image.d.ts +2 -2
  201. package/lib/module/renderer/components/image/ImageSVG.d.ts +2 -2
  202. package/lib/module/renderer/components/image/ImageShader.d.ts +2 -2
  203. package/lib/module/renderer/components/imageFilters/Blur.d.ts +2 -2
  204. package/lib/module/renderer/components/imageFilters/DisplacementMap.d.ts +2 -2
  205. package/lib/module/renderer/components/imageFilters/Morphology.d.ts +2 -2
  206. package/lib/module/renderer/components/imageFilters/Offset.d.ts +2 -2
  207. package/lib/module/renderer/components/imageFilters/RuntimeShader.d.ts +2 -2
  208. package/lib/module/renderer/components/imageFilters/Shadow.d.ts +2 -2
  209. package/lib/module/renderer/components/maskFilters/Blur.d.ts +2 -2
  210. package/lib/module/renderer/components/pathEffects/Corner.d.ts +2 -2
  211. package/lib/module/renderer/components/pathEffects/Dash.d.ts +2 -2
  212. package/lib/module/renderer/components/pathEffects/Discrete.d.ts +2 -2
  213. package/lib/module/renderer/components/pathEffects/Line2D.d.ts +2 -2
  214. package/lib/module/renderer/components/pathEffects/Path1D.d.ts +2 -2
  215. package/lib/module/renderer/components/pathEffects/Path2D.d.ts +2 -2
  216. package/lib/module/renderer/components/pathEffects/Sum.d.ts +2 -2
  217. package/lib/module/renderer/components/shaders/Color.d.ts +2 -2
  218. package/lib/module/renderer/components/shaders/FractalNoise.d.ts +2 -2
  219. package/lib/module/renderer/components/shaders/LinearGradient.d.ts +2 -2
  220. package/lib/module/renderer/components/shaders/RadialGradient.d.ts +2 -2
  221. package/lib/module/renderer/components/shaders/Shader.d.ts +2 -2
  222. package/lib/module/renderer/components/shaders/SweepGradient.d.ts +2 -2
  223. package/lib/module/renderer/components/shaders/Turbulence.d.ts +2 -2
  224. package/lib/module/renderer/components/shaders/TwoPointConicalGradient.d.ts +2 -2
  225. package/lib/module/renderer/components/shapes/Box.d.ts +3 -3
  226. package/lib/module/renderer/components/shapes/Circle.d.ts +2 -2
  227. package/lib/module/renderer/components/shapes/DiffRect.d.ts +2 -2
  228. package/lib/module/renderer/components/shapes/Fill.d.ts +2 -2
  229. package/lib/module/renderer/components/shapes/FitBox.d.ts +2 -1
  230. package/lib/module/renderer/components/shapes/Line.d.ts +2 -2
  231. package/lib/module/renderer/components/shapes/Oval.d.ts +2 -2
  232. package/lib/module/renderer/components/shapes/Patch.d.ts +2 -2
  233. package/lib/module/renderer/components/shapes/Path.d.ts +2 -2
  234. package/lib/module/renderer/components/shapes/Points.d.ts +2 -2
  235. package/lib/module/renderer/components/shapes/Rect.d.ts +2 -2
  236. package/lib/module/renderer/components/shapes/RoundedRect.d.ts +2 -2
  237. package/lib/module/renderer/components/shapes/Vertices.d.ts +2 -2
  238. package/lib/module/renderer/components/text/Glyphs.d.ts +2 -2
  239. package/lib/module/renderer/components/text/Text.d.ts +2 -2
  240. package/lib/module/renderer/components/text/TextBlob.d.ts +2 -2
  241. package/lib/module/renderer/components/text/TextPath.d.ts +2 -2
  242. package/lib/module/renderer/processors/Animations/Animations.d.ts +6 -6
  243. package/lib/module/skia/NativeSetup.js +2 -1
  244. package/lib/module/skia/NativeSetup.js.map +1 -1
  245. package/lib/module/skia/core/Font.d.ts +2 -2
  246. package/lib/module/skia/types/Color.d.ts +2 -2
  247. package/lib/module/skia/types/ColorFilter/ColorFilter.d.ts +1 -1
  248. package/lib/module/skia/types/ColorFilter/ColorFilterFactory.d.ts +1 -1
  249. package/lib/module/skia/types/Data/Data.d.ts +6 -6
  250. package/lib/module/skia/types/ImageFilter/ImageFilter.d.ts +1 -1
  251. package/lib/module/skia/types/MaskFilter.d.ts +1 -1
  252. package/lib/module/skia/types/Matrix.d.ts +3 -3
  253. package/lib/module/skia/types/Path/Path.d.ts +1 -1
  254. package/lib/module/skia/types/PathEffect.d.ts +1 -1
  255. package/lib/module/skia/types/Point.d.ts +1 -1
  256. package/lib/module/skia/types/RSXform.d.ts +1 -1
  257. package/lib/module/skia/types/Shader/Shader.d.ts +2 -2
  258. package/lib/module/skia/types/TextBlob.d.ts +1 -1
  259. package/lib/module/skia/web/JsiSkData.d.ts +1 -1
  260. package/lib/module/skia/web/JsiSkRSXform.d.ts +1 -1
  261. package/lib/module/specs/NativeSkiaModule.d.ts +6 -0
  262. package/lib/module/specs/NativeSkiaModule.js +4 -0
  263. package/lib/module/specs/NativeSkiaModule.js.map +1 -0
  264. package/lib/module/specs/NativeSkiaModule.web.d.ts +2 -0
  265. package/lib/module/specs/NativeSkiaModule.web.js +4 -0
  266. package/lib/module/specs/NativeSkiaModule.web.js.map +1 -0
  267. package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +8 -0
  268. package/lib/module/specs/SkiaDomViewNativeComponent.js +4 -0
  269. package/lib/module/specs/SkiaDomViewNativeComponent.js.map +1 -0
  270. package/lib/module/specs/SkiaDrawViewNativeComponent.d.ts +8 -0
  271. package/lib/module/specs/SkiaDrawViewNativeComponent.js +4 -0
  272. package/lib/module/specs/SkiaDrawViewNativeComponent.js.map +1 -0
  273. package/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +8 -0
  274. package/lib/module/specs/SkiaPictureViewNativeComponent.js +4 -0
  275. package/lib/module/specs/SkiaPictureViewNativeComponent.js.map +1 -0
  276. package/lib/module/values/selector.d.ts +1 -1
  277. package/lib/module/views/SkiaBaseWebView.d.ts +1 -1
  278. package/lib/module/views/SkiaDomView.d.ts +1 -1
  279. package/lib/module/views/SkiaDomView.js +2 -1
  280. package/lib/module/views/SkiaDomView.js.map +1 -1
  281. package/lib/module/views/SkiaPictureView.d.ts +1 -1
  282. package/lib/module/views/SkiaPictureView.js +3 -3
  283. package/lib/module/views/SkiaPictureView.js.map +1 -1
  284. package/lib/module/views/SkiaView.d.ts +1 -1
  285. package/lib/module/views/SkiaView.js +3 -3
  286. package/lib/module/views/SkiaView.js.map +1 -1
  287. package/lib/module/views/types.d.ts +6 -6
  288. package/lib/module/web/WithSkiaWeb.d.ts +2 -2
  289. package/lib/typescript/src/Platform/IPlatform.d.ts +1 -3
  290. package/lib/typescript/src/animation/functions/interpolate.d.ts +1 -1
  291. package/lib/typescript/src/animation/timing/functions/types.d.ts +1 -1
  292. package/lib/typescript/src/animation/types.d.ts +2 -2
  293. package/lib/typescript/src/dom/nodes/Node.d.ts +1 -1
  294. package/lib/typescript/src/dom/types/Common.d.ts +8 -8
  295. package/lib/typescript/src/dom/types/DeclarationContext.d.ts +1 -1
  296. package/lib/typescript/src/dom/types/Drawings.d.ts +5 -5
  297. package/lib/typescript/src/dom/types/Node.d.ts +1 -1
  298. package/lib/typescript/src/dom/types/SkDOM.d.ts +4 -4
  299. package/lib/typescript/src/renderer/Canvas.d.ts +1 -1
  300. package/lib/typescript/src/renderer/DependencyManager.d.ts +3 -3
  301. package/lib/typescript/src/renderer/HostConfig.d.ts +12 -12
  302. package/lib/typescript/src/renderer/Reconciler.d.ts +1 -1
  303. package/lib/typescript/src/renderer/components/Blend.d.ts +2 -2
  304. package/lib/typescript/src/renderer/components/Drawing.d.ts +2 -2
  305. package/lib/typescript/src/renderer/components/Group.d.ts +2 -2
  306. package/lib/typescript/src/renderer/components/Mask.d.ts +2 -1
  307. package/lib/typescript/src/renderer/components/Paint.d.ts +2 -2
  308. package/lib/typescript/src/renderer/components/Picture.d.ts +2 -2
  309. package/lib/typescript/src/renderer/components/backdrop/BackdropBlur.d.ts +2 -2
  310. package/lib/typescript/src/renderer/components/backdrop/BackdropFilter.d.ts +2 -1
  311. package/lib/typescript/src/renderer/components/colorFilters/BlendColor.d.ts +2 -2
  312. package/lib/typescript/src/renderer/components/colorFilters/Lerp.d.ts +2 -2
  313. package/lib/typescript/src/renderer/components/colorFilters/LinearToSRGBGamma.d.ts +2 -2
  314. package/lib/typescript/src/renderer/components/colorFilters/LumaColorFilter.d.ts +2 -2
  315. package/lib/typescript/src/renderer/components/colorFilters/Matrix.d.ts +2 -2
  316. package/lib/typescript/src/renderer/components/colorFilters/SRGBToLinearGamma.d.ts +2 -2
  317. package/lib/typescript/src/renderer/components/image/Image.d.ts +2 -2
  318. package/lib/typescript/src/renderer/components/image/ImageSVG.d.ts +2 -2
  319. package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +2 -2
  320. package/lib/typescript/src/renderer/components/imageFilters/Blur.d.ts +2 -2
  321. package/lib/typescript/src/renderer/components/imageFilters/DisplacementMap.d.ts +2 -2
  322. package/lib/typescript/src/renderer/components/imageFilters/Morphology.d.ts +2 -2
  323. package/lib/typescript/src/renderer/components/imageFilters/Offset.d.ts +2 -2
  324. package/lib/typescript/src/renderer/components/imageFilters/RuntimeShader.d.ts +2 -2
  325. package/lib/typescript/src/renderer/components/imageFilters/Shadow.d.ts +2 -2
  326. package/lib/typescript/src/renderer/components/maskFilters/Blur.d.ts +2 -2
  327. package/lib/typescript/src/renderer/components/pathEffects/Corner.d.ts +2 -2
  328. package/lib/typescript/src/renderer/components/pathEffects/Dash.d.ts +2 -2
  329. package/lib/typescript/src/renderer/components/pathEffects/Discrete.d.ts +2 -2
  330. package/lib/typescript/src/renderer/components/pathEffects/Line2D.d.ts +2 -2
  331. package/lib/typescript/src/renderer/components/pathEffects/Path1D.d.ts +2 -2
  332. package/lib/typescript/src/renderer/components/pathEffects/Path2D.d.ts +2 -2
  333. package/lib/typescript/src/renderer/components/pathEffects/Sum.d.ts +2 -2
  334. package/lib/typescript/src/renderer/components/shaders/Color.d.ts +2 -2
  335. package/lib/typescript/src/renderer/components/shaders/FractalNoise.d.ts +2 -2
  336. package/lib/typescript/src/renderer/components/shaders/LinearGradient.d.ts +2 -2
  337. package/lib/typescript/src/renderer/components/shaders/RadialGradient.d.ts +2 -2
  338. package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +2 -2
  339. package/lib/typescript/src/renderer/components/shaders/SweepGradient.d.ts +2 -2
  340. package/lib/typescript/src/renderer/components/shaders/Turbulence.d.ts +2 -2
  341. package/lib/typescript/src/renderer/components/shaders/TwoPointConicalGradient.d.ts +2 -2
  342. package/lib/typescript/src/renderer/components/shapes/Box.d.ts +3 -3
  343. package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +2 -2
  344. package/lib/typescript/src/renderer/components/shapes/DiffRect.d.ts +2 -2
  345. package/lib/typescript/src/renderer/components/shapes/Fill.d.ts +2 -2
  346. package/lib/typescript/src/renderer/components/shapes/FitBox.d.ts +2 -1
  347. package/lib/typescript/src/renderer/components/shapes/Line.d.ts +2 -2
  348. package/lib/typescript/src/renderer/components/shapes/Oval.d.ts +2 -2
  349. package/lib/typescript/src/renderer/components/shapes/Patch.d.ts +2 -2
  350. package/lib/typescript/src/renderer/components/shapes/Path.d.ts +2 -2
  351. package/lib/typescript/src/renderer/components/shapes/Points.d.ts +2 -2
  352. package/lib/typescript/src/renderer/components/shapes/Rect.d.ts +2 -2
  353. package/lib/typescript/src/renderer/components/shapes/RoundedRect.d.ts +2 -2
  354. package/lib/typescript/src/renderer/components/shapes/Vertices.d.ts +2 -2
  355. package/lib/typescript/src/renderer/components/text/Glyphs.d.ts +2 -2
  356. package/lib/typescript/src/renderer/components/text/Text.d.ts +2 -2
  357. package/lib/typescript/src/renderer/components/text/TextBlob.d.ts +2 -2
  358. package/lib/typescript/src/renderer/components/text/TextPath.d.ts +2 -2
  359. package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +6 -6
  360. package/lib/typescript/src/skia/core/Font.d.ts +2 -2
  361. package/lib/typescript/src/skia/types/Color.d.ts +2 -2
  362. package/lib/typescript/src/skia/types/ColorFilter/ColorFilter.d.ts +1 -1
  363. package/lib/typescript/src/skia/types/ColorFilter/ColorFilterFactory.d.ts +1 -1
  364. package/lib/typescript/src/skia/types/Data/Data.d.ts +6 -6
  365. package/lib/typescript/src/skia/types/ImageFilter/ImageFilter.d.ts +1 -1
  366. package/lib/typescript/src/skia/types/MaskFilter.d.ts +1 -1
  367. package/lib/typescript/src/skia/types/Matrix.d.ts +3 -3
  368. package/lib/typescript/src/skia/types/Path/Path.d.ts +1 -1
  369. package/lib/typescript/src/skia/types/PathEffect.d.ts +1 -1
  370. package/lib/typescript/src/skia/types/Point.d.ts +1 -1
  371. package/lib/typescript/src/skia/types/RSXform.d.ts +1 -1
  372. package/lib/typescript/src/skia/types/Shader/Shader.d.ts +2 -2
  373. package/lib/typescript/src/skia/types/TextBlob.d.ts +1 -1
  374. package/lib/typescript/src/skia/web/JsiSkData.d.ts +1 -1
  375. package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +1 -1
  376. package/lib/typescript/src/specs/NativeSkiaModule.d.ts +6 -0
  377. package/lib/typescript/src/specs/NativeSkiaModule.web.d.ts +2 -0
  378. package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +8 -0
  379. package/lib/typescript/src/specs/SkiaDrawViewNativeComponent.d.ts +8 -0
  380. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.d.ts +8 -0
  381. package/lib/typescript/src/values/selector.d.ts +1 -1
  382. package/lib/typescript/src/views/SkiaBaseWebView.d.ts +1 -1
  383. package/lib/typescript/src/views/SkiaDomView.d.ts +1 -1
  384. package/lib/typescript/src/views/SkiaPictureView.d.ts +1 -1
  385. package/lib/typescript/src/views/SkiaView.d.ts +1 -1
  386. package/lib/typescript/src/views/types.d.ts +6 -6
  387. package/lib/typescript/src/web/WithSkiaWeb.d.ts +2 -2
  388. package/package.json +18 -6
  389. package/react-native-skia.podspec +11 -3
  390. package/src/Platform/IPlatform.ts +1 -3
  391. package/src/Platform/Platform.ts +0 -4
  392. package/src/Platform/Platform.web.tsx +0 -4
  393. package/src/dom/types/DrawingContext.ts +1 -1
  394. package/src/external/reanimated/renderHelpers.ts +1 -1
  395. package/src/renderer/Canvas.tsx +2 -1
  396. package/src/renderer/Reconciler.tsx +2 -1
  397. package/src/skia/NativeSetup.ts +2 -1
  398. package/src/specs/NativeSkiaModule.ts +9 -0
  399. package/src/specs/NativeSkiaModule.web.ts +4 -0
  400. package/src/specs/SkiaDomViewNativeComponent.ts +10 -0
  401. package/src/specs/SkiaDrawViewNativeComponent.ts +10 -0
  402. package/src/specs/SkiaPictureViewNativeComponent.ts +10 -0
  403. package/src/views/SkiaDomView.tsx +3 -2
  404. package/src/views/SkiaPictureView.tsx +4 -5
  405. package/src/views/SkiaView.tsx +4 -5
  406. /package/cpp/rnskia/dom/props/{ImageProps.h → SkImageProps.h} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["NativeSkiaPictureView","Platform","requireNativeComponent","SkiaPictureView","React","Component","constructor","props","_nativeId","SkiaViewNativeId","current","picture","onSize","assertSkiaViewApi","SkiaViewApi","setJsiProperty","nativeId","componentDidUpdate","prevProps","makeImageSnapshot","rect","redraw","requestRedraw","registerValues","values","registerValuesInView","render","mode","debug","viewProps","callJsiMethod","Error"],"sources":["SkiaPictureView.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { SkRect } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport { Platform } from \"../Platform\";\n\nimport { SkiaViewApi } from \"./api\";\nimport { SkiaViewNativeId } from \"./SkiaView\";\nimport type { NativeSkiaViewProps, SkiaPictureViewProps } from \"./types\";\n\nconst NativeSkiaPictureView =\n Platform.requireNativeComponent<NativeSkiaViewProps>(\"SkiaPictureView\");\n\nexport class SkiaPictureView extends React.Component<SkiaPictureViewProps> {\n constructor(props: SkiaPictureViewProps) {\n super(props);\n this._nativeId = SkiaViewNativeId.current++;\n const { picture, onSize } = props;\n if (picture) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"picture\", picture);\n }\n if (onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n private _nativeId: number;\n\n public get nativeId() {\n return this._nativeId;\n }\n\n componentDidUpdate(prevProps: SkiaPictureViewProps) {\n const { picture, onSize } = this.props;\n if (picture !== prevProps.picture) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"picture\", picture);\n }\n if (onSize !== prevProps.onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshot(this._nativeId, rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n public redraw() {\n assertSkiaViewApi();\n SkiaViewApi.requestRedraw(this._nativeId);\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(values: SkiaValue<unknown>[]): () => void {\n assertSkiaViewApi();\n return SkiaViewApi.registerValuesInView(this._nativeId, values);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <NativeSkiaPictureView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n mode={mode}\n debug={debug}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.callJsiMethod === null ||\n SkiaViewApi.registerValuesInView === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;AACA;;;;;;;;AAGA,MAAMA,qBAAqB,GACzBC,kBAAA,CAASC,sBAAT,CAAqD,iBAArD,CADF;;AAGO,MAAMC,eAAN,SAA8BC,cAAA,CAAMC,SAApC,CAAoE;EACzEC,WAAW,CAACC,KAAD,EAA8B;IACvC,MAAMA,KAAN;;IADuC;;IAEvC,KAAKC,SAAL,GAAiBC,0BAAA,CAAiBC,OAAjB,EAAjB;IACA,MAAM;MAAEC,OAAF;MAAWC;IAAX,IAAsBL,KAA5B;;IACA,IAAII,OAAJ,EAAa;MACXE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,SAA3C,EAAsDG,OAAtD;IACD;;IACD,IAAIC,MAAJ,EAAY;MACVC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,QAA3C,EAAqDI,MAArD;IACD;EACF;;EAIkB,IAARI,QAAQ,GAAG;IACpB,OAAO,KAAKR,SAAZ;EACD;;EAEDS,kBAAkB,CAACC,SAAD,EAAkC;IAClD,MAAM;MAAEP,OAAF;MAAWC;IAAX,IAAsB,KAAKL,KAAjC;;IACA,IAAII,OAAO,KAAKO,SAAS,CAACP,OAA1B,EAAmC;MACjCE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,SAA3C,EAAsDG,OAAtD;IACD;;IACD,IAAIC,MAAM,KAAKM,SAAS,CAACN,MAAzB,EAAiC;MAC/BC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,QAA3C,EAAqDI,MAArD;IACD;EACF;EAED;AACF;AACA;AACA;AACA;;;EACSO,iBAAiB,CAACC,IAAD,EAAgB;IACtCP,iBAAiB;IACjB,OAAOC,gBAAA,CAAYK,iBAAZ,CAA8B,KAAKX,SAAnC,EAA8CY,IAA9C,CAAP;EACD;EAED;AACF;AACA;;;EACSC,MAAM,GAAG;IACdR,iBAAiB;;IACjBC,gBAAA,CAAYQ,aAAZ,CAA0B,KAAKd,SAA/B;EACD;EAED;AACF;AACA;AACA;AACA;;;EACSe,cAAc,CAACC,MAAD,EAA2C;IAC9DX,iBAAiB;IACjB,OAAOC,gBAAA,CAAYW,oBAAZ,CAAiC,KAAKjB,SAAtC,EAAiDgB,MAAjD,CAAP;EACD;;EAEDE,MAAM,GAAG;IACP,MAAM;MAAEC,IAAF;MAAQC,KAAK,GAAG,KAAhB;MAAuB,GAAGC;IAA1B,IAAwC,KAAKtB,KAAnD;IACA,oBACE,6BAAC,qBAAD;MACE,WAAW,EAAE,KADf;MAEE,QAAQ,EAAG,GAAE,KAAKC,SAAU,EAF9B;MAGE,IAAI,EAAEmB,IAHR;MAIE,KAAK,EAAEC;IAJT,GAKMC,SALN,EADF;EASD;;AAxEwE;;;;AA2E3E,MAAMhB,iBAAiB,GAAG,MAAM;EAC9B,IACEC,gBAAA,KAAgB,IAAhB,IACAA,gBAAA,CAAYC,cAAZ,KAA+B,IAD/B,IAEAD,gBAAA,CAAYgB,aAAZ,KAA8B,IAF9B,IAGAhB,gBAAA,CAAYW,oBAAZ,KAAqC,IAHrC,IAIAX,gBAAA,CAAYQ,aAAZ,KAA8B,IAJ9B,IAKAR,gBAAA,CAAYK,iBAAZ,KAAkC,IANpC,EAOE;IACA,MAAMY,KAAK,CAAC,8BAAD,CAAX;EACD;AACF,CAXD"}
1
+ {"version":3,"names":["NativeSkiaPictureView","SkiaPictureViewNativeComponent","SkiaPictureView","React","Component","constructor","props","_nativeId","SkiaViewNativeId","current","picture","onSize","assertSkiaViewApi","SkiaViewApi","setJsiProperty","nativeId","componentDidUpdate","prevProps","makeImageSnapshot","rect","redraw","requestRedraw","registerValues","values","registerValuesInView","render","mode","debug","viewProps","callJsiMethod","Error"],"sources":["SkiaPictureView.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { SkRect } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\n\nimport { SkiaViewApi } from \"./api\";\nimport { SkiaViewNativeId } from \"./SkiaView\";\nimport type { SkiaPictureViewProps } from \"./types\";\n\nconst NativeSkiaPictureView = SkiaPictureViewNativeComponent;\n\nexport class SkiaPictureView extends React.Component<SkiaPictureViewProps> {\n constructor(props: SkiaPictureViewProps) {\n super(props);\n this._nativeId = SkiaViewNativeId.current++;\n const { picture, onSize } = props;\n if (picture) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"picture\", picture);\n }\n if (onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n private _nativeId: number;\n\n public get nativeId() {\n return this._nativeId;\n }\n\n componentDidUpdate(prevProps: SkiaPictureViewProps) {\n const { picture, onSize } = this.props;\n if (picture !== prevProps.picture) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"picture\", picture);\n }\n if (onSize !== prevProps.onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshot(this._nativeId, rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n public redraw() {\n assertSkiaViewApi();\n SkiaViewApi.requestRedraw(this._nativeId);\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(values: SkiaValue<unknown>[]): () => void {\n assertSkiaViewApi();\n return SkiaViewApi.registerValuesInView(this._nativeId, values);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <NativeSkiaPictureView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n mode={mode ?? \"default\"}\n debug={debug}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.callJsiMethod === null ||\n SkiaViewApi.registerValuesInView === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;AACA;;;;;;;;AAGA,MAAMA,qBAAqB,GAAGC,uCAA9B;;AAEO,MAAMC,eAAN,SAA8BC,cAAA,CAAMC,SAApC,CAAoE;EACzEC,WAAW,CAACC,KAAD,EAA8B;IACvC,MAAMA,KAAN;;IADuC;;IAEvC,KAAKC,SAAL,GAAiBC,0BAAA,CAAiBC,OAAjB,EAAjB;IACA,MAAM;MAAEC,OAAF;MAAWC;IAAX,IAAsBL,KAA5B;;IACA,IAAII,OAAJ,EAAa;MACXE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,SAA3C,EAAsDG,OAAtD;IACD;;IACD,IAAIC,MAAJ,EAAY;MACVC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,QAA3C,EAAqDI,MAArD;IACD;EACF;;EAIkB,IAARI,QAAQ,GAAG;IACpB,OAAO,KAAKR,SAAZ;EACD;;EAEDS,kBAAkB,CAACC,SAAD,EAAkC;IAClD,MAAM;MAAEP,OAAF;MAAWC;IAAX,IAAsB,KAAKL,KAAjC;;IACA,IAAII,OAAO,KAAKO,SAAS,CAACP,OAA1B,EAAmC;MACjCE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,SAA3C,EAAsDG,OAAtD;IACD;;IACD,IAAIC,MAAM,KAAKM,SAAS,CAACN,MAAzB,EAAiC;MAC/BC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKP,SAAhC,EAA2C,QAA3C,EAAqDI,MAArD;IACD;EACF;EAED;AACF;AACA;AACA;AACA;;;EACSO,iBAAiB,CAACC,IAAD,EAAgB;IACtCP,iBAAiB;IACjB,OAAOC,gBAAA,CAAYK,iBAAZ,CAA8B,KAAKX,SAAnC,EAA8CY,IAA9C,CAAP;EACD;EAED;AACF;AACA;;;EACSC,MAAM,GAAG;IACdR,iBAAiB;;IACjBC,gBAAA,CAAYQ,aAAZ,CAA0B,KAAKd,SAA/B;EACD;EAED;AACF;AACA;AACA;AACA;;;EACSe,cAAc,CAACC,MAAD,EAA2C;IAC9DX,iBAAiB;IACjB,OAAOC,gBAAA,CAAYW,oBAAZ,CAAiC,KAAKjB,SAAtC,EAAiDgB,MAAjD,CAAP;EACD;;EAEDE,MAAM,GAAG;IACP,MAAM;MAAEC,IAAF;MAAQC,KAAK,GAAG,KAAhB;MAAuB,GAAGC;IAA1B,IAAwC,KAAKtB,KAAnD;IACA,oBACE,6BAAC,qBAAD;MACE,WAAW,EAAE,KADf;MAEE,QAAQ,EAAG,GAAE,KAAKC,SAAU,EAF9B;MAGE,IAAI,EAAEmB,IAAI,IAAI,SAHhB;MAIE,KAAK,EAAEC;IAJT,GAKMC,SALN,EADF;EASD;;AAxEwE;;;;AA2E3E,MAAMhB,iBAAiB,GAAG,MAAM;EAC9B,IACEC,gBAAA,KAAgB,IAAhB,IACAA,gBAAA,CAAYC,cAAZ,KAA+B,IAD/B,IAEAD,gBAAA,CAAYgB,aAAZ,KAA8B,IAF9B,IAGAhB,gBAAA,CAAYW,oBAAZ,KAAqC,IAHrC,IAIAX,gBAAA,CAAYQ,aAAZ,KAA8B,IAJ9B,IAKAR,gBAAA,CAAYK,iBAAZ,KAAkC,IANpC,EAOE;IACA,MAAMY,KAAK,CAAC,8BAAD,CAAX;EACD;AACF,CAXD"}
@@ -26,5 +26,5 @@ export declare class SkiaView extends React.Component<SkiaDrawViewProps> {
26
26
  * @param values Values to register
27
27
  */
28
28
  registerValues(values: SkiaValue<unknown>[]): () => void;
29
- render(): JSX.Element;
29
+ render(): React.JSX.Element;
30
30
  }
@@ -7,7 +7,7 @@ exports.SkiaViewNativeId = exports.SkiaView = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _Platform = require("../Platform");
10
+ var _SkiaDrawViewNativeComponent = _interopRequireDefault(require("../specs/SkiaDrawViewNativeComponent"));
11
11
 
12
12
  var _api = require("./api");
13
13
 
@@ -21,8 +21,7 @@ const SkiaViewNativeId = {
21
21
  current: 1000
22
22
  };
23
23
  exports.SkiaViewNativeId = SkiaViewNativeId;
24
-
25
- const NativeSkiaView = _Platform.Platform.requireNativeComponent("SkiaDrawView");
24
+ const NativeSkiaView = _SkiaDrawViewNativeComponent.default;
26
25
 
27
26
  class SkiaView extends _react.default.Component {
28
27
  constructor(props) {
@@ -114,7 +113,7 @@ class SkiaView extends _react.default.Component {
114
113
  return /*#__PURE__*/_react.default.createElement(NativeSkiaView, _extends({
115
114
  collapsable: false,
116
115
  nativeID: `${this._nativeId}`,
117
- mode: mode,
116
+ mode: mode ?? "default",
118
117
  debug: debug
119
118
  }, viewProps));
120
119
  }
@@ -1 +1 @@
1
- {"version":3,"names":["SkiaViewNativeId","current","NativeSkiaView","Platform","requireNativeComponent","SkiaView","React","Component","constructor","props","_nativeId","onDraw","onSize","assertSkiaViewApi","SkiaViewApi","setJsiProperty","nativeId","componentDidUpdate","prevProps","makeImageSnapshot","rect","redraw","requestRedraw","registerValues","values","registerValuesInView","render","mode","debug","viewProps","callJsiMethod","Error"],"sources":["SkiaView.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { SkRect } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport { Platform } from \"../Platform\";\n\nimport { SkiaViewApi } from \"./api\";\nimport type { NativeSkiaViewProps, SkiaDrawViewProps } from \"./types\";\n\nexport const SkiaViewNativeId = { current: 1000 };\n\nconst NativeSkiaView =\n Platform.requireNativeComponent<NativeSkiaViewProps>(\"SkiaDrawView\");\n\nexport class SkiaView extends React.Component<SkiaDrawViewProps> {\n constructor(props: SkiaDrawViewProps) {\n super(props);\n this._nativeId = SkiaViewNativeId.current++;\n const { onDraw, onSize } = props;\n if (onDraw) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"drawCallback\", onDraw);\n }\n if (onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n private _nativeId: number;\n\n public get nativeId() {\n return this._nativeId;\n }\n\n componentDidUpdate(prevProps: SkiaDrawViewProps) {\n const { onDraw, onSize } = this.props;\n if (onDraw !== prevProps.onDraw) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"drawCallback\", onDraw);\n }\n if (onSize !== prevProps.onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshot(this._nativeId, rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n public redraw() {\n assertSkiaViewApi();\n SkiaViewApi.requestRedraw(this._nativeId);\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(values: SkiaValue<unknown>[]): () => void {\n assertSkiaViewApi();\n return SkiaViewApi.registerValuesInView(this._nativeId, values);\n }\n\n render() {\n const { mode, debug = false, onSize, ...viewProps } = this.props;\n return (\n <NativeSkiaView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n mode={mode}\n debug={debug}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.callJsiMethod === null ||\n SkiaViewApi.registerValuesInView === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;;;;;;;AAGO,MAAMA,gBAAgB,GAAG;EAAEC,OAAO,EAAE;AAAX,CAAzB;;;AAEP,MAAMC,cAAc,GAClBC,kBAAA,CAASC,sBAAT,CAAqD,cAArD,CADF;;AAGO,MAAMC,QAAN,SAAuBC,cAAA,CAAMC,SAA7B,CAA0D;EAC/DC,WAAW,CAACC,KAAD,EAA2B;IACpC,MAAMA,KAAN;;IADoC;;IAEpC,KAAKC,SAAL,GAAiBV,gBAAgB,CAACC,OAAjB,EAAjB;IACA,MAAM;MAAEU,MAAF;MAAUC;IAAV,IAAqBH,KAA3B;;IACA,IAAIE,MAAJ,EAAY;MACVE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,cAA3C,EAA2DC,MAA3D;IACD;;IACD,IAAIC,MAAJ,EAAY;MACVC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,QAA3C,EAAqDE,MAArD;IACD;EACF;;EAIkB,IAARI,QAAQ,GAAG;IACpB,OAAO,KAAKN,SAAZ;EACD;;EAEDO,kBAAkB,CAACC,SAAD,EAA+B;IAC/C,MAAM;MAAEP,MAAF;MAAUC;IAAV,IAAqB,KAAKH,KAAhC;;IACA,IAAIE,MAAM,KAAKO,SAAS,CAACP,MAAzB,EAAiC;MAC/BE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,cAA3C,EAA2DC,MAA3D;IACD;;IACD,IAAIC,MAAM,KAAKM,SAAS,CAACN,MAAzB,EAAiC;MAC/BC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,QAA3C,EAAqDE,MAArD;IACD;EACF;EAED;AACF;AACA;AACA;AACA;;;EACSO,iBAAiB,CAACC,IAAD,EAAgB;IACtCP,iBAAiB;IACjB,OAAOC,gBAAA,CAAYK,iBAAZ,CAA8B,KAAKT,SAAnC,EAA8CU,IAA9C,CAAP;EACD;EAED;AACF;AACA;;;EACSC,MAAM,GAAG;IACdR,iBAAiB;;IACjBC,gBAAA,CAAYQ,aAAZ,CAA0B,KAAKZ,SAA/B;EACD;EAED;AACF;AACA;AACA;AACA;;;EACSa,cAAc,CAACC,MAAD,EAA2C;IAC9DX,iBAAiB;IACjB,OAAOC,gBAAA,CAAYW,oBAAZ,CAAiC,KAAKf,SAAtC,EAAiDc,MAAjD,CAAP;EACD;;EAEDE,MAAM,GAAG;IACP,MAAM;MAAEC,IAAF;MAAQC,KAAK,GAAG,KAAhB;MAAuBhB,MAAvB;MAA+B,GAAGiB;IAAlC,IAAgD,KAAKpB,KAA3D;IACA,oBACE,6BAAC,cAAD;MACE,WAAW,EAAE,KADf;MAEE,QAAQ,EAAG,GAAE,KAAKC,SAAU,EAF9B;MAGE,IAAI,EAAEiB,IAHR;MAIE,KAAK,EAAEC;IAJT,GAKMC,SALN,EADF;EASD;;AAxE8D;;;;AA2EjE,MAAMhB,iBAAiB,GAAG,MAAM;EAC9B,IACEC,gBAAA,KAAgB,IAAhB,IACAA,gBAAA,CAAYC,cAAZ,KAA+B,IAD/B,IAEAD,gBAAA,CAAYgB,aAAZ,KAA8B,IAF9B,IAGAhB,gBAAA,CAAYW,oBAAZ,KAAqC,IAHrC,IAIAX,gBAAA,CAAYQ,aAAZ,KAA8B,IAJ9B,IAKAR,gBAAA,CAAYK,iBAAZ,KAAkC,IANpC,EAOE;IACA,MAAMY,KAAK,CAAC,8BAAD,CAAX;EACD;AACF,CAXD"}
1
+ {"version":3,"names":["SkiaViewNativeId","current","NativeSkiaView","SkiaDrawViewNativeComponent","SkiaView","React","Component","constructor","props","_nativeId","onDraw","onSize","assertSkiaViewApi","SkiaViewApi","setJsiProperty","nativeId","componentDidUpdate","prevProps","makeImageSnapshot","rect","redraw","requestRedraw","registerValues","values","registerValuesInView","render","mode","debug","viewProps","callJsiMethod","Error"],"sources":["SkiaView.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { SkRect } from \"../skia/types\";\nimport type { SkiaValue } from \"../values\";\nimport SkiaDrawViewNativeComponent from \"../specs/SkiaDrawViewNativeComponent\";\n\nimport { SkiaViewApi } from \"./api\";\nimport type { SkiaDrawViewProps } from \"./types\";\n\nexport const SkiaViewNativeId = { current: 1000 };\n\nconst NativeSkiaView = SkiaDrawViewNativeComponent;\n\nexport class SkiaView extends React.Component<SkiaDrawViewProps> {\n constructor(props: SkiaDrawViewProps) {\n super(props);\n this._nativeId = SkiaViewNativeId.current++;\n const { onDraw, onSize } = props;\n if (onDraw) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"drawCallback\", onDraw);\n }\n if (onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n private _nativeId: number;\n\n public get nativeId() {\n return this._nativeId;\n }\n\n componentDidUpdate(prevProps: SkiaDrawViewProps) {\n const { onDraw, onSize } = this.props;\n if (onDraw !== prevProps.onDraw) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"drawCallback\", onDraw);\n }\n if (onSize !== prevProps.onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshot(this._nativeId, rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n public redraw() {\n assertSkiaViewApi();\n SkiaViewApi.requestRedraw(this._nativeId);\n }\n\n /**\n * Registers one or move values as a dependant value of the Skia View. The view will\n * The view will redraw itself when any of the values change.\n * @param values Values to register\n */\n public registerValues(values: SkiaValue<unknown>[]): () => void {\n assertSkiaViewApi();\n return SkiaViewApi.registerValuesInView(this._nativeId, values);\n }\n\n render() {\n const { mode, debug = false, onSize, ...viewProps } = this.props;\n return (\n <NativeSkiaView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n mode={mode ?? \"default\"}\n debug={debug}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.callJsiMethod === null ||\n SkiaViewApi.registerValuesInView === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;;;;;;;AAGO,MAAMA,gBAAgB,GAAG;EAAEC,OAAO,EAAE;AAAX,CAAzB;;AAEP,MAAMC,cAAc,GAAGC,oCAAvB;;AAEO,MAAMC,QAAN,SAAuBC,cAAA,CAAMC,SAA7B,CAA0D;EAC/DC,WAAW,CAACC,KAAD,EAA2B;IACpC,MAAMA,KAAN;;IADoC;;IAEpC,KAAKC,SAAL,GAAiBT,gBAAgB,CAACC,OAAjB,EAAjB;IACA,MAAM;MAAES,MAAF;MAAUC;IAAV,IAAqBH,KAA3B;;IACA,IAAIE,MAAJ,EAAY;MACVE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,cAA3C,EAA2DC,MAA3D;IACD;;IACD,IAAIC,MAAJ,EAAY;MACVC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,QAA3C,EAAqDE,MAArD;IACD;EACF;;EAIkB,IAARI,QAAQ,GAAG;IACpB,OAAO,KAAKN,SAAZ;EACD;;EAEDO,kBAAkB,CAACC,SAAD,EAA+B;IAC/C,MAAM;MAAEP,MAAF;MAAUC;IAAV,IAAqB,KAAKH,KAAhC;;IACA,IAAIE,MAAM,KAAKO,SAAS,CAACP,MAAzB,EAAiC;MAC/BE,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,cAA3C,EAA2DC,MAA3D;IACD;;IACD,IAAIC,MAAM,KAAKM,SAAS,CAACN,MAAzB,EAAiC;MAC/BC,iBAAiB;;MACjBC,gBAAA,CAAYC,cAAZ,CAA2B,KAAKL,SAAhC,EAA2C,QAA3C,EAAqDE,MAArD;IACD;EACF;EAED;AACF;AACA;AACA;AACA;;;EACSO,iBAAiB,CAACC,IAAD,EAAgB;IACtCP,iBAAiB;IACjB,OAAOC,gBAAA,CAAYK,iBAAZ,CAA8B,KAAKT,SAAnC,EAA8CU,IAA9C,CAAP;EACD;EAED;AACF;AACA;;;EACSC,MAAM,GAAG;IACdR,iBAAiB;;IACjBC,gBAAA,CAAYQ,aAAZ,CAA0B,KAAKZ,SAA/B;EACD;EAED;AACF;AACA;AACA;AACA;;;EACSa,cAAc,CAACC,MAAD,EAA2C;IAC9DX,iBAAiB;IACjB,OAAOC,gBAAA,CAAYW,oBAAZ,CAAiC,KAAKf,SAAtC,EAAiDc,MAAjD,CAAP;EACD;;EAEDE,MAAM,GAAG;IACP,MAAM;MAAEC,IAAF;MAAQC,KAAK,GAAG,KAAhB;MAAuBhB,MAAvB;MAA+B,GAAGiB;IAAlC,IAAgD,KAAKpB,KAA3D;IACA,oBACE,6BAAC,cAAD;MACE,WAAW,EAAE,KADf;MAEE,QAAQ,EAAG,GAAE,KAAKC,SAAU,EAF9B;MAGE,IAAI,EAAEiB,IAAI,IAAI,SAHhB;MAIE,KAAK,EAAEC;IAJT,GAKMC,SALN,EADF;EASD;;AAxE8D;;;;AA2EjE,MAAMhB,iBAAiB,GAAG,MAAM;EAC9B,IACEC,gBAAA,KAAgB,IAAhB,IACAA,gBAAA,CAAYC,cAAZ,KAA+B,IAD/B,IAEAD,gBAAA,CAAYgB,aAAZ,KAA8B,IAF9B,IAGAhB,gBAAA,CAAYW,oBAAZ,KAAqC,IAHrC,IAIAX,gBAAA,CAAYQ,aAAZ,KAA8B,IAJ9B,IAKAR,gBAAA,CAAYK,iBAAZ,KAAkC,IANpC,EAOE;IACA,MAAMY,KAAK,CAAC,8BAAD,CAAX;EACD;AACF,CAXD"}
@@ -3,8 +3,8 @@ import type { GroupProps, RenderNode } from "../dom/types";
3
3
  import type { SkCanvas, SkImage, SkPicture, SkRect, SkSize } from "../skia/types";
4
4
  import type { SkiaMutableValue, SkiaValue } from "../values";
5
5
  import type { SharedValueType } from "../renderer/processors/Animations/Animations";
6
- export declare type DrawMode = "continuous" | "default";
7
- export declare type NativeSkiaViewProps = ViewProps & {
6
+ export type DrawMode = "continuous" | "default";
7
+ export type NativeSkiaViewProps = ViewProps & {
8
8
  mode?: DrawMode;
9
9
  debug?: boolean;
10
10
  };
@@ -28,17 +28,17 @@ export interface DrawingInfo {
28
28
  timestamp: number;
29
29
  touches: Array<Array<TouchInfo>>;
30
30
  }
31
- export declare type ExtendedTouchInfo = TouchInfo & {
31
+ export type ExtendedTouchInfo = TouchInfo & {
32
32
  velocityX: number;
33
33
  velocityY: number;
34
34
  };
35
- export declare type TouchHandlers = {
35
+ export type TouchHandlers = {
36
36
  onStart?: (touchInfo: TouchInfo) => void;
37
37
  onActive?: (touchInfo: ExtendedTouchInfo) => void;
38
38
  onEnd?: (touchInfo: ExtendedTouchInfo) => void;
39
39
  };
40
- export declare type TouchHandler = (touchInfo: Array<Array<TouchInfo>>) => void;
41
- export declare type RNSkiaDrawCallback = (canvas: SkCanvas, info: DrawingInfo) => void;
40
+ export type TouchHandler = (touchInfo: Array<Array<TouchInfo>>) => void;
41
+ export type RNSkiaDrawCallback = (canvas: SkCanvas, info: DrawingInfo) => void;
42
42
  /**
43
43
  * Listener interface for value changes
44
44
  */
@@ -1,5 +1,5 @@
1
1
  import type { ComponentProps, ComponentType } from "react";
2
- import { Suspense } from "react";
2
+ import React, { Suspense } from "react";
3
3
  import { LoadSkiaWeb } from "./LoadSkiaWeb";
4
4
  interface WithSkiaProps {
5
5
  fallback?: ComponentProps<typeof Suspense>["fallback"];
@@ -8,5 +8,5 @@ interface WithSkiaProps {
8
8
  }>;
9
9
  opts?: Parameters<typeof LoadSkiaWeb>[0];
10
10
  }
11
- export declare const WithSkiaWeb: ({ getComponent, fallback, opts, }: WithSkiaProps) => JSX.Element;
11
+ export declare const WithSkiaWeb: ({ getComponent, fallback, opts, }: WithSkiaProps) => React.JSX.Element;
12
12
  export {};
@@ -1,11 +1,9 @@
1
1
  /// <reference types="react" />
2
- import type { HostComponent, NodeHandle, ViewComponent } from "react-native";
2
+ import type { NodeHandle, ViewComponent } from "react-native";
3
3
  import type { DataModule } from "../skia/types";
4
4
  export interface IPlatform {
5
5
  OS: string;
6
- requireNativeComponent: <T>(viewName: string) => HostComponent<T>;
7
6
  PixelRatio: number;
8
- NativeModules: Record<string, any>;
9
7
  findNodeHandle: (componentOrHandle: null | number | React.Component<any, any> | React.ComponentClass<any>) => null | NodeHandle;
10
8
  resolveAsset: (source: DataModule) => string;
11
9
  View: typeof ViewComponent;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IPlatform.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { HostComponent, NodeHandle, ViewComponent } from \"react-native\";\n\nimport type { DataModule } from \"../skia/types\";\n\nexport interface IPlatform {\n OS: string;\n requireNativeComponent: <T>(viewName: string) => HostComponent<T>;\n PixelRatio: number;\n NativeModules: Record<string, any>;\n findNodeHandle: (\n componentOrHandle:\n | null\n | number\n | React.Component<any, any>\n | React.ComponentClass<any>\n ) => null | NodeHandle;\n resolveAsset: (source: DataModule) => string;\n View: typeof ViewComponent;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["IPlatform.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { NodeHandle, ViewComponent } from \"react-native\";\n\nimport type { DataModule } from \"../skia/types\";\n\nexport interface IPlatform {\n OS: string;\n PixelRatio: number;\n findNodeHandle: (\n componentOrHandle:\n | null\n | number\n | React.Component<any, any>\n | React.ComponentClass<any>\n ) => null | NodeHandle;\n resolveAsset: (source: DataModule) => string;\n View: typeof ViewComponent;\n}\n"],"mappings":""}
@@ -1,14 +1,12 @@
1
- import { Image, PixelRatio, requireNativeComponent, Platform as RNPlatform, findNodeHandle, NativeModules, View } from "react-native";
1
+ import { Image, PixelRatio, Platform as RNPlatform, findNodeHandle, View } from "react-native";
2
2
  import { isRNModule } from "../skia/types";
3
3
  export const Platform = {
4
4
  OS: RNPlatform.OS,
5
5
  PixelRatio: PixelRatio.get(),
6
- requireNativeComponent,
7
6
  resolveAsset: source => {
8
7
  return isRNModule(source) ? Image.resolveAssetSource(source).uri : source.default;
9
8
  },
10
9
  findNodeHandle,
11
- NativeModules,
12
10
  View
13
11
  };
14
12
  //# sourceMappingURL=Platform.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Image","PixelRatio","requireNativeComponent","Platform","RNPlatform","findNodeHandle","NativeModules","View","isRNModule","OS","get","resolveAsset","source","resolveAssetSource","uri","default"],"sources":["Platform.ts"],"sourcesContent":["import {\n Image,\n PixelRatio,\n requireNativeComponent,\n Platform as RNPlatform,\n findNodeHandle,\n NativeModules,\n View,\n} from \"react-native\";\n\nimport type { DataModule } from \"../skia/types\";\nimport { isRNModule } from \"../skia/types\";\n\nimport type { IPlatform } from \"./IPlatform\";\n\nexport const Platform: IPlatform = {\n OS: RNPlatform.OS,\n PixelRatio: PixelRatio.get(),\n requireNativeComponent,\n resolveAsset: (source: DataModule) => {\n return isRNModule(source)\n ? Image.resolveAssetSource(source).uri\n : source.default;\n },\n findNodeHandle,\n NativeModules,\n View,\n};\n"],"mappings":"AAAA,SACEA,KADF,EAEEC,UAFF,EAGEC,sBAHF,EAIEC,QAAQ,IAAIC,UAJd,EAKEC,cALF,EAMEC,aANF,EAOEC,IAPF,QAQO,cARP;AAWA,SAASC,UAAT,QAA2B,eAA3B;AAIA,OAAO,MAAML,QAAmB,GAAG;EACjCM,EAAE,EAAEL,UAAU,CAACK,EADkB;EAEjCR,UAAU,EAAEA,UAAU,CAACS,GAAX,EAFqB;EAGjCR,sBAHiC;EAIjCS,YAAY,EAAGC,MAAD,IAAwB;IACpC,OAAOJ,UAAU,CAACI,MAAD,CAAV,GACHZ,KAAK,CAACa,kBAAN,CAAyBD,MAAzB,EAAiCE,GAD9B,GAEHF,MAAM,CAACG,OAFX;EAGD,CARgC;EASjCV,cATiC;EAUjCC,aAViC;EAWjCC;AAXiC,CAA5B"}
1
+ {"version":3,"names":["Image","PixelRatio","Platform","RNPlatform","findNodeHandle","View","isRNModule","OS","get","resolveAsset","source","resolveAssetSource","uri","default"],"sources":["Platform.ts"],"sourcesContent":["import {\n Image,\n PixelRatio,\n Platform as RNPlatform,\n findNodeHandle,\n View,\n} from \"react-native\";\n\nimport type { DataModule } from \"../skia/types\";\nimport { isRNModule } from \"../skia/types\";\n\nimport type { IPlatform } from \"./IPlatform\";\n\nexport const Platform: IPlatform = {\n OS: RNPlatform.OS,\n PixelRatio: PixelRatio.get(),\n resolveAsset: (source: DataModule) => {\n return isRNModule(source)\n ? Image.resolveAssetSource(source).uri\n : source.default;\n },\n findNodeHandle,\n View,\n};\n"],"mappings":"AAAA,SACEA,KADF,EAEEC,UAFF,EAGEC,QAAQ,IAAIC,UAHd,EAIEC,cAJF,EAKEC,IALF,QAMO,cANP;AASA,SAASC,UAAT,QAA2B,eAA3B;AAIA,OAAO,MAAMJ,QAAmB,GAAG;EACjCK,EAAE,EAAEJ,UAAU,CAACI,EADkB;EAEjCN,UAAU,EAAEA,UAAU,CAACO,GAAX,EAFqB;EAGjCC,YAAY,EAAGC,MAAD,IAAwB;IACpC,OAAOJ,UAAU,CAACI,MAAD,CAAV,GACHV,KAAK,CAACW,kBAAN,CAAyBD,MAAzB,EAAiCE,GAD9B,GAEHF,MAAM,CAACG,OAFX;EAGD,CAPgC;EAQjCT,cARiC;EASjCC;AATiC,CAA5B"}
@@ -124,9 +124,6 @@ const View = _ref => {
124
124
  export const Platform = {
125
125
  OS: "web",
126
126
  PixelRatio: window.devicePixelRatio,
127
- requireNativeComponent: () => {
128
- throw new Error("requireNativeComponent is not supported on the web");
129
- },
130
127
  resolveAsset: source => {
131
128
  if (isRNModule(source)) {
132
129
  throw new Error("Image source is a number - this is not supported on the web");
@@ -137,7 +134,6 @@ export const Platform = {
137
134
  findNodeHandle: () => {
138
135
  throw new Error("findNodeHandle is not supported on the web");
139
136
  },
140
- NativeModules: {},
141
137
  View
142
138
  };
143
139
  //# sourceMappingURL=Platform.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLayoutEffect","useMemo","useRef","isRNModule","DOM_LAYOUT_HANDLER_NAME","resizeObserver","getObserver","window","ResizeObserver","entries","forEach","entry","node","target","left","top","width","height","contentRect","onLayout","setTimeout","timeStamp","Date","now","nativeEvent","layout","x","y","currentTarget","bubbles","cancelable","defaultPrevented","eventPhase","isDefaultPrevented","Error","isPropagationStopped","persist","preventDefault","stopPropagation","isTrusted","type","useElementLayout","ref","observer","current","observe","unobserve","View","children","style","rawStyle","cssStyles","display","flexDirection","flexWrap","justifyContent","alignItems","alignContent","Platform","OS","PixelRatio","devicePixelRatio","requireNativeComponent","resolveAsset","source","default","findNodeHandle","NativeModules"],"sources":["Platform.web.tsx"],"sourcesContent":["import type { RefObject, CSSProperties } from \"react\";\nimport React, { useLayoutEffect, useMemo, useRef } from \"react\";\nimport type { LayoutChangeEvent, ViewComponent, ViewProps } from \"react-native\";\n\nimport type { DataModule } from \"../skia/types\";\nimport { isRNModule } from \"../skia/types\";\n\nimport type { IPlatform } from \"./IPlatform\";\n\n// eslint-disable-next-line max-len\n// https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/modules/useElementLayout/index.js\nconst DOM_LAYOUT_HANDLER_NAME = \"__reactLayoutHandler\";\ntype OnLayout = ((event: LayoutChangeEvent) => void) | undefined;\ntype Div = HTMLDivElement & {\n __reactLayoutHandler: OnLayout;\n};\n\nlet resizeObserver: ResizeObserver | null = null;\n\nconst getObserver = () => {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach((entry) => {\n const node = entry.target as Div;\n const { left, top, width, height } = entry.contentRect;\n const onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n if (typeof onLayout === \"function\") {\n // setTimeout 0 is taken from react-native-web (UIManager)\n setTimeout(\n () =>\n onLayout({\n timeStamp: Date.now(),\n nativeEvent: { layout: { x: left, y: top, width, height } },\n currentTarget: 0,\n target: 0,\n bubbles: false,\n cancelable: false,\n defaultPrevented: false,\n eventPhase: 0,\n isDefaultPrevented() {\n throw new Error(\"Method not supported on web.\");\n },\n isPropagationStopped() {\n throw new Error(\"Method not supported on web.\");\n },\n persist() {\n throw new Error(\"Method not supported on web.\");\n },\n preventDefault() {\n throw new Error(\"Method not supported on web.\");\n },\n stopPropagation() {\n throw new Error(\"Method not supported on web.\");\n },\n isTrusted: true,\n type: \"\",\n }),\n 0\n );\n }\n });\n });\n }\n return resizeObserver;\n};\n\nconst useElementLayout = (ref: RefObject<Div>, onLayout: OnLayout) => {\n const observer = getObserver();\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node !== null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === \"function\") {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [observer, ref]);\n};\n\nconst View = (({ children, onLayout, style: rawStyle }: ViewProps) => {\n const style = useMemo(() => (rawStyle ?? {}) as CSSProperties, [rawStyle]);\n const ref = useRef<Div>(null);\n useElementLayout(ref, onLayout);\n const cssStyles = useMemo(() => {\n return {\n ...style,\n display: \"flex\",\n flexDirection: style.flexDirection || \"inherit\",\n flexWrap: style.flexWrap || \"nowrap\",\n justifyContent: style.justifyContent || \"flex-start\",\n alignItems: style.alignItems || \"stretch\",\n alignContent: style.alignContent || \"stretch\",\n };\n }, [style]);\n\n return (\n <div ref={ref} style={cssStyles}>\n {children}\n </div>\n );\n}) as unknown as typeof ViewComponent;\n\nexport const Platform: IPlatform = {\n OS: \"web\",\n PixelRatio: window.devicePixelRatio,\n requireNativeComponent: () => {\n throw new Error(\"requireNativeComponent is not supported on the web\");\n },\n resolveAsset: (source: DataModule) => {\n if (isRNModule(source)) {\n throw new Error(\n \"Image source is a number - this is not supported on the web\"\n );\n }\n return source.default;\n },\n findNodeHandle: () => {\n throw new Error(\"findNodeHandle is not supported on the web\");\n },\n NativeModules: {},\n View,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useLayoutEffect","useMemo","useRef","isRNModule","DOM_LAYOUT_HANDLER_NAME","resizeObserver","getObserver","window","ResizeObserver","entries","forEach","entry","node","target","left","top","width","height","contentRect","onLayout","setTimeout","timeStamp","Date","now","nativeEvent","layout","x","y","currentTarget","bubbles","cancelable","defaultPrevented","eventPhase","isDefaultPrevented","Error","isPropagationStopped","persist","preventDefault","stopPropagation","isTrusted","type","useElementLayout","ref","observer","current","observe","unobserve","View","children","style","rawStyle","cssStyles","display","flexDirection","flexWrap","justifyContent","alignItems","alignContent","Platform","OS","PixelRatio","devicePixelRatio","resolveAsset","source","default","findNodeHandle"],"sources":["Platform.web.tsx"],"sourcesContent":["import type { RefObject, CSSProperties } from \"react\";\nimport React, { useLayoutEffect, useMemo, useRef } from \"react\";\nimport type { LayoutChangeEvent, ViewComponent, ViewProps } from \"react-native\";\n\nimport type { DataModule } from \"../skia/types\";\nimport { isRNModule } from \"../skia/types\";\n\nimport type { IPlatform } from \"./IPlatform\";\n\n// eslint-disable-next-line max-len\n// https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/modules/useElementLayout/index.js\nconst DOM_LAYOUT_HANDLER_NAME = \"__reactLayoutHandler\";\ntype OnLayout = ((event: LayoutChangeEvent) => void) | undefined;\ntype Div = HTMLDivElement & {\n __reactLayoutHandler: OnLayout;\n};\n\nlet resizeObserver: ResizeObserver | null = null;\n\nconst getObserver = () => {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach((entry) => {\n const node = entry.target as Div;\n const { left, top, width, height } = entry.contentRect;\n const onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n if (typeof onLayout === \"function\") {\n // setTimeout 0 is taken from react-native-web (UIManager)\n setTimeout(\n () =>\n onLayout({\n timeStamp: Date.now(),\n nativeEvent: { layout: { x: left, y: top, width, height } },\n currentTarget: 0,\n target: 0,\n bubbles: false,\n cancelable: false,\n defaultPrevented: false,\n eventPhase: 0,\n isDefaultPrevented() {\n throw new Error(\"Method not supported on web.\");\n },\n isPropagationStopped() {\n throw new Error(\"Method not supported on web.\");\n },\n persist() {\n throw new Error(\"Method not supported on web.\");\n },\n preventDefault() {\n throw new Error(\"Method not supported on web.\");\n },\n stopPropagation() {\n throw new Error(\"Method not supported on web.\");\n },\n isTrusted: true,\n type: \"\",\n }),\n 0\n );\n }\n });\n });\n }\n return resizeObserver;\n};\n\nconst useElementLayout = (ref: RefObject<Div>, onLayout: OnLayout) => {\n const observer = getObserver();\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node !== null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === \"function\") {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [observer, ref]);\n};\n\nconst View = (({ children, onLayout, style: rawStyle }: ViewProps) => {\n const style = useMemo(() => (rawStyle ?? {}) as CSSProperties, [rawStyle]);\n const ref = useRef<Div>(null);\n useElementLayout(ref, onLayout);\n const cssStyles = useMemo(() => {\n return {\n ...style,\n display: \"flex\",\n flexDirection: style.flexDirection || \"inherit\",\n flexWrap: style.flexWrap || \"nowrap\",\n justifyContent: style.justifyContent || \"flex-start\",\n alignItems: style.alignItems || \"stretch\",\n alignContent: style.alignContent || \"stretch\",\n };\n }, [style]);\n\n return (\n <div ref={ref} style={cssStyles}>\n {children}\n </div>\n );\n}) as unknown as typeof ViewComponent;\n\nexport const Platform: IPlatform = {\n OS: \"web\",\n PixelRatio: window.devicePixelRatio,\n resolveAsset: (source: DataModule) => {\n if (isRNModule(source)) {\n throw new Error(\n \"Image source is a number - this is not supported on the web\"\n );\n }\n return source.default;\n },\n findNodeHandle: () => {\n throw new Error(\"findNodeHandle is not supported on the web\");\n },\n View,\n};\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ interface RequiredExtrapolationConfig {
11
11
  extrapolateLeft: Extrapolate;
12
12
  extrapolateRight: Extrapolate;
13
13
  }
14
- export declare type ExtrapolationType = ExtrapolationConfig | Extrapolate | string | undefined;
14
+ export type ExtrapolationType = ExtrapolationConfig | Extrapolate | string | undefined;
15
15
  export declare function validateInterpolationOptions(type: ExtrapolationType): RequiredExtrapolationConfig;
16
16
  export declare function interpolate(x: number, input: readonly number[], output: readonly number[], type?: ExtrapolationType): number;
17
17
  export {};
@@ -1,4 +1,4 @@
1
- export declare type EasingFunction = (value: number) => number;
1
+ export type EasingFunction = (value: number) => number;
2
2
  export interface TimingConfig {
3
3
  from?: number;
4
4
  to?: number;
@@ -14,5 +14,5 @@ export interface AnimationParams {
14
14
  loop?: boolean;
15
15
  yoyo?: boolean;
16
16
  }
17
- export declare type RequiredAnimationParams = Required<Omit<AnimationParams, "from">> & Pick<AnimationParams, "from">;
18
- export declare type AnimationCallback = (current: number) => void;
17
+ export type RequiredAnimationParams = Required<Omit<AnimationParams, "from">> & Pick<AnimationParams, "from">;
18
+ export type AnimationCallback = (current: number) => void;
@@ -22,7 +22,7 @@ export declare abstract class JsiNode<P> implements Node<P> {
22
22
  removeChild(child: Node<unknown>): void;
23
23
  insertChildBefore(child: Node<unknown>, before: Node<unknown>): void;
24
24
  }
25
- export declare type Invalidate = () => void;
25
+ export type Invalidate = () => void;
26
26
  export declare abstract class JsiDeclarationNode<P> extends JsiNode<P> implements DeclarationNode<P> {
27
27
  declarationType: DeclarationType;
28
28
  private invalidate;
@@ -1,10 +1,10 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { BlendMode, Color, PaintStyle, SkMatrix, SkPaint, SkPath, SkRect, SkRRect, StrokeCap, StrokeJoin, Transforms2d, Vector } from "../../skia/types";
3
- export declare type SkEnum<T> = Uncapitalize<keyof T extends string ? keyof T : never>;
4
- export declare type PathDef = string | SkPath;
5
- export declare type ClipDef = SkRRect | SkRect | PathDef;
6
- export declare type Fit = "cover" | "contain" | "fill" | "fitHeight" | "fitWidth" | "none" | "scaleDown";
7
- export declare type Radius = number | Vector;
3
+ export type SkEnum<T> = Uncapitalize<keyof T extends string ? keyof T : never>;
4
+ export type PathDef = string | SkPath;
5
+ export type ClipDef = SkRRect | SkRect | PathDef;
6
+ export type Fit = "cover" | "contain" | "fill" | "fitHeight" | "fitWidth" | "none" | "scaleDown";
7
+ export type Radius = number | Vector;
8
8
  export interface ChildrenProps {
9
9
  children?: ReactNode | ReactNode[];
10
10
  }
@@ -17,10 +17,10 @@ export interface RectCtor {
17
17
  export interface RRectCtor extends RectCtor {
18
18
  r?: Radius;
19
19
  }
20
- export declare type RectDef = RectCtor | {
20
+ export type RectDef = RectCtor | {
21
21
  rect: SkRect;
22
22
  };
23
- export declare type RRectDef = RRectCtor | {
23
+ export type RRectDef = RRectCtor | {
24
24
  rect: SkRRect;
25
25
  };
26
26
  export interface PointCircleDef {
@@ -32,7 +32,7 @@ export interface ScalarCircleDef {
32
32
  cy: number;
33
33
  r: number;
34
34
  }
35
- export declare type CircleDef = PointCircleDef | ScalarCircleDef;
35
+ export type CircleDef = PointCircleDef | ScalarCircleDef;
36
36
  export interface TransformProps {
37
37
  transform?: Transforms2d;
38
38
  origin?: Vector;
@@ -1,5 +1,5 @@
1
1
  import type { SkShader, SkPaint, SkImageFilter, SkMaskFilter, SkPathEffect, Skia, SkColorFilter } from "../../skia/types";
2
- declare type Composer<T> = (outer: T, inner: T) => T;
2
+ type Composer<T> = (outer: T, inner: T) => T;
3
3
  export declare const composeDeclarations: <T>(filters: T[], composer: Composer<T>) => T;
4
4
  declare class Declaration<T> {
5
5
  private composer?;
@@ -1 +1 @@
1
- {"version":3,"names":["BlendMode","PaintStyle","StrokeCap","StrokeJoin","enumKey","JsiDeclarationNode","DeclarationContext","JsiDrawingContext","constructor","Skia","canvas","paint","Paint","paints","declarationCtx","length","save","childPaint","copy","push","restore","pop","saveAndConcat","node","cache","ConcatablePaint","isPristine","concatTo","declCtx","props","getProps","children","setColor","color","undefined","Color","setStrokeWidth","strokeWidth","setBlendMode","blendMode","setStyle","style","setStrokeJoin","strokeJoin","setStrokeCap","strokeCap","setStrokeMiter","strokeMiter","setOpacity","opacity","setAntiAlias","antiAlias","setDither","dither","forEach","child","decorate","colorFilter","colorFilters","popAllAsOne","imageFilter","imageFilters","shader","shaders","maskFilter","maskFilters","pathEffect","pathEffects","setImageFilter","setShader","setPathEffect","setColorFilter","setMaskFilter","enum","value","key","setValue","pristine","getColor","_color","getStrokeWidth","_strokeWidth","getBlendMode","_blendMode","getStyle","_style","getStrokeJoin","_strokeJoin","getStrokeCap","_strokeCap","getStrokeMiter","_strokeMiter","getOpacity","_opacity","getAntiAlias","_antiAlias","getDither","_dither","getImageFilter","_imageFilter","getShader","_shader","getPathEffect","_pathEffect","getColorFilter","_colorFilter","getMaskFilter","_maskFilter","setAlphaf","getAlphaf","currentOpacity"],"sources":["DrawingContext.ts"],"sourcesContent":["import type {\n SkCanvas,\n SkColor,\n SkColorFilter,\n SkImageFilter,\n SkMaskFilter,\n SkPaint,\n SkPathEffect,\n SkShader,\n Skia,\n} from \"../../skia/types\";\nimport { BlendMode, PaintStyle, StrokeCap, StrokeJoin } from \"../../skia/types\";\nimport { enumKey } from \"../nodes/datatypes/Enum\";\nimport { JsiDeclarationNode } from \"../nodes/Node\";\n\nimport type { PaintProps, SkEnum } from \"./Common\";\nimport { DeclarationContext } from \"./DeclarationContext\";\nimport type { Node } from \"./Node\";\n\nexport interface DrawingContext {\n canvas: SkCanvas;\n paint: SkPaint;\n saveAndConcat(node: Node<PaintProps>, cache?: SkPaint): boolean;\n restore(): void;\n declarationCtx: DeclarationContext;\n}\n\nexport class JsiDrawingContext implements DrawingContext {\n paints: SkPaint[];\n\n declarationCtx: DeclarationContext;\n\n constructor(private readonly Skia: Skia, public readonly canvas: SkCanvas) {\n const paint = this.Skia.Paint();\n this.paints = [paint];\n this.declarationCtx = new DeclarationContext(Skia);\n }\n\n get paint() {\n return this.paints[this.paints.length - 1];\n }\n\n private save() {\n const childPaint = this.paint.copy();\n this.paints.push(childPaint);\n }\n\n restore(): void {\n this.paints.pop();\n }\n\n saveAndConcat(node: Node<PaintProps>, cache?: SkPaint) {\n if (cache) {\n this.paints.push(cache);\n return true;\n }\n const paint = new ConcatablePaint(this.Skia, this.declarationCtx, node);\n if (!paint.isPristine()) {\n this.save();\n paint.concatTo(this.paint);\n return true;\n }\n return false;\n }\n}\n\nclass ConcatablePaint {\n private pristine = true;\n\n _color?: SkColor;\n _strokeWidth?: number;\n _blendMode?: BlendMode;\n _style?: PaintStyle;\n _strokeJoin?: StrokeJoin;\n _strokeCap?: StrokeCap;\n _strokeMiter?: number;\n _opacity = 1;\n _antiAlias?: boolean;\n _dither?: boolean;\n\n _imageFilter?: SkImageFilter;\n _shader?: SkShader;\n _pathEffect?: SkPathEffect;\n _colorFilter?: SkColorFilter;\n _maskFilter?: SkMaskFilter;\n\n constructor(Skia: Skia, declCtx: DeclarationContext, node: Node<PaintProps>) {\n const props = node.getProps();\n const children = node.children();\n this.setColor(\n props.color !== undefined ? Skia.Color(props.color) : props.color\n );\n this.setStrokeWidth(props.strokeWidth);\n this.setBlendMode(props.blendMode);\n this.setStyle(props.style);\n this.setStrokeJoin(props.strokeJoin);\n this.setStrokeCap(props.strokeCap);\n this.setStrokeMiter(props.strokeMiter);\n this.setOpacity(props.opacity);\n this.setAntiAlias(props.antiAlias);\n this.setDither(props.dither);\n declCtx.save();\n children.forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n child.decorate(declCtx);\n }\n });\n const colorFilter = declCtx.colorFilters.popAllAsOne();\n const imageFilter = declCtx.imageFilters.popAllAsOne();\n const shader = declCtx.shaders.pop();\n const maskFilter = declCtx.maskFilters.pop();\n const pathEffect = declCtx.pathEffects.popAllAsOne();\n declCtx.restore();\n if (imageFilter) {\n this.setImageFilter(imageFilter);\n }\n if (shader) {\n this.setShader(shader);\n }\n if (pathEffect) {\n this.setPathEffect(pathEffect);\n }\n if (colorFilter) {\n this.setColorFilter(colorFilter);\n }\n if (maskFilter) {\n this.setMaskFilter(maskFilter);\n }\n }\n\n private enum<T>(value: T, key?: Uncapitalize<string>) {\n if (key !== undefined) {\n return value[enumKey(key) as keyof T];\n }\n return undefined;\n }\n\n private setValue<T extends keyof typeof this>(\n key: T,\n value?: typeof this[T]\n ) {\n if (value !== undefined) {\n this[key] = value;\n this.pristine = false;\n }\n }\n\n setColor(color?: SkColor) {\n this.setValue(\"_color\", color);\n }\n\n getColor() {\n return this._color;\n }\n\n setStrokeWidth(strokeWidth?: number) {\n this.setValue(\"_strokeWidth\", strokeWidth);\n }\n\n getStrokeWidth() {\n return this._strokeWidth;\n }\n\n setBlendMode(blendMode?: SkEnum<typeof BlendMode>) {\n this.setValue(\"_blendMode\", this.enum(BlendMode, blendMode));\n }\n\n getBlendMode() {\n return this._blendMode;\n }\n\n setStyle(style?: SkEnum<typeof PaintStyle>) {\n this.setValue(\"_style\", this.enum(PaintStyle, style));\n }\n\n getStyle() {\n return this._style;\n }\n\n setStrokeJoin(strokeJoin?: SkEnum<typeof StrokeJoin>) {\n this.setValue(\"_strokeJoin\", this.enum(StrokeJoin, strokeJoin));\n }\n\n getStrokeJoin() {\n return this._strokeJoin;\n }\n\n setStrokeCap(strokeCap?: SkEnum<typeof StrokeCap>) {\n this.setValue(\"_strokeCap\", this.enum(StrokeCap, strokeCap));\n }\n\n getStrokeCap() {\n return this._strokeCap;\n }\n\n setStrokeMiter(strokeMiter?: number) {\n this.setValue(\"_strokeMiter\", strokeMiter);\n }\n\n getStrokeMiter() {\n return this._strokeMiter;\n }\n\n setOpacity(opacity?: number) {\n this.setValue(\"_opacity\", opacity);\n }\n\n getOpacity() {\n return this._opacity;\n }\n\n setAntiAlias(antiAlias?: boolean) {\n this.setValue(\"_antiAlias\", antiAlias);\n }\n\n getAntiAlias() {\n return this._antiAlias;\n }\n\n setDither(dither?: boolean) {\n this.setValue(\"_dither\", dither);\n }\n\n getDither() {\n return this._dither;\n }\n\n setImageFilter(imageFilter?: SkImageFilter) {\n this.setValue(\"_imageFilter\", imageFilter);\n }\n\n getImageFilter() {\n return this._imageFilter;\n }\n\n setShader(shader?: SkShader) {\n this.setValue(\"_shader\", shader);\n }\n\n getShader() {\n return this._shader;\n }\n\n setPathEffect(pathEffect?: SkPathEffect) {\n this.setValue(\"_pathEffect\", pathEffect);\n }\n\n getPathEffect() {\n return this._pathEffect;\n }\n\n setColorFilter(colorFilter?: SkColorFilter) {\n this.setValue(\"_colorFilter\", colorFilter);\n }\n\n getColorFilter() {\n return this._colorFilter;\n }\n\n setMaskFilter(maskFilter?: SkMaskFilter) {\n this.setValue(\"_maskFilter\", maskFilter);\n }\n\n getMaskFilter() {\n return this._maskFilter;\n }\n\n isPristine() {\n return this.pristine;\n }\n\n concatTo(paint: SkPaint) {\n if (this._opacity !== undefined) {\n paint.setAlphaf(paint.getAlphaf() * this._opacity);\n }\n if (this._color !== undefined) {\n const currentOpacity = paint.getAlphaf();\n paint.setShader(null);\n paint.setColor(this._color);\n paint.setAlphaf(currentOpacity * paint.getAlphaf());\n }\n if (this._strokeWidth !== undefined) {\n paint.setStrokeWidth(this._strokeWidth);\n }\n if (this._blendMode !== undefined) {\n paint.setBlendMode(this._blendMode);\n }\n if (this._style !== undefined) {\n paint.setStyle(this._style);\n }\n if (this._strokeJoin !== undefined) {\n paint.setStrokeJoin(this._strokeJoin);\n }\n if (this._strokeCap !== undefined) {\n paint.setStrokeCap(this._strokeCap);\n }\n if (this._strokeMiter !== undefined) {\n paint.setStrokeMiter(this._strokeMiter);\n }\n if (this._antiAlias !== undefined) {\n paint.setAntiAlias(this._antiAlias);\n }\n if (this._dither !== undefined) {\n paint.setDither(this._dither);\n }\n if (this._imageFilter !== undefined) {\n paint.setImageFilter(this._imageFilter);\n }\n if (this._shader !== undefined) {\n paint.setShader(this._shader);\n }\n if (this._pathEffect !== undefined) {\n paint.setPathEffect(this._pathEffect);\n }\n if (this._colorFilter !== undefined) {\n paint.setColorFilter(this._colorFilter);\n }\n if (this._maskFilter !== undefined) {\n paint.setMaskFilter(this._maskFilter);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BlendMode","PaintStyle","StrokeCap","StrokeJoin","enumKey","JsiDeclarationNode","DeclarationContext","JsiDrawingContext","constructor","Skia","canvas","paint","Paint","paints","declarationCtx","length","save","childPaint","copy","push","restore","pop","saveAndConcat","node","cache","ConcatablePaint","isPristine","concatTo","declCtx","props","getProps","children","setColor","color","undefined","Color","setStrokeWidth","strokeWidth","setBlendMode","blendMode","setStyle","style","setStrokeJoin","strokeJoin","setStrokeCap","strokeCap","setStrokeMiter","strokeMiter","setOpacity","opacity","setAntiAlias","antiAlias","setDither","dither","forEach","child","decorate","colorFilter","colorFilters","popAllAsOne","imageFilter","imageFilters","shader","shaders","maskFilter","maskFilters","pathEffect","pathEffects","setImageFilter","setShader","setPathEffect","setColorFilter","setMaskFilter","enum","value","key","setValue","pristine","getColor","_color","getStrokeWidth","_strokeWidth","getBlendMode","_blendMode","getStyle","_style","getStrokeJoin","_strokeJoin","getStrokeCap","_strokeCap","getStrokeMiter","_strokeMiter","getOpacity","_opacity","getAntiAlias","_antiAlias","getDither","_dither","getImageFilter","_imageFilter","getShader","_shader","getPathEffect","_pathEffect","getColorFilter","_colorFilter","getMaskFilter","_maskFilter","setAlphaf","getAlphaf","currentOpacity"],"sources":["DrawingContext.ts"],"sourcesContent":["import type {\n SkCanvas,\n SkColor,\n SkColorFilter,\n SkImageFilter,\n SkMaskFilter,\n SkPaint,\n SkPathEffect,\n SkShader,\n Skia,\n} from \"../../skia/types\";\nimport { BlendMode, PaintStyle, StrokeCap, StrokeJoin } from \"../../skia/types\";\nimport { enumKey } from \"../nodes/datatypes/Enum\";\nimport { JsiDeclarationNode } from \"../nodes/Node\";\n\nimport type { PaintProps, SkEnum } from \"./Common\";\nimport { DeclarationContext } from \"./DeclarationContext\";\nimport type { Node } from \"./Node\";\n\nexport interface DrawingContext {\n canvas: SkCanvas;\n paint: SkPaint;\n saveAndConcat(node: Node<PaintProps>, cache?: SkPaint): boolean;\n restore(): void;\n declarationCtx: DeclarationContext;\n}\n\nexport class JsiDrawingContext implements DrawingContext {\n paints: SkPaint[];\n\n declarationCtx: DeclarationContext;\n\n constructor(private readonly Skia: Skia, public readonly canvas: SkCanvas) {\n const paint = this.Skia.Paint();\n this.paints = [paint];\n this.declarationCtx = new DeclarationContext(Skia);\n }\n\n get paint() {\n return this.paints[this.paints.length - 1];\n }\n\n private save() {\n const childPaint = this.paint.copy();\n this.paints.push(childPaint);\n }\n\n restore(): void {\n this.paints.pop();\n }\n\n saveAndConcat(node: Node<PaintProps>, cache?: SkPaint) {\n if (cache) {\n this.paints.push(cache);\n return true;\n }\n const paint = new ConcatablePaint(this.Skia, this.declarationCtx, node);\n if (!paint.isPristine()) {\n this.save();\n paint.concatTo(this.paint);\n return true;\n }\n return false;\n }\n}\n\nclass ConcatablePaint {\n private pristine = true;\n\n _color?: SkColor;\n _strokeWidth?: number;\n _blendMode?: BlendMode;\n _style?: PaintStyle;\n _strokeJoin?: StrokeJoin;\n _strokeCap?: StrokeCap;\n _strokeMiter?: number;\n _opacity = 1;\n _antiAlias?: boolean;\n _dither?: boolean;\n\n _imageFilter?: SkImageFilter;\n _shader?: SkShader;\n _pathEffect?: SkPathEffect;\n _colorFilter?: SkColorFilter;\n _maskFilter?: SkMaskFilter;\n\n constructor(Skia: Skia, declCtx: DeclarationContext, node: Node<PaintProps>) {\n const props = node.getProps();\n const children = node.children();\n this.setColor(\n props.color !== undefined ? Skia.Color(props.color) : props.color\n );\n this.setStrokeWidth(props.strokeWidth);\n this.setBlendMode(props.blendMode);\n this.setStyle(props.style);\n this.setStrokeJoin(props.strokeJoin);\n this.setStrokeCap(props.strokeCap);\n this.setStrokeMiter(props.strokeMiter);\n this.setOpacity(props.opacity);\n this.setAntiAlias(props.antiAlias);\n this.setDither(props.dither);\n declCtx.save();\n children.forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n child.decorate(declCtx);\n }\n });\n const colorFilter = declCtx.colorFilters.popAllAsOne();\n const imageFilter = declCtx.imageFilters.popAllAsOne();\n const shader = declCtx.shaders.pop();\n const maskFilter = declCtx.maskFilters.pop();\n const pathEffect = declCtx.pathEffects.popAllAsOne();\n declCtx.restore();\n if (imageFilter) {\n this.setImageFilter(imageFilter);\n }\n if (shader) {\n this.setShader(shader);\n }\n if (pathEffect) {\n this.setPathEffect(pathEffect);\n }\n if (colorFilter) {\n this.setColorFilter(colorFilter);\n }\n if (maskFilter) {\n this.setMaskFilter(maskFilter);\n }\n }\n\n private enum<T>(value: T, key?: Uncapitalize<string>) {\n if (key !== undefined) {\n return value[enumKey(key) as keyof T];\n }\n return undefined;\n }\n\n private setValue<T extends keyof typeof this>(\n key: T,\n value?: (typeof this)[T]\n ) {\n if (value !== undefined) {\n this[key] = value;\n this.pristine = false;\n }\n }\n\n setColor(color?: SkColor) {\n this.setValue(\"_color\", color);\n }\n\n getColor() {\n return this._color;\n }\n\n setStrokeWidth(strokeWidth?: number) {\n this.setValue(\"_strokeWidth\", strokeWidth);\n }\n\n getStrokeWidth() {\n return this._strokeWidth;\n }\n\n setBlendMode(blendMode?: SkEnum<typeof BlendMode>) {\n this.setValue(\"_blendMode\", this.enum(BlendMode, blendMode));\n }\n\n getBlendMode() {\n return this._blendMode;\n }\n\n setStyle(style?: SkEnum<typeof PaintStyle>) {\n this.setValue(\"_style\", this.enum(PaintStyle, style));\n }\n\n getStyle() {\n return this._style;\n }\n\n setStrokeJoin(strokeJoin?: SkEnum<typeof StrokeJoin>) {\n this.setValue(\"_strokeJoin\", this.enum(StrokeJoin, strokeJoin));\n }\n\n getStrokeJoin() {\n return this._strokeJoin;\n }\n\n setStrokeCap(strokeCap?: SkEnum<typeof StrokeCap>) {\n this.setValue(\"_strokeCap\", this.enum(StrokeCap, strokeCap));\n }\n\n getStrokeCap() {\n return this._strokeCap;\n }\n\n setStrokeMiter(strokeMiter?: number) {\n this.setValue(\"_strokeMiter\", strokeMiter);\n }\n\n getStrokeMiter() {\n return this._strokeMiter;\n }\n\n setOpacity(opacity?: number) {\n this.setValue(\"_opacity\", opacity);\n }\n\n getOpacity() {\n return this._opacity;\n }\n\n setAntiAlias(antiAlias?: boolean) {\n this.setValue(\"_antiAlias\", antiAlias);\n }\n\n getAntiAlias() {\n return this._antiAlias;\n }\n\n setDither(dither?: boolean) {\n this.setValue(\"_dither\", dither);\n }\n\n getDither() {\n return this._dither;\n }\n\n setImageFilter(imageFilter?: SkImageFilter) {\n this.setValue(\"_imageFilter\", imageFilter);\n }\n\n getImageFilter() {\n return this._imageFilter;\n }\n\n setShader(shader?: SkShader) {\n this.setValue(\"_shader\", shader);\n }\n\n getShader() {\n return this._shader;\n }\n\n setPathEffect(pathEffect?: SkPathEffect) {\n this.setValue(\"_pathEffect\", pathEffect);\n }\n\n getPathEffect() {\n return this._pathEffect;\n }\n\n setColorFilter(colorFilter?: SkColorFilter) {\n this.setValue(\"_colorFilter\", colorFilter);\n }\n\n getColorFilter() {\n return this._colorFilter;\n }\n\n setMaskFilter(maskFilter?: SkMaskFilter) {\n this.setValue(\"_maskFilter\", maskFilter);\n }\n\n getMaskFilter() {\n return this._maskFilter;\n }\n\n isPristine() {\n return this.pristine;\n }\n\n concatTo(paint: SkPaint) {\n if (this._opacity !== undefined) {\n paint.setAlphaf(paint.getAlphaf() * this._opacity);\n }\n if (this._color !== undefined) {\n const currentOpacity = paint.getAlphaf();\n paint.setShader(null);\n paint.setColor(this._color);\n paint.setAlphaf(currentOpacity * paint.getAlphaf());\n }\n if (this._strokeWidth !== undefined) {\n paint.setStrokeWidth(this._strokeWidth);\n }\n if (this._blendMode !== undefined) {\n paint.setBlendMode(this._blendMode);\n }\n if (this._style !== undefined) {\n paint.setStyle(this._style);\n }\n if (this._strokeJoin !== undefined) {\n paint.setStrokeJoin(this._strokeJoin);\n }\n if (this._strokeCap !== undefined) {\n paint.setStrokeCap(this._strokeCap);\n }\n if (this._strokeMiter !== undefined) {\n paint.setStrokeMiter(this._strokeMiter);\n }\n if (this._antiAlias !== undefined) {\n paint.setAntiAlias(this._antiAlias);\n }\n if (this._dither !== undefined) {\n paint.setDither(this._dither);\n }\n if (this._imageFilter !== undefined) {\n paint.setImageFilter(this._imageFilter);\n }\n if (this._shader !== undefined) {\n paint.setShader(this._shader);\n }\n if (this._pathEffect !== undefined) {\n paint.setPathEffect(this._pathEffect);\n }\n if (this._colorFilter !== undefined) {\n paint.setColorFilter(this._colorFilter);\n }\n if (this._maskFilter !== undefined) {\n paint.setMaskFilter(this._maskFilter);\n }\n }\n}\n"],"mappings":"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"}
@@ -4,11 +4,11 @@ import type { DrawingContext } from "./DrawingContext";
4
4
  export interface DrawingNodeProps extends GroupProps {
5
5
  paint?: SkPaint;
6
6
  }
7
- export declare type ImageProps = DrawingNodeProps & RectDef & {
7
+ export type ImageProps = DrawingNodeProps & RectDef & {
8
8
  fit?: Fit;
9
9
  image: SkImage | null;
10
10
  };
11
- export declare type CircleProps = CircleDef & DrawingNodeProps;
11
+ export type CircleProps = CircleDef & DrawingNodeProps;
12
12
  export interface PathProps extends DrawingNodeProps {
13
13
  path: PathDef;
14
14
  start: number;
@@ -23,9 +23,9 @@ export interface LineProps extends DrawingNodeProps {
23
23
  p1: Vector;
24
24
  p2: Vector;
25
25
  }
26
- export declare type OvalProps = RectDef & DrawingNodeProps;
27
- export declare type RectProps = RectDef & DrawingNodeProps;
28
- export declare type RoundedRectProps = RRectDef & DrawingNodeProps;
26
+ export type OvalProps = RectDef & DrawingNodeProps;
27
+ export type RectProps = RectDef & DrawingNodeProps;
28
+ export type RoundedRectProps = RRectDef & DrawingNodeProps;
29
29
  export interface CubicBezierHandle {
30
30
  pos: Vector;
31
31
  c1: Vector;
@@ -12,7 +12,7 @@ export interface Node<P> {
12
12
  removeChild(child: Node<unknown>): void;
13
13
  insertChildBefore(child: Node<unknown>, before: Node<unknown>): void;
14
14
  }
15
- export declare type Invalidate = () => void;
15
+ export type Invalidate = () => void;
16
16
  export interface DeclarationNode<P> extends Node<P> {
17
17
  declarationType: DeclarationType;
18
18
  decorate(ctx: DeclarationContext): void;
@@ -6,10 +6,10 @@ import type { ImageProps, CircleProps, PathProps, CustomDrawingNodeProps, LinePr
6
6
  import type { BlurMaskFilterProps } from "./MaskFilters";
7
7
  import type { FractalNoiseProps, SweepGradientProps, ImageShaderProps, LinearGradientProps, ShaderProps, TurbulenceProps, TwoPointConicalGradientProps, RadialGradientProps, ColorProps } from "./Shaders";
8
8
  import type { CornerPathEffectProps, DashPathEffectProps, DiscretePathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps } from "./PathEffects";
9
- declare type ImageFilterNode<P> = DeclarationNode<P>;
10
- declare type PathEffectNode<P> = DeclarationNode<P>;
11
- declare type NullablePathEffectNode<P> = DeclarationNode<P>;
12
- declare type DrawingNode<P extends GroupProps> = RenderNode<P>;
9
+ type ImageFilterNode<P> = DeclarationNode<P>;
10
+ type PathEffectNode<P> = DeclarationNode<P>;
11
+ type NullablePathEffectNode<P> = DeclarationNode<P>;
12
+ type DrawingNode<P extends GroupProps> = RenderNode<P>;
13
13
  export interface SkDOM {
14
14
  Layer(props?: ChildrenProps): RenderNode<ChildrenProps>;
15
15
  Group(props?: GroupProps): RenderNode<GroupProps>;
@@ -1,6 +1,4 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- /* eslint-disable reanimated/js-function-in-worklet */
4
2
  import { startMapper, stopMapper, isSharedValue, HAS_REANIMATED3, HAS_REANIMATED2, runOnJS } from "./moduleWrapper";
5
3
 
6
4
  const _bindings = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"names":["startMapper","stopMapper","isSharedValue","HAS_REANIMATED3","HAS_REANIMATED2","runOnJS","_bindings","WeakMap","unbindReanimatedNode","node","previousMapperId","get","undefined","extractReanimatedProps","props","reanimatedProps","otherProps","propName","propValue","value","bindReanimatedProps2","container","sharedValues","Object","values","length","viewId","getNativeId","SkiaViewApi","global","updateProps","setProp","requestRedraw","redraw","mapperId","set","bindReanimatedProps"],"sources":["renderHelpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable reanimated/js-function-in-worklet */\nimport type { Container } from \"../../renderer/Container\";\nimport type { AnimatedProps } from \"../../renderer/processors\";\nimport type { Node } from \"../../dom/types\";\n\nimport {\n startMapper,\n stopMapper,\n isSharedValue,\n HAS_REANIMATED3,\n HAS_REANIMATED2,\n runOnJS,\n} from \"./moduleWrapper\";\n\nconst _bindings = new WeakMap<Node<unknown>, unknown>();\n\nexport const unbindReanimatedNode = (node: Node<unknown>) => {\n const previousMapperId = _bindings.get(node);\n if (previousMapperId !== undefined) {\n stopMapper(previousMapperId as number);\n }\n};\n\nexport function extractReanimatedProps(props: AnimatedProps<any>) {\n if (!HAS_REANIMATED3 && !HAS_REANIMATED2) {\n return [props, {}];\n }\n const reanimatedProps = {} as AnimatedProps<any>;\n const otherProps = {} as AnimatedProps<any>;\n for (const propName in props) {\n if (propName === \"children\") {\n continue;\n }\n const propValue = props[propName];\n if (isSharedValue(propValue)) {\n reanimatedProps[propName] = propValue;\n otherProps[propName] = propValue.value;\n } else {\n otherProps[propName] = propValue;\n }\n }\n return [otherProps, reanimatedProps];\n}\n\nfunction bindReanimatedProps2(\n container: Container,\n node: Node<any>,\n reanimatedProps: AnimatedProps<any>\n) {\n const sharedValues = Object.values(reanimatedProps);\n const previousMapperId = _bindings.get(node);\n if (previousMapperId !== undefined) {\n stopMapper(previousMapperId as number);\n }\n if (sharedValues.length > 0) {\n const viewId = container.getNativeId();\n const { SkiaViewApi } = global;\n const updateProps = () => {\n for (const propName in reanimatedProps) {\n node && node.setProp(propName, reanimatedProps[propName].value);\n }\n // On React Native we use the SkiaViewApi to redraw because it can\n // run on the worklet thread (container.redraw can't)\n // if SkiaViewApi is undefined, we are on web and container.redraw()\n // can safely be invoked\n if (SkiaViewApi) {\n SkiaViewApi.requestRedraw(viewId);\n } else {\n container.redraw();\n }\n };\n const mapperId = startMapper(() => {\n \"worklet\";\n runOnJS(updateProps)();\n }, sharedValues);\n _bindings.set(node, mapperId);\n }\n}\n\nexport function bindReanimatedProps(\n container: Container,\n node: Node<any>,\n reanimatedProps: AnimatedProps<any>\n) {\n if (HAS_REANIMATED2 && !HAS_REANIMATED3) {\n return bindReanimatedProps2(container, node, reanimatedProps);\n }\n if (!HAS_REANIMATED3) {\n return;\n }\n const sharedValues = Object.values(reanimatedProps);\n const previousMapperId = _bindings.get(node);\n if (previousMapperId !== undefined) {\n stopMapper(previousMapperId as number);\n }\n if (sharedValues.length > 0) {\n const viewId = container.getNativeId();\n const { SkiaViewApi } = global;\n const mapperId = startMapper(() => {\n \"worklet\";\n if (node) {\n for (const propName in reanimatedProps) {\n node.setProp(propName, reanimatedProps[propName].value);\n }\n }\n // On React Native we use the SkiaViewApi to redraw because it can\n // run on the worklet thread (container.redraw can't)\n // if SkiaViewApi is undefined, we are on web and container.redraw()\n // can safely be invoked\n if (SkiaViewApi) {\n SkiaViewApi.requestRedraw(viewId);\n } else {\n container.redraw();\n }\n }, sharedValues);\n _bindings.set(node, mapperId);\n }\n}\n"],"mappings":"AAAA;;AACA;AAKA,SACEA,WADF,EAEEC,UAFF,EAGEC,aAHF,EAIEC,eAJF,EAKEC,eALF,EAMEC,OANF,QAOO,iBAPP;;AASA,MAAMC,SAAS,GAAG,IAAIC,OAAJ,EAAlB;;AAEA,OAAO,MAAMC,oBAAoB,GAAIC,IAAD,IAAyB;EAC3D,MAAMC,gBAAgB,GAAGJ,SAAS,CAACK,GAAV,CAAcF,IAAd,CAAzB;;EACA,IAAIC,gBAAgB,KAAKE,SAAzB,EAAoC;IAClCX,UAAU,CAACS,gBAAD,CAAV;EACD;AACF,CALM;AAOP,OAAO,SAASG,sBAAT,CAAgCC,KAAhC,EAA2D;EAChE,IAAI,CAACX,eAAD,IAAoB,CAACC,eAAzB,EAA0C;IACxC,OAAO,CAACU,KAAD,EAAQ,EAAR,CAAP;EACD;;EACD,MAAMC,eAAe,GAAG,EAAxB;EACA,MAAMC,UAAU,GAAG,EAAnB;;EACA,KAAK,MAAMC,QAAX,IAAuBH,KAAvB,EAA8B;IAC5B,IAAIG,QAAQ,KAAK,UAAjB,EAA6B;MAC3B;IACD;;IACD,MAAMC,SAAS,GAAGJ,KAAK,CAACG,QAAD,CAAvB;;IACA,IAAIf,aAAa,CAACgB,SAAD,CAAjB,EAA8B;MAC5BH,eAAe,CAACE,QAAD,CAAf,GAA4BC,SAA5B;MACAF,UAAU,CAACC,QAAD,CAAV,GAAuBC,SAAS,CAACC,KAAjC;IACD,CAHD,MAGO;MACLH,UAAU,CAACC,QAAD,CAAV,GAAuBC,SAAvB;IACD;EACF;;EACD,OAAO,CAACF,UAAD,EAAaD,eAAb,CAAP;AACD;;AAED,SAASK,oBAAT,CACEC,SADF,EAEEZ,IAFF,EAGEM,eAHF,EAIE;EACA,MAAMO,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAcT,eAAd,CAArB;;EACA,MAAML,gBAAgB,GAAGJ,SAAS,CAACK,GAAV,CAAcF,IAAd,CAAzB;;EACA,IAAIC,gBAAgB,KAAKE,SAAzB,EAAoC;IAClCX,UAAU,CAACS,gBAAD,CAAV;EACD;;EACD,IAAIY,YAAY,CAACG,MAAb,GAAsB,CAA1B,EAA6B;IAC3B,MAAMC,MAAM,GAAGL,SAAS,CAACM,WAAV,EAAf;IACA,MAAM;MAAEC;IAAF,IAAkBC,MAAxB;;IACA,MAAMC,WAAW,GAAG,MAAM;MACxB,KAAK,MAAMb,QAAX,IAAuBF,eAAvB,EAAwC;QACtCN,IAAI,IAAIA,IAAI,CAACsB,OAAL,CAAad,QAAb,EAAuBF,eAAe,CAACE,QAAD,CAAf,CAA0BE,KAAjD,CAAR;MACD,CAHuB,CAIxB;MACA;MACA;MACA;;;MACA,IAAIS,WAAJ,EAAiB;QACfA,WAAW,CAACI,aAAZ,CAA0BN,MAA1B;MACD,CAFD,MAEO;QACLL,SAAS,CAACY,MAAV;MACD;IACF,CAbD;;IAcA,MAAMC,QAAQ,GAAGlC,WAAW,CAAC,MAAM;MACjC;;MACAK,OAAO,CAACyB,WAAD,CAAP;IACD,CAH2B,EAGzBR,YAHyB,CAA5B;;IAIAhB,SAAS,CAAC6B,GAAV,CAAc1B,IAAd,EAAoByB,QAApB;EACD;AACF;;AAED,OAAO,SAASE,mBAAT,CACLf,SADK,EAELZ,IAFK,EAGLM,eAHK,EAIL;EACA,IAAIX,eAAe,IAAI,CAACD,eAAxB,EAAyC;IACvC,OAAOiB,oBAAoB,CAACC,SAAD,EAAYZ,IAAZ,EAAkBM,eAAlB,CAA3B;EACD;;EACD,IAAI,CAACZ,eAAL,EAAsB;IACpB;EACD;;EACD,MAAMmB,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAcT,eAAd,CAArB;;EACA,MAAML,gBAAgB,GAAGJ,SAAS,CAACK,GAAV,CAAcF,IAAd,CAAzB;;EACA,IAAIC,gBAAgB,KAAKE,SAAzB,EAAoC;IAClCX,UAAU,CAACS,gBAAD,CAAV;EACD;;EACD,IAAIY,YAAY,CAACG,MAAb,GAAsB,CAA1B,EAA6B;IAC3B,MAAMC,MAAM,GAAGL,SAAS,CAACM,WAAV,EAAf;IACA,MAAM;MAAEC;IAAF,IAAkBC,MAAxB;IACA,MAAMK,QAAQ,GAAGlC,WAAW,CAAC,MAAM;MACjC;;MACA,IAAIS,IAAJ,EAAU;QACR,KAAK,MAAMQ,QAAX,IAAuBF,eAAvB,EAAwC;UACtCN,IAAI,CAACsB,OAAL,CAAad,QAAb,EAAuBF,eAAe,CAACE,QAAD,CAAf,CAA0BE,KAAjD;QACD;MACF,CANgC,CAOjC;MACA;MACA;MACA;;;MACA,IAAIS,WAAJ,EAAiB;QACfA,WAAW,CAACI,aAAZ,CAA0BN,MAA1B;MACD,CAFD,MAEO;QACLL,SAAS,CAACY,MAAV;MACD;IACF,CAhB2B,EAgBzBX,YAhByB,CAA5B;;IAiBAhB,SAAS,CAAC6B,GAAV,CAAc1B,IAAd,EAAoByB,QAApB;EACD;AACF"}
1
+ {"version":3,"names":["startMapper","stopMapper","isSharedValue","HAS_REANIMATED3","HAS_REANIMATED2","runOnJS","_bindings","WeakMap","unbindReanimatedNode","node","previousMapperId","get","undefined","extractReanimatedProps","props","reanimatedProps","otherProps","propName","propValue","value","bindReanimatedProps2","container","sharedValues","Object","values","length","viewId","getNativeId","SkiaViewApi","global","updateProps","setProp","requestRedraw","redraw","mapperId","set","bindReanimatedProps"],"sources":["renderHelpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Container } from \"../../renderer/Container\";\nimport type { AnimatedProps } from \"../../renderer/processors\";\nimport type { Node } from \"../../dom/types\";\n\nimport {\n startMapper,\n stopMapper,\n isSharedValue,\n HAS_REANIMATED3,\n HAS_REANIMATED2,\n runOnJS,\n} from \"./moduleWrapper\";\n\nconst _bindings = new WeakMap<Node<unknown>, unknown>();\n\nexport const unbindReanimatedNode = (node: Node<unknown>) => {\n const previousMapperId = _bindings.get(node);\n if (previousMapperId !== undefined) {\n stopMapper(previousMapperId as number);\n }\n};\n\nexport function extractReanimatedProps(props: AnimatedProps<any>) {\n if (!HAS_REANIMATED3 && !HAS_REANIMATED2) {\n return [props, {}];\n }\n const reanimatedProps = {} as AnimatedProps<any>;\n const otherProps = {} as AnimatedProps<any>;\n for (const propName in props) {\n if (propName === \"children\") {\n continue;\n }\n const propValue = props[propName];\n if (isSharedValue(propValue)) {\n reanimatedProps[propName] = propValue;\n otherProps[propName] = propValue.value;\n } else {\n otherProps[propName] = propValue;\n }\n }\n return [otherProps, reanimatedProps];\n}\n\nfunction bindReanimatedProps2(\n container: Container,\n node: Node<any>,\n reanimatedProps: AnimatedProps<any>\n) {\n const sharedValues = Object.values(reanimatedProps);\n const previousMapperId = _bindings.get(node);\n if (previousMapperId !== undefined) {\n stopMapper(previousMapperId as number);\n }\n if (sharedValues.length > 0) {\n const viewId = container.getNativeId();\n const { SkiaViewApi } = global;\n const updateProps = () => {\n for (const propName in reanimatedProps) {\n node && node.setProp(propName, reanimatedProps[propName].value);\n }\n // On React Native we use the SkiaViewApi to redraw because it can\n // run on the worklet thread (container.redraw can't)\n // if SkiaViewApi is undefined, we are on web and container.redraw()\n // can safely be invoked\n if (SkiaViewApi) {\n SkiaViewApi.requestRedraw(viewId);\n } else {\n container.redraw();\n }\n };\n const mapperId = startMapper(() => {\n \"worklet\";\n runOnJS(updateProps)();\n }, sharedValues);\n _bindings.set(node, mapperId);\n }\n}\n\nexport function bindReanimatedProps(\n container: Container,\n node: Node<any>,\n reanimatedProps: AnimatedProps<any>\n) {\n if (HAS_REANIMATED2 && !HAS_REANIMATED3) {\n return bindReanimatedProps2(container, node, reanimatedProps);\n }\n if (!HAS_REANIMATED3) {\n return;\n }\n const sharedValues = Object.values(reanimatedProps);\n const previousMapperId = _bindings.get(node);\n if (previousMapperId !== undefined) {\n stopMapper(previousMapperId as number);\n }\n if (sharedValues.length > 0) {\n const viewId = container.getNativeId();\n const { SkiaViewApi } = global;\n const mapperId = startMapper(() => {\n \"worklet\";\n if (node) {\n for (const propName in reanimatedProps) {\n node.setProp(propName, reanimatedProps[propName].value);\n }\n }\n // On React Native we use the SkiaViewApi to redraw because it can\n // run on the worklet thread (container.redraw can't)\n // if SkiaViewApi is undefined, we are on web and container.redraw()\n // can safely be invoked\n if (SkiaViewApi) {\n SkiaViewApi.requestRedraw(viewId);\n } else {\n container.redraw();\n }\n }, sharedValues);\n _bindings.set(node, mapperId);\n }\n}\n"],"mappings":"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"}
@@ -8,4 +8,4 @@ export interface CanvasProps extends SkiaBaseViewProps {
8
8
  children: ReactNode;
9
9
  onTouch?: TouchHandler;
10
10
  }
11
- export declare const Canvas: React.FC<CanvasProps & React.RefAttributes<SkiaDomView>>;
11
+ export declare const Canvas: React.FunctionComponent<CanvasProps & React.RefAttributes<SkiaDomView>>;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useCallback","useMemo","forwardRef","useRef","useLayoutEffect","SkiaDomView","SkiaView","Skia","JsiDrawingContext","useValue","SkiaRoot","NATIVE_DOM","isValue","useCanvasRef","useOnSizeEvent","resultValue","onSize","width","height","addListener","newValue","current","value","Canvas","forwardedRef","children","style","debug","mode","onTouch","_onSize","props","innerRef","ref","useCombinedRefs","redraw","getNativeId","id","nativeId","registerValues","values","root","render","unmount","dom","canvas","info","touches","ctx","refs","targetRef","forEach"],"sources":["Canvas.tsx"],"sourcesContent":["import React, {\n useEffect,\n useCallback,\n useMemo,\n forwardRef,\n useRef,\n useLayoutEffect,\n} from \"react\";\nimport type {\n RefObject,\n ReactNode,\n MutableRefObject,\n ForwardedRef,\n} from \"react\";\n\nimport { SkiaDomView, SkiaView } from \"../views\";\nimport { Skia } from \"../skia/Skia\";\nimport type { TouchHandler, SkiaBaseViewProps } from \"../views\";\nimport type { SkiaValue } from \"../values/types\";\nimport { JsiDrawingContext } from \"../dom/types\";\nimport { useValue } from \"../values\";\n\nimport { SkiaRoot } from \"./Reconciler\";\nimport { NATIVE_DOM } from \"./HostComponents\";\nimport { isValue } from \"./processors\";\n\nexport const useCanvasRef = () => useRef<SkiaDomView>(null);\n\nexport interface CanvasProps extends SkiaBaseViewProps {\n ref?: RefObject<SkiaDomView>;\n children: ReactNode;\n onTouch?: TouchHandler;\n}\n\nconst useOnSizeEvent = (resultValue: SkiaBaseViewProps[\"onSize\"]) => {\n const onSize = useValue({\n width: 0,\n height: 0,\n });\n\n useLayoutEffect(() => {\n if (!resultValue) {\n return;\n }\n return onSize.addListener((newValue) => {\n if (isValue(resultValue)) {\n resultValue.current = newValue;\n } else {\n resultValue.value = newValue;\n }\n });\n }, [resultValue, onSize]);\n\n return onSize;\n};\n\nexport const Canvas = forwardRef<SkiaDomView, CanvasProps>(\n (\n { children, style, debug, mode, onTouch, onSize: _onSize, ...props },\n forwardedRef\n ) => {\n const onSize = useOnSizeEvent(_onSize);\n const innerRef = useCanvasRef();\n const ref = useCombinedRefs(forwardedRef, innerRef);\n const redraw = useCallback(() => {\n innerRef.current?.redraw();\n }, [innerRef]);\n const getNativeId = useCallback(() => {\n const id = innerRef.current?.nativeId ?? -1;\n return id;\n }, [innerRef]);\n\n const registerValues = useCallback(\n (values: Array<SkiaValue<unknown>>) => {\n if (ref.current !== null) {\n return ref.current.registerValues(values);\n }\n return () => {};\n },\n [ref]\n );\n const root = useMemo(\n () => new SkiaRoot(Skia, registerValues, redraw, getNativeId),\n [redraw, registerValues, getNativeId]\n );\n\n // Render effect\n useEffect(() => {\n root.render(children);\n }, [children, root, redraw]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n if (NATIVE_DOM) {\n return (\n <SkiaDomView\n ref={ref}\n style={style}\n root={root.dom}\n onTouch={onTouch}\n onSize={onSize}\n mode={mode}\n debug={debug}\n {...props}\n />\n );\n } else {\n return (\n <SkiaView\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={style}\n mode={mode}\n debug={debug}\n onSize={onSize}\n onDraw={(canvas, info) => {\n onTouch && onTouch(info.touches);\n const ctx = new JsiDrawingContext(Skia, canvas);\n root.dom.render(ctx);\n }}\n {...props}\n />\n );\n }\n }\n) as React.FC<CanvasProps & React.RefAttributes<SkiaDomView>>;\n\n/**\n * Combines a list of refs into a single ref. This can be used to provide\n * both a forwarded ref and an internal ref keeping the same functionality\n * on both of the refs.\n * @param refs Array of refs to combine\n * @returns A single ref that can be used in a ref prop.\n */\nconst useCombinedRefs = <T,>(\n ...refs: Array<MutableRefObject<T> | ForwardedRef<T>>\n) => {\n const targetRef = React.useRef<T>(null);\n React.useEffect(() => {\n refs.forEach((ref) => {\n if (ref) {\n if (typeof ref === \"function\") {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }\n });\n }, [refs]);\n return targetRef;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useCallback","useMemo","forwardRef","useRef","useLayoutEffect","SkiaDomView","SkiaView","Skia","JsiDrawingContext","useValue","SkiaRoot","NATIVE_DOM","isValue","useCanvasRef","useOnSizeEvent","resultValue","onSize","width","height","addListener","newValue","current","value","Canvas","forwardedRef","children","style","debug","mode","onTouch","_onSize","props","innerRef","ref","useCombinedRefs","redraw","getNativeId","id","nativeId","registerValues","values","root","render","unmount","dom","canvas","info","touches","ctx","refs","targetRef","forEach"],"sources":["Canvas.tsx"],"sourcesContent":["import React, {\n useEffect,\n useCallback,\n useMemo,\n forwardRef,\n useRef,\n useLayoutEffect,\n} from \"react\";\nimport type {\n RefObject,\n ReactNode,\n MutableRefObject,\n ForwardedRef,\n FunctionComponent,\n} from \"react\";\n\nimport { SkiaDomView, SkiaView } from \"../views\";\nimport { Skia } from \"../skia/Skia\";\nimport type { TouchHandler, SkiaBaseViewProps } from \"../views\";\nimport type { SkiaValue } from \"../values/types\";\nimport { JsiDrawingContext } from \"../dom/types\";\nimport { useValue } from \"../values\";\n\nimport { SkiaRoot } from \"./Reconciler\";\nimport { NATIVE_DOM } from \"./HostComponents\";\nimport { isValue } from \"./processors\";\n\nexport const useCanvasRef = () => useRef<SkiaDomView>(null);\n\nexport interface CanvasProps extends SkiaBaseViewProps {\n ref?: RefObject<SkiaDomView>;\n children: ReactNode;\n onTouch?: TouchHandler;\n}\n\nconst useOnSizeEvent = (resultValue: SkiaBaseViewProps[\"onSize\"]) => {\n const onSize = useValue({\n width: 0,\n height: 0,\n });\n\n useLayoutEffect(() => {\n if (!resultValue) {\n return;\n }\n return onSize.addListener((newValue) => {\n if (isValue(resultValue)) {\n resultValue.current = newValue;\n } else {\n resultValue.value = newValue;\n }\n });\n }, [resultValue, onSize]);\n\n return onSize;\n};\n\nexport const Canvas = forwardRef<SkiaDomView, CanvasProps>(\n (\n { children, style, debug, mode, onTouch, onSize: _onSize, ...props },\n forwardedRef\n ) => {\n const onSize = useOnSizeEvent(_onSize);\n const innerRef = useCanvasRef();\n const ref = useCombinedRefs(forwardedRef, innerRef);\n const redraw = useCallback(() => {\n innerRef.current?.redraw();\n }, [innerRef]);\n const getNativeId = useCallback(() => {\n const id = innerRef.current?.nativeId ?? -1;\n return id;\n }, [innerRef]);\n\n const registerValues = useCallback(\n (values: Array<SkiaValue<unknown>>) => {\n if (ref.current !== null) {\n return ref.current.registerValues(values);\n }\n return () => {};\n },\n [ref]\n );\n const root = useMemo(\n () => new SkiaRoot(Skia, registerValues, redraw, getNativeId),\n [redraw, registerValues, getNativeId]\n );\n\n // Render effect\n useEffect(() => {\n root.render(children);\n }, [children, root, redraw]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n if (NATIVE_DOM) {\n return (\n <SkiaDomView\n ref={ref}\n style={style}\n root={root.dom}\n onTouch={onTouch}\n onSize={onSize}\n mode={mode}\n debug={debug}\n {...props}\n />\n );\n } else {\n return (\n <SkiaView\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={style}\n mode={mode}\n debug={debug}\n onSize={onSize}\n onDraw={(canvas, info) => {\n onTouch && onTouch(info.touches);\n const ctx = new JsiDrawingContext(Skia, canvas);\n root.dom.render(ctx);\n }}\n {...props}\n />\n );\n }\n }\n) as FunctionComponent<CanvasProps & React.RefAttributes<SkiaDomView>>;\n\n/**\n * Combines a list of refs into a single ref. This can be used to provide\n * both a forwarded ref and an internal ref keeping the same functionality\n * on both of the refs.\n * @param refs Array of refs to combine\n * @returns A single ref that can be used in a ref prop.\n */\nconst useCombinedRefs = <T,>(\n ...refs: Array<MutableRefObject<T> | ForwardedRef<T>>\n) => {\n const targetRef = React.useRef<T>(null);\n React.useEffect(() => {\n refs.forEach((ref) => {\n if (ref) {\n if (typeof ref === \"function\") {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }\n });\n }, [refs]);\n return targetRef;\n};\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import type { Node } from "../dom/types";
2
2
  import type { SkiaValue } from "../values";
3
3
  import type { AnimatedProps } from "./processors";
4
- declare type Unsubscribe = () => void;
5
- declare type Mutator = (value: unknown) => void;
6
- declare type SubscriptionState = {
4
+ type Unsubscribe = () => void;
5
+ type Mutator = (value: unknown) => void;
6
+ type SubscriptionState = {
7
7
  nodes: Map<Node<unknown>, Mutator[]>;
8
8
  unsubscribe: null | Unsubscribe;
9
9
  };