@shopify/react-native-skia 1.11.8 → 1.11.9-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/android/CMakeLists.txt +30 -153
  2. package/android/build.gradle +1 -1
  3. package/cpp/skia/include/codec/SkCodec.h +7 -2
  4. package/cpp/skia/include/config/SkUserConfig.h +11 -0
  5. package/cpp/skia/include/core/SkCanvas.h +11 -7
  6. package/cpp/skia/include/core/SkColor.h +10 -0
  7. package/cpp/skia/include/core/SkColorSpace.h +184 -2
  8. package/cpp/skia/include/core/SkColorType.h +114 -32
  9. package/cpp/skia/include/core/SkFontScanner.h +5 -8
  10. package/cpp/skia/include/core/SkFontStyle.h +1 -1
  11. package/cpp/skia/include/core/SkMaskFilter.h +0 -8
  12. package/cpp/skia/include/core/SkMilestone.h +1 -1
  13. package/cpp/skia/include/core/SkPath.h +1 -1
  14. package/cpp/skia/include/core/SkRRect.h +3 -1
  15. package/cpp/skia/include/core/SkShader.h +3 -3
  16. package/cpp/skia/include/core/SkString.h +8 -8
  17. package/cpp/skia/include/core/SkSurface.h +14 -0
  18. package/cpp/skia/include/core/SkTypeface.h +24 -7
  19. package/cpp/skia/include/effects/SkGradientShader.h +6 -1
  20. package/cpp/skia/include/effects/SkRuntimeEffect.h +1 -0
  21. package/cpp/skia/include/encode/SkPngEncoder.h +14 -0
  22. package/cpp/skia/include/gpu/GpuTypes.h +9 -0
  23. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +135 -133
  24. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +5 -0
  25. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +3 -3
  26. package/cpp/skia/include/gpu/ganesh/GrTypes.h +14 -9
  27. package/cpp/skia/include/gpu/graphite/Context.h +25 -2
  28. package/cpp/skia/include/gpu/graphite/ContextOptions.h +23 -5
  29. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +20 -1
  30. package/cpp/skia/include/gpu/graphite/Image.h +1 -0
  31. package/cpp/skia/include/gpu/graphite/LogPriority.h +36 -0
  32. package/cpp/skia/include/gpu/graphite/PrecompileContext.h +52 -0
  33. package/cpp/skia/include/gpu/graphite/Recorder.h +6 -0
  34. package/cpp/skia/include/gpu/graphite/Recording.h +3 -1
  35. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +4 -36
  36. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypesUtils.h +48 -0
  37. package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +3 -2
  38. package/cpp/skia/include/pathops/SkPathOps.h +9 -1
  39. package/cpp/skia/include/ports/SkFontMgr_FontConfigInterface.h +3 -0
  40. package/cpp/skia/include/private/SkPathRef.h +15 -21
  41. package/cpp/skia/include/private/base/SkAttributes.h +16 -10
  42. package/cpp/skia/include/private/base/SkMutex.h +8 -0
  43. package/cpp/skia/include/private/base/SkTArray.h +1 -1
  44. package/cpp/skia/include/private/base/SkTDArray.h +1 -1
  45. package/cpp/skia/include/private/base/SkTemplates.h +24 -11
  46. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
  47. package/cpp/skia/include/sksl/SkSLDebugTrace.h +0 -3
  48. package/cpp/skia/modules/skcms/src/Transform_inl.h +20 -20
  49. package/cpp/skia/modules/skcms/src/skcms_Transform.h +4 -3
  50. package/cpp/skia/modules/skcms/src/skcms_public.h +19 -15
  51. package/cpp/skia/modules/skresources/include/SkResources.h +3 -1
  52. package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
  53. package/cpp/skia/modules/svg/include/SkSVGContainer.h +1 -1
  54. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
  55. package/cpp/skia/modules/svg/include/SkSVGImage.h +2 -2
  56. package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
  57. package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
  58. package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
  59. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +2 -0
  60. package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -0
  61. package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
  62. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +4 -0
  63. package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
  64. package/cpp/skia/src/core/SkLRUCache.h +19 -13
  65. package/cpp/skia/src/core/SkTHash.h +50 -4
  66. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +1 -0
  67. package/lib/commonjs/external/reanimated/textures.js +4 -3
  68. package/lib/commonjs/external/reanimated/textures.js.map +1 -1
  69. package/lib/commonjs/headless/index.d.ts +1 -1
  70. package/lib/commonjs/headless/index.js +2 -2
  71. package/lib/commonjs/headless/index.js.map +1 -1
  72. package/lib/commonjs/renderer/Canvas.d.ts +2 -2
  73. package/lib/commonjs/renderer/Canvas.js +10 -27
  74. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  75. package/lib/commonjs/renderer/Offscreen.d.ts +2 -2
  76. package/lib/commonjs/renderer/Offscreen.js +4 -4
  77. package/lib/commonjs/renderer/Offscreen.js.map +1 -1
  78. package/lib/commonjs/renderer/__tests__/setup.d.ts +5 -5
  79. package/lib/commonjs/sksg/Container.d.ts +3 -1
  80. package/lib/commonjs/sksg/Container.js +7 -1
  81. package/lib/commonjs/sksg/Container.js.map +1 -1
  82. package/lib/commonjs/sksg/HostConfig.d.ts +1 -1
  83. package/lib/commonjs/sksg/HostConfig.js +36 -6
  84. package/lib/commonjs/sksg/HostConfig.js.map +1 -1
  85. package/lib/commonjs/sksg/Reconciler.d.ts +3 -2
  86. package/lib/commonjs/sksg/Reconciler.js +16 -6
  87. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  88. package/lib/module/Platform/Platform.web.js +1 -1
  89. package/lib/module/Platform/Platform.web.js.map +1 -1
  90. package/lib/module/dom/nodes/datatypes/Circle.js +1 -2
  91. package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
  92. package/lib/module/dom/nodes/datatypes/Gradient.js +3 -3
  93. package/lib/module/dom/nodes/datatypes/Gradient.js.map +1 -1
  94. package/lib/module/dom/nodes/datatypes/Rect.js +3 -5
  95. package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
  96. package/lib/module/external/reanimated/buffers.js +1 -2
  97. package/lib/module/external/reanimated/buffers.js.map +1 -1
  98. package/lib/module/external/reanimated/textures.js +5 -4
  99. package/lib/module/external/reanimated/textures.js.map +1 -1
  100. package/lib/module/external/reanimated/useAnimatedImageValue.js +1 -1
  101. package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
  102. package/lib/module/external/reanimated/useVideo.js +10 -23
  103. package/lib/module/external/reanimated/useVideo.js.map +1 -1
  104. package/lib/module/headless/index.d.ts +1 -1
  105. package/lib/module/headless/index.js +2 -2
  106. package/lib/module/headless/index.js.map +1 -1
  107. package/lib/module/renderer/Canvas.d.ts +2 -2
  108. package/lib/module/renderer/Canvas.js +9 -27
  109. package/lib/module/renderer/Canvas.js.map +1 -1
  110. package/lib/module/renderer/Offscreen.d.ts +2 -2
  111. package/lib/module/renderer/Offscreen.js +4 -4
  112. package/lib/module/renderer/Offscreen.js.map +1 -1
  113. package/lib/module/renderer/__tests__/setup.d.ts +5 -5
  114. package/lib/module/skia/core/Vector.js +1 -1
  115. package/lib/module/skia/core/Vector.js.map +1 -1
  116. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js +1 -4
  117. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js.map +1 -1
  118. package/lib/module/skia/web/Host.js +1 -7
  119. package/lib/module/skia/web/Host.js.map +1 -1
  120. package/lib/module/skia/web/JsiSkAnimatedImage.js +3 -6
  121. package/lib/module/skia/web/JsiSkAnimatedImage.js.map +1 -1
  122. package/lib/module/skia/web/JsiSkCanvas.js +3 -6
  123. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  124. package/lib/module/skia/web/JsiSkColorFilter.js +3 -6
  125. package/lib/module/skia/web/JsiSkColorFilter.js.map +1 -1
  126. package/lib/module/skia/web/JsiSkContourMeasure.js +3 -6
  127. package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
  128. package/lib/module/skia/web/JsiSkContourMeasureIter.js +3 -6
  129. package/lib/module/skia/web/JsiSkContourMeasureIter.js.map +1 -1
  130. package/lib/module/skia/web/JsiSkData.js +3 -6
  131. package/lib/module/skia/web/JsiSkData.js.map +1 -1
  132. package/lib/module/skia/web/JsiSkFont.js +3 -6
  133. package/lib/module/skia/web/JsiSkFont.js.map +1 -1
  134. package/lib/module/skia/web/JsiSkImage.js +8 -12
  135. package/lib/module/skia/web/JsiSkImage.js.map +1 -1
  136. package/lib/module/skia/web/JsiSkImageFilter.js +3 -6
  137. package/lib/module/skia/web/JsiSkImageFilter.js.map +1 -1
  138. package/lib/module/skia/web/JsiSkMaskFilter.js +3 -6
  139. package/lib/module/skia/web/JsiSkMaskFilter.js.map +1 -1
  140. package/lib/module/skia/web/JsiSkMatrix.js +5 -8
  141. package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
  142. package/lib/module/skia/web/JsiSkPaint.js +3 -6
  143. package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
  144. package/lib/module/skia/web/JsiSkParagraphBuilder.js +2 -3
  145. package/lib/module/skia/web/JsiSkParagraphBuilder.js.map +1 -1
  146. package/lib/module/skia/web/JsiSkParagraphBuilderFactory.js +1 -1
  147. package/lib/module/skia/web/JsiSkParagraphBuilderFactory.js.map +1 -1
  148. package/lib/module/skia/web/JsiSkParagraphStyle.js +15 -15
  149. package/lib/module/skia/web/JsiSkParagraphStyle.js.map +1 -1
  150. package/lib/module/skia/web/JsiSkPath.js +3 -6
  151. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  152. package/lib/module/skia/web/JsiSkPathEffect.js +3 -6
  153. package/lib/module/skia/web/JsiSkPathEffect.js.map +1 -1
  154. package/lib/module/skia/web/JsiSkPicture.js +3 -6
  155. package/lib/module/skia/web/JsiSkPicture.js.map +1 -1
  156. package/lib/module/skia/web/JsiSkPictureRecorder.js +3 -6
  157. package/lib/module/skia/web/JsiSkPictureRecorder.js.map +1 -1
  158. package/lib/module/skia/web/JsiSkPoint.js +3 -6
  159. package/lib/module/skia/web/JsiSkPoint.js.map +1 -1
  160. package/lib/module/skia/web/JsiSkRRect.js +3 -6
  161. package/lib/module/skia/web/JsiSkRRect.js.map +1 -1
  162. package/lib/module/skia/web/JsiSkRSXform.js +3 -6
  163. package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
  164. package/lib/module/skia/web/JsiSkRect.js +3 -6
  165. package/lib/module/skia/web/JsiSkRect.js.map +1 -1
  166. package/lib/module/skia/web/JsiSkRuntimeEffect.js +3 -6
  167. package/lib/module/skia/web/JsiSkRuntimeEffect.js.map +1 -1
  168. package/lib/module/skia/web/JsiSkSVG.js +5 -8
  169. package/lib/module/skia/web/JsiSkSVG.js.map +1 -1
  170. package/lib/module/skia/web/JsiSkShader.js +3 -6
  171. package/lib/module/skia/web/JsiSkShader.js.map +1 -1
  172. package/lib/module/skia/web/JsiSkSurface.js +3 -6
  173. package/lib/module/skia/web/JsiSkSurface.js.map +1 -1
  174. package/lib/module/skia/web/JsiSkTextBlob.js +3 -6
  175. package/lib/module/skia/web/JsiSkTextBlob.js.map +1 -1
  176. package/lib/module/skia/web/JsiSkTypeface.js +3 -6
  177. package/lib/module/skia/web/JsiSkTypeface.js.map +1 -1
  178. package/lib/module/skia/web/JsiSkTypefaceFontProvider.js +1 -4
  179. package/lib/module/skia/web/JsiSkTypefaceFontProvider.js.map +1 -1
  180. package/lib/module/skia/web/JsiSkVertices.js +3 -6
  181. package/lib/module/skia/web/JsiSkVertices.js.map +1 -1
  182. package/lib/module/skia/web/JsiVideo.js +2 -5
  183. package/lib/module/skia/web/JsiVideo.js.map +1 -1
  184. package/lib/module/sksg/Container.d.ts +3 -1
  185. package/lib/module/sksg/Container.js +11 -8
  186. package/lib/module/sksg/Container.js.map +1 -1
  187. package/lib/module/sksg/HostConfig.d.ts +1 -1
  188. package/lib/module/sksg/HostConfig.js +36 -7
  189. package/lib/module/sksg/HostConfig.js.map +1 -1
  190. package/lib/module/sksg/Reconciler.d.ts +3 -2
  191. package/lib/module/sksg/Reconciler.js +16 -11
  192. package/lib/module/sksg/Reconciler.js.map +1 -1
  193. package/lib/module/sksg/Recorder/ReanimatedRecorder.js +1 -5
  194. package/lib/module/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  195. package/lib/module/sksg/Recorder/Recorder.js +3 -6
  196. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  197. package/lib/module/sksg/Recorder/Visitor.js +1 -1
  198. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  199. package/lib/module/sksg/Recorder/commands/Drawing.js +2 -4
  200. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  201. package/lib/module/sksg/Recorder/commands/Shaders.js +2 -3
  202. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  203. package/lib/module/views/SkiaBaseWebView.js +9 -12
  204. package/lib/module/views/SkiaBaseWebView.js.map +1 -1
  205. package/lib/module/views/SkiaPictureView.js +1 -5
  206. package/lib/module/views/SkiaPictureView.js.map +1 -1
  207. package/lib/module/views/SkiaPictureView.web.js +1 -4
  208. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  209. package/lib/module/web/LoadSkiaWeb.js +1 -2
  210. package/lib/module/web/LoadSkiaWeb.js.map +1 -1
  211. package/lib/module/web/WithSkiaWeb.js +1 -1
  212. package/lib/module/web/WithSkiaWeb.js.map +1 -1
  213. package/lib/typescript/lib/commonjs/headless/index.d.ts +1 -1
  214. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +9 -1
  215. package/lib/typescript/lib/commonjs/renderer/Offscreen.d.ts +2 -2
  216. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +3 -0
  217. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +21 -4
  218. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +9 -2
  219. package/lib/typescript/lib/module/headless/index.d.ts +1 -1
  220. package/lib/typescript/lib/module/renderer/Canvas.d.ts +9 -1
  221. package/lib/typescript/lib/module/renderer/Offscreen.d.ts +2 -2
  222. package/lib/typescript/lib/module/skia/web/CanvasKitWebGLBufferImpl.d.ts +2 -2
  223. package/lib/typescript/lib/module/skia/web/JsiSkAnimatedImage.d.ts +1 -0
  224. package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -0
  225. package/lib/typescript/lib/module/skia/web/JsiSkColorFilter.d.ts +1 -0
  226. package/lib/typescript/lib/module/skia/web/JsiSkContourMeasure.d.ts +1 -0
  227. package/lib/typescript/lib/module/skia/web/JsiSkContourMeasureIter.d.ts +1 -0
  228. package/lib/typescript/lib/module/skia/web/JsiSkData.d.ts +1 -0
  229. package/lib/typescript/lib/module/skia/web/JsiSkFont.d.ts +1 -0
  230. package/lib/typescript/lib/module/skia/web/JsiSkImage.d.ts +1 -0
  231. package/lib/typescript/lib/module/skia/web/JsiSkImageFilter.d.ts +1 -0
  232. package/lib/typescript/lib/module/skia/web/JsiSkMaskFilter.d.ts +1 -0
  233. package/lib/typescript/lib/module/skia/web/JsiSkMatrix.d.ts +1 -0
  234. package/lib/typescript/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
  235. package/lib/typescript/lib/module/skia/web/JsiSkPath.d.ts +1 -0
  236. package/lib/typescript/lib/module/skia/web/JsiSkPathEffect.d.ts +1 -0
  237. package/lib/typescript/lib/module/skia/web/JsiSkPicture.d.ts +1 -0
  238. package/lib/typescript/lib/module/skia/web/JsiSkPictureRecorder.d.ts +1 -0
  239. package/lib/typescript/lib/module/skia/web/JsiSkPoint.d.ts +1 -0
  240. package/lib/typescript/lib/module/skia/web/JsiSkRRect.d.ts +1 -0
  241. package/lib/typescript/lib/module/skia/web/JsiSkRSXform.d.ts +1 -0
  242. package/lib/typescript/lib/module/skia/web/JsiSkRect.d.ts +1 -0
  243. package/lib/typescript/lib/module/skia/web/JsiSkRuntimeEffect.d.ts +1 -0
  244. package/lib/typescript/lib/module/skia/web/JsiSkSVG.d.ts +1 -0
  245. package/lib/typescript/lib/module/skia/web/JsiSkShader.d.ts +1 -0
  246. package/lib/typescript/lib/module/skia/web/JsiSkSurface.d.ts +1 -0
  247. package/lib/typescript/lib/module/skia/web/JsiSkTextBlob.d.ts +1 -0
  248. package/lib/typescript/lib/module/skia/web/JsiSkTypeface.d.ts +1 -0
  249. package/lib/typescript/lib/module/skia/web/JsiSkTypefaceFontProvider.d.ts +1 -0
  250. package/lib/typescript/lib/module/skia/web/JsiSkVertices.d.ts +1 -0
  251. package/lib/typescript/lib/module/skia/web/JsiVideo.d.ts +2 -2
  252. package/lib/typescript/lib/module/sksg/Container.d.ts +7 -12
  253. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +20 -4
  254. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +18 -17
  255. package/lib/typescript/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +1 -0
  256. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +5 -2
  257. package/lib/typescript/lib/module/views/SkiaBaseWebView.d.ts +12 -11
  258. package/lib/typescript/lib/module/views/SkiaPictureView.d.ts +2 -2
  259. package/lib/typescript/lib/module/views/SkiaPictureView.web.d.ts +1 -1
  260. package/lib/typescript/src/headless/index.d.ts +1 -1
  261. package/lib/typescript/src/renderer/Canvas.d.ts +2 -2
  262. package/lib/typescript/src/renderer/Offscreen.d.ts +2 -2
  263. package/lib/typescript/src/renderer/__tests__/setup.d.ts +5 -5
  264. package/lib/typescript/src/sksg/Container.d.ts +3 -1
  265. package/lib/typescript/src/sksg/HostConfig.d.ts +1 -1
  266. package/lib/typescript/src/sksg/Reconciler.d.ts +3 -2
  267. package/libs/apple/libskia.xcframework/Info.plist +15 -15
  268. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  269. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  270. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  271. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  272. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  273. package/libs/apple/libskottie.xcframework/Info.plist +8 -8
  274. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  275. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  276. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  277. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  278. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  279. package/libs/apple/libskparagraph.xcframework/Info.plist +7 -7
  280. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  281. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  282. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  283. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  284. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  285. package/libs/apple/libsksg.xcframework/Info.plist +12 -12
  286. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  287. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  288. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  289. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  290. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  291. package/libs/apple/libskshaper.xcframework/Info.plist +14 -14
  292. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  293. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  294. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  295. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  296. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  297. package/libs/apple/libskunicode_core.xcframework/Info.plist +14 -14
  298. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  299. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  300. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  301. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
  302. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  303. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +13 -13
  304. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  305. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  306. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  307. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  308. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  309. package/libs/apple/libsvg.xcframework/Info.plist +11 -11
  310. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  311. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  312. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  313. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  314. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  315. package/package.json +10 -9
  316. package/src/external/reanimated/textures.tsx +5 -4
  317. package/src/headless/index.ts +2 -2
  318. package/src/renderer/Canvas.tsx +57 -80
  319. package/src/renderer/Offscreen.tsx +4 -4
  320. package/src/renderer/__tests__/Data.spec.tsx +9 -10
  321. package/src/renderer/__tests__/Drawings.spec.tsx +11 -11
  322. package/src/renderer/__tests__/FitBox.spec.tsx +10 -10
  323. package/src/renderer/__tests__/Glyphs.spec.tsx +2 -2
  324. package/src/renderer/__tests__/Image.spec.tsx +2 -2
  325. package/src/renderer/__tests__/Paths.spec.tsx +8 -8
  326. package/src/renderer/__tests__/Picture.spec.tsx +10 -12
  327. package/src/renderer/__tests__/Simple.spec.tsx +6 -6
  328. package/src/renderer/__tests__/Surfaces.spec.tsx +2 -2
  329. package/src/renderer/__tests__/Text.spec.tsx +12 -12
  330. package/src/renderer/__tests__/Transform.spec.tsx +8 -8
  331. package/src/renderer/__tests__/documentation/Group.spec.tsx +12 -12
  332. package/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.tsx +2 -2
  333. package/src/renderer/__tests__/documentation/paint/Overview.spec.tsx +8 -8
  334. package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +4 -4
  335. package/src/renderer/__tests__/e2e/Atlas.spec.tsx +3 -3
  336. package/src/renderer/__tests__/e2e/Offscreen.spec.tsx +1 -1
  337. package/src/renderer/__tests__/examples/BlendModes.spec.tsx +4 -4
  338. package/src/renderer/__tests__/setup.tsx +13 -13
  339. package/src/sksg/Container.ts +9 -1
  340. package/src/sksg/HostConfig.ts +37 -7
  341. package/src/sksg/Reconciler.ts +17 -6
  342. package/src/sksg/__tests__/Simple.spec.tsx +8 -8
  343. package/lib/commonjs/sksg/HostConfig2.d.ts +0 -19
  344. package/lib/commonjs/sksg/HostConfig2.js +0 -159
  345. package/lib/commonjs/sksg/HostConfig2.js.map +0 -1
  346. package/lib/module/sksg/HostConfig2.d.ts +0 -19
  347. package/lib/module/sksg/HostConfig2.js +0 -152
  348. package/lib/module/sksg/HostConfig2.js.map +0 -1
  349. package/lib/typescript/lib/commonjs/sksg/HostConfig2.d.ts +0 -44
  350. package/lib/typescript/lib/module/sksg/HostConfig2.d.ts +0 -43
  351. package/lib/typescript/src/sksg/HostConfig2.d.ts +0 -19
  352. package/src/sksg/HostConfig2.ts +0 -247
