@shopify/react-native-skia 1.8.0 → 1.8.2

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 (390) hide show
  1. package/cpp/api/JsiSkPaint.h +8 -1
  2. package/lib/commonjs/dom/types/Common.d.ts +6 -4
  3. package/lib/commonjs/dom/types/Common.js.map +1 -1
  4. package/lib/commonjs/dom/types/ImageFilters.d.ts +1 -1
  5. package/lib/commonjs/dom/types/ImageFilters.js.map +1 -1
  6. package/lib/commonjs/dom/types/Node.d.ts +0 -2
  7. package/lib/commonjs/dom/types/Node.js.map +1 -1
  8. package/lib/commonjs/external/reanimated/index.d.ts +0 -1
  9. package/lib/commonjs/external/reanimated/index.js +0 -11
  10. package/lib/commonjs/external/reanimated/index.js.map +1 -1
  11. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -1
  12. package/lib/commonjs/external/reanimated/renderHelpers.js +5 -43
  13. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  14. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js +1 -8
  15. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -1
  16. package/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
  17. package/lib/commonjs/skia/core/AnimatedImage.js +1 -1
  18. package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -1
  19. package/lib/commonjs/skia/core/Data.d.ts +1 -1
  20. package/lib/commonjs/skia/core/Data.js +2 -8
  21. package/lib/commonjs/skia/core/Data.js.map +1 -1
  22. package/lib/commonjs/skia/types/Paint/Paint.d.ts +1 -0
  23. package/lib/commonjs/skia/types/Paint/Paint.js.map +1 -1
  24. package/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
  25. package/lib/commonjs/skia/web/JsiSkPaint.js +3 -0
  26. package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
  27. package/lib/commonjs/sksg/Container.d.ts +3 -2
  28. package/lib/commonjs/sksg/Container.js +32 -26
  29. package/lib/commonjs/sksg/Container.js.map +1 -1
  30. package/lib/commonjs/sksg/HostConfig.d.ts +2 -2
  31. package/lib/commonjs/sksg/HostConfig.js +7 -25
  32. package/lib/commonjs/sksg/HostConfig.js.map +1 -1
  33. package/lib/commonjs/sksg/Node.d.ts +19 -0
  34. package/lib/commonjs/sksg/Node.js +78 -0
  35. package/lib/commonjs/sksg/Node.js.map +1 -0
  36. package/lib/commonjs/sksg/Reconciler.d.ts +1 -1
  37. package/lib/commonjs/sksg/Recorder/Core.d.ts +79 -0
  38. package/lib/commonjs/sksg/Recorder/Core.js +110 -0
  39. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -0
  40. package/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +18 -0
  41. package/lib/commonjs/sksg/Recorder/DrawingContext.js +105 -0
  42. package/lib/commonjs/sksg/Recorder/DrawingContext.js.map +1 -0
  43. package/lib/commonjs/sksg/Recorder/Player.d.ts +3 -0
  44. package/lib/commonjs/sksg/Recorder/Player.js +127 -0
  45. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -0
  46. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +50 -0
  47. package/lib/commonjs/sksg/Recorder/Recorder.js +288 -0
  48. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -0
  49. package/lib/commonjs/sksg/Recorder/Recording.d.ts +7 -0
  50. package/lib/commonjs/sksg/Recorder/Recording.js +12 -0
  51. package/lib/commonjs/sksg/Recorder/Recording.js.map +1 -0
  52. package/lib/commonjs/sksg/Recorder/Visitor.d.ts +5 -0
  53. package/lib/commonjs/sksg/Recorder/Visitor.js +293 -0
  54. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -0
  55. package/lib/commonjs/sksg/Recorder/commands/Box.d.ts +13 -0
  56. package/lib/commonjs/sksg/Recorder/commands/Box.js +71 -0
  57. package/lib/commonjs/sksg/Recorder/commands/Box.js.map +1 -0
  58. package/lib/commonjs/sksg/Recorder/commands/CTM.d.ts +3 -0
  59. package/lib/commonjs/sksg/Recorder/commands/CTM.js +79 -0
  60. package/lib/commonjs/sksg/Recorder/commands/CTM.js.map +1 -0
  61. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
  62. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js +76 -0
  63. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js.map +1 -0
  64. package/lib/commonjs/sksg/Recorder/commands/Drawing.d.ts +24 -0
  65. package/lib/commonjs/sksg/{nodes/drawings.js → Recorder/commands/Drawing.js} +5 -5
  66. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -0
  67. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
  68. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js +183 -0
  69. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -0
  70. package/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +4 -0
  71. package/lib/commonjs/sksg/Recorder/commands/Paint.js +70 -0
  72. package/lib/commonjs/sksg/Recorder/commands/Paint.js.map +1 -0
  73. package/lib/commonjs/sksg/Recorder/commands/PathEffects.d.ts +6 -0
  74. package/lib/commonjs/sksg/Recorder/commands/PathEffects.js +137 -0
  75. package/lib/commonjs/sksg/Recorder/commands/PathEffects.js.map +1 -0
  76. package/lib/commonjs/sksg/Recorder/commands/Shaders.d.ts +5 -0
  77. package/lib/commonjs/sksg/{nodes/shaders.js → Recorder/commands/Shaders.js} +58 -15
  78. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -0
  79. package/lib/commonjs/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
  80. package/lib/commonjs/sksg/{nodes/utils.js → utils.js} +12 -2
  81. package/lib/commonjs/sksg/utils.js.map +1 -0
  82. package/lib/module/dom/types/Common.d.ts +6 -4
  83. package/lib/module/dom/types/Common.js.map +1 -1
  84. package/lib/module/dom/types/ImageFilters.d.ts +1 -1
  85. package/lib/module/dom/types/ImageFilters.js.map +1 -1
  86. package/lib/module/dom/types/Node.d.ts +0 -2
  87. package/lib/module/dom/types/Node.js.map +1 -1
  88. package/lib/module/external/reanimated/index.d.ts +0 -1
  89. package/lib/module/external/reanimated/index.js +0 -1
  90. package/lib/module/external/reanimated/index.js.map +1 -1
  91. package/lib/module/external/reanimated/renderHelpers.d.ts +0 -1
  92. package/lib/module/external/reanimated/renderHelpers.js +4 -42
  93. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  94. package/lib/module/external/reanimated/useAnimatedImageValue.js +1 -8
  95. package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
  96. package/lib/module/skia/core/AnimatedImage.d.ts +1 -1
  97. package/lib/module/skia/core/AnimatedImage.js +1 -1
  98. package/lib/module/skia/core/AnimatedImage.js.map +1 -1
  99. package/lib/module/skia/core/Data.d.ts +1 -1
  100. package/lib/module/skia/core/Data.js +2 -8
  101. package/lib/module/skia/core/Data.js.map +1 -1
  102. package/lib/module/skia/types/Paint/Paint.d.ts +1 -0
  103. package/lib/module/skia/types/Paint/Paint.js.map +1 -1
  104. package/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
  105. package/lib/module/skia/web/JsiSkPaint.js +3 -0
  106. package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
  107. package/lib/module/sksg/Container.d.ts +3 -2
  108. package/lib/module/sksg/Container.js +30 -24
  109. package/lib/module/sksg/Container.js.map +1 -1
  110. package/lib/module/sksg/HostConfig.d.ts +2 -2
  111. package/lib/module/sksg/HostConfig.js +7 -25
  112. package/lib/module/sksg/HostConfig.js.map +1 -1
  113. package/lib/module/sksg/Node.d.ts +19 -0
  114. package/lib/module/sksg/Node.js +67 -0
  115. package/lib/module/sksg/Node.js.map +1 -0
  116. package/lib/module/sksg/Reconciler.d.ts +1 -1
  117. package/lib/module/sksg/Recorder/Core.d.ts +79 -0
  118. package/lib/module/sksg/Recorder/Core.js +101 -0
  119. package/lib/module/sksg/Recorder/Core.js.map +1 -0
  120. package/lib/module/sksg/Recorder/DrawingContext.d.ts +18 -0
  121. package/lib/module/sksg/Recorder/DrawingContext.js +98 -0
  122. package/lib/module/sksg/Recorder/DrawingContext.js.map +1 -0
  123. package/lib/module/sksg/Recorder/Player.d.ts +3 -0
  124. package/lib/module/sksg/Recorder/Player.js +120 -0
  125. package/lib/module/sksg/Recorder/Player.js.map +1 -0
  126. package/lib/module/sksg/Recorder/Recorder.d.ts +50 -0
  127. package/lib/module/sksg/Recorder/Recorder.js +281 -0
  128. package/lib/module/sksg/Recorder/Recorder.js.map +1 -0
  129. package/lib/module/sksg/Recorder/Recording.d.ts +7 -0
  130. package/lib/module/sksg/Recorder/Recording.js +5 -0
  131. package/lib/module/sksg/Recorder/Recording.js.map +1 -0
  132. package/lib/module/sksg/Recorder/Visitor.d.ts +5 -0
  133. package/lib/module/sksg/Recorder/Visitor.js +285 -0
  134. package/lib/module/sksg/Recorder/Visitor.js.map +1 -0
  135. package/lib/module/sksg/Recorder/commands/Box.d.ts +13 -0
  136. package/lib/module/sksg/Recorder/commands/Box.js +63 -0
  137. package/lib/module/sksg/Recorder/commands/Box.js.map +1 -0
  138. package/lib/module/sksg/Recorder/commands/CTM.d.ts +3 -0
  139. package/lib/module/sksg/Recorder/commands/CTM.js +72 -0
  140. package/lib/module/sksg/Recorder/commands/CTM.js.map +1 -0
  141. package/lib/module/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
  142. package/lib/module/sksg/Recorder/commands/ColorFilters.js +67 -0
  143. package/lib/module/sksg/Recorder/commands/ColorFilters.js.map +1 -0
  144. package/lib/module/sksg/Recorder/commands/Drawing.d.ts +24 -0
  145. package/lib/module/sksg/{nodes/drawings.js → Recorder/commands/Drawing.js} +5 -5
  146. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -0
  147. package/lib/module/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
  148. package/lib/module/sksg/{nodes/imageFilters.js → Recorder/commands/ImageFilters.js} +87 -95
  149. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -0
  150. package/lib/module/sksg/Recorder/commands/Paint.d.ts +4 -0
  151. package/lib/module/sksg/Recorder/commands/Paint.js +62 -0
  152. package/lib/module/sksg/Recorder/commands/Paint.js.map +1 -0
  153. package/lib/module/sksg/Recorder/commands/PathEffects.d.ts +6 -0
  154. package/lib/module/sksg/Recorder/commands/PathEffects.js +128 -0
  155. package/lib/module/sksg/Recorder/commands/PathEffects.js.map +1 -0
  156. package/lib/module/sksg/Recorder/commands/Shaders.d.ts +5 -0
  157. package/lib/module/sksg/{nodes/shaders.js → Recorder/commands/Shaders.js} +63 -13
  158. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -0
  159. package/lib/module/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
  160. package/lib/module/sksg/{nodes/utils.js → utils.js} +10 -1
  161. package/lib/module/sksg/utils.js.map +1 -0
  162. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -1
  163. package/lib/typescript/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
  164. package/lib/typescript/lib/commonjs/skia/core/Data.d.ts +1 -1
  165. package/lib/typescript/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
  166. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +4 -0
  167. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +1 -3
  168. package/lib/typescript/lib/commonjs/sksg/Node.d.ts +14 -0
  169. package/lib/typescript/lib/commonjs/sksg/Recorder/Core.d.ts +5 -0
  170. package/lib/typescript/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +17 -0
  171. package/lib/typescript/lib/commonjs/sksg/Recorder/Player.d.ts +2 -0
  172. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +45 -0
  173. package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +5 -0
  174. package/lib/typescript/lib/commonjs/sksg/Recorder/Visitor.d.ts +27 -0
  175. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Box.d.ts +3 -0
  176. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/CTM.d.ts +2 -0
  177. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/ColorFilters.d.ts +4 -0
  178. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/ImageFilters.d.ts +6 -0
  179. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +14 -0
  180. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/PathEffects.d.ts +4 -0
  181. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Shaders.d.ts +3 -0
  182. package/lib/typescript/lib/commonjs/sksg/{nodes/utils.d.ts → utils.d.ts} +1 -0
  183. package/lib/typescript/lib/module/external/reanimated/index.d.ts +0 -1
  184. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -1
  185. package/lib/typescript/lib/module/mock/index.d.ts +1 -1
  186. package/lib/typescript/lib/module/skia/core/AnimatedImage.d.ts +1 -1
  187. package/lib/typescript/lib/module/skia/core/Data.d.ts +1 -1
  188. package/lib/typescript/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
  189. package/lib/typescript/lib/module/sksg/Container.d.ts +4 -0
  190. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +1 -3
  191. package/lib/typescript/lib/module/sksg/Node.d.ts +13 -0
  192. package/lib/typescript/lib/module/sksg/Recorder/Core.d.ts +4 -0
  193. package/lib/typescript/lib/module/sksg/Recorder/DrawingContext.d.ts +16 -0
  194. package/lib/typescript/lib/module/sksg/Recorder/Player.d.ts +1 -0
  195. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +44 -0
  196. package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +4 -0
  197. package/lib/typescript/lib/module/sksg/Recorder/Visitor.d.ts +26 -0
  198. package/lib/typescript/lib/module/sksg/Recorder/commands/Box.d.ts +2 -0
  199. package/lib/typescript/lib/module/sksg/Recorder/commands/CTM.d.ts +1 -0
  200. package/lib/typescript/lib/module/sksg/Recorder/commands/ColorFilters.d.ts +3 -0
  201. package/lib/typescript/lib/module/sksg/Recorder/commands/ImageFilters.d.ts +5 -0
  202. package/lib/typescript/lib/module/sksg/Recorder/commands/Paint.d.ts +13 -0
  203. package/lib/typescript/lib/module/sksg/Recorder/commands/PathEffects.d.ts +3 -0
  204. package/lib/typescript/lib/module/sksg/Recorder/commands/Shaders.d.ts +2 -0
  205. package/lib/typescript/lib/module/sksg/{nodes/utils.d.ts → utils.d.ts} +1 -0
  206. package/lib/typescript/src/dom/types/Common.d.ts +6 -4
  207. package/lib/typescript/src/dom/types/ImageFilters.d.ts +1 -1
  208. package/lib/typescript/src/dom/types/Node.d.ts +0 -2
  209. package/lib/typescript/src/external/reanimated/index.d.ts +0 -1
  210. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -1
  211. package/lib/typescript/src/skia/core/AnimatedImage.d.ts +1 -1
  212. package/lib/typescript/src/skia/core/Data.d.ts +1 -1
  213. package/lib/typescript/src/skia/types/Paint/Paint.d.ts +1 -0
  214. package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -0
  215. package/lib/typescript/src/sksg/Container.d.ts +3 -2
  216. package/lib/typescript/src/sksg/HostConfig.d.ts +2 -2
  217. package/lib/typescript/src/sksg/Node.d.ts +19 -0
  218. package/lib/typescript/src/sksg/Reconciler.d.ts +1 -1
  219. package/lib/typescript/src/sksg/Recorder/Core.d.ts +79 -0
  220. package/lib/typescript/src/sksg/Recorder/DrawingContext.d.ts +18 -0
  221. package/lib/typescript/src/sksg/Recorder/Player.d.ts +3 -0
  222. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +50 -0
  223. package/lib/typescript/src/sksg/Recorder/Recording.d.ts +7 -0
  224. package/lib/typescript/src/sksg/Recorder/Visitor.d.ts +5 -0
  225. package/lib/typescript/src/sksg/Recorder/commands/Box.d.ts +13 -0
  226. package/lib/typescript/src/sksg/Recorder/commands/CTM.d.ts +3 -0
  227. package/lib/typescript/src/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
  228. package/lib/typescript/src/sksg/Recorder/commands/Drawing.d.ts +24 -0
  229. package/lib/typescript/src/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
  230. package/lib/typescript/src/sksg/Recorder/commands/Paint.d.ts +4 -0
  231. package/lib/typescript/src/sksg/Recorder/commands/PathEffects.d.ts +6 -0
  232. package/lib/typescript/src/sksg/Recorder/commands/Shaders.d.ts +5 -0
  233. package/lib/typescript/src/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
  234. package/package.json +1 -1
  235. package/src/__tests__/snapshots/image-filter/test-shadow.png +0 -0
  236. package/src/dom/types/Common.ts +7 -5
  237. package/src/dom/types/ImageFilters.ts +2 -1
  238. package/src/dom/types/Node.ts +0 -4
  239. package/src/external/reanimated/index.ts +0 -1
  240. package/src/external/reanimated/renderHelpers.ts +4 -44
  241. package/src/external/reanimated/useAnimatedImageValue.ts +4 -15
  242. package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +15 -0
  243. package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +23 -2
  244. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +91 -2
  245. package/src/renderer/__tests__/setup.tsx +1 -1
  246. package/src/skia/core/AnimatedImage.ts +2 -3
  247. package/src/skia/core/Data.ts +3 -9
  248. package/src/skia/types/Paint/Paint.ts +2 -0
  249. package/src/skia/web/JsiSkPaint.ts +4 -0
  250. package/src/sksg/Container.ts +35 -29
  251. package/src/sksg/HostConfig.ts +5 -50
  252. package/src/sksg/Node.ts +105 -0
  253. package/src/sksg/Recorder/Core.ts +171 -0
  254. package/src/sksg/Recorder/DrawingContext.ts +130 -0
  255. package/src/sksg/Recorder/Player.ts +160 -0
  256. package/src/sksg/Recorder/Recorder.ts +259 -0
  257. package/src/sksg/Recorder/Recording.ts +13 -0
  258. package/src/sksg/Recorder/Visitor.ts +324 -0
  259. package/src/sksg/Recorder/commands/Box.ts +63 -0
  260. package/src/sksg/Recorder/commands/CTM.ts +72 -0
  261. package/src/sksg/Recorder/commands/ColorFilters.ts +87 -0
  262. package/src/sksg/{nodes/drawings.ts → Recorder/commands/Drawing.ts} +29 -65
  263. package/src/sksg/Recorder/commands/ImageFilters.ts +255 -0
  264. package/src/sksg/Recorder/commands/Paint.ts +77 -0
  265. package/src/sksg/Recorder/commands/PathEffects.ts +169 -0
  266. package/src/sksg/{nodes/shaders.ts → Recorder/commands/Shaders.ts} +100 -26
  267. package/src/sksg/{nodes/utils.ts → utils.ts} +14 -1
  268. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  269. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +0 -24
  270. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +0 -1
  271. package/lib/commonjs/sksg/DeclarationContext.d.ts +0 -56
  272. package/lib/commonjs/sksg/DeclarationContext.js +0 -77
  273. package/lib/commonjs/sksg/DeclarationContext.js.map +0 -1
  274. package/lib/commonjs/sksg/DrawingContext.d.ts +0 -13
  275. package/lib/commonjs/sksg/DrawingContext.js +0 -172
  276. package/lib/commonjs/sksg/DrawingContext.js.map +0 -1
  277. package/lib/commonjs/sksg/__tests__/Declarations.spec.d.ts +0 -1
  278. package/lib/commonjs/sksg/__tests__/MockDeclaration.d.ts +0 -57
  279. package/lib/commonjs/sksg/nodes/Node.d.ts +0 -7
  280. package/lib/commonjs/sksg/nodes/Node.js +0 -6
  281. package/lib/commonjs/sksg/nodes/Node.js.map +0 -1
  282. package/lib/commonjs/sksg/nodes/colorFilters.d.ts +0 -10
  283. package/lib/commonjs/sksg/nodes/colorFilters.js +0 -79
  284. package/lib/commonjs/sksg/nodes/colorFilters.js.map +0 -1
  285. package/lib/commonjs/sksg/nodes/context.d.ts +0 -3
  286. package/lib/commonjs/sksg/nodes/context.js +0 -394
  287. package/lib/commonjs/sksg/nodes/context.js.map +0 -1
  288. package/lib/commonjs/sksg/nodes/drawings.d.ts +0 -30
  289. package/lib/commonjs/sksg/nodes/drawings.js.map +0 -1
  290. package/lib/commonjs/sksg/nodes/imageFilters.d.ts +0 -17
  291. package/lib/commonjs/sksg/nodes/imageFilters.js +0 -197
  292. package/lib/commonjs/sksg/nodes/imageFilters.js.map +0 -1
  293. package/lib/commonjs/sksg/nodes/index.d.ts +0 -3
  294. package/lib/commonjs/sksg/nodes/index.js +0 -39
  295. package/lib/commonjs/sksg/nodes/index.js.map +0 -1
  296. package/lib/commonjs/sksg/nodes/paint.d.ts +0 -3
  297. package/lib/commonjs/sksg/nodes/paint.js +0 -81
  298. package/lib/commonjs/sksg/nodes/paint.js.map +0 -1
  299. package/lib/commonjs/sksg/nodes/pathEffects.d.ts +0 -11
  300. package/lib/commonjs/sksg/nodes/pathEffects.js +0 -111
  301. package/lib/commonjs/sksg/nodes/pathEffects.js.map +0 -1
  302. package/lib/commonjs/sksg/nodes/shaders.d.ts +0 -11
  303. package/lib/commonjs/sksg/nodes/shaders.js.map +0 -1
  304. package/lib/commonjs/sksg/nodes/utils.js.map +0 -1
  305. package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  306. package/lib/module/external/reanimated/useDerivedValueOnJS.js +0 -16
  307. package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +0 -1
  308. package/lib/module/sksg/DeclarationContext.d.ts +0 -56
  309. package/lib/module/sksg/DeclarationContext.js +0 -69
  310. package/lib/module/sksg/DeclarationContext.js.map +0 -1
  311. package/lib/module/sksg/DrawingContext.d.ts +0 -13
  312. package/lib/module/sksg/DrawingContext.js +0 -165
  313. package/lib/module/sksg/DrawingContext.js.map +0 -1
  314. package/lib/module/sksg/__tests__/Declarations.spec.d.ts +0 -1
  315. package/lib/module/sksg/__tests__/MockDeclaration.d.ts +0 -57
  316. package/lib/module/sksg/nodes/Node.d.ts +0 -7
  317. package/lib/module/sksg/nodes/Node.js +0 -2
  318. package/lib/module/sksg/nodes/Node.js.map +0 -1
  319. package/lib/module/sksg/nodes/colorFilters.d.ts +0 -10
  320. package/lib/module/sksg/nodes/colorFilters.js +0 -66
  321. package/lib/module/sksg/nodes/colorFilters.js.map +0 -1
  322. package/lib/module/sksg/nodes/context.d.ts +0 -3
  323. package/lib/module/sksg/nodes/context.js +0 -387
  324. package/lib/module/sksg/nodes/context.js.map +0 -1
  325. package/lib/module/sksg/nodes/drawings.d.ts +0 -30
  326. package/lib/module/sksg/nodes/drawings.js.map +0 -1
  327. package/lib/module/sksg/nodes/imageFilters.d.ts +0 -17
  328. package/lib/module/sksg/nodes/imageFilters.js.map +0 -1
  329. package/lib/module/sksg/nodes/index.d.ts +0 -3
  330. package/lib/module/sksg/nodes/index.js +0 -4
  331. package/lib/module/sksg/nodes/index.js.map +0 -1
  332. package/lib/module/sksg/nodes/paint.d.ts +0 -3
  333. package/lib/module/sksg/nodes/paint.js +0 -74
  334. package/lib/module/sksg/nodes/paint.js.map +0 -1
  335. package/lib/module/sksg/nodes/pathEffects.d.ts +0 -11
  336. package/lib/module/sksg/nodes/pathEffects.js +0 -97
  337. package/lib/module/sksg/nodes/pathEffects.js.map +0 -1
  338. package/lib/module/sksg/nodes/shaders.d.ts +0 -11
  339. package/lib/module/sksg/nodes/shaders.js.map +0 -1
  340. package/lib/module/sksg/nodes/utils.js.map +0 -1
  341. package/lib/typescript/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +0 -2
  342. package/lib/typescript/lib/commonjs/sksg/DeclarationContext.d.ts +0 -53
  343. package/lib/typescript/lib/commonjs/sksg/DrawingContext.d.ts +0 -22
  344. package/lib/typescript/lib/commonjs/sksg/nodes/Node.d.ts +0 -1
  345. package/lib/typescript/lib/commonjs/sksg/nodes/colorFilters.d.ts +0 -8
  346. package/lib/typescript/lib/commonjs/sksg/nodes/context.d.ts +0 -2
  347. package/lib/typescript/lib/commonjs/sksg/nodes/imageFilters.d.ts +0 -12
  348. package/lib/typescript/lib/commonjs/sksg/nodes/index.d.ts +0 -1
  349. package/lib/typescript/lib/commonjs/sksg/nodes/paint.d.ts +0 -2
  350. package/lib/typescript/lib/commonjs/sksg/nodes/pathEffects.d.ts +0 -9
  351. package/lib/typescript/lib/commonjs/sksg/nodes/shaders.d.ts +0 -10
  352. package/lib/typescript/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  353. package/lib/typescript/lib/module/sksg/DeclarationContext.d.ts +0 -52
  354. package/lib/typescript/lib/module/sksg/DrawingContext.d.ts +0 -21
  355. package/lib/typescript/lib/module/sksg/nodes/Node.d.ts +0 -1
  356. package/lib/typescript/lib/module/sksg/nodes/colorFilters.d.ts +0 -7
  357. package/lib/typescript/lib/module/sksg/nodes/context.d.ts +0 -1
  358. package/lib/typescript/lib/module/sksg/nodes/imageFilters.d.ts +0 -11
  359. package/lib/typescript/lib/module/sksg/nodes/index.d.ts +0 -3
  360. package/lib/typescript/lib/module/sksg/nodes/paint.d.ts +0 -1
  361. package/lib/typescript/lib/module/sksg/nodes/pathEffects.d.ts +0 -8
  362. package/lib/typescript/lib/module/sksg/nodes/shaders.d.ts +0 -9
  363. package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  364. package/lib/typescript/src/sksg/DeclarationContext.d.ts +0 -56
  365. package/lib/typescript/src/sksg/DrawingContext.d.ts +0 -13
  366. package/lib/typescript/src/sksg/__tests__/Declarations.spec.d.ts +0 -1
  367. package/lib/typescript/src/sksg/__tests__/MockDeclaration.d.ts +0 -57
  368. package/lib/typescript/src/sksg/nodes/Node.d.ts +0 -7
  369. package/lib/typescript/src/sksg/nodes/colorFilters.d.ts +0 -10
  370. package/lib/typescript/src/sksg/nodes/context.d.ts +0 -3
  371. package/lib/typescript/src/sksg/nodes/drawings.d.ts +0 -30
  372. package/lib/typescript/src/sksg/nodes/imageFilters.d.ts +0 -17
  373. package/lib/typescript/src/sksg/nodes/index.d.ts +0 -3
  374. package/lib/typescript/src/sksg/nodes/paint.d.ts +0 -3
  375. package/lib/typescript/src/sksg/nodes/pathEffects.d.ts +0 -11
  376. package/lib/typescript/src/sksg/nodes/shaders.d.ts +0 -11
  377. package/src/external/reanimated/useDerivedValueOnJS.ts +0 -20
  378. package/src/sksg/DeclarationContext.ts +0 -85
  379. package/src/sksg/DrawingContext.ts +0 -226
  380. package/src/sksg/__tests__/Declarations.spec.tsx +0 -235
  381. package/src/sksg/__tests__/MockDeclaration.ts +0 -138
  382. package/src/sksg/nodes/Node.ts +0 -8
  383. package/src/sksg/nodes/colorFilters.ts +0 -79
  384. package/src/sksg/nodes/context.ts +0 -412
  385. package/src/sksg/nodes/imageFilters.ts +0 -235
  386. package/src/sksg/nodes/index.ts +0 -3
  387. package/src/sksg/nodes/paint.ts +0 -75
  388. package/src/sksg/nodes/pathEffects.ts +0 -118
  389. /package/lib/typescript/lib/commonjs/sksg/{nodes/drawings.d.ts → Recorder/commands/Drawing.d.ts} +0 -0
  390. /package/lib/typescript/lib/module/sksg/{nodes/drawings.d.ts → Recorder/commands/Drawing.d.ts} +0 -0
