@shopify/react-native-skia 2.0.6 → 2.1.0

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 (287) hide show
  1. package/android/CMakeLists.txt +20 -1
  2. package/cpp/api/JsiSkApi.h +3 -0
  3. package/cpp/api/JsiSkImageFilterFactory.h +478 -39
  4. package/cpp/api/JsiSkPath.h +2 -1
  5. package/cpp/api/JsiSkPathFactory.h +1 -1
  6. package/cpp/api/JsiSkSkottie.h +590 -0
  7. package/cpp/api/JsiSkottieFactory.h +65 -0
  8. package/cpp/api/recorder/Command.h +1 -0
  9. package/cpp/api/recorder/Convertor.h +16 -0
  10. package/cpp/api/recorder/Drawings.h +23 -0
  11. package/cpp/api/recorder/JsiRecorder.h +6 -0
  12. package/cpp/api/recorder/RNRecorder.h +9 -0
  13. package/cpp/api/third_party/SkottieUtils.cpp +333 -0
  14. package/cpp/api/third_party/SkottieUtils.h +172 -0
  15. package/cpp/skia/modules/jsonreader/SkJSONReader.cpp +980 -0
  16. package/cpp/skia/modules/jsonreader/SkJSONReader.h +389 -0
  17. package/cpp/skia/modules/skottie/include/ExternalLayer.h +56 -0
  18. package/cpp/skia/modules/skottie/include/Skottie.h +313 -0
  19. package/cpp/skia/modules/skottie/include/SkottieProperty.h +190 -0
  20. package/cpp/skia/modules/skottie/include/SlotManager.h +113 -0
  21. package/cpp/skia/modules/skottie/include/TextShaper.h +200 -0
  22. package/cpp/skia/modules/skottie/src/SkottieValue.h +56 -0
  23. package/cpp/skia/modules/skottie/src/animator/Animator.h +89 -0
  24. package/cpp/skia/modules/skottie/src/text/Font.h +82 -0
  25. package/cpp/skia/modules/skottie/src/text/TextAdapter.h +155 -0
  26. package/cpp/skia/modules/skottie/src/text/TextAnimator.h +121 -0
  27. package/cpp/skia/modules/skottie/src/text/TextValue.h +28 -0
  28. package/cpp/skia/modules/sksg/include/SkSGClipEffect.h +61 -0
  29. package/cpp/skia/modules/sksg/include/SkSGColorFilter.h +135 -0
  30. package/cpp/skia/modules/sksg/include/SkSGDraw.h +57 -0
  31. package/cpp/skia/modules/sksg/include/SkSGEffectNode.h +50 -0
  32. package/cpp/skia/modules/sksg/include/SkSGGeometryEffect.h +181 -0
  33. package/cpp/skia/modules/sksg/include/SkSGGeometryNode.h +54 -0
  34. package/cpp/skia/modules/sksg/include/SkSGGradient.h +108 -0
  35. package/cpp/skia/modules/sksg/include/SkSGGroup.h +65 -0
  36. package/cpp/skia/modules/sksg/include/SkSGImage.h +59 -0
  37. package/cpp/skia/modules/sksg/include/SkSGInvalidationController.h +46 -0
  38. package/cpp/skia/modules/sksg/include/SkSGMaskEffect.h +65 -0
  39. package/cpp/skia/modules/sksg/include/SkSGMerge.h +74 -0
  40. package/cpp/skia/modules/sksg/include/SkSGNode.h +128 -0
  41. package/cpp/skia/modules/sksg/include/SkSGOpacityEffect.h +54 -0
  42. package/cpp/skia/modules/sksg/include/SkSGPaint.h +112 -0
  43. package/cpp/skia/modules/sksg/include/SkSGPath.h +68 -0
  44. package/cpp/skia/modules/sksg/include/SkSGPlane.h +47 -0
  45. package/cpp/skia/modules/sksg/include/SkSGRect.h +122 -0
  46. package/cpp/skia/modules/sksg/include/SkSGRenderEffect.h +283 -0
  47. package/cpp/skia/modules/sksg/include/SkSGRenderNode.h +157 -0
  48. package/cpp/skia/modules/sksg/include/SkSGScene.h +47 -0
  49. package/cpp/skia/modules/sksg/include/SkSGText.h +82 -0
  50. package/cpp/skia/modules/sksg/include/SkSGTransform.h +127 -0
  51. package/cpp/skia/src/base/SkArenaAlloc.h +371 -0
  52. package/lib/commonjs/dom/nodes/datatypes/Gradient.d.ts +15 -15
  53. package/lib/commonjs/dom/types/Drawings.d.ts +5 -1
  54. package/lib/commonjs/dom/types/Drawings.js.map +1 -1
  55. package/lib/commonjs/dom/types/NodeType.d.ts +2 -1
  56. package/lib/commonjs/dom/types/NodeType.js +2 -0
  57. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  58. package/lib/commonjs/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +1 -0
  59. package/lib/commonjs/renderer/__tests__/e2e/Camera.spec.d.ts +21 -0
  60. package/lib/commonjs/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +1 -0
  61. package/lib/commonjs/renderer/__tests__/e2e/Skottie.spec.d.ts +1 -0
  62. package/lib/commonjs/renderer/__tests__/setup.d.ts +5 -0
  63. package/lib/commonjs/renderer/components/Skottie.d.ts +4 -0
  64. package/lib/commonjs/renderer/components/Skottie.js +13 -0
  65. package/lib/commonjs/renderer/components/Skottie.js.map +1 -0
  66. package/lib/commonjs/renderer/components/index.d.ts +1 -0
  67. package/lib/commonjs/renderer/components/index.js +11 -0
  68. package/lib/commonjs/renderer/components/index.js.map +1 -1
  69. package/lib/commonjs/skia/types/ImageFilter/ImageFilterFactory.d.ts +252 -15
  70. package/lib/commonjs/skia/types/ImageFilter/ImageFilterFactory.js.map +1 -1
  71. package/lib/commonjs/skia/types/Matrix4.d.ts +11 -2
  72. package/lib/commonjs/skia/types/Matrix4.js +42 -1
  73. package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
  74. package/lib/commonjs/skia/types/Recorder.d.ts +2 -1
  75. package/lib/commonjs/skia/types/Recorder.js.map +1 -1
  76. package/lib/commonjs/skia/types/Skia.d.ts +2 -0
  77. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  78. package/lib/commonjs/skia/types/Skottie.d.ts +223 -0
  79. package/lib/commonjs/skia/types/Skottie.js +73 -0
  80. package/lib/commonjs/skia/types/Skottie.js.map +1 -0
  81. package/lib/commonjs/skia/types/index.d.ts +1 -0
  82. package/lib/commonjs/skia/types/index.js +11 -0
  83. package/lib/commonjs/skia/types/index.js.map +1 -1
  84. package/lib/commonjs/skia/web/JsiSkImageFilterFactory.d.ts +29 -12
  85. package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js +88 -19
  86. package/lib/commonjs/skia/web/JsiSkImageFilterFactory.js.map +1 -1
  87. package/lib/commonjs/skia/web/JsiSkia.js +2 -0
  88. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  89. package/lib/commonjs/skia/web/JsiSkottieAnimation.d.ts +59 -0
  90. package/lib/commonjs/skia/web/JsiSkottieAnimation.js +243 -0
  91. package/lib/commonjs/skia/web/JsiSkottieAnimation.js.map +1 -0
  92. package/lib/commonjs/skia/web/JsiSkottieFactory.d.ts +9 -0
  93. package/lib/commonjs/skia/web/JsiSkottieFactory.js +26 -0
  94. package/lib/commonjs/skia/web/JsiSkottieFactory.js.map +1 -0
  95. package/lib/commonjs/sksg/Elements.d.ts +2 -1
  96. package/lib/commonjs/sksg/Elements.js.map +1 -1
  97. package/lib/commonjs/sksg/Recorder/Core.d.ts +4 -2
  98. package/lib/commonjs/sksg/Recorder/Core.js +1 -0
  99. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  100. package/lib/commonjs/sksg/Recorder/Player.js +2 -0
  101. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
  102. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.d.ts +2 -1
  103. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js +4 -0
  104. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  105. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +2 -1
  106. package/lib/commonjs/sksg/Recorder/Recorder.js +6 -0
  107. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  108. package/lib/commonjs/sksg/Recorder/Visitor.js +3 -0
  109. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
  110. package/lib/commonjs/sksg/Recorder/commands/Drawing.d.ts +2 -2
  111. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +11 -4
  112. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  113. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js +1 -1
  114. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  115. package/lib/module/dom/nodes/datatypes/Gradient.d.ts +15 -15
  116. package/lib/module/dom/types/Drawings.d.ts +5 -1
  117. package/lib/module/dom/types/Drawings.js.map +1 -1
  118. package/lib/module/dom/types/NodeType.d.ts +2 -1
  119. package/lib/module/dom/types/NodeType.js +2 -0
  120. package/lib/module/dom/types/NodeType.js.map +1 -1
  121. package/lib/module/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +1 -0
  122. package/lib/module/renderer/__tests__/e2e/Camera.spec.d.ts +21 -0
  123. package/lib/module/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +1 -0
  124. package/lib/module/renderer/__tests__/e2e/Skottie.spec.d.ts +1 -0
  125. package/lib/module/renderer/__tests__/setup.d.ts +5 -0
  126. package/lib/module/renderer/components/Skottie.d.ts +4 -0
  127. package/lib/module/renderer/components/Skottie.js +5 -0
  128. package/lib/module/renderer/components/Skottie.js.map +1 -0
  129. package/lib/module/renderer/components/index.d.ts +1 -0
  130. package/lib/module/renderer/components/index.js +1 -0
  131. package/lib/module/renderer/components/index.js.map +1 -1
  132. package/lib/module/skia/types/ImageFilter/ImageFilterFactory.d.ts +252 -15
  133. package/lib/module/skia/types/ImageFilter/ImageFilterFactory.js.map +1 -1
  134. package/lib/module/skia/types/Matrix4.d.ts +11 -2
  135. package/lib/module/skia/types/Matrix4.js +40 -0
  136. package/lib/module/skia/types/Matrix4.js.map +1 -1
  137. package/lib/module/skia/types/Recorder.d.ts +2 -1
  138. package/lib/module/skia/types/Recorder.js.map +1 -1
  139. package/lib/module/skia/types/Skia.d.ts +2 -0
  140. package/lib/module/skia/types/Skia.js.map +1 -1
  141. package/lib/module/skia/types/Skottie.d.ts +223 -0
  142. package/lib/module/skia/types/Skottie.js +74 -0
  143. package/lib/module/skia/types/Skottie.js.map +1 -0
  144. package/lib/module/skia/types/index.d.ts +1 -0
  145. package/lib/module/skia/types/index.js +1 -0
  146. package/lib/module/skia/types/index.js.map +1 -1
  147. package/lib/module/skia/web/JsiSkImageFilterFactory.d.ts +29 -12
  148. package/lib/module/skia/web/JsiSkImageFilterFactory.js +88 -19
  149. package/lib/module/skia/web/JsiSkImageFilterFactory.js.map +1 -1
  150. package/lib/module/skia/web/JsiSkia.js +2 -0
  151. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  152. package/lib/module/skia/web/JsiSkottieAnimation.d.ts +59 -0
  153. package/lib/module/skia/web/JsiSkottieAnimation.js +236 -0
  154. package/lib/module/skia/web/JsiSkottieAnimation.js.map +1 -0
  155. package/lib/module/skia/web/JsiSkottieFactory.d.ts +9 -0
  156. package/lib/module/skia/web/JsiSkottieFactory.js +19 -0
  157. package/lib/module/skia/web/JsiSkottieFactory.js.map +1 -0
  158. package/lib/module/sksg/Elements.d.ts +2 -1
  159. package/lib/module/sksg/Elements.js.map +1 -1
  160. package/lib/module/sksg/Recorder/Core.d.ts +4 -2
  161. package/lib/module/sksg/Recorder/Core.js +1 -0
  162. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  163. package/lib/module/sksg/Recorder/Player.js +3 -1
  164. package/lib/module/sksg/Recorder/Player.js.map +1 -1
  165. package/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +2 -1
  166. package/lib/module/sksg/Recorder/ReanimatedRecorder.js +4 -0
  167. package/lib/module/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  168. package/lib/module/sksg/Recorder/Recorder.d.ts +2 -1
  169. package/lib/module/sksg/Recorder/Recorder.js +6 -0
  170. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  171. package/lib/module/sksg/Recorder/Visitor.js +3 -0
  172. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  173. package/lib/module/sksg/Recorder/commands/Drawing.d.ts +2 -2
  174. package/lib/module/sksg/Recorder/commands/Drawing.js +9 -2
  175. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  176. package/lib/module/sksg/Recorder/commands/ImageFilters.js +1 -1
  177. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  178. package/lib/typescript/lib/commonjs/renderer/components/Skottie.d.ts +2 -0
  179. package/lib/typescript/lib/commonjs/skia/types/Matrix4.d.ts +1 -0
  180. package/lib/typescript/lib/commonjs/skia/types/Skottie.d.ts +6 -0
  181. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFilterFactory.d.ts +22 -5
  182. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +2 -0
  183. package/lib/typescript/lib/commonjs/skia/web/JsiSkottieAnimation.d.ts +48 -0
  184. package/lib/typescript/lib/commonjs/skia/web/JsiSkottieFactory.d.ts +6 -0
  185. package/lib/typescript/lib/commonjs/sksg/Recorder/ReanimatedRecorder.d.ts +1 -0
  186. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +1 -0
  187. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Drawing.d.ts +1 -1
  188. package/lib/typescript/lib/module/mock/index.d.ts +7 -0
  189. package/lib/typescript/lib/module/renderer/components/Skottie.d.ts +2 -0
  190. package/lib/typescript/lib/module/renderer/components/index.d.ts +1 -0
  191. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  192. package/lib/typescript/lib/module/skia/types/Matrix4.d.ts +1 -0
  193. package/lib/typescript/lib/module/skia/types/Skottie.d.ts +5 -0
  194. package/lib/typescript/lib/module/skia/types/index.d.ts +1 -0
  195. package/lib/typescript/lib/module/skia/web/JsiSkImageFilterFactory.d.ts +22 -5
  196. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +2 -0
  197. package/lib/typescript/lib/module/skia/web/JsiSkottieAnimation.d.ts +47 -0
  198. package/lib/typescript/lib/module/skia/web/JsiSkottieFactory.d.ts +5 -0
  199. package/lib/typescript/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +1 -0
  200. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +1 -0
  201. package/lib/typescript/lib/module/sksg/Recorder/commands/Drawing.d.ts +1 -1
  202. package/lib/typescript/src/dom/nodes/datatypes/Gradient.d.ts +15 -15
  203. package/lib/typescript/src/dom/types/Drawings.d.ts +5 -1
  204. package/lib/typescript/src/dom/types/NodeType.d.ts +2 -1
  205. package/lib/typescript/src/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +1 -0
  206. package/lib/typescript/src/renderer/__tests__/e2e/Camera.spec.d.ts +21 -0
  207. package/lib/typescript/src/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +1 -0
  208. package/lib/typescript/src/renderer/__tests__/e2e/Skottie.spec.d.ts +1 -0
  209. package/lib/typescript/src/renderer/__tests__/setup.d.ts +5 -0
  210. package/lib/typescript/src/renderer/components/Skottie.d.ts +4 -0
  211. package/lib/typescript/src/renderer/components/index.d.ts +1 -0
  212. package/lib/typescript/src/skia/types/ImageFilter/ImageFilterFactory.d.ts +252 -15
  213. package/lib/typescript/src/skia/types/Matrix4.d.ts +11 -2
  214. package/lib/typescript/src/skia/types/Recorder.d.ts +2 -1
  215. package/lib/typescript/src/skia/types/Skia.d.ts +2 -0
  216. package/lib/typescript/src/skia/types/Skottie.d.ts +223 -0
  217. package/lib/typescript/src/skia/types/index.d.ts +1 -0
  218. package/lib/typescript/src/skia/web/JsiSkImageFilterFactory.d.ts +29 -12
  219. package/lib/typescript/src/skia/web/JsiSkottieAnimation.d.ts +59 -0
  220. package/lib/typescript/src/skia/web/JsiSkottieFactory.d.ts +9 -0
  221. package/lib/typescript/src/sksg/Elements.d.ts +2 -1
  222. package/lib/typescript/src/sksg/Recorder/Core.d.ts +4 -2
  223. package/lib/typescript/src/sksg/Recorder/ReanimatedRecorder.d.ts +2 -1
  224. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +2 -1
  225. package/lib/typescript/src/sksg/Recorder/commands/Drawing.d.ts +2 -2
  226. package/libs/android/arm64-v8a/libjsonreader.a +0 -0
  227. package/libs/android/armeabi-v7a/libjsonreader.a +0 -0
  228. package/libs/android/x86/libjsonreader.a +0 -0
  229. package/libs/android/x86_64/libjsonreader.a +0 -0
  230. package/libs/apple/libpathops.xcframework/Info.plist +9 -9
  231. package/libs/apple/libskia.xcframework/Info.plist +14 -14
  232. package/libs/apple/libskottie.xcframework/Info.plist +13 -13
  233. package/libs/apple/libskparagraph.xcframework/Info.plist +15 -15
  234. package/libs/apple/libsksg.xcframework/Info.plist +13 -13
  235. package/libs/apple/libskshaper.xcframework/Info.plist +15 -15
  236. package/libs/apple/libskunicode_core.xcframework/Info.plist +9 -9
  237. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +13 -13
  238. package/libs/apple/libsvg.xcframework/Info.plist +15 -15
  239. package/package.json +1 -1
  240. package/react-native-skia.podspec +4 -2
  241. package/src/__tests__/snapshots/matrix4/camera-corner.png +0 -0
  242. package/src/__tests__/snapshots/matrix4/camera-offset.png +0 -0
  243. package/src/__tests__/snapshots/matrix4/camera-top-left-center.png +0 -0
  244. package/src/__tests__/snapshots/matrix4/camera-zoom-out.png +0 -0
  245. package/src/__tests__/snapshots/matrix4/full-rect.png +0 -0
  246. package/src/__tests__/snapshots/matrix4/rect.png +0 -0
  247. package/src/__tests__/snapshots/matrix4/scaled-rect.png +0 -0
  248. package/src/__tests__/snapshots/matrix4/test-perspective.png +0 -0
  249. package/src/__tests__/snapshots/matrix4/test-perspective2.png +0 -0
  250. package/src/dom/types/Drawings.ts +6 -0
  251. package/src/dom/types/NodeType.ts +2 -0
  252. package/src/renderer/__tests__/e2e/AdvancedImageFilters.spec.tsx +492 -0
  253. package/src/renderer/__tests__/e2e/Camera.spec.tsx +475 -0
  254. package/src/renderer/__tests__/e2e/LightingImageFilters.spec.tsx +1478 -0
  255. package/src/renderer/__tests__/e2e/Skottie.spec.tsx +440 -0
  256. package/src/renderer/__tests__/e2e/setup/skottie/basic_slots.json +1118 -0
  257. package/src/renderer/__tests__/e2e/setup/skottie/color-props.json +1 -0
  258. package/src/renderer/__tests__/e2e/setup/skottie/confetti.json +5899 -0
  259. package/src/renderer/__tests__/e2e/setup/skottie/drinks.json +43857 -0
  260. package/src/renderer/__tests__/e2e/setup/skottie/fingerprint.json +1 -0
  261. package/src/renderer/__tests__/e2e/setup/skottie/lego_loader.json +29540 -0
  262. package/src/renderer/__tests__/e2e/setup/skottie/new-drop.json +1 -0
  263. package/src/renderer/__tests__/e2e/setup/skottie/onboarding.json +1 -0
  264. package/src/renderer/__tests__/e2e/setup/skottie/text-layer.json +1 -0
  265. package/src/renderer/__tests__/setup.tsx +23 -0
  266. package/src/renderer/components/Skottie.tsx +8 -0
  267. package/src/renderer/components/index.ts +1 -0
  268. package/src/skia/__tests__/assets/Avenir-Heavy.ttf +0 -0
  269. package/src/skia/types/ImageFilter/ImageFilterFactory.ts +391 -21
  270. package/src/skia/types/Matrix4.ts +108 -2
  271. package/src/skia/types/Recorder.ts +2 -0
  272. package/src/skia/types/Skia.ts +2 -0
  273. package/src/skia/types/Skottie.ts +266 -0
  274. package/src/skia/types/index.ts +1 -0
  275. package/src/skia/web/JsiSkImageFilterFactory.ts +266 -31
  276. package/src/skia/web/JsiSkia.ts +2 -0
  277. package/src/skia/web/JsiSkottieAnimation.ts +259 -0
  278. package/src/skia/web/JsiSkottieFactory.ts +25 -0
  279. package/src/sksg/Elements.tsx +2 -0
  280. package/src/sksg/Recorder/Core.ts +3 -0
  281. package/src/sksg/Recorder/Player.ts +3 -0
  282. package/src/sksg/Recorder/ReanimatedRecorder.ts +6 -0
  283. package/src/sksg/Recorder/Recorder.ts +5 -0
  284. package/src/sksg/Recorder/Visitor.ts +3 -0
  285. package/src/sksg/Recorder/commands/Drawing.ts +7 -3
  286. package/src/sksg/Recorder/commands/ImageFilters.ts +1 -1
  287. package/cpp/skia/include/pathops/SkPathOps.h +0 -17