@@ -1 +1 @@
1
- {"version":3,"names":["deflate","enumKey","fitRects","inflate","NodeType","processCircle","processColor","processPath","processRect","processRRect","saturate","BlendMode","BlurStyle","ClipOp","FillType","FilterMode","isCubicSampling","isRRect","MipmapMode","PointMode","VertexMode","materialize","drawLine","ctx","props","p1","p2","canvas","x","y","paint","drawOval","rect","Skia","drawBox","children","box","defaultBox","opacity","getAlphaf","RRectXY","shadows","map","node","type","BoxShadow","filter","n","shadow","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","Intersect","outer","drawDRRect","restore","drawImage","image","sampling","_props$fit","fit","src","dst","width","height","drawImageRectCubic","B","C","_sampling$filter","_sampling$mipmap","drawImageRectOptions","Linear","mipmap","None","drawPoints","points","mode","drawVertices","textures","colors","indices","blendMode","vertexMode","Triangles","vertices","MakeVertices","c","undefined","defaultBlendMode","DstOver","SrcOver","blend","drawDiffRect","drawTextPath","path","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","willMutatePath","pristinePath","copy","setFillType","trim","drawRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","translate","drawSvg","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","drawCircle","r","drawFill","_props","drawPaint"],"sources":["Drawing.ts"],"sourcesContent":["import {\n deflate,\n enumKey,\n fitRects,\n inflate,\n NodeType,\n processCircle,\n processColor,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n CircleProps,\n DiffRectProps,\n DrawingNodeProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ClipOp,\n FillType,\n FilterMode,\n isCubicSampling,\n isRRect,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { Node } from \"../../Node\";\nimport { materialize } from \"../../utils\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawBox = (\n ctx: DrawingContext,\n props: BoxProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: Node<any>[]\n) => {\n \"worklet\";\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n const shadows = children\n .map((node) => {\n if (node.type === NodeType.BoxShadow) {\n return materialize(node.props);\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => processColor(ctx.Skia, c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => processColor(ctx.Skia, c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = saturate(trimStart);\n const end = saturate(trimEnd);\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n const willMutatePath =\n hasStartOffset || hasEndOffset || hasStrokeOptions || hasFillType;\n const pristinePath = processPath(ctx.Skia, pathProps.path);\n const path = willMutatePath ? pristinePath.copy() : pristinePath;\n if (hasFillType) {\n path.setFillType(FillType[enumKey(fillType)]);\n }\n if (hasStrokeOptions) {\n path.stroke(stroke);\n }\n if (hasStartOffset || hasEndOffset) {\n path.trim(start, end, false);\n }\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, blendMode, sampling } = props;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawFill = (ctx: DrawingContext, _props: DrawingNodeProps) => {\n \"worklet\";\n ctx.canvas.drawPaint(ctx.paint);\n};\n"],"mappings":"AAAA,SACEA,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,aAAa,EACbC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,YAAY,QACP,oBAAoB;AAyB3B,SAASC,QAAQ,QAAQ,8BAA8B;AAEvD,SACEC,SAAS,EACTC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,eAAe,EACfC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,UAAU,QACL,qBAAqB;AAE5B,SAASC,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,QAAQ,GAAGA,CAACC,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAM;IAAEC,EAAE;IAAEC;EAAG,CAAC,GAAGF,KAAK;EACxBD,GAAG,CAACI,MAAM,CAACL,QAAQ,CAACG,EAAE,CAACG,CAAC,EAAEH,EAAE,CAACI,CAAC,EAAEH,EAAE,CAACE,CAAC,EAAEF,EAAE,CAACG,CAAC,EAAEN,GAAG,CAACO,KAAK,CAAC;AACxD,CAAC;AAED,OAAO,MAAMC,QAAQ,GAAGA,CAACR,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAMQ,IAAI,GAAGxB,WAAW,CAACe,GAAG,CAACU,IAAI,EAAET,KAAK,CAAC;EACzCD,GAAG,CAACI,MAAM,CAACI,QAAQ,CAACC,IAAI,EAAET,GAAG,CAACO,KAAK,CAAC;AACtC,CAAC;AAED,OAAO,MAAMI,OAAO,GAAGA,CACrBX,GAAmB,EACnBC,KAAe,EAEfW,QAAqB,KAClB;EACH,SAAS;;EACT,MAAM;IAAEL,KAAK;IAAEG,IAAI;IAAEN;EAAO,CAAC,GAAGJ,GAAG;EACnC,MAAM;IAAEa,GAAG,EAAEC;EAAW,CAAC,GAAGb,KAAK;EACjC,MAAMc,OAAO,GAAGR,KAAK,CAACS,SAAS,CAAC,CAAC;EACjC,MAAMH,GAAG,GAAGnB,OAAO,CAACoB,UAAU,CAAC,GAAGA,UAAU,GAAGJ,IAAI,CAACO,OAAO,CAACH,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7E,MAAMI,OAAO,GAAGN,QAAQ,CACrBO,GAAG,CAAEC,IAAI,IAAK;IACb,IAAIA,IAAI,CAACC,IAAI,KAAKxC,QAAQ,CAACyC,SAAS,EAAE;MACpC,OAAOxB,WAAW,CAACsB,IAAI,CAACnB,KAAK,CAAC;IAChC;IACA,OAAO,IAAI;EACb,CAAC,CAAC,CACDsB,MAAM,CAAEC,CAAC,IAA0BA,CAAC,KAAK,IAAI,CAAC;EACjDN,OAAO,CACJK,MAAM,CAAEE,MAAM,IAAK,CAACA,MAAM,CAACC,KAAK,CAAC,CACjCP,GAAG,CAAEM,MAAM,IAAK;IACf,MAAM;MAAEE,KAAK,GAAG,OAAO;MAAEC,IAAI;MAAEC,MAAM,GAAG,CAAC;MAAEC,EAAE,GAAG,CAAC;MAAEC,EAAE,GAAG;IAAE,CAAC,GAAGN,MAAM;IACpE,MAAMO,MAAM,GAAGtB,IAAI,CAACuB,KAAK,CAAC,CAAC;IAC3BD,MAAM,CAACE,QAAQ,CAACnD,YAAY,CAAC2B,IAAI,EAAEiB,KAAK,CAAC,CAAC;IAC1CK,MAAM,CAACG,SAAS,CAAC5B,KAAK,CAACS,SAAS,CAAC,CAAC,GAAGD,OAAO,CAAC;IAC7CiB,MAAM,CAACI,aAAa,CAClB1B,IAAI,CAAC2B,UAAU,CAACC,QAAQ,CAACjD,SAAS,CAACkD,MAAM,EAAEX,IAAI,EAAE,IAAI,CACvD,CAAC;IACDxB,MAAM,CAACoC,SAAS,CAAC5D,OAAO,CAAC8B,IAAI,EAAEG,GAAG,EAAEgB,MAAM,EAAEA,MAAM,EAAEC,EAAE,EAAEC,EAAE,CAAC,EAAEC,MAAM,CAAC;EACtE,CAAC,CAAC;EAEJ5B,MAAM,CAACoC,SAAS,CAAC3B,GAAG,EAAEN,KAAK,CAAC;EAE5BW,OAAO,CACJK,MAAM,CAAEE,MAAM,IAAKA,MAAM,CAACC,KAAK,CAAC,CAChCP,GAAG,CAAEM,MAAM,IAAK;IACf,MAAM;MAAEE,KAAK,GAAG,OAAO;MAAEC,IAAI;MAAEC,MAAM,GAAG,CAAC;MAAEC,EAAE,GAAG,CAAC;MAAEC,EAAE,GAAG;IAAE,CAAC,GAAGN,MAAM;IACpE,MAAMgB,KAAK,GAAG/B,IAAI,CAACgC,KAAK,CAAC,EAAE,GAAGC,IAAI,CAACC,GAAG,CAACd,EAAE,CAAC,EAAE,EAAE,GAAGa,IAAI,CAACC,GAAG,CAACb,EAAE,CAAC,CAAC;IAC9D3B,MAAM,CAACyC,IAAI,CAAC,CAAC;IACbzC,MAAM,CAAC0C,SAAS,CAACjC,GAAG,EAAEvB,MAAM,CAACyD,SAAS,EAAE,KAAK,CAAC;IAC9C,MAAMf,MAAM,GAAGtB,IAAI,CAACuB,KAAK,CAAC,CAAC;IAC3BD,MAAM,CAACE,QAAQ,CAACnD,YAAY,CAAC2B,IAAI,EAAEiB,KAAK,CAAC,CAAC;IAC1CK,MAAM,CAACG,SAAS,CAAC5B,KAAK,CAACS,SAAS,CAAC,CAAC,GAAGD,OAAO,CAAC;IAE7CiB,MAAM,CAACI,aAAa,CAClB1B,IAAI,CAAC2B,UAAU,CAACC,QAAQ,CAACjD,SAAS,CAACkD,MAAM,EAAEX,IAAI,EAAE,IAAI,CACvD,CAAC;IACD,MAAMF,KAAK,GAAGjD,OAAO,CAACiC,IAAI,EAAEG,GAAG,EAAEgB,MAAM,EAAEA,MAAM,EAAEC,EAAE,EAAEC,EAAE,CAAC;IACxD,MAAMiB,KAAK,GAAGpE,OAAO,CAAC8B,IAAI,EAAEG,GAAG,EAAE4B,KAAK,CAACpC,CAAC,EAAEoC,KAAK,CAACnC,CAAC,CAAC;IAClDF,MAAM,CAAC6C,UAAU,CAACD,KAAK,EAAEtB,KAAK,EAAEM,MAAM,CAAC;IACvC5B,MAAM,CAAC8C,OAAO,CAAC,CAAC;EAClB,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMC,SAAS,GAAGA,CAACnD,GAAmB,EAAEC,KAAiB,KAAK;EACnE,SAAS;;EACT,MAAM;IAAEmD,KAAK;IAAEC;EAAS,CAAC,GAAGpD,KAAK;EACjC,IAAImD,KAAK,EAAE;IAAA,IAAAE,UAAA;IACT,MAAMC,GAAG,IAAAD,UAAA,GAAGrD,KAAK,CAACsD,GAAG,cAAAD,UAAA,cAAAA,UAAA,GAAI,SAAS;IAClC,MAAM7C,IAAI,GAAGxB,WAAW,CAACe,GAAG,CAACU,IAAI,EAAET,KAAK,CAAC;IACzC,MAAM;MAAEuD,GAAG;MAAEC;IAAI,CAAC,GAAG9E,QAAQ,CAC3B4E,GAAG,EACH;MACElD,CAAC,EAAE,CAAC;MACJC,CAAC,EAAE,CAAC;MACJoD,KAAK,EAAEN,KAAK,CAACM,KAAK,CAAC,CAAC;MACpBC,MAAM,EAAEP,KAAK,CAACO,MAAM,CAAC;IACvB,CAAC,EACDlD,IACF,CAAC;IACD,IAAI4C,QAAQ,IAAI5D,eAAe,CAAC4D,QAAQ,CAAC,EAAE;MACzCrD,GAAG,CAACI,MAAM,CAACwD,kBAAkB,CAC3BR,KAAK,EACLI,GAAG,EACHC,GAAG,EACHJ,QAAQ,CAACQ,CAAC,EACVR,QAAQ,CAACS,CAAC,EACV9D,GAAG,CAACO,KACN,CAAC;IACH,CAAC,MAAM;MAAA,IAAAwD,gBAAA,EAAAC,gBAAA;MACLhE,GAAG,CAACI,MAAM,CAAC6D,oBAAoB,CAC7Bb,KAAK,EACLI,GAAG,EACHC,GAAG,GAAAM,gBAAA,GACHV,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE9B,MAAM,cAAAwC,gBAAA,cAAAA,gBAAA,GAAIvE,UAAU,CAAC0E,MAAM,GAAAF,gBAAA,GACrCX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEc,MAAM,cAAAH,gBAAA,cAAAA,gBAAA,GAAIrE,UAAU,CAACyE,IAAI,EACnCpE,GAAG,CAACO,KACN,CAAC;IACH;EACF;AACF,CAAC;AAED,OAAO,MAAM8D,UAAU,GAAGA,CAACrE,GAAmB,EAAEC,KAAkB,KAAK;EACrE,SAAS;;EACT,MAAM;IAAEqE,MAAM;IAAEC;EAAK,CAAC,GAAGtE,KAAK;EAC9BD,GAAG,CAACI,MAAM,CAACiE,UAAU,CAACzE,SAAS,CAAClB,OAAO,CAAC6F,IAAI,CAAC,CAAC,EAAED,MAAM,EAAEtE,GAAG,CAACO,KAAK,CAAC;AACpE,CAAC;AAED,OAAO,MAAMiE,YAAY,GAAGA,CAACxE,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAEsE,IAAI;IAAEE,QAAQ;IAAEC,MAAM;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAG3E,KAAK;EAC5D,MAAM4E,UAAU,GAAGN,IAAI,GAAG1E,UAAU,CAACnB,OAAO,CAAC6F,IAAI,CAAC,CAAC,GAAG1E,UAAU,CAACiF,SAAS;EAC1E,MAAMC,QAAQ,GAAG/E,GAAG,CAACU,IAAI,CAACsE,YAAY,CACpCH,UAAU,EACV5E,KAAK,CAAC8E,QAAQ,EACdN,QAAQ,EACRC,MAAM,GAAGA,MAAM,CAACvD,GAAG,CAAE8D,CAAC,IAAKlG,YAAY,CAACiB,GAAG,CAACU,IAAI,EAAEuE,CAAC,CAAC,CAAC,GAAGC,SAAS,EACjEP,OACF,CAAC;EACD,MAAMQ,gBAAgB,GAAGT,MAAM,GAAGtF,SAAS,CAACgG,OAAO,GAAGhG,SAAS,CAACiG,OAAO;EACvE,MAAMC,KAAK,GAAGV,SAAS,GAAGxF,SAAS,CAACV,OAAO,CAACkG,SAAS,CAAC,CAAC,GAAGO,gBAAgB;EAE1EnF,GAAG,CAACI,MAAM,CAACoE,YAAY,CAACO,QAAQ,EAAEO,KAAK,EAAEtF,GAAG,CAACO,KAAK,CAAC;AACrD,CAAC;AAED,OAAO,MAAMgF,YAAY,GAAGA,CAACvF,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAE+C,KAAK;IAAEtB;EAAM,CAAC,GAAGzB,KAAK;EAC9BD,GAAG,CAACI,MAAM,CAAC6C,UAAU,CAACD,KAAK,EAAEtB,KAAK,EAAE1B,GAAG,CAACO,KAAK,CAAC;AAChD,CAAC;AAED,OAAO,MAAMiF,YAAY,GAAGA,CAACxF,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAMwF,IAAI,GAAGzG,WAAW,CAACgB,GAAG,CAACU,IAAI,EAAET,KAAK,CAACwF,IAAI,CAAC;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAc,CAAC,GAAG1F,KAAK;EACrC,IAAIyF,IAAI,EAAE;IACR,IAAI;MAAEE;IAAK,CAAC,GAAG3F,KAAK;IACpB,MAAM4F,GAAG,GAAGH,IAAI,CAACI,WAAW,CAACF,IAAI,CAAC;IAClC,MAAMG,MAAM,GAAGL,IAAI,CAACM,cAAc,CAACH,GAAG,CAAC;IACvC,MAAMI,GAAgB,GAAG,EAAE;IAC3B,MAAMC,IAAI,GAAGlG,GAAG,CAACU,IAAI,CAACyF,kBAAkB,CAACV,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAIW,IAAI,GAAGF,IAAI,CAACG,IAAI,CAAC,CAAC;IACtB,IAAIC,IAAI,GAAGX,aAAa;IACxB,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,IAAI,CAACY,MAAM,IAAIJ,IAAI,EAAEG,CAAC,EAAE,EAAE;MAC5C,MAAM7C,KAAK,GAAGqC,MAAM,CAACQ,CAAC,CAAC;MACvBD,IAAI,IAAI5C,KAAK,GAAG,CAAC;MACjB,IAAI4C,IAAI,GAAGF,IAAI,CAACI,MAAM,CAAC,CAAC,EAAE;QACxB;QACAJ,IAAI,GAAGF,IAAI,CAACG,IAAI,CAAC,CAAC;QAClB,IAAI,CAACD,IAAI,EAAE;UACT;UACA;UACAR,IAAI,GAAGA,IAAI,CAACa,SAAS,CAAC,CAAC,EAAEF,CAAC,CAAC;UAC3B;QACF;QACAD,IAAI,GAAG5C,KAAK,GAAG,CAAC;MAClB;MACA;MACA;MACA,MAAM,CAACgD,CAAC,EAAEC,CAAC,CAAC,GAAGP,IAAI,CAACQ,SAAS,CAACN,IAAI,CAAC;MACnC,MAAMO,SAAS,GAAGH,CAAC,CAACrG,CAAC,GAAIqD,KAAK,GAAG,CAAC,GAAIiD,CAAC,CAACtG,CAAC;MACzC,MAAMyG,SAAS,GAAGJ,CAAC,CAACpG,CAAC,GAAIoD,KAAK,GAAG,CAAC,GAAIiD,CAAC,CAACrG,CAAC;MACzC2F,GAAG,CAACc,IAAI,CAAC/G,GAAG,CAACU,IAAI,CAACsG,OAAO,CAACL,CAAC,CAACtG,CAAC,EAAEsG,CAAC,CAACrG,CAAC,EAAEuG,SAAS,EAAEC,SAAS,CAAC,CAAC;MAC1DR,IAAI,IAAI5C,KAAK,GAAG,CAAC;IACnB;IACA,MAAMuD,OAAO,GAAGjH,GAAG,CAACU,IAAI,CAACwG,QAAQ,CAACC,eAAe,CAACvB,IAAI,EAAEK,GAAG,EAAEP,IAAI,CAAC;IAClE1F,GAAG,CAACI,MAAM,CAACgH,YAAY,CAACH,OAAO,EAAE,CAAC,EAAE,CAAC,EAAEjH,GAAG,CAACO,KAAK,CAAC;EACnD;AACF,CAAC;AAED,OAAO,MAAM8G,QAAQ,GAAGA,CAACrH,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAM;IAAE2F,IAAI;IAAEvF,CAAC;IAAEC,CAAC;IAAEoF;EAAK,CAAC,GAAGzF,KAAK;EAClC,IAAIyF,IAAI,IAAI,IAAI,EAAE;IAChB1F,GAAG,CAACI,MAAM,CAACiH,QAAQ,CAACzB,IAAI,EAAEvF,CAAC,EAAEC,CAAC,EAAEN,GAAG,CAACO,KAAK,EAAEmF,IAAI,CAAC;EAClD;AACF,CAAC;AAED,OAAO,MAAM4B,SAAS,GAAGA,CAACtH,GAAmB,EAAEC,KAAiB,KAAK;EACnE,SAAS;;EACT,MAAM;IAAEsH,OAAO;IAAE3C,SAAS;IAAE4C;EAAM,CAAC,GAAGvH,KAAK;EAC3C,MAAMkF,gBAAgB,GAAGlF,KAAK,CAACyE,MAAM,GAAGtF,SAAS,CAACgG,OAAO,GAAGhG,SAAS,CAACiG,OAAO;EAC7E,MAAMd,IAAI,GAAGK,SAAS,GAAGxF,SAAS,CAACV,OAAO,CAACkG,SAAS,CAAC,CAAC,GAAGO,gBAAgB;EACzE;EACA;EACA;EACA;EACA;;EAEA,MAAMb,MAAM,GAAG,CACbkD,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,EACXH,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,EACXH,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,EACXH,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,CACZ;EACD,MAAMjD,MAAM,GAAGzE,KAAK,CAACyE,MAAM,GACvBzE,KAAK,CAACyE,MAAM,CAACvD,GAAG,CAAE8D,CAAC,IAAKlG,YAAY,CAACiB,GAAG,CAACU,IAAI,EAAEuE,CAAC,CAAC,CAAC,GAClDC,SAAS;EACblF,GAAG,CAACI,MAAM,CAACkH,SAAS,CAAChD,MAAM,EAAEI,MAAM,EAAE6C,OAAO,EAAEhD,IAAI,EAAEvE,GAAG,CAACO,KAAK,CAAC;AAChE,CAAC;AAED,OAAO,MAAMqH,QAAQ,GAAGA,CAAC5H,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAM;IACJ4H,KAAK,EAAEC,SAAS;IAChBC,GAAG,EAAEC,OAAO;IACZC,QAAQ;IACRC,MAAM;IACN,GAAGC;EACL,CAAC,GAAGlI,KAAK;EACT,MAAM4H,KAAK,GAAG1I,QAAQ,CAAC2I,SAAS,CAAC;EACjC,MAAMC,GAAG,GAAG5I,QAAQ,CAAC6I,OAAO,CAAC;EAC7B,MAAMI,cAAc,GAAGP,KAAK,KAAK,CAAC;EAClC,MAAMQ,YAAY,GAAGN,GAAG,KAAK,CAAC;EAC9B,MAAMO,gBAAgB,GAAGJ,MAAM,KAAKhD,SAAS;EAC7C,MAAMqD,WAAW,GAAG,CAAC,CAACN,QAAQ;EAC9B,MAAMO,cAAc,GAClBJ,cAAc,IAAIC,YAAY,IAAIC,gBAAgB,IAAIC,WAAW;EACnE,MAAME,YAAY,GAAGzJ,WAAW,CAACgB,GAAG,CAACU,IAAI,EAAEyH,SAAS,CAAC1C,IAAI,CAAC;EAC1D,MAAMA,IAAI,GAAG+C,cAAc,GAAGC,YAAY,CAACC,IAAI,CAAC,CAAC,GAAGD,YAAY;EAChE,IAAIF,WAAW,EAAE;IACf9C,IAAI,CAACkD,WAAW,CAACpJ,QAAQ,CAACb,OAAO,CAACuJ,QAAQ,CAAC,CAAC,CAAC;EAC/C;EACA,IAAIK,gBAAgB,EAAE;IACpB7C,IAAI,CAACyC,MAAM,CAACA,MAAM,CAAC;EACrB;EACA,IAAIE,cAAc,IAAIC,YAAY,EAAE;IAClC5C,IAAI,CAACmD,IAAI,CAACf,KAAK,EAAEE,GAAG,EAAE,KAAK,CAAC;EAC9B;EACA/H,GAAG,CAACI,MAAM,CAACwH,QAAQ,CAACnC,IAAI,EAAEzF,GAAG,CAACO,KAAK,CAAC;AACtC,CAAC;AAED,OAAO,MAAMsI,QAAQ,GAAGA,CAAC7I,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAMgH,OAAO,GAAGhI,WAAW,CAACe,GAAG,CAACU,IAAI,EAAET,KAAK,CAAC;EAC5CD,GAAG,CAACI,MAAM,CAACyI,QAAQ,CAAC5B,OAAO,EAAEjH,GAAG,CAACO,KAAK,CAAC;AACzC,CAAC;AAED,OAAO,MAAMiC,SAAS,GAAGA,CAACxC,GAAmB,EAAEC,KAAuB,KAAK;EACzE,SAAS;;EACT,MAAMgH,OAAO,GAAG/H,YAAY,CAACc,GAAG,CAACU,IAAI,EAAET,KAAK,CAAC;EAC7CD,GAAG,CAACI,MAAM,CAACoC,SAAS,CAACyE,OAAO,EAAEjH,GAAG,CAACO,KAAK,CAAC;AAC1C,CAAC;AAED,OAAO,MAAM6G,YAAY,GAAGA,CAACpH,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAE6I,IAAI;IAAEzI,CAAC;IAAEC;EAAE,CAAC,GAAGL,KAAK;EAC5BD,GAAG,CAACI,MAAM,CAACgH,YAAY,CAAC0B,IAAI,EAAEzI,CAAC,EAAEC,CAAC,EAAEN,GAAG,CAACO,KAAK,CAAC;AAChD,CAAC;AAOD,OAAO,MAAMwI,UAAU,GAAGA,CAAC/I,GAAmB,EAAEC,KAAkB,KAAK;EACrE,SAAS;;EACT,MAAMgH,OAAO,GAAGhH,KAAK,CAAC+I,MAAM,CAACC,MAAM,CACjC,CAACC,GAAG,EAAEC,KAAK,KAAK;IACd,MAAM;MAAEC,EAAE;MAAE3B;IAAI,CAAC,GAAG0B,KAAK;IACzBD,GAAG,CAACF,MAAM,CAACjC,IAAI,CAACqC,EAAE,CAAC;IACnBF,GAAG,CAACG,SAAS,CAACtC,IAAI,CAACU,GAAG,CAAC;IACvB,OAAOyB,GAAG;EACZ,CAAC,EACD;IAAEF,MAAM,EAAE,EAAE;IAAEK,SAAS,EAAE;EAAG,CAC9B,CAAC;EACD,MAAM;IAAEL,MAAM;IAAEK;EAAU,CAAC,GAAGpC,OAAO;EACrC,MAAM;IAAE5G,CAAC;IAAEC,CAAC;IAAEoF;EAAK,CAAC,GAAGzF,KAAK;EAC5B,IAAIyF,IAAI,EAAE;IACR1F,GAAG,CAACI,MAAM,CAAC2I,UAAU,CAACC,MAAM,EAAEK,SAAS,EAAEhJ,CAAC,EAAEC,CAAC,EAAEoF,IAAI,EAAE1F,GAAG,CAACO,KAAK,CAAC;EACjE;AACF,CAAC;AAED,OAAO,MAAM+I,YAAY,GAAGA,CAACtJ,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAEG;EAAO,CAAC,GAAGJ,GAAG;EACtB,MAAM;IAAEuJ;EAAI,CAAC,GAAGtJ,KAAK;EACrB,MAAM;IAAEI,CAAC;IAAEC,CAAC;IAAEoD,KAAK;IAAEC;EAAO,CAAC,GAAG1D,KAAK,CAACQ,IAAI,GACtCR,KAAK,CAACQ,IAAI,GACV;IAAEJ,CAAC,EAAEJ,KAAK,CAACI,CAAC;IAAEC,CAAC,EAAEL,KAAK,CAACK,CAAC;IAAEoD,KAAK,EAAEzD,KAAK,CAACyD,KAAK;IAAEC,MAAM,EAAE1D,KAAK,CAAC0D;EAAO,CAAC;EACxE,IAAI4F,GAAG,KAAK,IAAI,EAAE;IAChB;EACF;EACAnJ,MAAM,CAACyC,IAAI,CAAC,CAAC;EACb,IAAIxC,CAAC,IAAIC,CAAC,EAAE;IACVF,MAAM,CAACoJ,SAAS,CAACnJ,CAAC,EAAEC,CAAC,CAAC;EACxB;EACAF,MAAM,CAACqJ,OAAO,CAACF,GAAG,EAAE7F,KAAK,EAAEC,MAAM,CAAC;EAClCvD,MAAM,CAAC8C,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,MAAMwG,aAAa,GAAGA,CAAC1J,GAAmB,EAAEC,KAAqB,KAAK;EAC3E,SAAS;;EACT,MAAM;IAAE0J,SAAS;IAAEtJ,CAAC;IAAEC,CAAC;IAAEoD;EAAM,CAAC,GAAGzD,KAAK;EACxC,IAAI0J,SAAS,EAAE;IACbA,SAAS,CAACC,MAAM,CAAClG,KAAK,CAAC;IACvBiG,SAAS,CAACpJ,KAAK,CAACP,GAAG,CAACI,MAAM,EAAEC,CAAC,EAAEC,CAAC,CAAC;EACnC;AACF,CAAC;AAED,OAAO,MAAMuJ,WAAW,GAAGA,CAAC7J,GAAmB,EAAEC,KAAmB,KAAK;EACvE,SAAS;;EACT,MAAM;IAAE6J;EAAQ,CAAC,GAAG7J,KAAK;EACzBD,GAAG,CAACI,MAAM,CAACyJ,WAAW,CAACC,OAAO,CAAC;AACjC,CAAC;AAED,OAAO,MAAMC,SAAS,GAAGA,CAAC/J,GAAmB,EAAEC,KAAiB,KAAK;EACnE,SAAS;;EACT,MAAM;IAAEmD,KAAK;IAAE4G,OAAO;IAAEC,UAAU;IAAEvF,MAAM;IAAEE,SAAS;IAAEvB;EAAS,CAAC,GAAGpD,KAAK;EACzE,MAAMqF,KAAK,GAAGV,SAAS,GAAGxF,SAAS,CAACV,OAAO,CAACkG,SAAS,CAAC,CAAC,GAAGM,SAAS;EACnE,IAAI9B,KAAK,EAAE;IACTpD,GAAG,CAACI,MAAM,CAAC2J,SAAS,CAClB3G,KAAK,EACL4G,OAAO,EACPC,UAAU,EACVjK,GAAG,CAACO,KAAK,EACT+E,KAAK,EACLZ,MAAM,EACNrB,QACF,CAAC;EACH;AACF,CAAC;AAED,OAAO,MAAM6G,UAAU,GAAGA,CAAClK,GAAmB,EAAEC,KAAkB,KAAK;EACrE,SAAS;;EACT,MAAM;IAAEgF;EAAE,CAAC,GAAGnG,aAAa,CAACmB,KAAK,CAAC;EAClC,MAAM;IAAEkK;EAAE,CAAC,GAAGlK,KAAK;EACnBD,GAAG,CAACI,MAAM,CAAC8J,UAAU,CAACjF,CAAC,CAAC5E,CAAC,EAAE4E,CAAC,CAAC3E,CAAC,EAAE6J,CAAC,EAAEnK,GAAG,CAACO,KAAK,CAAC;AAC/C,CAAC;AAED,OAAO,MAAM6J,QAAQ,GAAGA,CAACpK,GAAmB,EAAEqK,MAAwB,KAAK;EACzE,SAAS;;EACTrK,GAAG,CAACI,MAAM,CAACkK,SAAS,CAACtK,GAAG,CAACO,KAAK,CAAC;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["deflate","enumKey","fitRects","inflate","NodeType","processCircle","processColor","processPath","processRect","processRRect","saturate","BlendMode","BlurStyle","ClipOp","FillType","FilterMode","isCubicSampling","isRRect","MipmapMode","PointMode","VertexMode","materialize","drawLine","ctx","props","p1","p2","canvas","x","y","paint","drawOval","rect","Skia","drawBox","children","box","defaultBox","opacity","getAlphaf","RRectXY","shadows","map","node","type","BoxShadow","filter","n","shadow","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","Normal","drawRRect","delta","Point","Math","abs","save","clipRRect","Intersect","outer","drawDRRect","restore","drawImage","image","sampling","fit","src","dst","width","height","drawImageRectCubic","B","C","drawImageRectOptions","Linear","mipmap","None","drawPoints","points","mode","drawVertices","textures","colors","indices","blendMode","vertexMode","Triangles","vertices","MakeVertices","c","undefined","defaultBlendMode","DstOver","SrcOver","blend","drawDiffRect","drawTextPath","path","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","willMutatePath","pristinePath","copy","setFillType","trim","drawRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","translate","drawSvg","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","drawCircle","r","drawFill","_props","drawPaint"],"sources":["Drawing.ts"],"sourcesContent":["import {\n deflate,\n enumKey,\n fitRects,\n inflate,\n NodeType,\n processCircle,\n processColor,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n CircleProps,\n DiffRectProps,\n DrawingNodeProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ClipOp,\n FillType,\n FilterMode,\n isCubicSampling,\n isRRect,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { Node } from \"../../Node\";\nimport { materialize } from \"../../utils\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawBox = (\n ctx: DrawingContext,\n props: BoxProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: Node<any>[]\n) => {\n \"worklet\";\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n const shadows = children\n .map((node) => {\n if (node.type === NodeType.BoxShadow) {\n return materialize(node.props);\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(processColor(Skia, color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => processColor(ctx.Skia, c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => processColor(ctx.Skia, c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = saturate(trimStart);\n const end = saturate(trimEnd);\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n const willMutatePath =\n hasStartOffset || hasEndOffset || hasStrokeOptions || hasFillType;\n const pristinePath = processPath(ctx.Skia, pathProps.path);\n const path = willMutatePath ? pristinePath.copy() : pristinePath;\n if (hasFillType) {\n path.setFillType(FillType[enumKey(fillType)]);\n }\n if (hasStrokeOptions) {\n path.stroke(stroke);\n }\n if (hasStartOffset || hasEndOffset) {\n path.trim(start, end, false);\n }\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, blendMode, sampling } = props;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawFill = (ctx: DrawingContext, _props: DrawingNodeProps) => {\n \"worklet\";\n ctx.canvas.drawPaint(ctx.paint);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -107,7 +107,7 @@ const declareLinearGradientShader = (ctx, props) => {
107
107
  localMatrix,
108
108
  flags
109
109
  } = processGradientProps(ctx.Skia, props);
110
- const shader = ctx.Skia.Shader.MakeLinearGradient(start, end, colors, positions !== null && positions !== void 0 ? positions : null, mode, localMatrix, flags);
110
+ const shader = ctx.Skia.Shader.MakeLinearGradient(start, end, colors, positions ?? null, mode, localMatrix, flags);
111
111
  ctx.shaders.push(shader);
112
112
  };