@@ -1,4 +1,3 @@
1
- import { useEffect } from "react";
2
1
  import { useAnimatedImage } from "../../skia/core/AnimatedImage";
3
2
  import Rea from "./ReanimatedProxy";
4
3
  const DEFAULT_FRAME_DURATION = 60;
@@ -10,7 +9,7 @@ export const useAnimatedImageValue = (source, paused) => {
10
9
  const animatedImage = useAnimatedImage(source, err => {
11
10
  console.error(err);
12
11
  throw new Error(`Could not load animated image - got '${err.message}'`);
13
- }, false);
12
+ });
14
13
  const frameDuration = (animatedImage === null || animatedImage === void 0 ? void 0 : animatedImage.currentFrameDuration()) || DEFAULT_FRAME_DURATION;
15
14
  Rea.useFrameCallback(frameInfo => {
16
15
  if (!animatedImage) {
@@ -40,12 +39,6 @@ export const useAnimatedImageValue = (source, paused) => {
40
39
  // Update the last timestamp
41
40
  lastTimestamp.value = timestamp;
42
41
  });
43
- useEffect(() => {
44
- return () => {
45
- animatedImage === null || animatedImage === void 0 || animatedImage.dispose();
46
- };
47
- // eslint-disable-next-line react-hooks/exhaustive-deps
48
- }, []);
49
42
  return currentFrame;
50
43
  };
51
44
  //# sourceMappingURL=useAnimatedImageValue.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useAnimatedImage","Rea","DEFAULT_FRAME_DURATION","useAnimatedImageValue","source","paused","defaultPaused","useSharedValue","isPaused","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","useFrameCallback","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["useAnimatedImageValue.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { FrameInfo, SharedValue } from \"react-native-reanimated\";\n\nimport { useAnimatedImage } from \"../../skia/core/AnimatedImage\";\nimport type { DataSourceParam, SkImage } from \"../../skia/types\";\n\nimport Rea from \"./ReanimatedProxy\";\n\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (\n source: DataSourceParam,\n paused?: SharedValue<boolean>\n) => {\n const defaultPaused = Rea.useSharedValue(false);\n const isPaused = paused ?? defaultPaused;\n const currentFrame = Rea.useSharedValue<null | SkImage>(null);\n const lastTimestamp = Rea.useSharedValue(-1);\n const animatedImage = useAnimatedImage(\n source,\n (err) => {\n console.error(err);\n throw new Error(`Could not load animated image - got '${err.message}'`);\n },\n false\n );\n const frameDuration =\n animatedImage?.currentFrameDuration() || DEFAULT_FRAME_DURATION;\n\n Rea.useFrameCallback((frameInfo: FrameInfo) => {\n if (!animatedImage) {\n currentFrame.value = null;\n return;\n }\n if (isPaused.value && lastTimestamp.value !== -1) {\n return;\n }\n const { timestamp } = frameInfo;\n const elapsed = timestamp - lastTimestamp.value;\n\n // Check if it's time to switch frames based on GIF frame duration\n if (elapsed < frameDuration) {\n return;\n }\n\n // Update the current frame\n animatedImage.decodeNextFrame();\n if (currentFrame.value) {\n currentFrame.value.dispose();\n }\n currentFrame.value = animatedImage.getCurrentFrame();\n\n // Update the last timestamp\n lastTimestamp.value = timestamp;\n });\n useEffect(() => {\n return () => {\n animatedImage?.dispose();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return currentFrame;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAGjC,SAASC,gBAAgB,QAAQ,+BAA+B;AAGhE,OAAOC,GAAG,MAAM,mBAAmB;AAEnC,MAAMC,sBAAsB,GAAG,EAAE;AAEjC,OAAO,MAAMC,qBAAqB,GAAGA,CACnCC,MAAuB,EACvBC,MAA6B,KAC1B;EACH,MAAMC,aAAa,GAAGL,GAAG,CAACM,cAAc,CAAC,KAAK,CAAC;EAC/C,MAAMC,QAAQ,GAAGH,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIC,aAAa;EACxC,MAAMG,YAAY,GAAGR,GAAG,CAACM,cAAc,CAAiB,IAAI,CAAC;EAC7D,MAAMG,aAAa,GAAGT,GAAG,CAACM,cAAc,CAAC,CAAC,CAAC,CAAC;EAC5C,MAAMI,aAAa,GAAGX,gBAAgB,CACpCI,MAAM,EACLQ,GAAG,IAAK;IACPC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClB,MAAM,IAAIG,KAAK,CAAC,wCAAwCH,GAAG,CAACI,OAAO,GAAG,CAAC;EACzE,CAAC,EACD,KACF,CAAC;EACD,MAAMC,aAAa,GACjB,CAAAN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEO,oBAAoB,CAAC,CAAC,KAAIhB,sBAAsB;EAEjED,GAAG,CAACkB,gBAAgB,CAAEC,SAAoB,IAAK;IAC7C,IAAI,CAACT,aAAa,EAAE;MAClBF,YAAY,CAACY,KAAK,GAAG,IAAI;MACzB;IACF;IACA,IAAIb,QAAQ,CAACa,KAAK,IAAIX,aAAa,CAACW,KAAK,KAAK,CAAC,CAAC,EAAE;MAChD;IACF;IACA,MAAM;MAAEC;IAAU,CAAC,GAAGF,SAAS;IAC/B,MAAMG,OAAO,GAAGD,SAAS,GAAGZ,aAAa,CAACW,KAAK;;IAE/C;IACA,IAAIE,OAAO,GAAGN,aAAa,EAAE;MAC3B;IACF;;IAEA;IACAN,aAAa,CAACa,eAAe,CAAC,CAAC;IAC/B,IAAIf,YAAY,CAACY,KAAK,EAAE;MACtBZ,YAAY,CAACY,KAAK,CAACI,OAAO,CAAC,CAAC;IAC9B;IACAhB,YAAY,CAACY,KAAK,GAAGV,aAAa,CAACe,eAAe,CAAC,CAAC;;IAEpD;IACAhB,aAAa,CAACW,KAAK,GAAGC,SAAS;EACjC,CAAC,CAAC;EACFvB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXY,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEc,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EACN,OAAOhB,YAAY;AACrB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useAnimatedImage","Rea","DEFAULT_FRAME_DURATION","useAnimatedImageValue","source","paused","defaultPaused","useSharedValue","isPaused","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","useFrameCallback","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["useAnimatedImageValue.ts"],"sourcesContent":["import type { FrameInfo, SharedValue } from \"react-native-reanimated\";\n\nimport { useAnimatedImage } from \"../../skia/core/AnimatedImage\";\nimport type { DataSourceParam, SkImage } from \"../../skia/types\";\n\nimport Rea from \"./ReanimatedProxy\";\n\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (\n source: DataSourceParam,\n paused?: SharedValue<boolean>\n) => {\n const defaultPaused = Rea.useSharedValue(false);\n const isPaused = paused ?? defaultPaused;\n const currentFrame = Rea.useSharedValue<null | SkImage>(null);\n const lastTimestamp = Rea.useSharedValue(-1);\n const animatedImage = useAnimatedImage(source, (err) => {\n console.error(err);\n throw new Error(`Could not load animated image - got '${err.message}'`);\n });\n const frameDuration =\n animatedImage?.currentFrameDuration() || DEFAULT_FRAME_DURATION;\n\n Rea.useFrameCallback((frameInfo: FrameInfo) => {\n if (!animatedImage) {\n currentFrame.value = null;\n return;\n }\n if (isPaused.value && lastTimestamp.value !== -1) {\n return;\n }\n const { timestamp } = frameInfo;\n const elapsed = timestamp - lastTimestamp.value;\n\n // Check if it's time to switch frames based on GIF frame duration\n if (elapsed < frameDuration) {\n return;\n }\n\n // Update the current frame\n animatedImage.decodeNextFrame();\n if (currentFrame.value) {\n currentFrame.value.dispose();\n }\n currentFrame.value = animatedImage.getCurrentFrame();\n\n // Update the last timestamp\n lastTimestamp.value = timestamp;\n });\n return currentFrame;\n};\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,+BAA+B;AAGhE,OAAOC,GAAG,MAAM,mBAAmB;AAEnC,MAAMC,sBAAsB,GAAG,EAAE;AAEjC,OAAO,MAAMC,qBAAqB,GAAGA,CACnCC,MAAuB,EACvBC,MAA6B,KAC1B;EACH,MAAMC,aAAa,GAAGL,GAAG,CAACM,cAAc,CAAC,KAAK,CAAC;EAC/C,MAAMC,QAAQ,GAAGH,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIC,aAAa;EACxC,MAAMG,YAAY,GAAGR,GAAG,CAACM,cAAc,CAAiB,IAAI,CAAC;EAC7D,MAAMG,aAAa,GAAGT,GAAG,CAACM,cAAc,CAAC,CAAC,CAAC,CAAC;EAC5C,MAAMI,aAAa,GAAGX,gBAAgB,CAACI,MAAM,EAAGQ,GAAG,IAAK;IACtDC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClB,MAAM,IAAIG,KAAK,CAAC,wCAAwCH,GAAG,CAACI,OAAO,GAAG,CAAC;EACzE,CAAC,CAAC;EACF,MAAMC,aAAa,GACjB,CAAAN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEO,oBAAoB,CAAC,CAAC,KAAIhB,sBAAsB;EAEjED,GAAG,CAACkB,gBAAgB,CAAEC,SAAoB,IAAK;IAC7C,IAAI,CAACT,aAAa,EAAE;MAClBF,YAAY,CAACY,KAAK,GAAG,IAAI;MACzB;IACF;IACA,IAAIb,QAAQ,CAACa,KAAK,IAAIX,aAAa,CAACW,KAAK,KAAK,CAAC,CAAC,EAAE;MAChD;IACF;IACA,MAAM;MAAEC;IAAU,CAAC,GAAGF,SAAS;IAC/B,MAAMG,OAAO,GAAGD,SAAS,GAAGZ,aAAa,CAACW,KAAK;;IAE/C;IACA,IAAIE,OAAO,GAAGN,aAAa,EAAE;MAC3B;IACF;;IAEA;IACAN,aAAa,CAACa,eAAe,CAAC,CAAC;IAC/B,IAAIf,YAAY,CAACY,KAAK,EAAE;MACtBZ,YAAY,CAACY,KAAK,CAACI,OAAO,CAAC,CAAC;IAC9B;IACAhB,YAAY,CAACY,KAAK,GAAGV,aAAa,CAACe,eAAe,CAAC,CAAC;;IAEpD;IACAhB,aAAa,CAACW,KAAK,GAAGC,SAAS;EACjC,CAAC,CAAC;EACF,OAAOb,YAAY;AACrB,CAAC","ignoreList":[]}
@@ -2,4 +2,4 @@ import type { DataSourceParam } from "../types";
2
2
  /**
3
3
  * Returns a Skia Animated Image object
4
4
  * */
5
- export declare const useAnimatedImage: (source: DataSourceParam, onError?: (err: Error) => void, managed?: boolean) => import("../types").SkAnimatedImage | null;
5
+ export declare const useAnimatedImage: (source: DataSourceParam, onError?: (err: Error) => void) => import("../types").SkAnimatedImage | null;
@@ -5,5 +5,5 @@ const animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(
5
5
  /**
6
6
  * Returns a Skia Animated Image object
7
7
  * */
8
- export const useAnimatedImage = (source, onError, managed = true) => useRawData(source, animatedImgFactory, onError, managed);
8
+ export const useAnimatedImage = (source, onError) => useRawData(source, animatedImgFactory, onError);
9
9
  //# sourceMappingURL=AnimatedImage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError","managed"],"sources":["AnimatedImage.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { DataSourceParam } from \"../types\";\n\nimport { useRawData } from \"./Data\";\n\nconst animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(\n Skia.AnimatedImage\n);\n\n/**\n * Returns a Skia Animated Image object\n * */\nexport const useAnimatedImage = (\n source: DataSourceParam,\n onError?: (err: Error) => void,\n managed = true\n) => useRawData(source, animatedImgFactory, onError, managed);\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,SAAS;AAG9B,SAASC,UAAU,QAAQ,QAAQ;AAEnC,MAAMC,kBAAkB,GAAGF,IAAI,CAACG,aAAa,CAACC,4BAA4B,CAACC,IAAI,CAC7EL,IAAI,CAACG,aACP,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMG,gBAAgB,GAAGA,CAC9BC,MAAuB,EACvBC,OAA8B,EAC9BC,OAAO,GAAG,IAAI,KACXR,UAAU,CAACM,MAAM,EAAEL,kBAAkB,EAAEM,OAAO,EAAEC,OAAO,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError"],"sources":["AnimatedImage.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { DataSourceParam } from \"../types\";\n\nimport { useRawData } from \"./Data\";\n\nconst animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(\n Skia.AnimatedImage\n);\n\n/**\n * Returns a Skia Animated Image object\n * */\nexport const useAnimatedImage = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, animatedImgFactory, onError);\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,SAAS;AAG9B,SAASC,UAAU,QAAQ,QAAQ;AAEnC,MAAMC,kBAAkB,GAAGF,IAAI,CAACG,aAAa,CAACC,4BAA4B,CAACC,IAAI,CAC7EL,IAAI,CAACG,aACP,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMG,gBAAgB,GAAGA,CAC9BC,MAAuB,EACvBC,OAA8B,KAC3BP,UAAU,CAACM,MAAM,EAAEL,kBAAkB,EAAEM,OAAO,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { SkData, DataSourceParam, SkJSIInstance } from "../types";
2
2
  export declare const loadData: <T>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: (err: Error) => void) => Promise<T | null>;
3
3
  export declare const useCollectionLoading: <T extends SkJSIInstance<string>>(source: DataSourceParam[], loader: () => Promise<(T | null)[]>) => T[] | null;
4
- export declare const useRawData: <T extends SkJSIInstance<string>>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: (err: Error) => void, manage?: boolean) => T | null;
4
+ export declare const useRawData: <T extends SkJSIInstance<string>>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: (err: Error) => void) => T | null;
5
5
  export declare const useData: (source: DataSourceParam, onError?: (err: Error) => void) => SkData | null;