@@ -0,0 +1,236 @@
1
+ import { HostObject } from "./Host";
2
+ import { JsiSkTypeface } from "./JsiSkTypeface";
3
+ import { Color } from "./JsiSkColor";
4
+ import { JsiSkRect } from "./JsiSkRect";
5
+ export class JsiSkottieAnimation extends HostObject {
6
+ constructor(CanvasKit, ref) {
7
+ super(CanvasKit, ref, "SkottieAnimation");
8
+ }
9
+ getOpacityProps() {
10
+ return this.ref.getOpacityProps();
11
+ }
12
+ getTextProps() {
13
+ return this.ref.getTextProps();
14
+ }
15
+ getColorProps() {
16
+ return this.ref.getColorProps().map(({
17
+ key,
18
+ value
19
+ }) => ({
20
+ key,
21
+ value: Color(value)
22
+ }));
23
+ }
24
+ getTransformProps() {
25
+ return this.ref.getTransformProps().map(({
26
+ key,
27
+ value
28
+ }) => ({
29
+ key,
30
+ value: {
31
+ anchor: {
32
+ x: value.anchor[0],
33
+ y: value.anchor[1]
34
+ },
35
+ position: {
36
+ x: value.position[0],
37
+ y: value.position[1]
38
+ },
39
+ scale: {
40
+ x: value.scale[0],
41
+ y: value.scale[1]
42
+ },
43
+ rotation: value.rotation,
44
+ skew: value.skew,
45
+ skewAxis: value.skew_axis
46
+ }
47
+ }));
48
+ }
49
+ setColor(key, color) {
50
+ return this.ref.setColor(key, color);
51
+ }
52
+ setText(key, text, size) {
53
+ return this.ref.setText(key, text, size);
54
+ }
55
+ setOpacity(key, opacity) {
56
+ return this.ref.setOpacity(key, opacity);
57
+ }
58
+ setTransform(key, anchor, position, scale, rotation, skew, skewAxis) {
59
+ const a = Float32Array.of(anchor.x, anchor.y);
60
+ const p = Float32Array.of(position.x, position.y);
61
+ const s = Float32Array.of(scale.x, scale.y);
62
+ return this.ref.setTransform(key, a, p, s, rotation, skew, skewAxis);
63
+ }
64
+ getSlotInfo() {
65
+ return this.ref.getSlotInfo();
66
+ }
67
+ setColorSlot(key, color) {
68
+ return this.ref.setColorSlot(key, color);
69
+ }
70
+ setScalarSlot(key, scalar) {
71
+ return this.ref.setScalarSlot(key, scalar);
72
+ }
73
+ setVec2Slot(key, vec2) {
74
+ return this.ref.setVec2Slot(key, Float32Array.of(vec2.x, vec2.y));
75
+ }
76
+ setTextSlot(key, text) {
77
+ var _text$text, _text$textSize, _text$minTextSize, _text$maxTextSize, _text$strokeWidth, _text$lineHeight, _text$lineShift;
78
+ const txt = {
79
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
80
+ // @ts-expect-error
81
+ typeface: text.typeface && text.typeface instanceof JsiSkTypeface ? text.typeface.ref : null,
82
+ text: (_text$text = text.text) !== null && _text$text !== void 0 ? _text$text : "",
83
+ textSize: (_text$textSize = text.textSize) !== null && _text$textSize !== void 0 ? _text$textSize : 0,
84
+ minTextSize: (_text$minTextSize = text.minTextSize) !== null && _text$minTextSize !== void 0 ? _text$minTextSize : 0,
85
+ maxTextSize: (_text$maxTextSize = text.maxTextSize) !== null && _text$maxTextSize !== void 0 ? _text$maxTextSize : Number.MAX_VALUE,
86
+ strokeWidth: (_text$strokeWidth = text.strokeWidth) !== null && _text$strokeWidth !== void 0 ? _text$strokeWidth : 0,
87
+ lineHeight: (_text$lineHeight = text.lineHeight) !== null && _text$lineHeight !== void 0 ? _text$lineHeight : 0,
88
+ lineShift: (_text$lineShift = text.lineShift) !== null && _text$lineShift !== void 0 ? _text$lineShift : 0,
89
+ ascent: text.ascent,
90
+ maxLines: text.maxLines,
91
+ // TODO: implement
92
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
93
+ //@ts-expect-error
94
+ horizAlign: this.CanvasKit.TextAlign.Left,
95
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
96
+ //@ts-expect-error
97
+ vertAlign: this.CanvasKit.VerticalTextAlign.Top,
98
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
99
+ //@ts-expect-error
100
+ strokeJoin: this.CanvasKit.StrokeJoin.Miter,
101
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
102
+ //@ts-expect-error
103
+ direction: this.CanvasKit.TextDirection.LTR,
104
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
105
+ // @ts-expect-error
106
+ linebreak: this.CanvasKit.LineBreakType.HardLineBreak,
107
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
108
+ // @ts-expect-error
109
+ resize: this.CanvasKit.ResizePolicy.None,
110
+ boundingBox: text.boundingBox ? this.CanvasKit.XYWHRect(text.boundingBox.x, text.boundingBox.y, text.boundingBox.width, text.boundingBox.height) : [0, 0, 0, 0],
111
+ fillColor: text.fillColor ? Color(text.fillColor) : this.CanvasKit.TRANSPARENT,
112
+ strokeColor: text.strokeColor ? Color(text.strokeColor) : this.CanvasKit.TRANSPARENT
113
+ };
114
+ return this.ref.setTextSlot(key, txt);
115
+ }
116
+ setImageSlot(key, assetName) {
117
+ return this.ref.setImageSlot(key, assetName);
118
+ }
119
+ getColorSlot(key) {
120
+ const color = this.ref.getColorSlot(key);
121
+ return color;
122
+ }
123
+ getScalarSlot(key) {
124
+ return this.ref.getScalarSlot(key);
125
+ }
126
+ getVec2Slot(key) {
127
+ const vec2 = this.ref.getVec2Slot(key);
128
+ if (!vec2) {
129
+ return null;
130
+ }
131
+ return {
132
+ x: vec2[0],
133
+ y: vec2[1]
134
+ };
135
+ }
136
+ getTextSlot(key) {
137
+ const result = this.ref.getTextSlot(key);
138
+ const textSlot = {};
139
+ if (result) {
140
+ if (result.typeface) {
141
+ textSlot.typeface = new JsiSkTypeface(this.CanvasKit, result.typeface);
142
+ }
143
+ if (result.text) {
144
+ textSlot.text = result.text;
145
+ }
146
+ if (result.textSize) {
147
+ textSlot.textSize = result.textSize;
148
+ }
149
+ if (result.minTextSize) {
150
+ textSlot.minTextSize = result.minTextSize;
151
+ }
152
+ if (result.maxTextSize) {
153
+ textSlot.maxTextSize = result.maxTextSize;
154
+ }
155
+ if (result.strokeWidth) {
156
+ textSlot.strokeWidth = result.strokeWidth;
157
+ }
158
+ if (result.lineHeight) {
159
+ textSlot.lineHeight = result.lineHeight;
160
+ }
161
+ if (result.lineShift) {
162
+ textSlot.lineShift = result.lineShift;
163
+ }
164
+ if (result.ascent) {
165
+ textSlot.ascent = result.ascent;
166
+ }
167
+ if (result.maxLines) {
168
+ textSlot.maxLines = result.maxLines;
169
+ }
170
+ // if (result.horizAlign) {
171
+ // textSlot.horizAlign = result.horizAlign;
172
+ // }
173
+ // if (result.vertAlign) {
174
+ // textSlot.vertAlign = result.vertAlign;
175
+ // }
176
+ // if (result.strokeJoin) {
177
+ // textSlot.strokeJoin = result.strokeJoin;
178
+ // }
179
+ // if (result.direction) {
180
+ // textSlot.direction = result.direction;
181
+ // }
182
+ // if (result.linebreak) {
183
+ // textSlot.linebreak = result.linebreak;
184
+ // }
185
+ // if (result.resize) {
186
+ // textSlot.resize = result.resize;
187
+ // }
188
+ // if (result.boundingBox) {
189
+ // textSlot.boundingBox = new JsiSkRect(
190
+ // this.CanvasKit,
191
+ // result.boundingBox
192
+ // );
193
+ // }
194
+ // if (result.fillColor) {
195
+ // textSlot.fillColor = Color(result.fillColor);
196
+ // }
197
+ // if (result.strokeColor) {
198
+ // textSlot.strokeColor = Color(result.strokeColor);
199
+ // }
200
+ }
201
+ return textSlot;
202
+ }
203
+ duration() {
204
+ return this.ref.duration();
205
+ }
206
+ fps() {
207
+ return this.ref.fps();
208
+ }
209
+ render(canvas, dstRect) {
210
+ const [width, height] = this.ref.size();
211
+ this.ref.render(canvas.ref, dstRect && dstRect instanceof JsiSkRect ? dstRect.ref : Float32Array.of(0, 0, width, height));
212
+ }
213
+ seekFrame(frame, damageRect) {
214
+ const result = this.ref.seekFrame(frame);
215
+ if (damageRect && damageRect instanceof JsiSkRect) {
216
+ damageRect.ref[0] = result[0];
217
+ damageRect.ref[1] = result[1];
218
+ damageRect.ref[2] = result[2];
219
+ damageRect.ref[3] = result[3];
220
+ }
221
+ }
222
+ size() {
223
+ const [width, height] = this.ref.size();
224
+ return {
225
+ width,
226
+ height
227
+ };
228
+ }
229
+ version() {
230
+ return this.ref.version();
231
+ }
232
+ dispose() {
233
+ this.ref.delete();
234
+ }
235
+ }
236
+ //# sourceMappingURL=JsiSkottieAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HostObject","JsiSkTypeface","Color","JsiSkRect","JsiSkottieAnimation","constructor","CanvasKit","ref","getOpacityProps","getTextProps","getColorProps","map","key","value","getTransformProps","anchor","x","y","position","scale","rotation","skew","skewAxis","skew_axis","setColor","color","setText","text","size","setOpacity","opacity","setTransform","a","Float32Array","of","p","s","getSlotInfo","setColorSlot","setScalarSlot","scalar","setVec2Slot","vec2","setTextSlot","_text$text","_text$textSize","_text$minTextSize","_text$maxTextSize","_text$strokeWidth","_text$lineHeight","_text$lineShift","txt","typeface","textSize","minTextSize","maxTextSize","Number","MAX_VALUE","strokeWidth","lineHeight","lineShift","ascent","maxLines","horizAlign","TextAlign","Left","vertAlign","VerticalTextAlign","Top","strokeJoin","StrokeJoin","Miter","direction","TextDirection","LTR","linebreak","LineBreakType","HardLineBreak","resize","ResizePolicy","None","boundingBox","XYWHRect","width","height","fillColor","TRANSPARENT","strokeColor","setImageSlot","assetName","getColorSlot","getScalarSlot","getVec2Slot","getTextSlot","result","textSlot","duration","fps","render","canvas","dstRect","seekFrame","frame","damageRect","version","dispose","delete"],"sources":["JsiSkottieAnimation.ts"],"sourcesContent":["import type {\n CanvasKit,\n ManagedSkottieAnimation,\n SlottableTextProperty as CKSlottableTextProperty,\n} from \"canvaskit-wasm\";\n\nimport type {\n SkSkottieAnimation,\n SlotInfo,\n SlottableTextProperty,\n} from \"../types/Skottie\";\nimport type { SkColor, SkPoint, SkRect } from \"../types\";\n\nimport { HostObject } from \"./Host\";\nimport type { JsiSkCanvas } from \"./JsiSkCanvas\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nexport class JsiSkottieAnimation\n extends HostObject<ManagedSkottieAnimation, \"SkottieAnimation\">\n implements SkSkottieAnimation\n{\n constructor(CanvasKit: CanvasKit, ref: ManagedSkottieAnimation) {\n super(CanvasKit, ref, \"SkottieAnimation\");\n }\n getOpacityProps() {\n return this.ref.getOpacityProps();\n }\n getTextProps() {\n return this.ref.getTextProps();\n }\n getColorProps() {\n return this.ref\n .getColorProps()\n .map(({ key, value }) => ({ key, value: Color(value) }));\n }\n getTransformProps() {\n return this.ref.getTransformProps().map(({ key, value }) => ({\n key,\n value: {\n anchor: { x: value.anchor[0], y: value.anchor[1] },\n position: { x: value.position[0], y: value.position[1] },\n scale: { x: value.scale[0], y: value.scale[1] },\n rotation: value.rotation,\n skew: value.skew,\n skewAxis: value.skew_axis,\n },\n }));\n }\n setColor(key: string, color: SkColor) {\n return this.ref.setColor(key, color);\n }\n setText(key: string, text: string, size: number) {\n return this.ref.setText(key, text, size);\n }\n setOpacity(key: string, opacity: number) {\n return this.ref.setOpacity(key, opacity);\n }\n setTransform(\n key: string,\n anchor: SkPoint,\n position: SkPoint,\n scale: SkPoint,\n rotation: number,\n skew: number,\n skewAxis: number\n ) {\n const a = Float32Array.of(anchor.x, anchor.y);\n const p = Float32Array.of(position.x, position.y);\n const s = Float32Array.of(scale.x, scale.y);\n return this.ref.setTransform(key, a, p, s, rotation, skew, skewAxis);\n }\n\n getSlotInfo(): SlotInfo {\n return this.ref.getSlotInfo();\n }\n setColorSlot(key: string, color: SkColor) {\n return this.ref.setColorSlot(key, color);\n }\n setScalarSlot(key: string, scalar: number) {\n return this.ref.setScalarSlot(key, scalar);\n }\n setVec2Slot(key: string, vec2: SkPoint) {\n return this.ref.setVec2Slot(key, Float32Array.of(vec2.x, vec2.y));\n }\n setTextSlot(key: string, text: SlottableTextProperty): boolean {\n const txt: CKSlottableTextProperty = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n typeface:\n text.typeface && text.typeface instanceof JsiSkTypeface\n ? text.typeface.ref\n : null,\n text: text.text ?? \"\",\n textSize: text.textSize ?? 0,\n minTextSize: text.minTextSize ?? 0,\n maxTextSize: text.maxTextSize ?? Number.MAX_VALUE,\n strokeWidth: text.strokeWidth ?? 0,\n lineHeight: text.lineHeight ?? 0,\n lineShift: text.lineShift ?? 0,\n ascent: text.ascent,\n maxLines: text.maxLines,\n // TODO: implement\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n horizAlign: this.CanvasKit.TextAlign.Left,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n vertAlign: this.CanvasKit.VerticalTextAlign.Top,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n strokeJoin: this.CanvasKit.StrokeJoin.Miter,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n direction: this.CanvasKit.TextDirection.LTR,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n linebreak: this.CanvasKit.LineBreakType.HardLineBreak,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n resize: this.CanvasKit.ResizePolicy.None,\n boundingBox: text.boundingBox\n ? this.CanvasKit.XYWHRect(\n text.boundingBox.x,\n text.boundingBox.y,\n text.boundingBox.width,\n text.boundingBox.height\n )\n : [0, 0, 0, 0],\n fillColor: text.fillColor\n ? Color(text.fillColor)\n : this.CanvasKit.TRANSPARENT,\n strokeColor: text.strokeColor\n ? Color(text.strokeColor)\n : this.CanvasKit.TRANSPARENT,\n };\n return this.ref.setTextSlot(key, txt);\n }\n setImageSlot(key: string, assetName: string) {\n return this.ref.setImageSlot(key, assetName);\n }\n getColorSlot(key: string): SkColor | null {\n const color = this.ref.getColorSlot(key);\n return color;\n }\n getScalarSlot(key: string) {\n return this.ref.getScalarSlot(key);\n }\n getVec2Slot(key: string): SkPoint | null {\n const vec2 = this.ref.getVec2Slot(key);\n if (!vec2) {\n return null;\n }\n return { x: vec2[0], y: vec2[1] };\n }\n getTextSlot(key: string): SlottableTextProperty | null {\n const result = this.ref.getTextSlot(key);\n const textSlot: SlottableTextProperty = {};\n if (result) {\n if (result.typeface) {\n textSlot.typeface = new JsiSkTypeface(this.CanvasKit, result.typeface);\n }\n if (result.text) {\n textSlot.text = result.text;\n }\n if (result.textSize) {\n textSlot.textSize = result.textSize;\n }\n if (result.minTextSize) {\n textSlot.minTextSize = result.minTextSize;\n }\n if (result.maxTextSize) {\n textSlot.maxTextSize = result.maxTextSize;\n }\n if (result.strokeWidth) {\n textSlot.strokeWidth = result.strokeWidth;\n }\n if (result.lineHeight) {\n textSlot.lineHeight = result.lineHeight;\n }\n if (result.lineShift) {\n textSlot.lineShift = result.lineShift;\n }\n if (result.ascent) {\n textSlot.ascent = result.ascent;\n }\n if (result.maxLines) {\n textSlot.maxLines = result.maxLines;\n }\n // if (result.horizAlign) {\n // textSlot.horizAlign = result.horizAlign;\n // }\n // if (result.vertAlign) {\n // textSlot.vertAlign = result.vertAlign;\n // }\n // if (result.strokeJoin) {\n // textSlot.strokeJoin = result.strokeJoin;\n // }\n // if (result.direction) {\n // textSlot.direction = result.direction;\n // }\n // if (result.linebreak) {\n // textSlot.linebreak = result.linebreak;\n // }\n // if (result.resize) {\n // textSlot.resize = result.resize;\n // }\n // if (result.boundingBox) {\n // textSlot.boundingBox = new JsiSkRect(\n // this.CanvasKit,\n // result.boundingBox\n // );\n // }\n // if (result.fillColor) {\n // textSlot.fillColor = Color(result.fillColor);\n // }\n // if (result.strokeColor) {\n // textSlot.strokeColor = Color(result.strokeColor);\n // }\n }\n return textSlot;\n }\n\n duration() {\n return this.ref.duration();\n }\n fps() {\n return this.ref.fps();\n }\n render(canvas: JsiSkCanvas, dstRect?: SkRect) {\n const [width, height] = this.ref.size();\n this.ref.render(\n canvas.ref,\n dstRect && dstRect instanceof JsiSkRect\n ? dstRect.ref\n : Float32Array.of(0, 0, width, height)\n );\n }\n seekFrame(frame: number, damageRect?: JsiSkRect) {\n const result = this.ref.seekFrame(frame);\n if (damageRect && damageRect instanceof JsiSkRect) {\n damageRect.ref[0] = result[0];\n damageRect.ref[1] = result[1];\n damageRect.ref[2] = result[2];\n damageRect.ref[3] = result[3];\n }\n }\n size() {\n const [width, height] = this.ref.size();\n return { width, height };\n }\n version() {\n return this.ref.version();\n }\n dispose() {\n this.ref.delete();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { CanvasKit } from "canvaskit-wasm";
2
+ import type { SkottieFactory } from "../types";
3
+ import { Host } from "./Host";
4
+ import { JsiSkottieAnimation } from "./JsiSkottieAnimation";
5
+ import type { JsiSkData } from "./JsiSkData";
6
+ export declare class JsiSkottieFactory extends Host implements SkottieFactory {
7
+ constructor(CanvasKit: CanvasKit);
8
+ Make(json: string, assets?: Record<string, JsiSkData>): JsiSkottieAnimation;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { Host } from "./Host";
2
+ import { JsiSkottieAnimation } from "./JsiSkottieAnimation";
3
+ export class JsiSkottieFactory extends Host {
4
+ constructor(CanvasKit) {
5
+ super(CanvasKit);
6
+ }
7
+ Make(json, assets) {
8
+ const rawAssets = {};
9
+ for (const [key, value] of Object.entries(assets !== null && assets !== void 0 ? assets : {})) {
10
+ rawAssets[key] = value.ref;
11
+ }
12
+ const animation = this.CanvasKit.MakeManagedAnimation(json, rawAssets);
13
+ if (!animation) {
14
+ throw new Error("Failed to create SkottieAnimation");
15
+ }
16
+ return new JsiSkottieAnimation(this.CanvasKit, animation);
17
+ }
18
+ }
19
+ //# sourceMappingURL=JsiSkottieFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Host","JsiSkottieAnimation","JsiSkottieFactory","constructor","CanvasKit","Make","json","assets","rawAssets","key","value","Object","entries","ref","animation","MakeManagedAnimation","Error"],"sources":["JsiSkottieFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { SkottieFactory } from \"../types\";\n\nimport { Host } from \"./Host\";\nimport { JsiSkottieAnimation } from \"./JsiSkottieAnimation\";\nimport type { JsiSkData } from \"./JsiSkData\";\n\nexport class JsiSkottieFactory extends Host implements SkottieFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n Make(json: string, assets?: Record<string, JsiSkData>) {\n const rawAssets: { [key: string]: ArrayBuffer } = {};\n for (const [key, value] of Object.entries(assets ?? {})) {\n rawAssets[key] = value.ref;\n }\n const animation = this.CanvasKit.MakeManagedAnimation(json, rawAssets);\n if (!animation) {\n throw new Error(\"Failed to create SkottieAnimation\");\n }\n return new JsiSkottieAnimation(this.CanvasKit, animation);\n }\n}\n"],"mappings":"AAIA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,mBAAmB,QAAQ,uBAAuB;AAG3D,OAAO,MAAMC,iBAAiB,SAASF,IAAI,CAA2B;EACpEG,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,IAAIA,CAACC,IAAY,EAAEC,MAAkC,EAAE;IACrD,MAAMC,SAAyC,GAAG,CAAC,CAAC;IACpD,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC,CAAC,EAAE;MACvDC,SAAS,CAACC,GAAG,CAAC,GAAGC,KAAK,CAACG,GAAG;IAC5B;IACA,MAAMC,SAAS,GAAG,IAAI,CAACV,SAAS,CAACW,oBAAoB,CAACT,IAAI,EAAEE,SAAS,CAAC;IACtE,IAAI,CAACM,SAAS,EAAE;MACd,MAAM,IAAIE,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACA,OAAO,IAAIf,mBAAmB,CAAC,IAAI,CAACG,SAAS,EAAEU,SAAS,CAAC;EAC3D;AACF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { FractalNoiseProps, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps, AtlasProps, ChildrenProps, MorphologyImageFilterProps, BlendProps } from "../dom/types";
1
+ import type { FractalNoiseProps, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps, AtlasProps, ChildrenProps, MorphologyImageFilterProps, BlendProps, SkottieProps } from "../dom/types";
2
2
  import type { SkiaProps } from "../renderer";
3
3
  declare module "react" {
4
4
  namespace JSX {
@@ -23,6 +23,7 @@ declare module "react" {
23
23
  skTextBlob: SkiaProps<TextBlobProps>;
24
24
  skGlyphs: SkiaProps<GlyphsProps>;
25
25
  skDiffRect: SkiaProps<DiffRectProps>;
26
+ skSkottie: SkiaProps<SkottieProps>;
26
27
  skPicture: SkiaProps<PictureProps>;
27
28
  skImageSVG: SkiaProps<ImageSVGProps>;
28
29
  skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["Elements.tsx"],"sourcesContent":["import type {\n FractalNoiseProps,\n CircleProps,\n DrawingNodeProps,\n ImageProps,\n PaintProps,\n PathProps,\n LineProps,\n OvalProps,\n DiffRectProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextProps,\n VerticesProps,\n BlurMaskFilterProps,\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n MatrixColorFilterProps,\n ShaderProps,\n ImageShaderProps,\n LinearGradientProps,\n GroupProps,\n PatchProps,\n BlendColorFilterProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n CornerPathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n BoxProps,\n BoxShadowProps,\n ParagraphProps,\n AtlasProps,\n ChildrenProps,\n MorphologyImageFilterProps,\n BlendProps,\n} from \"../dom/types\";\nimport type { SkiaProps } from \"../renderer\";\n\ndeclare module \"react\" {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n skGroup: SkiaProps<GroupProps>;\n skLayer: SkiaProps<ChildrenProps>;\n skPaint: SkiaProps<PaintProps>;\n\n // Drawings\n skFill: SkiaProps<DrawingNodeProps>;\n skImage: SkiaProps<ImageProps>;\n skCircle: SkiaProps<CircleProps>;\n skPath: SkiaProps<PathProps>;\n skLine: SkiaProps<LineProps>;\n skOval: SkiaProps<OvalProps>;\n skPatch: SkiaProps<PatchProps>;\n skPoints: SkiaProps<PointsProps>;\n skRect: SkiaProps<RectProps>;\n skRRect: SkiaProps<RoundedRectProps>;\n skAtlas: SkiaProps<AtlasProps>;\n skVertices: SkiaProps<VerticesProps>;\n skText: SkiaProps<TextProps>;\n skTextPath: SkiaProps<TextPathProps>;\n skTextBlob: SkiaProps<TextBlobProps>;\n skGlyphs: SkiaProps<GlyphsProps>;\n skDiffRect: SkiaProps<DiffRectProps>;\n skPicture: SkiaProps<PictureProps>;\n skImageSVG: SkiaProps<ImageSVGProps>;\n\n // BlurMaskFilters\n skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;\n\n // ImageFilters\n skBlendImageFilter: SkiaProps<BlendImageFilterProps>;\n skBlurImageFilter: SkiaProps<BlurImageFilterProps>;\n skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;\n skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;\n skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;\n skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;\n skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;\n\n // ColorFilters\n skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;\n skBlendColorFilter: SkiaProps<BlendColorFilterProps>;\n skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;\n skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;\n skLumaColorFilter: SkiaProps<ChildrenProps>;\n skLerpColorFilter: SkiaProps<LerpColorFilterProps>;\n\n // Shaders\n skShader: SkiaProps<ShaderProps>;\n skImageShader: SkiaProps<ImageShaderProps>;\n skColorShader: SkiaProps<ColorProps>;\n skTurbulence: SkiaProps<TurbulenceProps>;\n skFractalNoise: SkiaProps<FractalNoiseProps>;\n skLinearGradient: SkiaProps<LinearGradientProps>;\n skRadialGradient: SkiaProps<RadialGradientProps>;\n skSweepGradient: SkiaProps<SweepGradientProps>;\n skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;\n\n // Path Effects\n skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;\n skDashPathEffect: SkiaProps<DashPathEffectProps>;\n skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;\n skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;\n skCornerPathEffect: SkiaProps<CornerPathEffectProps>;\n skSumPathEffect: ChildrenProps;\n skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;\n\n // Mixed declarations/drawings\n skBlend: SkiaProps<BlendProps>;\n skBackdropFilter: SkiaProps<ChildrenProps>;\n skBox: SkiaProps<BoxProps>;\n skBoxShadow: SkiaProps<BoxShadowProps>;\n\n // Paragraph\n skParagraph: SkiaProps<ParagraphProps>;\n }\n }\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["Elements.tsx"],"sourcesContent":["import type {\n FractalNoiseProps,\n CircleProps,\n DrawingNodeProps,\n ImageProps,\n PaintProps,\n PathProps,\n LineProps,\n OvalProps,\n DiffRectProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextProps,\n VerticesProps,\n BlurMaskFilterProps,\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n MatrixColorFilterProps,\n ShaderProps,\n ImageShaderProps,\n LinearGradientProps,\n GroupProps,\n PatchProps,\n BlendColorFilterProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n CornerPathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n BoxProps,\n BoxShadowProps,\n ParagraphProps,\n AtlasProps,\n ChildrenProps,\n MorphologyImageFilterProps,\n BlendProps,\n SkottieProps,\n} from \"../dom/types\";\nimport type { SkiaProps } from \"../renderer\";\n\ndeclare module \"react\" {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n skGroup: SkiaProps<GroupProps>;\n skLayer: SkiaProps<ChildrenProps>;\n skPaint: SkiaProps<PaintProps>;\n\n // Drawings\n skFill: SkiaProps<DrawingNodeProps>;\n skImage: SkiaProps<ImageProps>;\n skCircle: SkiaProps<CircleProps>;\n skPath: SkiaProps<PathProps>;\n skLine: SkiaProps<LineProps>;\n skOval: SkiaProps<OvalProps>;\n skPatch: SkiaProps<PatchProps>;\n skPoints: SkiaProps<PointsProps>;\n skRect: SkiaProps<RectProps>;\n skRRect: SkiaProps<RoundedRectProps>;\n skAtlas: SkiaProps<AtlasProps>;\n skVertices: SkiaProps<VerticesProps>;\n skText: SkiaProps<TextProps>;\n skTextPath: SkiaProps<TextPathProps>;\n skTextBlob: SkiaProps<TextBlobProps>;\n skGlyphs: SkiaProps<GlyphsProps>;\n skDiffRect: SkiaProps<DiffRectProps>;\n skSkottie: SkiaProps<SkottieProps>;\n skPicture: SkiaProps<PictureProps>;\n skImageSVG: SkiaProps<ImageSVGProps>;\n\n // BlurMaskFilters\n skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;\n\n // ImageFilters\n skBlendImageFilter: SkiaProps<BlendImageFilterProps>;\n skBlurImageFilter: SkiaProps<BlurImageFilterProps>;\n skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;\n skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;\n skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;\n skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;\n skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;\n\n // ColorFilters\n skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;\n skBlendColorFilter: SkiaProps<BlendColorFilterProps>;\n skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;\n skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;\n skLumaColorFilter: SkiaProps<ChildrenProps>;\n skLerpColorFilter: SkiaProps<LerpColorFilterProps>;\n\n // Shaders\n skShader: SkiaProps<ShaderProps>;\n skImageShader: SkiaProps<ImageShaderProps>;\n skColorShader: SkiaProps<ColorProps>;\n skTurbulence: SkiaProps<TurbulenceProps>;\n skFractalNoise: SkiaProps<FractalNoiseProps>;\n skLinearGradient: SkiaProps<LinearGradientProps>;\n skRadialGradient: SkiaProps<RadialGradientProps>;\n skSweepGradient: SkiaProps<SweepGradientProps>;\n skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;\n\n // Path Effects\n skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;\n skDashPathEffect: SkiaProps<DashPathEffectProps>;\n skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;\n skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;\n skCornerPathEffect: SkiaProps<CornerPathEffectProps>;\n skSumPathEffect: ChildrenProps;\n skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;\n\n // Mixed declarations/drawings\n skBlend: SkiaProps<BlendProps>;\n skBackdropFilter: SkiaProps<ChildrenProps>;\n skBox: SkiaProps<BoxProps>;\n skBoxShadow: SkiaProps<BoxShadowProps>;\n\n // Paragraph\n skParagraph: SkiaProps<ParagraphProps>;\n }\n }\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { BlurMaskFilterProps, CircleProps, CTMProps, ImageProps, PointsProps, PathProps, RectProps, RoundedRectProps, OvalProps, LineProps, PatchProps, VerticesProps, DiffRectProps, TextProps, TextPathProps, TextBlobProps, GlyphsProps, PictureProps, ImageSVGProps, ParagraphProps, AtlasProps, DrawingNodeProps } from "../../dom/types";
1
+ import type { BlurMaskFilterProps, CircleProps, CTMProps, ImageProps, PointsProps, PathProps, RectProps, RoundedRectProps, OvalProps, LineProps, PatchProps, VerticesProps, DiffRectProps, TextProps, TextPathProps, TextBlobProps, GlyphsProps, PictureProps, ImageSVGProps, ParagraphProps, AtlasProps, DrawingNodeProps, SkottieProps } from "../../dom/types";
2
2
  export declare enum CommandType {
3
3
  Group = 0,
4
4
  SavePaint = 1,
@@ -37,7 +37,8 @@ export declare enum CommandType {
37
37
  DrawPicture = 34,
38
38
  DrawImageSVG = 35,
39
39
  DrawParagraph = 36,
40
- DrawAtlas = 37
40
+ DrawAtlas = 37,
41
+ DrawSkottie = 38
41
42
  }
42
43
  export type Command<T extends CommandType = CommandType> = {
43
44
  type: T;
@@ -72,6 +73,7 @@ interface Props {
72
73
  [CommandType.DrawImageSVG]: ImageSVGProps;
73
74
  [CommandType.DrawParagraph]: ParagraphProps;
74
75
  [CommandType.DrawAtlas]: AtlasProps;
76
+ [CommandType.DrawSkottie]: SkottieProps;
75
77
  }
76
78
  interface DrawCommand<T extends CommandType> extends Command<T> {
77
79
  props: T extends keyof Props ? Props[T] : never;
@@ -81,6 +81,7 @@ export let CommandType = /*#__PURE__*/function (CommandType) {
81
81
  CommandType[CommandType["DrawImageSVG"] = 35] = "DrawImageSVG";
82
82
  CommandType[CommandType["DrawParagraph"] = 36] = "DrawParagraph";
83
83
  CommandType[CommandType["DrawAtlas"] = 37] = "DrawAtlas";
84
+ CommandType[CommandType["DrawSkottie"] = 38] = "DrawSkottie";
84
85
  return CommandType;
85
86
  }({});
86
87
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1 +1 @@
1
- {"version":3,"names":["CommandType","materializeCommand","command","newProps","props","animatedProps","key","value","isCommand","type","isGroup","Group","isDrawCommand"],"sources":["Core.ts"],"sourcesContent":["import type {\n BlurMaskFilterProps,\n CircleProps,\n CTMProps,\n ImageProps,\n PointsProps,\n PathProps,\n RectProps,\n RoundedRectProps,\n OvalProps,\n LineProps,\n PatchProps,\n VerticesProps,\n DiffRectProps,\n TextProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n PictureProps,\n ImageSVGProps,\n ParagraphProps,\n AtlasProps,\n DrawingNodeProps,\n} from \"../../dom/types\";\n\n// export enum CommandType {\n// // Context\n// Group = \"Group\",\n// SavePaint = \"SavePaint\",\n// RestorePaint = \"RestorePaint\",\n// SaveCTM = \"SaveCTM\",\n// RestoreCTM = \"RestoreCTM\",\n// PushColorFilter = \"PushColorFilter\",\n// PushBlurMaskFilter = \"PushBlurMaskFilter\",\n// PushImageFilter = \"PushImageFilter\",\n// PushPathEffect = \"PushPathEffect\",\n// PushShader = \"PushShader\",\n// ComposeColorFilter = \"ComposeColorFilter\",\n// ComposeImageFilter = \"ComposeImageFilter\",\n// ComposePathEffect = \"ComposePathEffect\",\n// MaterializePaint = \"MaterializePaint\",\n// SaveBackdropFilter = \"SaveBackdropFilter\",\n// SaveLayer = \"SaveLayer\",\n// RestorePaintDeclaration = \"RestorePaintDeclaration\",\n// // Drawing\n// DrawBox = \"DrawBox\",\n// DrawImage = \"DrawImage\",\n// DrawCircle = \"DrawCircle\",\n// DrawPaint = \"DrawPaint\",\n// DrawPoints = \"DrawPoints\",\n// DrawPath = \"DrawPath\",\n// DrawRect = \"DrawRect\",\n// DrawRRect = \"DrawRRect\",\n// DrawOval = \"DrawOval\",\n// DrawLine = \"DrawLine\",\n// DrawPatch = \"DrawPatch\",\n// DrawVertices = \"DrawVertices\",\n// DrawDiffRect = \"DrawDiffRect\",\n// DrawText = \"DrawText\",\n// DrawTextPath = \"DrawTextPath\",\n// DrawTextBlob = \"DrawTextBlob\",\n// DrawGlyphs = \"DrawGlyphs\",\n// DrawPicture = \"DrawPicture\",\n// DrawImageSVG = \"DrawImageSVG\",\n// DrawParagraph = \"DrawParagraph\",\n// DrawAtlas = \"DrawAtlas\",\n// }\nexport enum CommandType {\n // Context\n Group,\n SavePaint,\n RestorePaint,\n SaveCTM,\n RestoreCTM,\n PushColorFilter,\n PushBlurMaskFilter,\n PushImageFilter,\n PushPathEffect,\n PushShader,\n ComposeColorFilter,\n ComposeImageFilter,\n ComposePathEffect,\n MaterializePaint,\n SaveBackdropFilter,\n SaveLayer,\n RestorePaintDeclaration,\n // Drawing\n DrawBox,\n DrawImage,\n DrawCircle,\n DrawPaint,\n DrawPoints,\n DrawPath,\n DrawRect,\n DrawRRect,\n DrawOval,\n DrawLine,\n DrawPatch,\n DrawVertices,\n DrawDiffRect,\n DrawText,\n DrawTextPath,\n DrawTextBlob,\n DrawGlyphs,\n DrawPicture,\n DrawImageSVG,\n DrawParagraph,\n DrawAtlas,\n}\n\nexport type Command<T extends CommandType = CommandType> = {\n type: T;\n [key: string]: unknown;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const materializeCommand = (command: any) => {\n \"worklet\";\n const newProps = { ...command.props };\n if (command.animatedProps) {\n for (const key in command.animatedProps) {\n newProps[key] = command.animatedProps[key].value;\n }\n }\n return { ...command, props: newProps };\n};\n\nexport const isCommand = <T extends CommandType>(\n command: Command,\n type: T\n): command is Command<T> => {\n \"worklet\";\n return command.type === type;\n};\n\ninterface GroupCommand extends Command<CommandType.Group> {\n children: Command[];\n}\n\nexport const isGroup = (command: Command): command is GroupCommand => {\n \"worklet\";\n return command.type === CommandType.Group;\n};\n\ninterface Props {\n [CommandType.DrawImage]: ImageProps;\n [CommandType.DrawCircle]: CircleProps;\n [CommandType.SaveCTM]: CTMProps;\n [CommandType.SavePaint]: DrawingNodeProps;\n [CommandType.PushBlurMaskFilter]: BlurMaskFilterProps;\n [CommandType.DrawPoints]: PointsProps;\n [CommandType.DrawPath]: PathProps;\n [CommandType.DrawRect]: RectProps;\n [CommandType.DrawRRect]: RoundedRectProps;\n [CommandType.DrawOval]: OvalProps;\n [CommandType.DrawLine]: LineProps;\n [CommandType.DrawPatch]: PatchProps;\n [CommandType.DrawVertices]: VerticesProps;\n [CommandType.DrawDiffRect]: DiffRectProps;\n [CommandType.DrawText]: TextProps;\n [CommandType.DrawTextPath]: TextPathProps;\n [CommandType.DrawTextBlob]: TextBlobProps;\n [CommandType.DrawGlyphs]: GlyphsProps;\n [CommandType.DrawPicture]: PictureProps;\n [CommandType.DrawImageSVG]: ImageSVGProps;\n [CommandType.DrawParagraph]: ParagraphProps;\n [CommandType.DrawAtlas]: AtlasProps;\n}\n\ninterface DrawCommand<T extends CommandType> extends Command<T> {\n props: T extends keyof Props ? Props[T] : never;\n}\n\nexport const isDrawCommand = <T extends keyof Props>(\n command: Command,\n type: T\n): command is DrawCommand<T> => {\n \"worklet\";\n return command.type === type;\n};\n"],"mappings":"AAyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,WAAW,0BAAXA,WAAW;EACrB;EADUA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAmBrB;EAnBUA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAgDvB;AACA,OAAO,MAAMC,kBAAkB,GAAIC,OAAY,IAAK;EAClD,SAAS;;EACT,MAAMC,QAAQ,GAAG;IAAE,GAAGD,OAAO,CAACE;EAAM,CAAC;EACrC,IAAIF,OAAO,CAACG,aAAa,EAAE;IACzB,KAAK,MAAMC,GAAG,IAAIJ,OAAO,CAACG,aAAa,EAAE;MACvCF,QAAQ,CAACG,GAAG,CAAC,GAAGJ,OAAO,CAACG,aAAa,CAACC,GAAG,CAAC,CAACC,KAAK;IAClD;EACF;EACA,OAAO;IAAE,GAAGL,OAAO;IAAEE,KAAK,EAAED;EAAS,CAAC;AACxC,CAAC;AAED,OAAO,MAAMK,SAAS,GAAGA,CACvBN,OAAgB,EAChBO,IAAO,KACmB;EAC1B,SAAS;;EACT,OAAOP,OAAO,CAACO,IAAI,KAAKA,IAAI;AAC9B,CAAC;AAMD,OAAO,MAAMC,OAAO,GAAIR,OAAgB,IAA8B;EACpE,SAAS;;EACT,OAAOA,OAAO,CAACO,IAAI,KAAKT,WAAW,CAACW,KAAK;AAC3C,CAAC;AA+BD,OAAO,MAAMC,aAAa,GAAGA,CAC3BV,OAAgB,EAChBO,IAAO,KACuB;EAC9B,SAAS;;EACT,OAAOP,OAAO,CAACO,IAAI,KAAKA,IAAI;AAC9B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["CommandType","materializeCommand","command","newProps","props","animatedProps","key","value","isCommand","type","isGroup","Group","isDrawCommand"],"sources":["Core.ts"],"sourcesContent":["import type {\n BlurMaskFilterProps,\n CircleProps,\n CTMProps,\n ImageProps,\n PointsProps,\n PathProps,\n RectProps,\n RoundedRectProps,\n OvalProps,\n LineProps,\n PatchProps,\n VerticesProps,\n DiffRectProps,\n TextProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n PictureProps,\n ImageSVGProps,\n ParagraphProps,\n AtlasProps,\n DrawingNodeProps,\n SkottieProps,\n} from \"../../dom/types\";\n\n// export enum CommandType {\n// // Context\n// Group = \"Group\",\n// SavePaint = \"SavePaint\",\n// RestorePaint = \"RestorePaint\",\n// SaveCTM = \"SaveCTM\",\n// RestoreCTM = \"RestoreCTM\",\n// PushColorFilter = \"PushColorFilter\",\n// PushBlurMaskFilter = \"PushBlurMaskFilter\",\n// PushImageFilter = \"PushImageFilter\",\n// PushPathEffect = \"PushPathEffect\",\n// PushShader = \"PushShader\",\n// ComposeColorFilter = \"ComposeColorFilter\",\n// ComposeImageFilter = \"ComposeImageFilter\",\n// ComposePathEffect = \"ComposePathEffect\",\n// MaterializePaint = \"MaterializePaint\",\n// SaveBackdropFilter = \"SaveBackdropFilter\",\n// SaveLayer = \"SaveLayer\",\n// RestorePaintDeclaration = \"RestorePaintDeclaration\",\n// // Drawing\n// DrawBox = \"DrawBox\",\n// DrawImage = \"DrawImage\",\n// DrawCircle = \"DrawCircle\",\n// DrawPaint = \"DrawPaint\",\n// DrawPoints = \"DrawPoints\",\n// DrawPath = \"DrawPath\",\n// DrawRect = \"DrawRect\",\n// DrawRRect = \"DrawRRect\",\n// DrawOval = \"DrawOval\",\n// DrawLine = \"DrawLine\",\n// DrawPatch = \"DrawPatch\",\n// DrawVertices = \"DrawVertices\",\n// DrawDiffRect = \"DrawDiffRect\",\n// DrawText = \"DrawText\",\n// DrawTextPath = \"DrawTextPath\",\n// DrawTextBlob = \"DrawTextBlob\",\n// DrawGlyphs = \"DrawGlyphs\",\n// DrawPicture = \"DrawPicture\",\n// DrawImageSVG = \"DrawImageSVG\",\n// DrawParagraph = \"DrawParagraph\",\n// DrawAtlas = \"DrawAtlas\",\n// }\nexport enum CommandType {\n // Context\n Group,\n SavePaint,\n RestorePaint,\n SaveCTM,\n RestoreCTM,\n PushColorFilter,\n PushBlurMaskFilter,\n PushImageFilter,\n PushPathEffect,\n PushShader,\n ComposeColorFilter,\n ComposeImageFilter,\n ComposePathEffect,\n MaterializePaint,\n SaveBackdropFilter,\n SaveLayer,\n RestorePaintDeclaration,\n // Drawing\n DrawBox,\n DrawImage,\n DrawCircle,\n DrawPaint,\n DrawPoints,\n DrawPath,\n DrawRect,\n DrawRRect,\n DrawOval,\n DrawLine,\n DrawPatch,\n DrawVertices,\n DrawDiffRect,\n DrawText,\n DrawTextPath,\n DrawTextBlob,\n DrawGlyphs,\n DrawPicture,\n DrawImageSVG,\n DrawParagraph,\n DrawAtlas,\n DrawSkottie,\n}\n\nexport type Command<T extends CommandType = CommandType> = {\n type: T;\n [key: string]: unknown;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const materializeCommand = (command: any) => {\n \"worklet\";\n const newProps = { ...command.props };\n if (command.animatedProps) {\n for (const key in command.animatedProps) {\n newProps[key] = command.animatedProps[key].value;\n }\n }\n return { ...command, props: newProps };\n};\n\nexport const isCommand = <T extends CommandType>(\n command: Command,\n type: T\n): command is Command<T> => {\n \"worklet\";\n return command.type === type;\n};\n\ninterface GroupCommand extends Command<CommandType.Group> {\n children: Command[];\n}\n\nexport const isGroup = (command: Command): command is GroupCommand => {\n \"worklet\";\n return command.type === CommandType.Group;\n};\n\ninterface Props {\n [CommandType.DrawImage]: ImageProps;\n [CommandType.DrawCircle]: CircleProps;\n [CommandType.SaveCTM]: CTMProps;\n [CommandType.SavePaint]: DrawingNodeProps;\n [CommandType.PushBlurMaskFilter]: BlurMaskFilterProps;\n [CommandType.DrawPoints]: PointsProps;\n [CommandType.DrawPath]: PathProps;\n [CommandType.DrawRect]: RectProps;\n [CommandType.DrawRRect]: RoundedRectProps;\n [CommandType.DrawOval]: OvalProps;\n [CommandType.DrawLine]: LineProps;\n [CommandType.DrawPatch]: PatchProps;\n [CommandType.DrawVertices]: VerticesProps;\n [CommandType.DrawDiffRect]: DiffRectProps;\n [CommandType.DrawText]: TextProps;\n [CommandType.DrawTextPath]: TextPathProps;\n [CommandType.DrawTextBlob]: TextBlobProps;\n [CommandType.DrawGlyphs]: GlyphsProps;\n [CommandType.DrawPicture]: PictureProps;\n [CommandType.DrawImageSVG]: ImageSVGProps;\n [CommandType.DrawParagraph]: ParagraphProps;\n [CommandType.DrawAtlas]: AtlasProps;\n [CommandType.DrawSkottie]: SkottieProps;\n}\n\ninterface DrawCommand<T extends CommandType> extends Command<T> {\n props: T extends keyof Props ? Props[T] : never;\n}\n\nexport const isDrawCommand = <T extends keyof Props>(\n command: Command,\n type: T\n): command is DrawCommand<T> => {\n \"worklet\";\n return command.type === type;\n};\n"],"mappings":"AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,WAAW,0BAAXA,WAAW;EACrB;EADUA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAmBrB;EAnBUA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAiDvB;AACA,OAAO,MAAMC,kBAAkB,GAAIC,OAAY,IAAK;EAClD,SAAS;;EACT,MAAMC,QAAQ,GAAG;IAAE,GAAGD,OAAO,CAACE;EAAM,CAAC;EACrC,IAAIF,OAAO,CAACG,aAAa,EAAE;IACzB,KAAK,MAAMC,GAAG,IAAIJ,OAAO,CAACG,aAAa,EAAE;MACvCF,QAAQ,CAACG,GAAG,CAAC,GAAGJ,OAAO,CAACG,aAAa,CAACC,GAAG,CAAC,CAACC,KAAK;IAClD;EACF;EACA,OAAO;IAAE,GAAGL,OAAO;IAAEE,KAAK,EAAED;EAAS,CAAC;AACxC,CAAC;AAED,OAAO,MAAMK,SAAS,GAAGA,CACvBN,OAAgB,EAChBO,IAAO,KACmB;EAC1B,SAAS;;EACT,OAAOP,OAAO,CAACO,IAAI,KAAKA,IAAI;AAC9B,CAAC;AAMD,OAAO,MAAMC,OAAO,GAAIR,OAAgB,IAA8B;EACpE,SAAS;;EACT,OAAOA,OAAO,CAACO,IAAI,KAAKT,WAAW,CAACW,KAAK;AAC3C,CAAC;AAgCD,OAAO,MAAMC,aAAa,GAAGA,CAC3BV,OAAgB,EAChBO,IAAO,KACuB;EAC9B,SAAS;;EACT,OAAOP,OAAO,CAACO,IAAI,KAAKA,IAAI;AAC9B,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { drawCircle, drawImage, drawOval, drawPath, drawPoints, drawRect, drawRRect, drawLine, drawAtlas, drawParagraph, drawImageSVG, drawPicture, drawGlyphs, drawTextBlob, drawTextPath, drawText, drawDiffRect, drawVertices, drawPatch } from "./commands/Drawing";
1
+ import { drawCircle, drawImage, drawOval, drawPath, drawPoints, drawRect, drawRRect, drawLine, drawAtlas, drawParagraph, drawImageSVG, drawPicture, drawGlyphs, drawTextBlob, drawTextPath, drawText, drawDiffRect, drawVertices, drawPatch, drawSkottie } from "./commands/Drawing";
2
2
  import { drawBox, isBoxCommand } from "./commands/Box";
3
3
  import { composeColorFilters, isPushColorFilter, pushColorFilter } from "./commands/ColorFilters";
4
4
  import { saveCTM } from "./commands/CTM";
@@ -112,6 +112,8 @@ function play(ctx, _command) {
112
112
  drawParagraph(ctx, command.props);
113
113
  } else if (isDrawCommand(command, CommandType.DrawAtlas)) {
114
114
  drawAtlas(ctx, command.props);
115
+ } else if (isDrawCommand(command, CommandType.DrawSkottie)) {
116
+ drawSkottie(ctx, command.props);
115
117
  } else {
116
118
  console.warn(`Unknown command: ${command.type}`);
117
119
  }
@@ -1 +1 @@
1
- {"version":3,"names":["drawCircle","drawImage","drawOval","drawPath","drawPoints","drawRect","drawRRect","drawLine","drawAtlas","drawParagraph","drawImageSVG","drawPicture","drawGlyphs","drawTextBlob","drawTextPath","drawText","drawDiffRect","drawVertices","drawPatch","drawBox","isBoxCommand","composeColorFilters","isPushColorFilter","pushColorFilter","saveCTM","setBlurMaskFilter","isPushImageFilter","pushImageFilter","composeImageFilters","setPaintProperties","composePathEffects","isPushPathEffect","pushPathEffect","isPushShader","pushShader","CommandType","isCommand","isDrawCommand","isGroup","materializeCommand","play","ctx","_command","children","forEach","child","command","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","SavePaint","props","paints","push","savePaint","Skia","standalone","RestorePaint","restorePaint","ComposeColorFilter","RestorePaintDeclaration","Error","MaterializePaint","ComposePathEffect","ComposeImageFilter","PushBlurMaskFilter","SaveCTM","RestoreCTM","restore","copy","setAlphaf","getAlphaf","getOpacity","p","DrawPaint","drawPaint","DrawImage","DrawCircle","DrawPoints","DrawPath","DrawRect","DrawRRect","DrawOval","DrawLine","DrawPatch","DrawVertices","DrawDiffRect","DrawText","DrawTextPath","DrawTextBlob","DrawGlyphs","DrawPicture","DrawImageSVG","DrawParagraph","DrawAtlas","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeCommand,\n} from \"./Core\";\nimport type { Command } from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\nfunction play(ctx: DrawingContext, _command: Command) {\n \"worklet\";\n if (isGroup(_command)) {\n _command.children.forEach((child) => play(ctx, child));\n return;\n }\n const command = materializeCommand(_command);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n ctx.savePaint();\n setPaintProperties(\n ctx.Skia,\n ctx,\n command.props,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (command as any).standalone\n );\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n // TODO: is a copy needed here?\n // apply opacity to the current paint.\n const paint = ctx.paint.copy();\n paint.setAlphaf(paint.getAlphaf() * ctx.getOpacity());\n const paints = [paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n}\n\nexport const replay = (ctx: DrawingContext, commands: Command[]) => {\n \"worklet\";\n commands.forEach((command) => {\n play(ctx, command);\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["drawCircle","drawImage","drawOval","drawPath","drawPoints","drawRect","drawRRect","drawLine","drawAtlas","drawParagraph","drawImageSVG","drawPicture","drawGlyphs","drawTextBlob","drawTextPath","drawText","drawDiffRect","drawVertices","drawPatch","drawSkottie","drawBox","isBoxCommand","composeColorFilters","isPushColorFilter","pushColorFilter","saveCTM","setBlurMaskFilter","isPushImageFilter","pushImageFilter","composeImageFilters","setPaintProperties","composePathEffects","isPushPathEffect","pushPathEffect","isPushShader","pushShader","CommandType","isCommand","isDrawCommand","isGroup","materializeCommand","play","ctx","_command","children","forEach","child","command","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","SavePaint","props","paints","push","savePaint","Skia","standalone","RestorePaint","restorePaint","ComposeColorFilter","RestorePaintDeclaration","Error","MaterializePaint","ComposePathEffect","ComposeImageFilter","PushBlurMaskFilter","SaveCTM","RestoreCTM","restore","copy","setAlphaf","getAlphaf","getOpacity","p","DrawPaint","drawPaint","DrawImage","DrawCircle","DrawPoints","DrawPath","DrawRect","DrawRRect","DrawOval","DrawLine","DrawPatch","DrawVertices","DrawDiffRect","DrawText","DrawTextPath","DrawTextBlob","DrawGlyphs","DrawPicture","DrawImageSVG","DrawParagraph","DrawAtlas","DrawSkottie","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n drawSkottie,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeCommand,\n} from \"./Core\";\nimport type { Command } from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\nfunction play(ctx: DrawingContext, _command: Command) {\n \"worklet\";\n if (isGroup(_command)) {\n _command.children.forEach((child) => play(ctx, child));\n return;\n }\n const command = materializeCommand(_command);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n ctx.savePaint();\n setPaintProperties(\n ctx.Skia,\n ctx,\n command.props,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (command as any).standalone\n );\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n // TODO: is a copy needed here?\n // apply opacity to the current paint.\n const paint = ctx.paint.copy();\n paint.setAlphaf(paint.getAlphaf() * ctx.getOpacity());\n const paints = [paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawSkottie)) {\n drawSkottie(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n}\n\nexport const replay = (ctx: DrawingContext, commands: Command[]) => {\n \"worklet\";\n commands.forEach((command) => {\n play(ctx, command);\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { SharedValue } from "react-native-reanimated";
2
2
  import type { BaseRecorder, JsiRecorder, Skia } from "../../skia/types";
3
- import type { PaintProps, NodeType, BlurMaskFilterProps, CTMProps, BoxProps, BoxShadowProps, ImageProps, CircleProps, PointsProps, PathProps, RectProps, RoundedRectProps, OvalProps, LineProps, PatchProps, VerticesProps, DiffRectProps, TextProps, TextPathProps, TextBlobProps, GlyphsProps, PictureProps, ImageSVGProps, ParagraphProps, AtlasProps } from "../../dom/types";
3
+ import type { PaintProps, NodeType, BlurMaskFilterProps, CTMProps, BoxProps, BoxShadowProps, ImageProps, CircleProps, PointsProps, PathProps, RectProps, RoundedRectProps, OvalProps, LineProps, PatchProps, VerticesProps, DiffRectProps, TextProps, TextPathProps, TextBlobProps, GlyphsProps, PictureProps, ImageSVGProps, ParagraphProps, AtlasProps, SkottieProps } from "../../dom/types";
4
4
  import type { AnimatedProps } from "../../renderer";
5
5
  export declare class ReanimatedRecorder implements BaseRecorder {
6
6
  private values;
@@ -50,4 +50,5 @@ export declare class ReanimatedRecorder implements BaseRecorder {
50
50
  drawImageSVG(props: AnimatedProps<ImageSVGProps>): void;
51
51
  drawParagraph(props: AnimatedProps<ParagraphProps>): void;
52
52
  drawAtlas(props: AnimatedProps<AtlasProps>): void;
53
+ drawSkottie(props: AnimatedProps<SkottieProps>): void;
53
54
  }
@@ -178,5 +178,9 @@ export class ReanimatedRecorder {
178
178
  this.processAnimationValues(props);
179
179
  this.recorder.drawAtlas(props);
180
180
  }
181
+ drawSkottie(props) {
182
+ this.processAnimationValues(props);
183
+ this.recorder.drawSkottie(props);
184
+ }
181
185
  }
182
186
  //# sourceMappingURL=ReanimatedRecorder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isSharedValue","ReanimatedRecorder","constructor","Skia","_defineProperty","Set","recorder","Recorder","processAnimationValues","props","Object","values","forEach","value","has","name","size","add","getRecorder","getSharedValues","Array","from","saveGroup","restoreGroup","savePaint","standalone","restorePaint","restorePaintDeclaration","materializePaint","pushPathEffect","pathEffectType","pushImageFilter","imageFilterType","pushColorFilter","colorFilterType","pushShader","shaderType","pushBlurMaskFilter","composePathEffect","composeColorFilter","composeImageFilter","saveCTM","restoreCTM","drawPaint","saveLayer","saveBackdropFilter","drawBox","boxProps","shadows","shadow","map","s","drawImage","drawCircle","drawPoints","drawPath","drawRect","drawRRect","drawOval","drawLine","drawPatch","drawVertices","drawDiffRect","drawText","drawTextPath","drawTextBlob","drawGlyphs","drawPicture","drawImageSVG","drawParagraph","drawAtlas"],"sources":["ReanimatedRecorder.ts"],"sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nimport type { BaseRecorder, JsiRecorder, Skia } from \"../../skia/types\";\nimport type {\n PaintProps,\n NodeType,\n BlurMaskFilterProps,\n CTMProps,\n BoxProps,\n BoxShadowProps,\n ImageProps,\n CircleProps,\n PointsProps,\n PathProps,\n RectProps,\n RoundedRectProps,\n OvalProps,\n LineProps,\n PatchProps,\n VerticesProps,\n DiffRectProps,\n TextProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n PictureProps,\n ImageSVGProps,\n ParagraphProps,\n AtlasProps,\n} from \"../../dom/types\";\nimport type { AnimatedProps } from \"../../renderer\";\nimport { isSharedValue } from \"../utils\";\n\nexport class ReanimatedRecorder implements BaseRecorder {\n private values = new Set<SharedValue<unknown>>();\n private recorder: JsiRecorder;\n\n constructor(Skia: Skia) {\n this.recorder = Skia.Recorder();\n }\n\n private processAnimationValues(props?: Record<string, unknown>) {\n if (!props) {\n return;\n }\n Object.values(props).forEach((value) => {\n if (isSharedValue(value) && !this.values.has(value)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n value.name = `variable${this.values.size}`;\n this.values.add(value as SharedValue<unknown>);\n }\n });\n }\n\n getRecorder() {\n return this.recorder;\n }\n\n getSharedValues() {\n return Array.from(this.values);\n }\n\n saveGroup(): void {\n this.recorder.saveGroup();\n }\n\n restoreGroup(): void {\n this.recorder.restoreGroup();\n }\n\n savePaint(props: AnimatedProps<PaintProps>, standalone: boolean): void {\n this.processAnimationValues(props);\n this.recorder.savePaint(props, standalone);\n }\n\n restorePaint(): void {\n this.recorder.restorePaint();\n }\n\n restorePaintDeclaration(): void {\n this.recorder.restorePaintDeclaration();\n }\n\n materializePaint(): void {\n this.recorder.materializePaint();\n }\n\n pushPathEffect(\n pathEffectType: NodeType,\n props: AnimatedProps<unknown>\n ): void {\n this.processAnimationValues(props);\n this.recorder.pushPathEffect(pathEffectType, props);\n }\n\n pushImageFilter(\n imageFilterType: NodeType,\n props: AnimatedProps<unknown>\n ): void {\n this.processAnimationValues(props);\n this.recorder.pushImageFilter(imageFilterType, props);\n }\n\n pushColorFilter(\n colorFilterType: NodeType,\n props: AnimatedProps<unknown>\n ): void {\n this.processAnimationValues(props);\n this.recorder.pushColorFilter(colorFilterType, props);\n }\n\n pushShader(shaderType: NodeType, props: AnimatedProps<unknown>): void {\n this.processAnimationValues(props);\n this.recorder.pushShader(shaderType, props);\n }\n\n pushBlurMaskFilter(props: AnimatedProps<BlurMaskFilterProps>): void {\n this.processAnimationValues(props);\n this.recorder.pushBlurMaskFilter(props);\n }\n\n composePathEffect(): void {\n this.recorder.composePathEffect();\n }\n\n composeColorFilter(): void {\n this.recorder.composeColorFilter();\n }\n\n composeImageFilter(): void {\n this.recorder.composeImageFilter();\n }\n\n saveCTM(props: AnimatedProps<CTMProps>): void {\n this.processAnimationValues(props);\n this.recorder.saveCTM(props);\n }\n\n restoreCTM(): void {\n this.recorder.restoreCTM();\n }\n\n drawPaint(): void {\n this.recorder.drawPaint();\n }\n\n saveLayer(): void {\n this.recorder.saveLayer();\n }\n\n saveBackdropFilter(): void {\n this.recorder.saveBackdropFilter();\n }\n\n drawBox(\n boxProps: AnimatedProps<BoxProps>,\n shadows: {\n props: BoxShadowProps;\n }[]\n ): void {\n this.processAnimationValues(boxProps);\n shadows.forEach((shadow) => {\n this.processAnimationValues(\n shadow.props as AnimatedProps<BoxShadowProps>\n );\n });\n this.recorder.drawBox(\n boxProps,\n // TODO: Fix this type BaseRecorder.drawBox()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n shadows.map((s) => s.props)\n );\n }\n\n drawImage(props: AnimatedProps<ImageProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawImage(props);\n }\n\n drawCircle(props: AnimatedProps<CircleProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawCircle(props);\n }\n\n drawPoints(props: AnimatedProps<PointsProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPoints(props);\n }\n\n drawPath(props: AnimatedProps<PathProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPath(props);\n }\n\n drawRect(props: AnimatedProps<RectProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawRect(props);\n }\n\n drawRRect(props: AnimatedProps<RoundedRectProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawRRect(props);\n }\n\n drawOval(props: AnimatedProps<OvalProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawOval(props);\n }\n\n drawLine(props: AnimatedProps<LineProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawLine(props);\n }\n\n drawPatch(props: AnimatedProps<PatchProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPatch(props);\n }\n\n drawVertices(props: AnimatedProps<VerticesProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawVertices(props);\n }\n\n drawDiffRect(props: AnimatedProps<DiffRectProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawDiffRect(props);\n }\n\n drawText(props: AnimatedProps<TextProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawText(props);\n }\n\n drawTextPath(props: AnimatedProps<TextPathProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawTextPath(props);\n }\n\n drawTextBlob(props: AnimatedProps<TextBlobProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawTextBlob(props);\n }\n\n drawGlyphs(props: AnimatedProps<GlyphsProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawGlyphs(props);\n }\n\n drawPicture(props: AnimatedProps<PictureProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPicture(props);\n }\n\n drawImageSVG(props: AnimatedProps<ImageSVGProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawImageSVG(props);\n }\n\n drawParagraph(props: AnimatedProps<ParagraphProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawParagraph(props);\n }\n\n drawAtlas(props: AnimatedProps<AtlasProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawAtlas(props);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isSharedValue","ReanimatedRecorder","constructor","Skia","_defineProperty","Set","recorder","Recorder","processAnimationValues","props","Object","values","forEach","value","has","name","size","add","getRecorder","getSharedValues","Array","from","saveGroup","restoreGroup","savePaint","standalone","restorePaint","restorePaintDeclaration","materializePaint","pushPathEffect","pathEffectType","pushImageFilter","imageFilterType","pushColorFilter","colorFilterType","pushShader","shaderType","pushBlurMaskFilter","composePathEffect","composeColorFilter","composeImageFilter","saveCTM","restoreCTM","drawPaint","saveLayer","saveBackdropFilter","drawBox","boxProps","shadows","shadow","map","s","drawImage","drawCircle","drawPoints","drawPath","drawRect","drawRRect","drawOval","drawLine","drawPatch","drawVertices","drawDiffRect","drawText","drawTextPath","drawTextBlob","drawGlyphs","drawPicture","drawImageSVG","drawParagraph","drawAtlas","drawSkottie"],"sources":["ReanimatedRecorder.ts"],"sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nimport type { BaseRecorder, JsiRecorder, Skia } from \"../../skia/types\";\nimport type {\n PaintProps,\n NodeType,\n BlurMaskFilterProps,\n CTMProps,\n BoxProps,\n BoxShadowProps,\n ImageProps,\n CircleProps,\n PointsProps,\n PathProps,\n RectProps,\n RoundedRectProps,\n OvalProps,\n LineProps,\n PatchProps,\n VerticesProps,\n DiffRectProps,\n TextProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n PictureProps,\n ImageSVGProps,\n ParagraphProps,\n AtlasProps,\n SkottieProps,\n} from \"../../dom/types\";\nimport type { AnimatedProps } from \"../../renderer\";\nimport { isSharedValue } from \"../utils\";\n\nexport class ReanimatedRecorder implements BaseRecorder {\n private values = new Set<SharedValue<unknown>>();\n private recorder: JsiRecorder;\n\n constructor(Skia: Skia) {\n this.recorder = Skia.Recorder();\n }\n\n private processAnimationValues(props?: Record<string, unknown>) {\n if (!props) {\n return;\n }\n Object.values(props).forEach((value) => {\n if (isSharedValue(value) && !this.values.has(value)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n value.name = `variable${this.values.size}`;\n this.values.add(value as SharedValue<unknown>);\n }\n });\n }\n\n getRecorder() {\n return this.recorder;\n }\n\n getSharedValues() {\n return Array.from(this.values);\n }\n\n saveGroup(): void {\n this.recorder.saveGroup();\n }\n\n restoreGroup(): void {\n this.recorder.restoreGroup();\n }\n\n savePaint(props: AnimatedProps<PaintProps>, standalone: boolean): void {\n this.processAnimationValues(props);\n this.recorder.savePaint(props, standalone);\n }\n\n restorePaint(): void {\n this.recorder.restorePaint();\n }\n\n restorePaintDeclaration(): void {\n this.recorder.restorePaintDeclaration();\n }\n\n materializePaint(): void {\n this.recorder.materializePaint();\n }\n\n pushPathEffect(\n pathEffectType: NodeType,\n props: AnimatedProps<unknown>\n ): void {\n this.processAnimationValues(props);\n this.recorder.pushPathEffect(pathEffectType, props);\n }\n\n pushImageFilter(\n imageFilterType: NodeType,\n props: AnimatedProps<unknown>\n ): void {\n this.processAnimationValues(props);\n this.recorder.pushImageFilter(imageFilterType, props);\n }\n\n pushColorFilter(\n colorFilterType: NodeType,\n props: AnimatedProps<unknown>\n ): void {\n this.processAnimationValues(props);\n this.recorder.pushColorFilter(colorFilterType, props);\n }\n\n pushShader(shaderType: NodeType, props: AnimatedProps<unknown>): void {\n this.processAnimationValues(props);\n this.recorder.pushShader(shaderType, props);\n }\n\n pushBlurMaskFilter(props: AnimatedProps<BlurMaskFilterProps>): void {\n this.processAnimationValues(props);\n this.recorder.pushBlurMaskFilter(props);\n }\n\n composePathEffect(): void {\n this.recorder.composePathEffect();\n }\n\n composeColorFilter(): void {\n this.recorder.composeColorFilter();\n }\n\n composeImageFilter(): void {\n this.recorder.composeImageFilter();\n }\n\n saveCTM(props: AnimatedProps<CTMProps>): void {\n this.processAnimationValues(props);\n this.recorder.saveCTM(props);\n }\n\n restoreCTM(): void {\n this.recorder.restoreCTM();\n }\n\n drawPaint(): void {\n this.recorder.drawPaint();\n }\n\n saveLayer(): void {\n this.recorder.saveLayer();\n }\n\n saveBackdropFilter(): void {\n this.recorder.saveBackdropFilter();\n }\n\n drawBox(\n boxProps: AnimatedProps<BoxProps>,\n shadows: {\n props: BoxShadowProps;\n }[]\n ): void {\n this.processAnimationValues(boxProps);\n shadows.forEach((shadow) => {\n this.processAnimationValues(\n shadow.props as AnimatedProps<BoxShadowProps>\n );\n });\n this.recorder.drawBox(\n boxProps,\n // TODO: Fix this type BaseRecorder.drawBox()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n shadows.map((s) => s.props)\n );\n }\n\n drawImage(props: AnimatedProps<ImageProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawImage(props);\n }\n\n drawCircle(props: AnimatedProps<CircleProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawCircle(props);\n }\n\n drawPoints(props: AnimatedProps<PointsProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPoints(props);\n }\n\n drawPath(props: AnimatedProps<PathProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPath(props);\n }\n\n drawRect(props: AnimatedProps<RectProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawRect(props);\n }\n\n drawRRect(props: AnimatedProps<RoundedRectProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawRRect(props);\n }\n\n drawOval(props: AnimatedProps<OvalProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawOval(props);\n }\n\n drawLine(props: AnimatedProps<LineProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawLine(props);\n }\n\n drawPatch(props: AnimatedProps<PatchProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPatch(props);\n }\n\n drawVertices(props: AnimatedProps<VerticesProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawVertices(props);\n }\n\n drawDiffRect(props: AnimatedProps<DiffRectProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawDiffRect(props);\n }\n\n drawText(props: AnimatedProps<TextProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawText(props);\n }\n\n drawTextPath(props: AnimatedProps<TextPathProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawTextPath(props);\n }\n\n drawTextBlob(props: AnimatedProps<TextBlobProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawTextBlob(props);\n }\n\n drawGlyphs(props: AnimatedProps<GlyphsProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawGlyphs(props);\n }\n\n drawPicture(props: AnimatedProps<PictureProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawPicture(props);\n }\n\n drawImageSVG(props: AnimatedProps<ImageSVGProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawImageSVG(props);\n }\n\n drawParagraph(props: AnimatedProps<ParagraphProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawParagraph(props);\n }\n\n drawAtlas(props: AnimatedProps<AtlasProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawAtlas(props);\n }\n\n drawSkottie(props: AnimatedProps<SkottieProps>): void {\n this.processAnimationValues(props);\n this.recorder.drawSkottie(props);\n }\n}\n"],"mappings":"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","ignoreList":[]}