113
113
  const declareTurbulenceShader = (ctx, props) => {
@@ -158,8 +158,7 @@ const declareImageShader = (ctx, props) => {
158
158
  if (sampling && isCubicSampling(sampling)) {
159
159
  shader = image.makeShaderCubic(TileMode[enumKey(tx)], TileMode[enumKey(ty)], sampling.B, sampling.C, lm);
160
160
  } else {
161
- var _sampling$filter, _sampling$mipmap;
162
- shader = image.makeShaderCubic(TileMode[enumKey(tx)], TileMode[enumKey(ty)], (_sampling$filter = sampling === null || sampling === void 0 ? void 0 : sampling.filter) !== null && _sampling$filter !== void 0 ? _sampling$filter : FilterMode.Linear, (_sampling$mipmap = sampling === null || sampling === void 0 ? void 0 : sampling.mipmap) !== null && _sampling$mipmap !== void 0 ? _sampling$mipmap : MipmapMode.None, lm);
161
+ shader = image.makeShaderCubic(TileMode[enumKey(tx)], TileMode[enumKey(ty)], (sampling === null || sampling === void 0 ? void 0 : sampling.filter) ?? FilterMode.Linear, (sampling === null || sampling === void 0 ? void 0 : sampling.mipmap) ?? MipmapMode.None, lm);
163
162
  }
164
163
  ctx.shaders.push(shader);
165
164
  };
@@ -1 +1 @@
1
- {"version":3,"names":["enumKey","fitRects","getRect","processColor","processGradientProps","processTransformProps","rect2rect","NodeType","BlendMode","FilterMode","isCubicSampling","MipmapMode","processUniforms","TileMode","composeDeclarations","CommandType","declareShader","ctx","props","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","splice","length","push","declareColorShader","color","Shader","MakeColor","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","rects","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderCubic","B","C","_sampling$filter","_sampling$mipmap","filter","Linear","mipmap","None","declareBlend","blend","composer","MakeBlend","bind","isPushShader","command","type","PushShader","isShader","shaderType","pushShader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processColor,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport {\n BlendMode,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (ctx: DrawingContext, props: ShaderProps) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, ctx.shaders.length),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(processColor(ctx.Skia, color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n let shader: SkShader;\n if (sampling && isCubicSampling(sampling)) {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling.B,\n sampling.C,\n lm\n );\n } else {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n lm\n );\n }\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["enumKey","fitRects","getRect","processColor","processGradientProps","processTransformProps","rect2rect","NodeType","BlendMode","FilterMode","isCubicSampling","MipmapMode","processUniforms","TileMode","composeDeclarations","CommandType","declareShader","ctx","props","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","splice","length","push","declareColorShader","color","Shader","MakeColor","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","rects","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderCubic","B","C","filter","Linear","mipmap","None","declareBlend","blend","composer","MakeBlend","bind","isPushShader","command","type","PushShader","isShader","shaderType","pushShader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processColor,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport {\n BlendMode,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (ctx: DrawingContext, props: ShaderProps) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, ctx.shaders.length),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(processColor(ctx.Skia, color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n let shader: SkShader;\n if (sampling && isCubicSampling(sampling)) {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling.B,\n sampling.C,\n lm\n );\n } else {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n lm\n );\n }\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"AAAA,SACEA,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,YAAY,EACZC,oBAAoB,EACpBC,qBAAqB,EACrBC,SAAS,QACJ,oBAAoB;AAC3B,SAASC,QAAQ,QAAQ,oBAAoB;AAc7C,SACEC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,UAAU,EACVC,eAAe,EACfC,QAAQ,QACH,qBAAqB;AAC5B,SAASC,mBAAmB,QAAQ,aAAa;AAEjD,SAASC,WAAW,QAAQ,SAAS;AAGrC,MAAMC,aAAa,GAAGA,CAACC,GAAmB,EAAEC,KAAkB,KAAK;EACjE,SAAS;;EACT,MAAM;IAAEC,MAAM;IAAEC,QAAQ;IAAE,GAAGC;EAAU,CAAC,GAAGH,KAAK;EAChD,MAAMI,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,MAAM,CAAC,CAAC;EAC5BnB,qBAAqB,CAACiB,EAAE,EAAED,SAAS,CAAC;EACpC,MAAMI,MAAM,GAAGN,MAAM,CAACO,sBAAsB,CAC1Cd,eAAe,CAACO,MAAM,EAAEC,QAAQ,CAAC,EACjCH,GAAG,CAACU,OAAO,CAACC,MAAM,CAAC,CAAC,EAAEX,GAAG,CAACU,OAAO,CAACE,MAAM,CAAC,EACzCP,EACF,CAAC;EACDL,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMM,kBAAkB,GAAGA,CAACd,GAAmB,EAAEC,KAAiB,KAAK;EACrE,SAAS;;EACT,MAAM;IAAEc;EAAM,CAAC,GAAGd,KAAK;EACvB,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAACC,SAAS,CAAC/B,YAAY,CAACc,GAAG,CAACM,IAAI,EAAES,KAAK,CAAC,CAAC;EACvEf,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMU,yBAAyB,GAAGA,CAChClB,GAAmB,EACnBC,KAAwB,KACrB;EACH,SAAS;;EACT,MAAM;IAAEkB,KAAK;IAAEC,KAAK;IAAEC,OAAO;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGvB,KAAK;EACpE,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAACS,gBAAgB,CAC7CN,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTC,UACF,CAAC;EACDxB,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMkB,oCAAoC,GAAGA,CAC3C1B,GAAmB,EACnBC,KAAmC,KAChC;EACH,SAAS;;EACT,MAAM;IAAE0B,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAG7B,KAAK;EAC1C,MAAM;IAAE8B,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAGhD,oBAAoB,CAC1Ea,GAAG,CAACM,IAAI,EACRL,KACF,CAAC;EACD,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAACoB,2BAA2B,CACxDP,KAAK,EACLF,MAAM,EACNG,GAAG,EACHF,IAAI,EACJG,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,KACF,CAAC;EACDnC,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM6B,2BAA2B,GAAGA,CAClCrC,GAAmB,EACnBC,KAA0B,KACvB;EACH,SAAS;;EACT,MAAM;IAAEqC,CAAC;IAAEC;EAAE,CAAC,GAAGtC,KAAK;EACtB,MAAM;IAAE8B,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAGhD,oBAAoB,CAC1Ea,GAAG,CAACM,IAAI,EACRL,KACF,CAAC;EACD,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAACwB,kBAAkB,CAC/CF,CAAC,EACDC,CAAC,EACDR,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,KACF,CAAC;EACDnC,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMiC,0BAA0B,GAAGA,CACjCzC,GAAmB,EACnBC,KAAyB,KACtB;EACH,SAAS;;EACT,MAAM;IAAEqC,CAAC;IAAET,KAAK;IAAEC;EAAI,CAAC,GAAG7B,KAAK;EAC/B,MAAM;IAAE8B,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAGhD,oBAAoB,CAC1Ea,GAAG,CAACM,IAAI,EACRL,KACF,CAAC;EACD,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAAC0B,iBAAiB,CAC9CJ,CAAC,CAACK,CAAC,EACHL,CAAC,CAACM,CAAC,EACHb,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,KAAK,EACLN,KAAK,EACLC,GACF,CAAC;EACD9B,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMqC,2BAA2B,GAAGA,CAClC7C,GAAmB,EACnBC,KAA0B,KACvB;EACH,SAAS;;EACT,MAAM;IAAE4B,KAAK;IAAEC;EAAI,CAAC,GAAG7B,KAAK;EAC5B,MAAM;IAAE8B,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAGhD,oBAAoB,CAC1Ea,GAAG,CAACM,IAAI,EACRL,KACF,CAAC;EACD,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAAC8B,kBAAkB,CAC/CjB,KAAK,EACLC,GAAG,EACHC,MAAM,EACNC,SAAS,IAAI,IAAI,EACjBC,IAAI,EACJC,WAAW,EACXC,KACF,CAAC;EACDnC,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMuC,uBAAuB,GAAGA,CAC9B/C,GAAmB,EACnBC,KAAsB,KACnB;EACH,SAAS;;EACT,MAAM;IAAEkB,KAAK;IAAEC,KAAK;IAAEC,OAAO;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGvB,KAAK;EACpE,MAAMO,MAAM,GAAGR,GAAG,CAACM,IAAI,CAACU,MAAM,CAACgC,cAAc,CAC3C7B,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTC,UACF,CAAC;EACDxB,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMyC,kBAAkB,GAAGA,CAACjD,GAAmB,EAAEC,KAAuB,KAAK;EAC3E,SAAS;;EACT,MAAM;IAAEiD,GAAG;IAAEC,KAAK;IAAEC,EAAE;IAAEC,EAAE;IAAEC,QAAQ;IAAE,GAAGC;EAAiB,CAAC,GAAGtD,KAAK;EACnE,IAAI,CAACkD,KAAK,EAAE;IACV;EACF;EAEA,MAAMK,GAAG,GAAGvE,OAAO,CAACe,GAAG,CAACM,IAAI,EAAEiD,gBAAgB,CAAC;EAC/C,MAAMlD,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,MAAM,CAAC,CAAC;EAC5B,IAAIiD,GAAG,EAAE;IACP,MAAMC,KAAK,GAAGzE,QAAQ,CACpBkE,GAAG,EACH;MAAEP,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE,CAAC;MAAEc,KAAK,EAAEP,KAAK,CAACO,KAAK,CAAC,CAAC;MAAEC,MAAM,EAAER,KAAK,CAACQ,MAAM,CAAC;IAAE,CAAC,EAC5DH,GACF,CAAC;IACD,MAAM,CAACb,CAAC,EAAEC,CAAC,EAAEgB,EAAE,EAAEC,EAAE,CAAC,GAAGxE,SAAS,CAACoE,KAAK,CAACK,GAAG,EAAEL,KAAK,CAACM,GAAG,CAAC;IACtD1D,EAAE,CAAC2D,SAAS,CAACrB,CAAC,CAACsB,UAAU,EAAErB,CAAC,CAACsB,UAAU,CAAC;IACxC7D,EAAE,CAAC8D,KAAK,CAACP,EAAE,CAACQ,MAAM,EAAEP,EAAE,CAACQ,MAAM,CAAC;EAChC;EACA,MAAMC,EAAE,GAAGtE,GAAG,CAACM,IAAI,CAACC,MAAM,CAAC,CAAC;EAC5B+D,EAAE,CAACC,MAAM,CAAClE,EAAE,CAAC;EACbjB,qBAAqB,CAACkF,EAAE,EAAEf,gBAAgB,CAAC;EAC3C,IAAI/C,MAAgB;EACpB,IAAI8C,QAAQ,IAAI7D,eAAe,CAAC6D,QAAQ,CAAC,EAAE;IACzC9C,MAAM,GAAG2C,KAAK,CAACqB,eAAe,CAC5B5E,QAAQ,CAACb,OAAO,CAACqE,EAAE,CAAC,CAAC,EACrBxD,QAAQ,CAACb,OAAO,CAACsE,EAAE,CAAC,CAAC,EACrBC,QAAQ,CAACmB,CAAC,EACVnB,QAAQ,CAACoB,CAAC,EACVJ,EACF,CAAC;EACH,CAAC,MAAM;IACL9D,MAAM,GAAG2C,KAAK,CAACqB,eAAe,CAC5B5E,QAAQ,CAACb,OAAO,CAACqE,EAAE,CAAC,CAAC,EACrBxD,QAAQ,CAACb,OAAO,CAACsE,EAAE,CAAC,CAAC,EACrB,CAAAC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEqB,MAAM,KAAInF,UAAU,CAACoF,MAAM,EACrC,CAAAtB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEuB,MAAM,KAAInF,UAAU,CAACoF,IAAI,EACnCR,EACF,CAAC;EACH;EACAtE,GAAG,CAACU,OAAO,CAACG,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMuE,YAAY,GAAGA,CAAC/E,GAAmB,EAAEC,KAAiB,KAAK;EAC/D,SAAS;;EACT,MAAM+E,KAAK,GAAGzF,SAAS,CAACR,OAAO,CAACkB,KAAK,CAACgC,IAA0B,CAAC,CAAC;EAClE,MAAMvB,OAAO,GAAGV,GAAG,CAACU,OAAO,CAACC,MAAM,CAAC,CAAC,EAAEX,GAAG,CAACU,OAAO,CAACE,MAAM,CAAC;EACzD,IAAIF,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;IACtB,MAAMqE,QAAQ,GAAGjF,GAAG,CAACM,IAAI,CAACU,MAAM,CAACkE,SAAS,CAACC,IAAI,CAACnF,GAAG,CAACM,IAAI,CAACU,MAAM,EAAEgE,KAAK,CAAC;IACvEhF,GAAG,CAACU,OAAO,CAACG,IAAI,CAAChB,mBAAmB,CAACa,OAAO,EAAEuE,QAAQ,CAAC,CAAC;EAC1D;AACF,CAAC;AAED,OAAO,MAAMG,YAAY,GACvBC,OAAgB,IAC+B;EAC/C,SAAS;;EACT,OAAOA,OAAO,CAACC,IAAI,KAAKxF,WAAW,CAACyF,UAAU;AAChD,CAAC;AAqBD,MAAMC,QAAQ,GAAGA,CACfH,OAAwC,EACxCC,IAAO,KACsB;EAC7B,SAAS;;EACT,OAAOD,OAAO,CAACI,UAAU,KAAKH,IAAI;AACpC,CAAC;AAED,OAAO,MAAMI,UAAU,GAAGA,CACxB1F,GAAmB,EACnBqF,OAAwC,KACrC;EACH,SAAS;;EACT,IAAIG,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAAC0B,MAAM,CAAC,EAAE;IACtCjB,aAAa,CAACC,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EACnC,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAACqG,WAAW,CAAC,EAAE;IAClD1C,kBAAkB,CAACjD,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EACxC,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAACsG,WAAW,CAAC,EAAE;IAClD9E,kBAAkB,CAACd,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EACxC,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAACuG,UAAU,CAAC,EAAE;IACjD9C,uBAAuB,CAAC/C,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EAC7C,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAACwG,YAAY,CAAC,EAAE;IACnD5E,yBAAyB,CAAClB,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EAC/C,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAACyG,cAAc,CAAC,EAAE;IACrDlD,2BAA2B,CAAC7C,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EACjD,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAAC0G,cAAc,CAAC,EAAE;IACrD3D,2BAA2B,CAACrC,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EACjD,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAAC2G,aAAa,CAAC,EAAE;IACpDxD,0BAA0B,CAACzC,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EAChD,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAAC4G,uBAAuB,CAAC,EAAE;IAC9DxE,oCAAoC,CAAC1B,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EAC1D,CAAC,MAAM,IAAIuF,QAAQ,CAACH,OAAO,EAAE/F,QAAQ,CAAC6G,KAAK,CAAC,EAAE;IAC5CpB,YAAY,CAAC/E,GAAG,EAAEqF,OAAO,CAACpF,KAAK,CAAC;EAClC,CAAC,MAAM;IACL,MAAM,IAAImG,KAAK,CAAC,wBAAwBf,OAAO,CAACI,UAAU,EAAE,CAAC;EAC/D;AACF,CAAC","ignoreList":[]}
@@ -1,7 +1,4 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
2
  /* global HTMLCanvasElement */
6
3
  import React from "react";
7
4
  import { JsiSkSurface } from "../skia/web/JsiSkSurface";
@@ -10,16 +7,15 @@ const pd = Platform.PixelRatio;
10
7
  export class SkiaBaseWebView extends React.Component {
11
8
  constructor(props) {
12
9
  super(props);
13
- _defineProperty(this, "_surface", null);
14
- _defineProperty(this, "_unsubscriptions", []);
15
- _defineProperty(this, "_canvas", null);
16
- _defineProperty(this, "_canvasRef", /*#__PURE__*/React.createRef());
17
- _defineProperty(this, "_redrawRequests", 0);
18
- _defineProperty(this, "requestId", 0);
19
- _defineProperty(this, "width", 0);
20
- _defineProperty(this, "height", 0);
21
- _defineProperty(this, "onLayout", this.onLayoutEvent.bind(this));
22
10
  }
11
+ _surface = null;
12
+ _unsubscriptions = [];
13
+ _canvas = null;
14
+ _canvasRef = /*#__PURE__*/React.createRef();
15
+ _redrawRequests = 0;
16
+ requestId = 0;
17
+ width = 0;
18
+ height = 0;
23
19
  unsubscribeAll() {
24
20
  this._unsubscriptions.forEach(u => u());
25
21
  this._unsubscriptions = [];
@@ -113,6 +109,7 @@ export class SkiaBaseWebView extends React.Component {
113
109
  redraw() {
114
110
  this._redrawRequests++;
115
111
  }
112
+ onLayout = this.onLayoutEvent.bind(this);
116
113
  render() {
117
114
  const {
118
115
  debug = false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","JsiSkSurface","Platform","pd","PixelRatio","SkiaBaseWebView","Component","constructor","props","_defineProperty","createRef","onLayoutEvent","bind","unsubscribeAll","_unsubscriptions","forEach","u","evt","CanvasKit","global","canvas","_canvasRef","current","width","clientWidth","height","clientHeight","surface","MakeWebGLCanvasSurface","Error","_surface","_canvas","getCanvas","redraw","onLayout","getSize","componentDidMount","tick","componentDidUpdate","componentWillUnmount","cancelAnimationFrame","requestId","_this$_canvasRef$curr","getContext","getExtension","loseContext","makeImageSnapshot","rect","_this$_surface","_this$_surface2","clear","TRANSPARENT","renderInCanvas","ref","flush","_redrawRequests","_this$_surface3","Float32Array","of","save","scale","restore","requestAnimationFrame","render","debug","viewProps","createElement","View","_extends","style","display","flex"],"sources":["SkiaBaseWebView.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\n\nimport type { SkiaBaseViewProps } from \"./types\";\n\nconst pd = Platform.PixelRatio;\n\nexport abstract class SkiaBaseWebView<\n TProps extends SkiaBaseViewProps\n> extends React.Component<TProps> {\n constructor(props: TProps) {\n super(props);\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef = React.createRef<HTMLCanvasElement>();\n private _redrawRequests = 0;\n private requestId = 0;\n\n protected width = 0;\n protected height = 0;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayoutEvent(evt: LayoutChangeEvent) {\n const { CanvasKit } = global;\n // Reset canvas / surface on layout change\n const canvas = this._canvasRef.current;\n if (canvas) {\n this.width = canvas.clientWidth;\n this.height = canvas.clientHeight;\n canvas.width = this.width * pd;\n canvas.height = this.height * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this._surface = new JsiSkSurface(CanvasKit, surface);\n this._canvas = this._surface.getCanvas();\n this.redraw();\n }\n // Call onLayout callback if it exists\n if (this.props.onLayout) {\n this.props.onLayout(evt);\n }\n }\n\n protected getSize() {\n return { width: this.width, height: this.height };\n }\n\n componentDidMount() {\n // Start render loop\n this.tick();\n }\n\n componentDidUpdate() {\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n cancelAnimationFrame(this.requestId);\n // eslint-disable-next-line max-len\n // https://stackoverflow.com/questions/23598471/how-do-i-clean-up-and-unload-a-webgl-canvas-context-from-gpu-after-use\n // https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context\n // We delete the context, only if the context has been intialized\n if (this._surface) {\n this._canvasRef.current\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\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 this._canvas!.clear(CanvasKit.TRANSPARENT);\n this.renderInCanvas(this._canvas!);\n this._surface?.ref.flush();\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Override to render\n */\n protected abstract renderInCanvas(canvas: SkCanvas): void;\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private tick() {\n if (this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (this._canvas) {\n const canvas = this._canvas!;\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n this.renderInCanvas(canvas);\n canvas.restore();\n this._surface?.ref.flush();\n }\n }\n this.requestId = requestAnimationFrame(this.tick.bind(this));\n }\n\n public redraw() {\n this._redrawRequests++;\n }\n\n private onLayout = this.onLayoutEvent.bind(this);\n\n render() {\n const { debug = false, ...viewProps } = this.props;\n return (\n <Platform.View {...viewProps} onLayout={this.onLayout}>\n <canvas ref={this._canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","JsiSkSurface","Platform","pd","PixelRatio","SkiaBaseWebView","Component","constructor","props","_surface","_unsubscriptions","_canvas","_canvasRef","createRef","_redrawRequests","requestId","width","height","unsubscribeAll","forEach","u","onLayoutEvent","evt","CanvasKit","global","canvas","current","clientWidth","clientHeight","surface","MakeWebGLCanvasSurface","Error","getCanvas","redraw","onLayout","getSize","componentDidMount","tick","componentDidUpdate","componentWillUnmount","cancelAnimationFrame","_this$_canvasRef$curr","getContext","getExtension","loseContext","makeImageSnapshot","rect","_this$_surface","_this$_surface2","clear","TRANSPARENT","renderInCanvas","ref","flush","_this$_surface3","Float32Array","of","save","scale","restore","requestAnimationFrame","bind","render","debug","viewProps","createElement","View","_extends","style","display","flex"],"sources":["SkiaBaseWebView.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\n\nimport type { SkiaBaseViewProps } from \"./types\";\n\nconst pd = Platform.PixelRatio;\n\nexport abstract class SkiaBaseWebView<\n TProps extends SkiaBaseViewProps\n> extends React.Component<TProps> {\n constructor(props: TProps) {\n super(props);\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef = React.createRef<HTMLCanvasElement>();\n private _redrawRequests = 0;\n private requestId = 0;\n\n protected width = 0;\n protected height = 0;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayoutEvent(evt: LayoutChangeEvent) {\n const { CanvasKit } = global;\n // Reset canvas / surface on layout change\n const canvas = this._canvasRef.current;\n if (canvas) {\n this.width = canvas.clientWidth;\n this.height = canvas.clientHeight;\n canvas.width = this.width * pd;\n canvas.height = this.height * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this._surface = new JsiSkSurface(CanvasKit, surface);\n this._canvas = this._surface.getCanvas();\n this.redraw();\n }\n // Call onLayout callback if it exists\n if (this.props.onLayout) {\n this.props.onLayout(evt);\n }\n }\n\n protected getSize() {\n return { width: this.width, height: this.height };\n }\n\n componentDidMount() {\n // Start render loop\n this.tick();\n }\n\n componentDidUpdate() {\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n cancelAnimationFrame(this.requestId);\n // eslint-disable-next-line max-len\n // https://stackoverflow.com/questions/23598471/how-do-i-clean-up-and-unload-a-webgl-canvas-context-from-gpu-after-use\n // https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context\n // We delete the context, only if the context has been intialized\n if (this._surface) {\n this._canvasRef.current\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\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 this._canvas!.clear(CanvasKit.TRANSPARENT);\n this.renderInCanvas(this._canvas!);\n this._surface?.ref.flush();\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Override to render\n */\n protected abstract renderInCanvas(canvas: SkCanvas): void;\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private tick() {\n if (this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (this._canvas) {\n const canvas = this._canvas!;\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n this.renderInCanvas(canvas);\n canvas.restore();\n this._surface?.ref.flush();\n }\n }\n this.requestId = requestAnimationFrame(this.tick.bind(this));\n }\n\n public redraw() {\n this._redrawRequests++;\n }\n\n private onLayout = this.onLayoutEvent.bind(this);\n\n render() {\n const { debug = false, ...viewProps } = this.props;\n return (\n <Platform.View {...viewProps} onLayout={this.onLayout}>\n <canvas ref={this._canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,13 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
2
  import React from "react";
6
3
  import SkiaPictureViewNativeComponent from "../specs/SkiaPictureViewNativeComponent";
7
4
  import { SkiaViewApi } from "./api";
8
5
  import { SkiaViewNativeId } from "./SkiaViewNativeId";
9
6
  const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
10
7
  export class SkiaPictureView extends React.Component {
8
+ requestId = 0;
11
9
  constructor(props) {
12
10
  super(props);
13
- _defineProperty(this, "requestId", 0);
14
- _defineProperty(this, "_nativeId", void 0);
15
11
  this._nativeId = SkiaViewNativeId.current++;
16
12
  const {
17
13
  picture,
@@ -1 +1 @@
1
- {"version":3,"names":["React","SkiaPictureViewNativeComponent","SkiaViewApi","SkiaViewNativeId","NativeSkiaPictureView","SkiaPictureView","Component","constructor","props","_defineProperty","_nativeId","current","picture","onSize","assertSkiaViewApi","setJsiProperty","tick","nativeId","componentDidUpdate","prevProps","componentWillUnmount","requestId","cancelAnimationFrame","redraw","mode","requestAnimationFrame","bind","makeImageSnapshot","rect","requestRedraw","render","debug","opaque","viewProps","createElement","_extends","collapsable","nativeID","Error"],"sources":["SkiaPictureView.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { SkRect } from \"../skia/types\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\n\nimport { SkiaViewApi } from \"./api\";\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst NativeSkiaPictureView = SkiaPictureViewNativeComponent;\n\ninterface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n mode?: \"default\" | \"continuous\";\n}\n\nexport class SkiaPictureView extends React.Component<SkiaPictureViewProps> {\n private requestId = 0;\n\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 this.tick();\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 this.tick();\n }\n\n componentWillUnmount() {\n if (this.requestId) {\n cancelAnimationFrame(this.requestId);\n }\n }\n\n private tick() {\n this.redraw();\n if (this.props.mode === \"continuous\") {\n this.requestId = requestAnimationFrame(this.tick.bind(this));\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 render() {\n const { mode, debug = false, opaque = false, ...viewProps } = this.props;\n return (\n <NativeSkiaPictureView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n debug={debug}\n opaque={opaque}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","SkiaPictureViewNativeComponent","SkiaViewApi","SkiaViewNativeId","NativeSkiaPictureView","SkiaPictureView","Component","requestId","constructor","props","_nativeId","current","picture","onSize","assertSkiaViewApi","setJsiProperty","tick","nativeId","componentDidUpdate","prevProps","componentWillUnmount","cancelAnimationFrame","redraw","mode","requestAnimationFrame","bind","makeImageSnapshot","rect","requestRedraw","render","debug","opaque","viewProps","createElement","_extends","collapsable","nativeID","Error"],"sources":["SkiaPictureView.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { SkRect } from \"../skia/types\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\n\nimport { SkiaViewApi } from \"./api\";\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst NativeSkiaPictureView = SkiaPictureViewNativeComponent;\n\ninterface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n mode?: \"default\" | \"continuous\";\n}\n\nexport class SkiaPictureView extends React.Component<SkiaPictureViewProps> {\n private requestId = 0;\n\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 this.tick();\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 this.tick();\n }\n\n componentWillUnmount() {\n if (this.requestId) {\n cancelAnimationFrame(this.requestId);\n }\n }\n\n private tick() {\n this.redraw();\n if (this.props.mode === \"continuous\") {\n this.requestId = requestAnimationFrame(this.tick.bind(this));\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 render() {\n const { mode, debug = false, opaque = false, ...viewProps } = this.props;\n return (\n <NativeSkiaPictureView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n debug={debug}\n opaque={opaque}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,8 @@
1
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
1
  import { SkiaBaseWebView } from "./SkiaBaseWebView";
5
2
  export class SkiaPictureView extends SkiaBaseWebView {
3
+ picture = null;
6
4
  constructor(props) {
7
5
  super(props);
8
- _defineProperty(this, "picture", null);
9
6
  }
10
7
  setPicture(picture) {
11
8
  this.picture = picture;
@@ -1 +1 @@
1
- {"version":3,"names":["SkiaBaseWebView","SkiaPictureView","constructor","props","_defineProperty","setPicture","picture","redraw","renderInCanvas","canvas","drawPicture"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["import type { SkCanvas, SkPicture } from \"../skia/types\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaBaseWebView } from \"./SkiaBaseWebView\";\n\nexport class SkiaPictureView extends SkiaBaseWebView<SkiaPictureViewNativeProps> {\n private picture: SkPicture | null = null;\n\n constructor(props: SkiaPictureViewNativeProps) {\n super(props);\n }\n\n public setPicture(picture: SkPicture) {\n this.picture = picture;\n this.redraw();\n }\n\n protected renderInCanvas(canvas: SkCanvas): void {\n if (this.props.picture) {\n canvas.drawPicture(this.props.picture);\n } else if (this.picture) {\n canvas.drawPicture(this.picture);\n }\n }\n}\n"],"mappings":";;;AAGA,SAASA,eAAe,QAAQ,mBAAmB;AAEnD,OAAO,MAAMC,eAAe,SAASD,eAAe,CAA6B;EAG/EE,WAAWA,CAACC,KAAiC,EAAE;IAC7C,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,kBAHqB,IAAI;EAIxC;EAEOC,UAAUA,CAACC,OAAkB,EAAE;IACpC,IAAI,CAACA,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,MAAM,CAAC,CAAC;EACf;EAEUC,cAAcA,CAACC,MAAgB,EAAQ;IAC/C,IAAI,IAAI,CAACN,KAAK,CAACG,OAAO,EAAE;MACtBG,MAAM,CAACC,WAAW,CAAC,IAAI,CAACP,KAAK,CAACG,OAAO,CAAC;IACxC,CAAC,MAAM,IAAI,IAAI,CAACA,OAAO,EAAE;MACvBG,MAAM,CAACC,WAAW,CAAC,IAAI,CAACJ,OAAO,CAAC;IAClC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["SkiaBaseWebView","SkiaPictureView","picture","constructor","props","setPicture","redraw","renderInCanvas","canvas","drawPicture"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["import type { SkCanvas, SkPicture } from \"../skia/types\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaBaseWebView } from \"./SkiaBaseWebView\";\n\nexport class SkiaPictureView extends SkiaBaseWebView<SkiaPictureViewNativeProps> {\n private picture: SkPicture | null = null;\n\n constructor(props: SkiaPictureViewNativeProps) {\n super(props);\n }\n\n public setPicture(picture: SkPicture) {\n this.picture = picture;\n this.redraw();\n }\n\n protected renderInCanvas(canvas: SkCanvas): void {\n if (this.props.picture) {\n canvas.drawPicture(this.props.picture);\n } else if (this.picture) {\n canvas.drawPicture(this.picture);\n }\n }\n}\n"],"mappings":"AAGA,SAASA,eAAe,QAAQ,mBAAmB;AAEnD,OAAO,MAAMC,eAAe,SAASD,eAAe,CAA6B;EACvEE,OAAO,GAAqB,IAAI;EAExCC,WAAWA,CAACC,KAAiC,EAAE;IAC7C,KAAK,CAACA,KAAK,CAAC;EACd;EAEOC,UAAUA,CAACH,OAAkB,EAAE;IACpC,IAAI,CAACA,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACI,MAAM,CAAC,CAAC;EACf;EAEUC,cAAcA,CAACC,MAAgB,EAAQ;IAC/C,IAAI,IAAI,CAACJ,KAAK,CAACF,OAAO,EAAE;MACtBM,MAAM,CAACC,WAAW,CAAC,IAAI,CAACL,KAAK,CAACF,OAAO,CAAC;IACxC,CAAC,MAAM,IAAI,IAAI,CAACA,OAAO,EAAE;MACvBM,MAAM,CAACC,WAAW,CAAC,IAAI,CAACP,OAAO,CAAC;IAClC;EACF;AACF","ignoreList":[]}
@@ -3,11 +3,10 @@
3
3
  import CanvasKitInit from "canvaskit-wasm/bin/full/canvaskit";
4
4
  let ckSharedPromise;
5
5
  export const LoadSkiaWeb = async opts => {
6
- var _ckSharedPromise;
7
6
  if (global.CanvasKit !== undefined) {
8
7
  return;
9
8
  }
10
- ckSharedPromise = (_ckSharedPromise = ckSharedPromise) !== null && _ckSharedPromise !== void 0 ? _ckSharedPromise : CanvasKitInit(opts);
9
+ ckSharedPromise = ckSharedPromise ?? CanvasKitInit(opts);
11
10
  const CanvasKit = await ckSharedPromise;
12
11
  // The CanvasKit API is stored on the global object and used
13
12
  // to create the JsiSKApi in the Skia.web.ts file.
@@ -1 +1 @@
1
- {"version":3,"names":["CanvasKitInit","ckSharedPromise","LoadSkiaWeb","opts","_ckSharedPromise","global","CanvasKit","undefined","LoadSkia"],"sources":["LoadSkiaWeb.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport CanvasKitInit from \"canvaskit-wasm/bin/full/canvaskit\";\nimport type {\n CanvasKit as CanvasKitType,\n CanvasKitInitOptions,\n} from \"canvaskit-wasm\";\n\ndeclare global {\n var CanvasKit: CanvasKitType;\n}\n\nlet ckSharedPromise: Promise<CanvasKitType>;\n\nexport const LoadSkiaWeb = async (opts?: CanvasKitInitOptions) => {\n if (global.CanvasKit !== undefined) {\n return;\n }\n ckSharedPromise = ckSharedPromise ?? CanvasKitInit(opts);\n const CanvasKit = await ckSharedPromise;\n // The CanvasKit API is stored on the global object and used\n // to create the JsiSKApi in the Skia.web.ts file.\n global.CanvasKit = CanvasKit;\n};\n\n// We keep this function for backward compatibility\nexport const LoadSkia = LoadSkiaWeb;\n"],"mappings":"AAAA;AACA;AACA,OAAOA,aAAa,MAAM,mCAAmC;AAU7D,IAAIC,eAAuC;AAE3C,OAAO,MAAMC,WAAW,GAAG,MAAOC,IAA2B,IAAK;EAAA,IAAAC,gBAAA;EAChE,IAAIC,MAAM,CAACC,SAAS,KAAKC,SAAS,EAAE;IAClC;EACF;EACAN,eAAe,IAAAG,gBAAA,GAAGH,eAAe,cAAAG,gBAAA,cAAAA,gBAAA,GAAIJ,aAAa,CAACG,IAAI,CAAC;EACxD,MAAMG,SAAS,GAAG,MAAML,eAAe;EACvC;EACA;EACAI,MAAM,CAACC,SAAS,GAAGA,SAAS;AAC9B,CAAC;;AAED;AACA,OAAO,MAAME,QAAQ,GAAGN,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["CanvasKitInit","ckSharedPromise","LoadSkiaWeb","opts","global","CanvasKit","undefined","LoadSkia"],"sources":["LoadSkiaWeb.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport CanvasKitInit from \"canvaskit-wasm/bin/full/canvaskit\";\nimport type {\n CanvasKit as CanvasKitType,\n CanvasKitInitOptions,\n} from \"canvaskit-wasm\";\n\ndeclare global {\n var CanvasKit: CanvasKitType;\n}\n\nlet ckSharedPromise: Promise<CanvasKitType>;\n\nexport const LoadSkiaWeb = async (opts?: CanvasKitInitOptions) => {\n if (global.CanvasKit !== undefined) {\n return;\n }\n ckSharedPromise = ckSharedPromise ?? CanvasKitInit(opts);\n const CanvasKit = await ckSharedPromise;\n // The CanvasKit API is stored on the global object and used\n // to create the JsiSKApi in the Skia.web.ts file.\n global.CanvasKit = CanvasKit;\n};\n\n// We keep this function for backward compatibility\nexport const LoadSkia = LoadSkiaWeb;\n"],"mappings":"AAAA;AACA;AACA,OAAOA,aAAa,MAAM,mCAAmC;AAU7D,IAAIC,eAAuC;AAE3C,OAAO,MAAMC,WAAW,GAAG,MAAOC,IAA2B,IAAK;EAChE,IAAIC,MAAM,CAACC,SAAS,KAAKC,SAAS,EAAE;IAClC;EACF;EACAL,eAAe,GAAGA,eAAe,IAAID,aAAa,CAACG,IAAI,CAAC;EACxD,MAAME,SAAS,GAAG,MAAMJ,eAAe;EACvC;EACA;EACAG,MAAM,CAACC,SAAS,GAAGA,SAAS;AAC9B,CAAC;;AAED;AACA,OAAO,MAAME,QAAQ,GAAGL,WAAW","ignoreList":[]}
@@ -22,7 +22,7 @@ export const WithSkiaWeb = ({
22
22
  // eslint-disable-next-line react-hooks/exhaustive-deps
23
23
  []);
24
24
  return /*#__PURE__*/React.createElement(Suspense, {
25
- fallback: fallback !== null && fallback !== void 0 ? fallback : null
25
+ fallback: fallback ?? null
26
26
  }, /*#__PURE__*/React.createElement(Inner, componentProps));
27
27
  };
28
28
  //# sourceMappingURL=WithSkiaWeb.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","lazy","Suspense","Platform","LoadSkiaWeb","WithSkiaWeb","getComponent","fallback","opts","componentProps","Inner","OS","console","warn","createElement"],"sources":["WithSkiaWeb.tsx"],"sourcesContent":["import type { ComponentProps, ComponentType } from \"react\";\nimport React, { useMemo, lazy, Suspense } from \"react\";\n\nimport { Platform } from \"../Platform\";\n\nimport { LoadSkiaWeb } from \"./LoadSkiaWeb\";\n\ntype NonOptionalKeys<T> = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\ntype WithSkiaProps<TProps> = {\n fallback?: ComponentProps<typeof Suspense>[\"fallback\"];\n getComponent: () => Promise<{ default: ComponentType<TProps> }>;\n opts?: Parameters<typeof LoadSkiaWeb>[0];\n} & (NonOptionalKeys<TProps> extends never\n ? {\n componentProps?: TProps;\n }\n : {\n componentProps: TProps;\n });\n\nexport const WithSkiaWeb = <TProps extends object>({\n getComponent,\n fallback,\n opts,\n componentProps,\n}: WithSkiaProps<TProps>) => {\n const Inner = useMemo(\n // TODO: investigate\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (): any =>\n lazy(async () => {\n if (Platform.OS === \"web\") {\n await LoadSkiaWeb(opts);\n } else {\n console.warn(\n \"<WithSkiaWeb /> is only necessary on web. Consider not using on native.\"\n );\n }\n return getComponent();\n }),\n // We we to run this only once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n <Suspense fallback={fallback ?? null}>\n <Inner {...componentProps} />\n </Suspense>\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAEtD,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,WAAW,QAAQ,eAAe;AAkB3C,OAAO,MAAMC,WAAW,GAAGA,CAAwB;EACjDC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJC;AACqB,CAAC,KAAK;EAC3B,MAAMC,KAAK,GAAGV,OAAO;EACnB;EACA;EACA,mBACEC,IAAI,CAAC,YAAY;IACf,IAAIE,QAAQ,CAACQ,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMP,WAAW,CAACI,IAAI,CAAC;IACzB,CAAC,MAAM;MACLI,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;IACH;IACA,OAAOP,YAAY,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ;EACA;EACA,EACF,CAAC;EACD,oBACEP,KAAA,CAAAe,aAAA,CAACZ,QAAQ;IAACK,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EAAK,gBACnCR,KAAA,CAAAe,aAAA,CAACJ,KAAK,EAAKD,cAAiB,CACpB,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","lazy","Suspense","Platform","LoadSkiaWeb","WithSkiaWeb","getComponent","fallback","opts","componentProps","Inner","OS","console","warn","createElement"],"sources":["WithSkiaWeb.tsx"],"sourcesContent":["import type { ComponentProps, ComponentType } from \"react\";\nimport React, { useMemo, lazy, Suspense } from \"react\";\n\nimport { Platform } from \"../Platform\";\n\nimport { LoadSkiaWeb } from \"./LoadSkiaWeb\";\n\ntype NonOptionalKeys<T> = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\ntype WithSkiaProps<TProps> = {\n fallback?: ComponentProps<typeof Suspense>[\"fallback\"];\n getComponent: () => Promise<{ default: ComponentType<TProps> }>;\n opts?: Parameters<typeof LoadSkiaWeb>[0];\n} & (NonOptionalKeys<TProps> extends never\n ? {\n componentProps?: TProps;\n }\n : {\n componentProps: TProps;\n });\n\nexport const WithSkiaWeb = <TProps extends object>({\n getComponent,\n fallback,\n opts,\n componentProps,\n}: WithSkiaProps<TProps>) => {\n const Inner = useMemo(\n // TODO: investigate\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (): any =>\n lazy(async () => {\n if (Platform.OS === \"web\") {\n await LoadSkiaWeb(opts);\n } else {\n console.warn(\n \"<WithSkiaWeb /> is only necessary on web. Consider not using on native.\"\n );\n }\n return getComponent();\n }),\n // We we to run this only once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n <Suspense fallback={fallback ?? null}>\n <Inner {...componentProps} />\n </Suspense>\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAEtD,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,WAAW,QAAQ,eAAe;AAkB3C,OAAO,MAAMC,WAAW,GAAGA,CAAwB;EACjDC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJC;AACqB,CAAC,KAAK;EAC3B,MAAMC,KAAK,GAAGV,OAAO;EACnB;EACA;EACA,mBACEC,IAAI,CAAC,YAAY;IACf,IAAIE,QAAQ,CAACQ,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMP,WAAW,CAACI,IAAI,CAAC;IACzB,CAAC,MAAM;MACLI,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;IACH;IACA,OAAOP,YAAY,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ;EACA;EACA,EACF,CAAC;EACD,oBACEP,KAAA,CAAAe,aAAA,CAACZ,QAAQ;IAACK,QAAQ,EAAEA,QAAQ,IAAI;EAAK,gBACnCR,KAAA,CAAAe,aAAA,CAACJ,KAAK,EAAKD,cAAiB,CACpB,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -3,4 +3,4 @@ export function makeOffscreenSurface(width: any, height: any): any;
3
3
  export function getSkiaExports(): {
4
4
  Skia: any;
5
5
  };
6
- export function drawOffscreen(surface: any, element: any): any;
6
+ export function drawOffscreen(surface: any, element: any): Promise<any>;
@@ -1,3 +1,11 @@
1
1
  export const __esModule: boolean;
2
- export const Canvas: any;
3
2
  export function useCanvasRef(): any;
3
+ export function Canvas({ debug, opaque, children, onSize, onLayout: _onLayout, ref, ...viewProps }: {
4
+ [x: string]: any;
5
+ debug: any;
6
+ opaque: any;
7
+ children: any;
8
+ onSize: any;
9
+ onLayout: any;
10
+ ref: any;
11
+ }): any;
@@ -1,5 +1,5 @@
1
1
  export const __esModule: boolean;
2
2
  export function isOnMainThread(): boolean;
3
- export function drawAsPicture(element: any, bounds: any): import("../../..").SkPicture;
4
- export function drawAsImage(element: any, size: any): import("../../..").SkImage;
3
+ export function drawAsPicture(element: any, bounds: any): Promise<import("../../..").SkPicture>;
4
+ export function drawAsImage(element: any, size: any): Promise<import("../../..").SkImage>;
5
5
  export function drawAsImageFromPicture(picture: any, size: any): import("../../..").SkImage;
@@ -3,6 +3,9 @@ export class Container {
3
3
  constructor(Skia: any, nativeId: any);
4
4
  Skia: any;
5
5
  nativeId: any;
6
+ set root(value: any);
7
+ get root(): any;
8
+ _root: any;
6
9
  unmount(): void;
7
10
  unmounted: boolean | undefined;
8
11
  drawOnCanvas(canvas: any): void;
@@ -7,8 +7,8 @@ export namespace sksgHostConfig {
7
7
  let scheduleTimeout: typeof setTimeout;
8
8
  let cancelTimeout: typeof clearTimeout;
9
9
  let noTimeout: number;
10
- function getRootHostContext(_rootContainerInstance: any): null;
11
- function getChildHostContext(_parentHostContext: any, _type: any, _rootContainerInstance: any): null;
10
+ function getRootHostContext(_rootContainerInstance: any): {};
11
+ function getChildHostContext(_parentHostContext: any, _type: any, _rootContainerInstance: any): {};
12
12
  function shouldSetTextContent(_type: any, _props: any): boolean;
13
13
  function createTextInstance(_text: any, _rootContainerInstance: any, _hostContext: any, _internalInstanceHandle: any): never;
14
14
  function createInstance(type: any, propsWithChildren: any, _container: any, _hostContext: any, _internalInstanceHandle: any): {
@@ -20,13 +20,13 @@ export namespace sksgHostConfig {
20
20
  function finalizeInitialChildren(parentInstance: any, _type: any, _props: any, _rootContainerInstance: any, _hostContext: any): boolean;
21
21
  function commitMount(): void;
22
22
  function prepareForCommit(_container: any): null;
23
- function resetAfterCommit(container: any): void;
23
+ function resetAfterCommit(_container: any): void;
24
24
  function getPublicInstance(node: any): any;
25
25
  function commitTextUpdate(_textInstance: any, _oldText: any, _newText: any): void;
26
26
  function clearContainer(_container: any): void;
27
27
  function prepareUpdate(_instance: any, _type: any, oldProps: any, newProps: any, container: any, _hostContext: any): any;
28
28
  function preparePortalMount(): void;
29
- function cloneInstance(instance: any, _updatePayload: any, _type: any, _oldProps: any, newProps: any, _internalInstanceHandle: any, keepChildren: any, _recyclableInstance: any): {
29
+ function cloneInstance(instance: any, _type: any, _oldProps: any, newProps: any, _updatePayload: any, _internalInstanceHandle: any, keepChildren: any, _recyclableInstance: any): {
30
30
  type: any;
31
31
  props: any;
32
32
  children: any[];
@@ -44,5 +44,22 @@ export namespace sksgHostConfig {
44
44
  function getInstanceFromNode(_node: any): never;
45
45
  function prepareScopeUpdate(_scopeInstance: any, _instance: any): never;
46
46
  function getInstanceFromScope(_scopeInstance: any): never;
47
+ function shouldAttemptEagerTransition(): boolean;
48
+ function trackSchedulerEvent(): void;
49
+ function resolveEventType(): null;
50
+ function resolveEventTimeStamp(): number;
51
+ function requestPostPaintCallback(): void;
52
+ function maySuspendCommit(): boolean;
53
+ function preloadInstance(): boolean;
54
+ function startSuspendingCommit(): void;
55
+ function suspendInstance(): void;
56
+ function waitForCommitToBeReady(): null;
57
+ let NotPendingTransition: null;
58
+ let HostTransitionContext: _react.Context<null>;
59
+ function setCurrentUpdatePriority(newPriority: any): void;
60
+ function getCurrentUpdatePriority(): number;
61
+ function resolveUpdatePriority(): number;
62
+ function resetFormInstance(): void;
47
63
  }
48
64
  export function debug(...args: any[]): void;
65
+ import _react = require("react");
@@ -7,6 +7,8 @@ export class SkiaSGRoot {
7
7
  mapperId: any;
8
8
  Skia: any;
9
9
  nativeId: any;
10
+ root: any;
11
+ _root: any;
10
12
  unmount(): void;
11
13
  unmounted: boolean | undefined;
12
14
  drawOnCanvas(canvas: any): void;
@@ -19,6 +21,8 @@ export class SkiaSGRoot {
19
21
  mapperId: any;
20
22
  Skia: any;
21
23
  nativeId: any;
24
+ root: any;
25
+ _root: any;
22
26
  unmount(): void;
23
27
  unmounted: boolean | undefined;
24
28
  drawOnCanvas(canvas: any): void;
@@ -31,6 +35,8 @@ export class SkiaSGRoot {
31
35
  } | undefined;
32
36
  Skia: any;
33
37
  nativeId: any;
38
+ root: any;
39
+ _root: any;
34
40
  unmount(): void;
35
41
  unmounted: boolean | undefined;
36
42
  drawOnCanvas(canvas: any): void;
@@ -42,8 +48,9 @@ export class SkiaSGRoot {
42
48
  children: any;
43
49
  isDeclaration: boolean;
44
50
  };
45
- render(element: any): void;
51
+ updateContainer(element: any): Promise<any>;
52
+ render(element: any): Promise<void>;
46
53
  drawOnCanvas(canvas: any): void;
47
54
  getPicture(): any;
48
- unmount(): void;
55
+ unmount(): Promise<any>;
49
56
  }