@@ -20,7 +20,7 @@ export const loadData = (source, factory, onError) => {
20
20
  return Skia.Data.fromURI(uri).then(d => factoryWrapper(d, factory, onError));
21
21
  }
22
22
  };
23
- const useLoading = (source, loader, manage = true) => {
23
+ const useLoading = (source, loader) => {
24
24
  const mounted = useRef(false);
25
25
  const [data, setData] = useState(null);
26
26
  const dataRef = useRef(null);
@@ -33,10 +33,6 @@ const useLoading = (source, loader, manage = true) => {
33
33
  }
34
34
  });
35
35
  return () => {
36
- if (manage) {
37
- var _dataRef$current;
38
- (_dataRef$current = dataRef.current) === null || _dataRef$current === void 0 || _dataRef$current.dispose();
39
- }
40
36
  mounted.current = false;
41
37
  };
42
38
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -57,8 +53,6 @@ export const useCollectionLoading = (source, loader) => {
57
53
  }
58
54
  });
59
55
  return () => {
60
- var _dataRef$current2;
61
- (_dataRef$current2 = dataRef.current) === null || _dataRef$current2 === void 0 || _dataRef$current2.forEach(instance => instance === null || instance === void 0 ? void 0 : instance.dispose());
62
56
  mounted.current = false;
63
57
  };
64
58
 
@@ -66,7 +60,7 @@ export const useCollectionLoading = (source, loader) => {
66
60
  }, [source]);
67
61
  return data;
68
62
  };
69
- export const useRawData = (source, factory, onError, manage = true) => useLoading(source, () => loadData(source, factory, onError), manage);
63
+ export const useRawData = (source, factory, onError) => useLoading(source, () => loadData(source, factory, onError));
70
64
  const identity = data => data;
71
65
  export const useData = (source, onError) => useRawData(source, identity, onError);
72
66
  //# sourceMappingURL=Data.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Skia","Platform","factoryWrapper","data2","factory","onError","factoryResult","Error","loadData","source","undefined","Promise","resolve","Uint8Array","Data","fromBytes","uri","resolveAsset","fromURI","then","d","useLoading","loader","manage","mounted","data","setData","dataRef","current","value","_dataRef$current","dispose","useCollectionLoading","result","filter","r","_dataRef$current2","forEach","instance","useRawData","identity","useData"],"sources":["Data.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { SkData, DataSourceParam, SkJSIInstance } from \"../types\";\nimport { Platform } from \"../../Platform\";\n\nconst factoryWrapper = <T>(\n data2: SkData,\n factory: (data: SkData) => T,\n onError?: (err: Error) => void\n) => {\n const factoryResult = factory(data2);\n if (factoryResult === null) {\n onError && onError(new Error(\"Could not load data\"));\n return null;\n } else {\n return factoryResult;\n }\n};\n\nexport const loadData = <T>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n): Promise<T | null> => {\n if (source === null || source === undefined) {\n return new Promise((resolve) => resolve(null));\n } else if (source instanceof Uint8Array) {\n return new Promise((resolve) =>\n resolve(factoryWrapper(Skia.Data.fromBytes(source), factory, onError))\n );\n } else {\n const uri =\n typeof source === \"string\" ? source : Platform.resolveAsset(source);\n return Skia.Data.fromURI(uri).then((d) =>\n factoryWrapper(d, factory, onError)\n );\n }\n};\n\nconst useLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n loader: () => Promise<T | null>,\n manage = true\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T | null>(null);\n const dataRef = useRef<T | null>(null);\n useEffect(() => {\n mounted.current = true;\n loader().then((value) => {\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n return () => {\n if (manage) {\n dataRef.current?.dispose();\n }\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n return data;\n};\n\nexport const useCollectionLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam[],\n loader: () => Promise<(T | null)[]>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T[] | null>(null);\n const dataRef = useRef<T[] | null>(null);\n\n useEffect(() => {\n mounted.current = true;\n loader().then((result) => {\n const value = result.filter((r) => r !== null) as T[];\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n\n return () => {\n dataRef.current?.forEach((instance) => instance?.dispose());\n mounted.current = false;\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n\n return data;\n};\n\nexport const useRawData = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void,\n manage = true\n) => useLoading(source, () => loadData<T>(source, factory, onError), manage);\n\nconst identity = (data: SkData) => data;\n\nexport const useData = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, identity, onError);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","Skia","Platform","factoryWrapper","data2","factory","onError","factoryResult","Error","loadData","source","undefined","Promise","resolve","Uint8Array","Data","fromBytes","uri","resolveAsset","fromURI","then","d","useLoading","loader","mounted","data","setData","dataRef","current","value","useCollectionLoading","result","filter","r","useRawData","identity","useData"],"sources":["Data.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { SkData, DataSourceParam, SkJSIInstance } from \"../types\";\nimport { Platform } from \"../../Platform\";\n\nconst factoryWrapper = <T>(\n data2: SkData,\n factory: (data: SkData) => T,\n onError?: (err: Error) => void\n) => {\n const factoryResult = factory(data2);\n if (factoryResult === null) {\n onError && onError(new Error(\"Could not load data\"));\n return null;\n } else {\n return factoryResult;\n }\n};\n\nexport const loadData = <T>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n): Promise<T | null> => {\n if (source === null || source === undefined) {\n return new Promise((resolve) => resolve(null));\n } else if (source instanceof Uint8Array) {\n return new Promise((resolve) =>\n resolve(factoryWrapper(Skia.Data.fromBytes(source), factory, onError))\n );\n } else {\n const uri =\n typeof source === \"string\" ? source : Platform.resolveAsset(source);\n return Skia.Data.fromURI(uri).then((d) =>\n factoryWrapper(d, factory, onError)\n );\n }\n};\n\nconst useLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n loader: () => Promise<T | null>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T | null>(null);\n const dataRef = useRef<T | null>(null);\n useEffect(() => {\n mounted.current = true;\n loader().then((value) => {\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n return data;\n};\n\nexport const useCollectionLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam[],\n loader: () => Promise<(T | null)[]>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T[] | null>(null);\n const dataRef = useRef<T[] | null>(null);\n\n useEffect(() => {\n mounted.current = true;\n loader().then((result) => {\n const value = result.filter((r) => r !== null) as T[];\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n\n return () => {\n mounted.current = false;\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n\n return data;\n};\n\nexport const useRawData = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n) => useLoading(source, () => loadData<T>(source, factory, onError));\n\nconst identity = (data: SkData) => data;\n\nexport const useData = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, identity, onError);\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,7 @@ export interface SkPaint extends SkJSIInstance<"Paint"> {
35
35
  SkPaint with the result of SkPaint().
36
36
  */
37
37
  reset(): void;
38
+ assign(paint: SkPaint): void;
38
39
  /**
39
40
  * Retrieves the alpha and RGB unpremultiplied. RGB are extended sRGB values
40
41
  * (sRGB gamut, and encoded with the sRGB transfer function).
@@ -1 +1 @@
1
- {"version":3,"names":["PaintStyle","StrokeCap","StrokeJoin","isPaint","obj","__typename__"],"sources":["Paint.ts"],"sourcesContent":["import type { SkImageFilter } from \"../ImageFilter\";\nimport type { SkMaskFilter } from \"../MaskFilter\";\nimport type { SkColorFilter } from \"../ColorFilter\";\nimport type { SkColor } from \"../Color\";\nimport type { SkPathEffect } from \"../PathEffect\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkShader } from \"../Shader\";\n\nimport type { BlendMode } from \"./BlendMode\";\n\nexport enum PaintStyle {\n Fill,\n Stroke,\n}\n\nexport enum StrokeCap {\n Butt,\n Round,\n Square,\n}\n\nexport enum StrokeJoin {\n Miter,\n Round,\n Bevel,\n}\n\nexport const isPaint = (obj: SkJSIInstance<string> | null): obj is SkPaint =>\n obj !== null && obj.__typename__ === \"Paint\";\n\nexport interface SkPaint extends SkJSIInstance<\"Paint\"> {\n /**\n * Retrieves alpha from the color used when stroking and filling.\n */\n getAlphaf(): number;\n\n /**\n * Returns a copy of this paint.\n */\n copy(): SkPaint;\n\n /**\n * Sets all SkPaint contents to their initial values. This is equivalent to replacing\n SkPaint with the result of SkPaint().\n */\n reset(): void;\n\n /**\n * Retrieves the alpha and RGB unpremultiplied. RGB are extended sRGB values\n * (sRGB gamut, and encoded with the sRGB transfer function).\n */\n getColor(): SkColor;\n\n /**\n * Returns the geometry drawn at the beginning and end of strokes.\n */\n getStrokeCap(): StrokeCap;\n\n /**\n * Returns the geometry drawn at the corners of strokes.\n */\n getStrokeJoin(): StrokeJoin;\n\n /**\n * Returns the limit at which a sharp corner is drawn beveled.\n */\n getStrokeMiter(): number;\n\n /**\n * Returns the thickness of the pen used to outline the shape.\n */\n getStrokeWidth(): number;\n\n /**\n * Replaces alpha, leaving RGBA unchanged. 0 means fully transparent, 1.0 means opaque.\n * @param alpha\n */\n setAlphaf(alpha: number): void;\n\n /**\n * Requests, but does not require, that edge pixels draw opaque or with\n * partial transparency.\n * @param aa\n */\n setAntiAlias: (aa: boolean) => void;\n\n /**\n * Requests, but does not require, to distribute color error.\n * @param dither\n */\n setDither: (dither: boolean) => void;\n\n /**\n * Sets the blend mode that is, the mode used to combine source color\n * with destination color.\n * @param mode\n */\n setBlendMode: (blendMode: BlendMode) => void;\n\n /**\n * Sets alpha and RGB used when stroking and filling. The color is a 32-bit\n * value, unpremultiplied, packing 8-bit components for alpha, red, blue,\n * and green.\n *\n * @param color unpremultiplied ARGB\n *\n * example: https://fiddle.skia.org/c/@Paint_setColor\n */\n setColor(color: SkColor): void;\n\n /**\n * Sets the current color filter, replacing the existing one if there was one.\n * @param filter\n */\n setColorFilter(filter: SkColorFilter | null): void;\n\n /**\n * Sets the current image filter, replacing the existing one if there was one.\n * @param filter\n */\n setImageFilter(filter: SkImageFilter | null): void;\n\n /**\n * Sets the current mask filter, replacing the existing one if there was one.\n * @param filter\n */\n setMaskFilter(filter: SkMaskFilter | null): void;\n\n /**\n * Sets the current path effect, replacing the existing one if there was one.\n * @param effect\n */\n setPathEffect(effect: SkPathEffect | null): void;\n\n /**\n * Sets the current shader, replacing the existing one if there was one.\n * @param shader\n */\n setShader(shader: SkShader | null): void;\n\n /**\n * Sets the geometry drawn at the beginning and end of strokes.\n * @param cap\n */\n setStrokeCap(cap: StrokeCap): void;\n\n /**\n * Sets the geometry drawn at the corners of strokes.\n * @param join\n */\n setStrokeJoin(join: StrokeJoin): void;\n\n /**\n * Sets the limit at which a sharp corner is drawn beveled.\n * @param limit\n */\n setStrokeMiter(limit: number): void;\n\n /**\n * Sets the thickness of the pen used to outline the shape.\n * @param width\n */\n setStrokeWidth(width: number): void;\n\n /**\n * Sets whether the geometry is filled or stroked.\n * @param style\n */\n setStyle(style: PaintStyle): void;\n}\n"],"mappings":"AAUA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAKtB,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAMrB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMtB,OAAO,MAAMC,OAAO,GAAIC,GAAiC,IACvDA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACC,YAAY,KAAK,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["PaintStyle","StrokeCap","StrokeJoin","isPaint","obj","__typename__"],"sources":["Paint.ts"],"sourcesContent":["import type { SkImageFilter } from \"../ImageFilter\";\nimport type { SkMaskFilter } from \"../MaskFilter\";\nimport type { SkColorFilter } from \"../ColorFilter\";\nimport type { SkColor } from \"../Color\";\nimport type { SkPathEffect } from \"../PathEffect\";\nimport type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkShader } from \"../Shader\";\n\nimport type { BlendMode } from \"./BlendMode\";\n\nexport enum PaintStyle {\n Fill,\n Stroke,\n}\n\nexport enum StrokeCap {\n Butt,\n Round,\n Square,\n}\n\nexport enum StrokeJoin {\n Miter,\n Round,\n Bevel,\n}\n\nexport const isPaint = (obj: SkJSIInstance<string> | null): obj is SkPaint =>\n obj !== null && obj.__typename__ === \"Paint\";\n\nexport interface SkPaint extends SkJSIInstance<\"Paint\"> {\n /**\n * Retrieves alpha from the color used when stroking and filling.\n */\n getAlphaf(): number;\n\n /**\n * Returns a copy of this paint.\n */\n copy(): SkPaint;\n\n /**\n * Sets all SkPaint contents to their initial values. This is equivalent to replacing\n SkPaint with the result of SkPaint().\n */\n reset(): void;\n\n assign(paint: SkPaint): void;\n\n /**\n * Retrieves the alpha and RGB unpremultiplied. RGB are extended sRGB values\n * (sRGB gamut, and encoded with the sRGB transfer function).\n */\n getColor(): SkColor;\n\n /**\n * Returns the geometry drawn at the beginning and end of strokes.\n */\n getStrokeCap(): StrokeCap;\n\n /**\n * Returns the geometry drawn at the corners of strokes.\n */\n getStrokeJoin(): StrokeJoin;\n\n /**\n * Returns the limit at which a sharp corner is drawn beveled.\n */\n getStrokeMiter(): number;\n\n /**\n * Returns the thickness of the pen used to outline the shape.\n */\n getStrokeWidth(): number;\n\n /**\n * Replaces alpha, leaving RGBA unchanged. 0 means fully transparent, 1.0 means opaque.\n * @param alpha\n */\n setAlphaf(alpha: number): void;\n\n /**\n * Requests, but does not require, that edge pixels draw opaque or with\n * partial transparency.\n * @param aa\n */\n setAntiAlias: (aa: boolean) => void;\n\n /**\n * Requests, but does not require, to distribute color error.\n * @param dither\n */\n setDither: (dither: boolean) => void;\n\n /**\n * Sets the blend mode that is, the mode used to combine source color\n * with destination color.\n * @param mode\n */\n setBlendMode: (blendMode: BlendMode) => void;\n\n /**\n * Sets alpha and RGB used when stroking and filling. The color is a 32-bit\n * value, unpremultiplied, packing 8-bit components for alpha, red, blue,\n * and green.\n *\n * @param color unpremultiplied ARGB\n *\n * example: https://fiddle.skia.org/c/@Paint_setColor\n */\n setColor(color: SkColor): void;\n\n /**\n * Sets the current color filter, replacing the existing one if there was one.\n * @param filter\n */\n setColorFilter(filter: SkColorFilter | null): void;\n\n /**\n * Sets the current image filter, replacing the existing one if there was one.\n * @param filter\n */\n setImageFilter(filter: SkImageFilter | null): void;\n\n /**\n * Sets the current mask filter, replacing the existing one if there was one.\n * @param filter\n */\n setMaskFilter(filter: SkMaskFilter | null): void;\n\n /**\n * Sets the current path effect, replacing the existing one if there was one.\n * @param effect\n */\n setPathEffect(effect: SkPathEffect | null): void;\n\n /**\n * Sets the current shader, replacing the existing one if there was one.\n * @param shader\n */\n setShader(shader: SkShader | null): void;\n\n /**\n * Sets the geometry drawn at the beginning and end of strokes.\n * @param cap\n */\n setStrokeCap(cap: StrokeCap): void;\n\n /**\n * Sets the geometry drawn at the corners of strokes.\n * @param join\n */\n setStrokeJoin(join: StrokeJoin): void;\n\n /**\n * Sets the limit at which a sharp corner is drawn beveled.\n * @param limit\n */\n setStrokeMiter(limit: number): void;\n\n /**\n * Sets the thickness of the pen used to outline the shape.\n * @param width\n */\n setStrokeWidth(width: number): void;\n\n /**\n * Sets whether the geometry is filled or stroked.\n * @param style\n */\n setStyle(style: PaintStyle): void;\n}\n"],"mappings":"AAUA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAKtB,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAMrB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMtB,OAAO,MAAMC,OAAO,GAAIC,GAAiC,IACvDA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACC,YAAY,KAAK,OAAO","ignoreList":[]}
@@ -5,6 +5,7 @@ export declare class JsiSkPaint extends HostObject<Paint, "Paint"> implements Sk
5
5
  constructor(CanvasKit: CanvasKit, ref: Paint);
6
6
  dispose: () => void;
7
7
  copy(): JsiSkPaint;
8
+ assign(paint: JsiSkPaint): void;
8
9
  reset(): void;
9
10
  getAlphaf(): number;
10
11
  getColor(): Float32Array;
@@ -17,6 +17,9 @@ export class JsiSkPaint extends HostObject {
17
17
  copy() {
18
18
  return new JsiSkPaint(this.CanvasKit, this.ref.copy());
19
19
  }
20
+ assign(paint) {
21
+ this.ref = paint.ref.copy();
22
+ }
20
23
  reset() {
21
24
  this.ref = new this.CanvasKit.Paint();
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"names":["HostObject","getEnum","JsiSkColorFilter","JsiSkImageFilter","JsiSkMaskFilter","JsiSkPathEffect","JsiSkShader","JsiSkPaint","constructor","CanvasKit","ref","_defineProperty","delete","copy","reset","Paint","getAlphaf","getColor","getStrokeCap","value","getStrokeJoin","getStrokeMiter","getStrokeWidth","setAlphaf","alpha","setAntiAlias","aa","setDither","dither","setBlendMode","blendMode","BlendMode","setColor","color","setColorFilter","filter","fromValue","setImageFilter","setMaskFilter","setPathEffect","effect","setShader","shader","setStrokeCap","cap","StrokeCap","setStrokeJoin","join","StrokeJoin","setStrokeMiter","limit","setStrokeWidth","width","setStyle","style"],"sources":["JsiSkPaint.ts"],"sourcesContent":["import type { CanvasKit, Paint } from \"canvaskit-wasm\";\n\nimport type {\n StrokeJoin,\n BlendMode,\n SkColor,\n SkColorFilter,\n SkImageFilter,\n SkPaint,\n SkShader,\n StrokeCap,\n PaintStyle,\n SkMaskFilter,\n SkPathEffect,\n} from \"../types\";\n\nimport { HostObject, getEnum } from \"./Host\";\nimport { JsiSkColorFilter } from \"./JsiSkColorFilter\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkMaskFilter } from \"./JsiSkMaskFilter\";\nimport { JsiSkPathEffect } from \"./JsiSkPathEffect\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\nexport class JsiSkPaint extends HostObject<Paint, \"Paint\"> implements SkPaint {\n constructor(CanvasKit: CanvasKit, ref: Paint) {\n super(CanvasKit, ref, \"Paint\");\n }\n\n dispose = () => {\n this.ref.delete();\n };\n\n copy() {\n return new JsiSkPaint(this.CanvasKit, this.ref.copy());\n }\n\n reset() {\n this.ref = new this.CanvasKit.Paint();\n }\n\n getAlphaf() {\n return this.getColor()[3];\n }\n\n getColor() {\n return this.ref.getColor();\n }\n\n getStrokeCap() {\n return this.ref.getStrokeCap().value;\n }\n\n getStrokeJoin() {\n return this.ref.getStrokeJoin().value;\n }\n\n getStrokeMiter() {\n return this.ref.getStrokeMiter();\n }\n\n getStrokeWidth() {\n return this.ref.getStrokeWidth();\n }\n\n setAlphaf(alpha: number) {\n this.ref.setAlphaf(alpha);\n }\n\n setAntiAlias(aa: boolean) {\n this.ref.setAntiAlias(aa);\n }\n\n setDither(dither: boolean) {\n this.ref.setDither(dither);\n }\n\n setBlendMode(blendMode: BlendMode) {\n this.ref.setBlendMode(getEnum(this.CanvasKit.BlendMode, blendMode));\n }\n\n setColor(color: SkColor) {\n this.ref.setColor(color);\n }\n\n setColorFilter(filter: SkColorFilter | null) {\n this.ref.setColorFilter(filter ? JsiSkColorFilter.fromValue(filter) : null);\n }\n\n setImageFilter(filter: SkImageFilter | null) {\n this.ref.setImageFilter(filter ? JsiSkImageFilter.fromValue(filter) : null);\n }\n\n setMaskFilter(filter: SkMaskFilter | null) {\n this.ref.setMaskFilter(filter ? JsiSkMaskFilter.fromValue(filter) : null);\n }\n\n setPathEffect(effect: SkPathEffect | null) {\n this.ref.setPathEffect(effect ? JsiSkPathEffect.fromValue(effect) : null);\n }\n\n setShader(shader: SkShader | null) {\n this.ref.setShader(shader ? JsiSkShader.fromValue(shader) : null);\n }\n\n setStrokeCap(cap: StrokeCap) {\n this.ref.setStrokeCap(getEnum(this.CanvasKit.StrokeCap, cap));\n }\n\n setStrokeJoin(join: StrokeJoin) {\n this.ref.setStrokeJoin(getEnum(this.CanvasKit.StrokeJoin, join));\n }\n\n setStrokeMiter(limit: number) {\n this.ref.setStrokeMiter(limit);\n }\n\n setStrokeWidth(width: number) {\n this.ref.setStrokeWidth(width);\n }\n\n setStyle(style: PaintStyle) {\n this.ref.setStyle({ value: style });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HostObject","getEnum","JsiSkColorFilter","JsiSkImageFilter","JsiSkMaskFilter","JsiSkPathEffect","JsiSkShader","JsiSkPaint","constructor","CanvasKit","ref","_defineProperty","delete","copy","assign","paint","reset","Paint","getAlphaf","getColor","getStrokeCap","value","getStrokeJoin","getStrokeMiter","getStrokeWidth","setAlphaf","alpha","setAntiAlias","aa","setDither","dither","setBlendMode","blendMode","BlendMode","setColor","color","setColorFilter","filter","fromValue","setImageFilter","setMaskFilter","setPathEffect","effect","setShader","shader","setStrokeCap","cap","StrokeCap","setStrokeJoin","join","StrokeJoin","setStrokeMiter","limit","setStrokeWidth","width","setStyle","style"],"sources":["JsiSkPaint.ts"],"sourcesContent":["import type { CanvasKit, Paint } from \"canvaskit-wasm\";\n\nimport type {\n StrokeJoin,\n BlendMode,\n SkColor,\n SkColorFilter,\n SkImageFilter,\n SkPaint,\n SkShader,\n StrokeCap,\n PaintStyle,\n SkMaskFilter,\n SkPathEffect,\n} from \"../types\";\n\nimport { HostObject, getEnum } from \"./Host\";\nimport { JsiSkColorFilter } from \"./JsiSkColorFilter\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkMaskFilter } from \"./JsiSkMaskFilter\";\nimport { JsiSkPathEffect } from \"./JsiSkPathEffect\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\nexport class JsiSkPaint extends HostObject<Paint, \"Paint\"> implements SkPaint {\n constructor(CanvasKit: CanvasKit, ref: Paint) {\n super(CanvasKit, ref, \"Paint\");\n }\n\n dispose = () => {\n this.ref.delete();\n };\n\n copy() {\n return new JsiSkPaint(this.CanvasKit, this.ref.copy());\n }\n\n assign(paint: JsiSkPaint) {\n this.ref = paint.ref.copy();\n }\n\n reset() {\n this.ref = new this.CanvasKit.Paint();\n }\n\n getAlphaf() {\n return this.getColor()[3];\n }\n\n getColor() {\n return this.ref.getColor();\n }\n\n getStrokeCap() {\n return this.ref.getStrokeCap().value;\n }\n\n getStrokeJoin() {\n return this.ref.getStrokeJoin().value;\n }\n\n getStrokeMiter() {\n return this.ref.getStrokeMiter();\n }\n\n getStrokeWidth() {\n return this.ref.getStrokeWidth();\n }\n\n setAlphaf(alpha: number) {\n this.ref.setAlphaf(alpha);\n }\n\n setAntiAlias(aa: boolean) {\n this.ref.setAntiAlias(aa);\n }\n\n setDither(dither: boolean) {\n this.ref.setDither(dither);\n }\n\n setBlendMode(blendMode: BlendMode) {\n this.ref.setBlendMode(getEnum(this.CanvasKit.BlendMode, blendMode));\n }\n\n setColor(color: SkColor) {\n this.ref.setColor(color);\n }\n\n setColorFilter(filter: SkColorFilter | null) {\n this.ref.setColorFilter(filter ? JsiSkColorFilter.fromValue(filter) : null);\n }\n\n setImageFilter(filter: SkImageFilter | null) {\n this.ref.setImageFilter(filter ? JsiSkImageFilter.fromValue(filter) : null);\n }\n\n setMaskFilter(filter: SkMaskFilter | null) {\n this.ref.setMaskFilter(filter ? JsiSkMaskFilter.fromValue(filter) : null);\n }\n\n setPathEffect(effect: SkPathEffect | null) {\n this.ref.setPathEffect(effect ? JsiSkPathEffect.fromValue(effect) : null);\n }\n\n setShader(shader: SkShader | null) {\n this.ref.setShader(shader ? JsiSkShader.fromValue(shader) : null);\n }\n\n setStrokeCap(cap: StrokeCap) {\n this.ref.setStrokeCap(getEnum(this.CanvasKit.StrokeCap, cap));\n }\n\n setStrokeJoin(join: StrokeJoin) {\n this.ref.setStrokeJoin(getEnum(this.CanvasKit.StrokeJoin, join));\n }\n\n setStrokeMiter(limit: number) {\n this.ref.setStrokeMiter(limit);\n }\n\n setStrokeWidth(width: number) {\n this.ref.setStrokeWidth(width);\n }\n\n setStyle(style: PaintStyle) {\n this.ref.setStyle({ value: style });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  import type { Skia, SkCanvas } from "../skia/types";
2
- import type { Node } from "./nodes";
2
+ import type { Node } from "./Node";
3
3
  export declare class Container {
4
4
  Skia: Skia;
5
5
  private nativeId;
6
- _root: Node[];
6
+ private _root;
7
+ private _recording;
7
8
  unmounted: boolean;
8
9
  private values;
9
10
  private mapperId;
@@ -2,21 +2,26 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
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
4
  import Rea from "../external/reanimated/ReanimatedProxy";
5
- import { HAS_REANIMATED, HAS_REANIMATED_3 } from "../external/reanimated/renderHelpers";
6
- import { createDrawingContext } from "./DrawingContext";
7
- import { draw, isSharedValue } from "./nodes";
8
- const drawOnscreen = (Skia, nativeId, root) => {
5
+ import { isSharedValue } from "./utils";
6
+ import { Recorder } from "./Recorder/Recorder";
7
+ import { visit } from "./Recorder/Visitor";
8
+ import { replay } from "./Recorder/Player";
9
+ import { createDrawingContext } from "./Recorder/DrawingContext";
10
+ import { createRecording } from "./Recorder/Recording";
11
+ const drawOnscreen = (Skia, nativeId, recording) => {
9
12
  "worklet";
10
13
 
11
14
  const rec = Skia.PictureRecorder();
12
15
  const canvas = rec.beginRecording();
13
- // TODO: This is only support from 3.15 and above (check the exact version)
14
- // This could be polyfilled in C++ if needed (or in JS via functions only?)
15
- const ctx = createDrawingContext(Skia, canvas);
16
- root.forEach(node => {
17
- draw(ctx, node);
18
- });
16
+ // const start = performance.now();
17
+
18
+ // TODO: because the pool is not a shared value here, it is copied on every frame
19
+ const ctx = createDrawingContext(Skia, recording.paintPool, canvas);
20
+ //console.log(recording.commands);
21
+ replay(ctx, recording.commands);
19
22
  const picture = rec.finishRecordingAsPicture();
23
+ //const end = performance.now();
24
+ //console.log("Recording time: ", end - start);
20
25
  SkiaViewApi.setJsiProperty(nativeId, "picture", picture);
21
26
  };
22
27
  export class Container {
@@ -24,6 +29,7 @@ export class Container {
24
29
  this.Skia = Skia;
25
30
  this.nativeId = nativeId;
26
31
  _defineProperty(this, "_root", []);
32
+ _defineProperty(this, "_recording", null);
27
33
  _defineProperty(this, "unmounted", false);
28
34
  _defineProperty(this, "values", new Set());
29
35
  _defineProperty(this, "mapperId", null);
@@ -33,41 +39,39 @@ export class Container {
33
39
  }
34
40
  set root(root) {
35
41
  const isOnscreen = this.nativeId !== -1;
36
- if (HAS_REANIMATED && !HAS_REANIMATED_3) {
37
- throw new Error("React Native Skia only supports Reanimated 3 and above");
38
- }
39
42
  if (isOnscreen) {
40
43
  if (this.mapperId !== null) {
41
44
  Rea.stopMapper(this.mapperId);
42
45
  }
43
46
  const {
44
47
  nativeId,
45
- Skia
48
+ Skia,
49
+ _recording
46
50
  } = this;
47
51
  this.mapperId = Rea.startMapper(() => {
48
52
  "worklet";
49
53
 
50
- drawOnscreen(Skia, nativeId, root);
54
+ drawOnscreen(Skia, nativeId, _recording);
51
55
  }, Array.from(this.values));
52
56
  }
53
57
  this._root = root;
58
+ const recorder = new Recorder();
59
+ visit(recorder, root);
60
+ this._recording = createRecording(recorder.commands);
54
61
  }
55
62
  clear() {
56
63
  console.log("clear container");
57
64
  }
58
65
  redraw() {
59
66
  const isOnscreen = this.nativeId !== -1;
60
- if (HAS_REANIMATED && !HAS_REANIMATED_3) {
61
- throw new Error("React Native Skia only supports Reanimated 3 and above");
62
- }
63
67
  if (isOnscreen) {
64
68
  const {
65
69
  nativeId,
66
70
  Skia,
67
- root
71
+ _recording
68
72
  } = this;
69
73
  Rea.runOnUI(() => {
70
- drawOnscreen(Skia, nativeId, root);
74
+ drawOnscreen(Skia, nativeId, _recording);
71
75
  })();
72
76
  }
73
77
  }
@@ -85,10 +89,12 @@ export class Container {
85
89
  });
86
90
  }
87
91
  drawOnCanvas(canvas) {
88
- const ctx = createDrawingContext(this.Skia, canvas);
89
- this.root.forEach(node => {
90
- draw(ctx, node);
91
- });
92
+ if (!this._recording) {
93
+ throw new Error("No recording to draw");
94
+ }
95
+ const ctx = createDrawingContext(this.Skia, this._recording.paintPool, canvas);
96
+ //console.log(this._recording);
97
+ replay(ctx, this._recording.commands);
92
98
  }
93
99
  }
94
100
  //# sourceMappingURL=Container.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Rea","HAS_REANIMATED","HAS_REANIMATED_3","createDrawingContext","draw","isSharedValue","drawOnscreen","Skia","nativeId","root","rec","PictureRecorder","canvas","beginRecording","ctx","forEach","node","picture","finishRecordingAsPicture","SkiaViewApi","setJsiProperty","Container","constructor","_defineProperty","Set","_root","isOnscreen","Error","mapperId","stopMapper","startMapper","Array","from","values","clear","console","log","redraw","runOnUI","getNativeId","unregisterValues","Object","filter","value","delete","registerValues","add","drawOnCanvas"],"sources":["Container.ts"],"sourcesContent":["import { type SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport type { Skia, SkCanvas } from \"../skia/types\";\nimport {\n HAS_REANIMATED,\n HAS_REANIMATED_3,\n} from \"../external/reanimated/renderHelpers\";\n\nimport { createDrawingContext } from \"./DrawingContext\";\nimport type { Node } from \"./nodes\";\nimport { draw, isSharedValue } from \"./nodes\";\n\nconst drawOnscreen = (Skia: Skia, nativeId: number, root: Node[]) => {\n \"worklet\";\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n // TODO: This is only support from 3.15 and above (check the exact version)\n // This could be polyfilled in C++ if needed (or in JS via functions only?)\n const ctx = createDrawingContext(Skia, canvas);\n root.forEach((node) => {\n draw(ctx, node);\n });\n const picture = rec.finishRecordingAsPicture();\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nexport class Container {\n public _root: Node[] = [];\n public unmounted = false;\n\n private values = new Set<SharedValue<unknown>>();\n private mapperId: number | null = null;\n\n constructor(public Skia: Skia, private nativeId: number) {}\n\n get root() {\n return this._root;\n }\n\n set root(root: Node[]) {\n const isOnscreen = this.nativeId !== -1;\n if (HAS_REANIMATED && !HAS_REANIMATED_3) {\n throw new Error(\"React Native Skia only supports Reanimated 3 and above\");\n }\n if (isOnscreen) {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n const { nativeId, Skia } = this;\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, root);\n }, Array.from(this.values));\n }\n this._root = root;\n }\n\n clear() {\n console.log(\"clear container\");\n }\n\n redraw() {\n const isOnscreen = this.nativeId !== -1;\n if (HAS_REANIMATED && !HAS_REANIMATED_3) {\n throw new Error(\"React Native Skia only supports Reanimated 3 and above\");\n }\n if (isOnscreen) {\n const { nativeId, Skia, root } = this;\n Rea.runOnUI(() => {\n drawOnscreen(Skia, nativeId, root);\n })();\n }\n }\n\n getNativeId() {\n return this.nativeId;\n }\n\n unregisterValues(values: object) {\n Object.values(values)\n .filter(isSharedValue)\n .forEach((value) => {\n this.values.delete(value);\n });\n }\n\n registerValues(values: object) {\n Object.values(values)\n .filter(isSharedValue)\n .forEach((value) => {\n this.values.add(value);\n });\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n const ctx = createDrawingContext(this.Skia, canvas);\n this.root.forEach((node) => {\n draw(ctx, node);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Rea","isSharedValue","Recorder","visit","replay","createDrawingContext","createRecording","drawOnscreen","Skia","nativeId","recording","rec","PictureRecorder","canvas","beginRecording","ctx","paintPool","commands","picture","finishRecordingAsPicture","SkiaViewApi","setJsiProperty","Container","constructor","_defineProperty","Set","root","_root","isOnscreen","mapperId","stopMapper","_recording","startMapper","Array","from","values","recorder","clear","console","log","redraw","runOnUI","getNativeId","unregisterValues","Object","filter","forEach","value","delete","registerValues","add","drawOnCanvas","Error"],"sources":["Container.ts"],"sourcesContent":["import { type SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport type { Skia, SkCanvas } from \"../skia/types\";\n\nimport type { Node } from \"./Node\";\nimport { isSharedValue } from \"./utils\";\nimport { Recorder } from \"./Recorder/Recorder\";\nimport { visit } from \"./Recorder/Visitor\";\nimport { replay } from \"./Recorder/Player\";\nimport { createDrawingContext } from \"./Recorder/DrawingContext\";\nimport { createRecording, type Recording } from \"./Recorder/Recording\";\n\nconst drawOnscreen = (Skia: Skia, nativeId: number, recording: Recording) => {\n \"worklet\";\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n // const start = performance.now();\n\n // TODO: because the pool is not a shared value here, it is copied on every frame\n const ctx = createDrawingContext(Skia, recording.paintPool, canvas);\n //console.log(recording.commands);\n replay(ctx, recording.commands);\n const picture = rec.finishRecordingAsPicture();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nexport class Container {\n private _root: Node[] = [];\n private _recording: Recording | null = null;\n public unmounted = false;\n\n private values = new Set<SharedValue<unknown>>();\n private mapperId: number | null = null;\n\n constructor(public Skia: Skia, private nativeId: number) {}\n\n get root() {\n return this._root;\n }\n\n set root(root: Node[]) {\n const isOnscreen = this.nativeId !== -1;\n if (isOnscreen) {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n const { nativeId, Skia, _recording } = this;\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, _recording!);\n }, Array.from(this.values));\n }\n this._root = root;\n const recorder = new Recorder();\n visit(recorder, root);\n this._recording = createRecording(recorder.commands);\n }\n\n clear() {\n console.log(\"clear container\");\n }\n\n redraw() {\n const isOnscreen = this.nativeId !== -1;\n if (isOnscreen) {\n const { nativeId, Skia, _recording } = this;\n Rea.runOnUI(() => {\n drawOnscreen(Skia, nativeId, _recording!);\n })();\n }\n }\n\n getNativeId() {\n return this.nativeId;\n }\n\n unregisterValues(values: object) {\n Object.values(values)\n .filter(isSharedValue)\n .forEach((value) => {\n this.values.delete(value);\n });\n }\n\n registerValues(values: object) {\n Object.values(values)\n .filter(isSharedValue)\n .forEach((value) => {\n this.values.add(value);\n });\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n if (!this._recording) {\n throw new Error(\"No recording to draw\");\n }\n const ctx = createDrawingContext(\n this.Skia,\n this._recording.paintPool,\n canvas\n );\n //console.log(this._recording);\n replay(ctx, this._recording.commands);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { HostConfig } from "react-reconciler";
2
- import { NodeType } from "../dom/types";
3
- import type { Node } from "./nodes/Node";
2
+ import type { NodeType } from "../dom/types";
3
+ import type { Node } from "./Node";
4
4
  import type { Container } from "./Container";
5
5
  export declare const debug: (message?: any, ...optionalParams: any[]) => void;
6
6
  type Instance = Node;
@@ -1,7 +1,6 @@
1
1
  /*global NodeJS*/
2
2
 
3
3
  import { DefaultEventPriority } from "react-reconciler/constants";
4
- import { NodeType } from "../dom/types";
5
4
  import { shallowEq } from "../renderer/typeddash";
6
5
  const DEBUG = false;
7
6
  export const debug = (...args) => {
@@ -9,26 +8,6 @@ export const debug = (...args) => {
9
8
  console.log(...args);
10
9
  }
11
10
  };
12
- const isDeclaration = type => {
13
- "worklet";
14
-
15
- return (
16
- // BlurMaskFilters
17
- type === NodeType.BlurMaskFilter ||
18
- // ImageFilters
19
- type === NodeType.BlendImageFilter || type === NodeType.BlurImageFilter || type === NodeType.OffsetImageFilter || type === NodeType.DropShadowImageFilter || type === NodeType.MorphologyImageFilter || type === NodeType.DisplacementMapImageFilter || type === NodeType.RuntimeShaderImageFilter ||
20
- // ColorFilters
21
- type === NodeType.MatrixColorFilter || type === NodeType.BlendColorFilter || type === NodeType.LumaColorFilter || type === NodeType.LinearToSRGBGammaColorFilter || type === NodeType.SRGBToLinearGammaColorFilter || type === NodeType.LerpColorFilter ||
22
- // Shaders
23
- type === NodeType.Shader || type === NodeType.ImageShader || type === NodeType.ColorShader || type === NodeType.Turbulence || type === NodeType.FractalNoise || type === NodeType.LinearGradient || type === NodeType.RadialGradient || type === NodeType.SweepGradient || type === NodeType.TwoPointConicalGradient ||
24
- // Path Effects
25
- type === NodeType.CornerPathEffect || type === NodeType.DiscretePathEffect || type === NodeType.DashPathEffect || type === NodeType.Path1DPathEffect || type === NodeType.Path2DPathEffect || type === NodeType.SumPathEffect || type === NodeType.Line2DPathEffect ||
26
- // Mixed
27
- type === NodeType.Blend ||
28
- // Paint
29
- type === NodeType.Paint
30
- );
31
- };
32
11
  export const sksgHostConfig = {
33
12
  /**
34
13
  * This function is used by the reconciler in order to calculate current time for prioritising work.
@@ -57,12 +36,16 @@ export const sksgHostConfig = {
57
36
  // return SpanNode({}, text) as SkNode;
58
37
  throw new Error("Text nodes are not supported yet");
59
38
  },
60
- createInstance(type, props, container, _hostContext, _internalInstanceHandle) {
39
+ createInstance(type, propsWithChildren, container, _hostContext, _internalInstanceHandle) {
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ const {
42
+ children,
43
+ ...props
44
+ } = propsWithChildren;
61
45
  debug("createInstance", type);
62
46
  container.registerValues(props);
63
47
  const instance = {
64
48
  type,
65
- isDeclaration: isDeclaration(type),
66
49
  props,
67
50
  children: []
68
51
  };
@@ -116,8 +99,7 @@ export const sksgHostConfig = {
116
99
  return {
117
100
  type: instance.type,
118
101
  props: newProps,
119
- children: keepChildren ? [...instance.children] : [],
120
- isDeclaration: instance.isDeclaration
102
+ children: keepChildren ? [...instance.children] : []
121
103
  };
122
104
  },
123
105
  createContainerChildSet() {
@@ -1 +1 @@
1
- {"version":3,"names":["DefaultEventPriority","NodeType","shallowEq","DEBUG","debug","args","console","log","isDeclaration","type","BlurMaskFilter","BlendImageFilter","BlurImageFilter","OffsetImageFilter","DropShadowImageFilter","MorphologyImageFilter","DisplacementMapImageFilter","RuntimeShaderImageFilter","MatrixColorFilter","BlendColorFilter","LumaColorFilter","LinearToSRGBGammaColorFilter","SRGBToLinearGammaColorFilter","LerpColorFilter","Shader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","CornerPathEffect","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","SumPathEffect","Line2DPathEffect","Blend","Paint","sksgHostConfig","supportsMutation","isPrimaryRenderer","supportsPersistence","supportsHydration","scheduleTimeout","setTimeout","cancelTimeout","clearTimeout","noTimeout","getRootHostContext","_rootContainerInstance","getChildHostContext","_parentHostContext","_type","shouldSetTextContent","_props","createTextInstance","_text","_hostContext","_internalInstanceHandle","Error","createInstance","props","container","registerValues","instance","children","appendInitialChild","parentInstance","child","push","finalizeInitialChildren","commitMount","prepareForCommit","_containerInfo","resetAfterCommit","redraw","getPublicInstance","node","commitTextUpdate","_textInstance","_oldText","_newText","clearContainer","clear","prepareUpdate","_instance","oldProps","newProps","propsAreEqual","unregisterValues","preparePortalMount","cloneInstance","_updatePayload","_oldProps","keepChildren","_recyclableInstance","createContainerChildSet","appendChildToContainerChildSet","childSet","finalizeContainerChildren","newChildren","root","replaceContainerChildren","cloneHiddenInstance","cloneHiddenTextInstance","getCurrentEventPriority","beforeActiveInstanceBlur","afterActiveInstanceBlur","detachDeletedInstance","getInstanceFromNode","_node","prepareScopeUpdate","_scopeInstance","getInstanceFromScope"],"sources":["HostConfig.ts"],"sourcesContent":["/*global NodeJS*/\nimport type { Fiber, HostConfig } from \"react-reconciler\";\nimport { DefaultEventPriority } from \"react-reconciler/constants\";\n\nimport { NodeType } from \"../dom/types\";\nimport { shallowEq } from \"../renderer/typeddash\";\n\nimport type { Node } from \"./nodes/Node\";\nimport type { Container } from \"./Container\";\n\nconst DEBUG = false;\nexport const debug = (...args: Parameters<typeof console.log>) => {\n if (DEBUG) {\n console.log(...args);\n }\n};\n\nconst isDeclaration = (type: NodeType) => {\n \"worklet\";\n return (\n // BlurMaskFilters\n type === NodeType.BlurMaskFilter ||\n // ImageFilters\n type === NodeType.BlendImageFilter ||\n type === NodeType.BlurImageFilter ||\n type === NodeType.OffsetImageFilter ||\n type === NodeType.DropShadowImageFilter ||\n type === NodeType.MorphologyImageFilter ||\n type === NodeType.DisplacementMapImageFilter ||\n type === NodeType.RuntimeShaderImageFilter ||\n // ColorFilters\n type === NodeType.MatrixColorFilter ||\n type === NodeType.BlendColorFilter ||\n type === NodeType.LumaColorFilter ||\n type === NodeType.LinearToSRGBGammaColorFilter ||\n type === NodeType.SRGBToLinearGammaColorFilter ||\n type === NodeType.LerpColorFilter ||\n // Shaders\n type === NodeType.Shader ||\n type === NodeType.ImageShader ||\n type === NodeType.ColorShader ||\n type === NodeType.Turbulence ||\n type === NodeType.FractalNoise ||\n type === NodeType.LinearGradient ||\n type === NodeType.RadialGradient ||\n type === NodeType.SweepGradient ||\n type === NodeType.TwoPointConicalGradient ||\n // Path Effects\n type === NodeType.CornerPathEffect ||\n type === NodeType.DiscretePathEffect ||\n type === NodeType.DashPathEffect ||\n type === NodeType.Path1DPathEffect ||\n type === NodeType.Path2DPathEffect ||\n type === NodeType.SumPathEffect ||\n type === NodeType.Line2DPathEffect ||\n // Mixed\n type === NodeType.Blend ||\n // Paint\n type === NodeType.Paint\n );\n};\n\ntype Instance = Node;\n\ntype Props = object;\ntype TextInstance = Node;\ntype SuspenseInstance = Instance;\ntype HydratableInstance = Instance;\ntype PublicInstance = Instance;\ntype HostContext = null;\ntype UpdatePayload = Container;\ntype ChildSet = Node[];\ntype TimeoutHandle = NodeJS.Timeout;\ntype NoTimeout = -1;\n\ntype SkiaHostConfig = HostConfig<\n NodeType,\n Props,\n Container,\n Instance,\n TextInstance,\n SuspenseInstance,\n HydratableInstance,\n PublicInstance,\n HostContext,\n UpdatePayload,\n ChildSet,\n TimeoutHandle,\n NoTimeout\n>;\n\nexport const sksgHostConfig: SkiaHostConfig = {\n /**\n * This function is used by the reconciler in order to calculate current time for prioritising work.\n */\n supportsMutation: false,\n isPrimaryRenderer: false,\n supportsPersistence: true,\n supportsHydration: false,\n //supportsMicrotask: true,\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n\n getRootHostContext: (_rootContainerInstance: Container) => {\n debug(\"getRootHostContext\");\n return null;\n },\n\n getChildHostContext(_parentHostContext, _type, _rootContainerInstance) {\n debug(\"getChildHostContext\");\n return null;\n },\n\n shouldSetTextContent(_type, _props) {\n return false;\n },\n\n createTextInstance(\n _text,\n _rootContainerInstance,\n _hostContext,\n _internalInstanceHandle\n ) {\n debug(\"createTextInstance\");\n // return SpanNode({}, text) as SkNode;\n throw new Error(\"Text nodes are not supported yet\");\n },\n\n createInstance(\n type,\n props,\n container,\n _hostContext,\n _internalInstanceHandle\n ) {\n debug(\"createInstance\", type);\n container.registerValues(props);\n const instance = {\n type,\n isDeclaration: isDeclaration(type),\n props,\n children: [],\n };\n return instance;\n },\n\n appendInitialChild(parentInstance: Instance, child: Instance | TextInstance) {\n parentInstance.children.push(child);\n },\n\n finalizeInitialChildren(\n parentInstance,\n _type,\n _props,\n _rootContainerInstance,\n _hostContext\n ) {\n debug(\"finalizeInitialChildren\", parentInstance);\n return false;\n },\n\n commitMount() {\n // if finalizeInitialChildren = true\n debug(\"commitMount\");\n },\n\n prepareForCommit(_containerInfo) {\n debug(\"prepareForCommit\");\n return null;\n },\n\n resetAfterCommit(container) {\n debug(\"resetAfterCommit\");\n container.redraw();\n },\n\n getPublicInstance(node: Instance) {\n debug(\"getPublicInstance\");\n return node;\n },\n\n commitTextUpdate: (\n _textInstance: TextInstance,\n _oldText: string,\n _newText: string\n ) => {\n // textInstance.instance = newText;\n },\n\n clearContainer: (container) => {\n debug(\"clearContainer\");\n container.clear();\n },\n\n prepareUpdate(\n _instance: Instance,\n _type: string,\n oldProps: Props,\n newProps: Props,\n container: Container,\n _hostContext: HostContext\n ) {\n debug(\"prepareUpdate\");\n const propsAreEqual = shallowEq(oldProps, newProps);\n if (propsAreEqual) {\n return null;\n }\n container.unregisterValues(oldProps);\n container.registerValues(newProps);\n return container;\n },\n\n preparePortalMount: () => {\n debug(\"preparePortalMount\");\n },\n\n cloneInstance(\n instance,\n _updatePayload,\n _type,\n _oldProps,\n newProps,\n _internalInstanceHandle,\n keepChildren: boolean,\n _recyclableInstance: null | Instance\n ) {\n debug(\"cloneInstance\");\n\n return {\n type: instance.type,\n props: newProps,\n children: keepChildren ? [...instance.children] : [],\n isDeclaration: instance.isDeclaration,\n };\n },\n\n createContainerChildSet(): ChildSet {\n debug(\"createContainerChildSet\");\n return [];\n },\n\n appendChildToContainerChildSet(\n childSet: ChildSet,\n child: Instance | TextInstance\n ): void {\n childSet.push(child);\n },\n\n finalizeContainerChildren(container: Container, newChildren: ChildSet) {\n debug(\"finalizeContainerChildren\");\n container.root = newChildren;\n },\n\n replaceContainerChildren(container: Container, newChildren: ChildSet) {\n debug(\"replaceContainerChildren\");\n container.root = newChildren;\n },\n\n cloneHiddenInstance(\n _instance: Instance,\n _type: string,\n _props: Props\n ): Instance {\n debug(\"cloneHiddenInstance\");\n throw new Error(\"Not yet implemented.\");\n },\n\n cloneHiddenTextInstance(_instance: Instance, _text: string): TextInstance {\n debug(\"cloneHiddenTextInstance\");\n throw new Error(\"Not yet implemented.\");\n },\n // see https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r916356874\n getCurrentEventPriority: () => DefaultEventPriority,\n beforeActiveInstanceBlur: () => {},\n afterActiveInstanceBlur: () => {},\n detachDeletedInstance: () => {},\n getInstanceFromNode: function (_node): Fiber | null | undefined {\n throw new Error(\"Function not implemented.\");\n },\n prepareScopeUpdate: function (_scopeInstance, _instance): void {\n throw new Error(\"Function not implemented.\");\n },\n getInstanceFromScope: function (_scopeInstance): Instance | null {\n throw new Error(\"Function not implemented.\");\n },\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DefaultEventPriority","shallowEq","DEBUG","debug","args","console","log","sksgHostConfig","supportsMutation","isPrimaryRenderer","supportsPersistence","supportsHydration","scheduleTimeout","setTimeout","cancelTimeout","clearTimeout","noTimeout","getRootHostContext","_rootContainerInstance","getChildHostContext","_parentHostContext","_type","shouldSetTextContent","_props","createTextInstance","_text","_hostContext","_internalInstanceHandle","Error","createInstance","type","propsWithChildren","container","children","props","registerValues","instance","appendInitialChild","parentInstance","child","push","finalizeInitialChildren","commitMount","prepareForCommit","_containerInfo","resetAfterCommit","redraw","getPublicInstance","node","commitTextUpdate","_textInstance","_oldText","_newText","clearContainer","clear","prepareUpdate","_instance","oldProps","newProps","propsAreEqual","unregisterValues","preparePortalMount","cloneInstance","_updatePayload","_oldProps","keepChildren","_recyclableInstance","createContainerChildSet","appendChildToContainerChildSet","childSet","finalizeContainerChildren","newChildren","root","replaceContainerChildren","cloneHiddenInstance","cloneHiddenTextInstance","getCurrentEventPriority","beforeActiveInstanceBlur","afterActiveInstanceBlur","detachDeletedInstance","getInstanceFromNode","_node","prepareScopeUpdate","_scopeInstance","getInstanceFromScope"],"sources":["HostConfig.ts"],"sourcesContent":["/*global NodeJS*/\nimport type { Fiber, HostConfig } from \"react-reconciler\";\nimport { DefaultEventPriority } from \"react-reconciler/constants\";\n\nimport type { NodeType } from \"../dom/types\";\nimport { shallowEq } from \"../renderer/typeddash\";\n\nimport type { Node } from \"./Node\";\nimport type { Container } from \"./Container\";\n\nconst DEBUG = false;\nexport const debug = (...args: Parameters<typeof console.log>) => {\n if (DEBUG) {\n console.log(...args);\n }\n};\n\ntype Instance = Node;\n\ntype Props = object;\ntype TextInstance = Node;\ntype SuspenseInstance = Instance;\ntype HydratableInstance = Instance;\ntype PublicInstance = Instance;\ntype HostContext = null;\ntype UpdatePayload = Container;\ntype ChildSet = Node[];\ntype TimeoutHandle = NodeJS.Timeout;\ntype NoTimeout = -1;\n\ntype SkiaHostConfig = HostConfig<\n NodeType,\n Props,\n Container,\n Instance,\n TextInstance,\n SuspenseInstance,\n HydratableInstance,\n PublicInstance,\n HostContext,\n UpdatePayload,\n ChildSet,\n TimeoutHandle,\n NoTimeout\n>;\n\nexport const sksgHostConfig: SkiaHostConfig = {\n /**\n * This function is used by the reconciler in order to calculate current time for prioritising work.\n */\n supportsMutation: false,\n isPrimaryRenderer: false,\n supportsPersistence: true,\n supportsHydration: false,\n //supportsMicrotask: true,\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n\n getRootHostContext: (_rootContainerInstance: Container) => {\n debug(\"getRootHostContext\");\n return null;\n },\n\n getChildHostContext(_parentHostContext, _type, _rootContainerInstance) {\n debug(\"getChildHostContext\");\n return null;\n },\n\n shouldSetTextContent(_type, _props) {\n return false;\n },\n\n createTextInstance(\n _text,\n _rootContainerInstance,\n _hostContext,\n _internalInstanceHandle\n ) {\n debug(\"createTextInstance\");\n // return SpanNode({}, text) as SkNode;\n throw new Error(\"Text nodes are not supported yet\");\n },\n\n createInstance(\n type,\n propsWithChildren,\n container,\n _hostContext,\n _internalInstanceHandle\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { children, ...props } = propsWithChildren as any;\n debug(\"createInstance\", type);\n container.registerValues(props);\n const instance = {\n type,\n props,\n children: [],\n };\n return instance;\n },\n\n appendInitialChild(parentInstance: Instance, child: Instance | TextInstance) {\n parentInstance.children.push(child);\n },\n\n finalizeInitialChildren(\n parentInstance,\n _type,\n _props,\n _rootContainerInstance,\n _hostContext\n ) {\n debug(\"finalizeInitialChildren\", parentInstance);\n return false;\n },\n\n commitMount() {\n // if finalizeInitialChildren = true\n debug(\"commitMount\");\n },\n\n prepareForCommit(_containerInfo) {\n debug(\"prepareForCommit\");\n return null;\n },\n\n resetAfterCommit(container) {\n debug(\"resetAfterCommit\");\n container.redraw();\n },\n\n getPublicInstance(node: Instance) {\n debug(\"getPublicInstance\");\n return node;\n },\n\n commitTextUpdate: (\n _textInstance: TextInstance,\n _oldText: string,\n _newText: string\n ) => {\n // textInstance.instance = newText;\n },\n\n clearContainer: (container) => {\n debug(\"clearContainer\");\n container.clear();\n },\n\n prepareUpdate(\n _instance: Instance,\n _type: string,\n oldProps: Props,\n newProps: Props,\n container: Container,\n _hostContext: HostContext\n ) {\n debug(\"prepareUpdate\");\n const propsAreEqual = shallowEq(oldProps, newProps);\n if (propsAreEqual) {\n return null;\n }\n container.unregisterValues(oldProps);\n container.registerValues(newProps);\n return container;\n },\n\n preparePortalMount: () => {\n debug(\"preparePortalMount\");\n },\n\n cloneInstance(\n instance,\n _updatePayload,\n _type,\n _oldProps,\n newProps,\n _internalInstanceHandle,\n keepChildren: boolean,\n _recyclableInstance: null | Instance\n ) {\n debug(\"cloneInstance\");\n\n return {\n type: instance.type,\n props: newProps,\n children: keepChildren ? [...instance.children] : [],\n };\n },\n\n createContainerChildSet(): ChildSet {\n debug(\"createContainerChildSet\");\n return [];\n },\n\n appendChildToContainerChildSet(\n childSet: ChildSet,\n child: Instance | TextInstance\n ): void {\n childSet.push(child);\n },\n\n finalizeContainerChildren(container: Container, newChildren: ChildSet) {\n debug(\"finalizeContainerChildren\");\n container.root = newChildren;\n },\n\n replaceContainerChildren(container: Container, newChildren: ChildSet) {\n debug(\"replaceContainerChildren\");\n container.root = newChildren;\n },\n\n cloneHiddenInstance(\n _instance: Instance,\n _type: string,\n _props: Props\n ): Instance {\n debug(\"cloneHiddenInstance\");\n throw new Error(\"Not yet implemented.\");\n },\n\n cloneHiddenTextInstance(_instance: Instance, _text: string): TextInstance {\n debug(\"cloneHiddenTextInstance\");\n throw new Error(\"Not yet implemented.\");\n },\n // see https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r916356874\n getCurrentEventPriority: () => DefaultEventPriority,\n beforeActiveInstanceBlur: () => {},\n afterActiveInstanceBlur: () => {},\n detachDeletedInstance: () => {},\n getInstanceFromNode: function (_node): Fiber | null | undefined {\n throw new Error(\"Function not implemented.\");\n },\n prepareScopeUpdate: function (_scopeInstance, _instance): void {\n throw new Error(\"Function not implemented.\");\n },\n getInstanceFromScope: function (_scopeInstance): Instance | null {\n throw new Error(\"Function not implemented.\");\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { NodeType } from "../dom/types";
2
+ export interface Node<Props = unknown> {
3
+ type: NodeType;
4
+ props: Props;
5
+ children: Node[];
6
+ }
7
+ export declare const isColorFilter: (type: NodeType) => type is NodeType.MatrixColorFilter | NodeType.BlendColorFilter | NodeType.LinearToSRGBGammaColorFilter | NodeType.SRGBToLinearGammaColorFilter | NodeType.LumaColorFilter | NodeType.LerpColorFilter;
8
+ export declare const isPathEffect: (type: NodeType) => type is NodeType.DiscretePathEffect | NodeType.DashPathEffect | NodeType.Path1DPathEffect | NodeType.Path2DPathEffect | NodeType.CornerPathEffect | NodeType.SumPathEffect | NodeType.Line2DPathEffect;
9
+ export declare const isImageFilter: (type: NodeType) => type is NodeType.OffsetImageFilter | NodeType.DisplacementMapImageFilter | NodeType.BlurImageFilter | NodeType.DropShadowImageFilter | NodeType.MorphologyImageFilter | NodeType.BlendImageFilter | NodeType.RuntimeShaderImageFilter;
10
+ export declare const isShader: (type: NodeType) => type is NodeType.Shader | NodeType.ImageShader | NodeType.ColorShader | NodeType.Turbulence | NodeType.FractalNoise | NodeType.LinearGradient | NodeType.RadialGradient | NodeType.SweepGradient | NodeType.TwoPointConicalGradient;
11
+ export declare const sortNodeChildren: (parent: Node) => {
12
+ colorFilters: Node<unknown>[];
13
+ drawings: Node<unknown>[];
14
+ maskFilters: Node<unknown>[];
15
+ shaders: Node<unknown>[];
16
+ pathEffects: Node<unknown>[];
17
+ imageFilters: Node<unknown>[];
18
+ paints: Node<unknown>[];
19
+ };