react-native-reanimated 3.0.0-rc.2 → 3.0.0-rc.4

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 (154) hide show
  1. package/Common/cpp/AnimatedSensor/AnimatedSensorModule.cpp +3 -0
  2. package/Common/cpp/{headers/AnimatedSensor → AnimatedSensor}/AnimatedSensorModule.h +0 -0
  3. package/Common/cpp/Fabric/FabricUtils.cpp +1 -1
  4. package/Common/cpp/{headers/Fabric → Fabric}/FabricUtils.h +0 -0
  5. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +2 -0
  6. package/Common/cpp/{headers/Fabric → Fabric}/ReanimatedUIManagerBinding.h +0 -0
  7. package/Common/cpp/{headers/Fabric → Fabric}/ShadowTreeCloner.h +1 -1
  8. package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +2 -0
  9. package/Common/cpp/{headers/LayoutAnimations → LayoutAnimations}/LayoutAnimationsProxy.h +0 -0
  10. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +6 -1
  11. package/Common/cpp/{headers/NativeModules → NativeModules}/NativeReanimatedModule.h +5 -0
  12. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +2 -0
  13. package/Common/cpp/{headers/NativeModules → NativeModules}/NativeReanimatedModuleSpec.h +1 -1
  14. package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.cpp +93 -0
  15. package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.h +125 -0
  16. package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.cpp +50 -0
  17. package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.h +27 -0
  18. package/Common/cpp/ReanimatedRuntime/RuntimeInitialization.md +194 -0
  19. package/Common/cpp/{headers/Registries → Registries}/EventHandlerRegistry.h +0 -0
  20. package/Common/cpp/Registries/MapperRegistry.cpp +3 -1
  21. package/Common/cpp/{headers/Registries → Registries}/MapperRegistry.h +0 -0
  22. package/Common/cpp/{headers/Registries → Registries}/NewestShadowNodesRegistry.h +0 -0
  23. package/Common/cpp/Registries/WorkletsCache.cpp +8 -1
  24. package/Common/cpp/{headers/Registries → Registries}/WorkletsCache.h +0 -0
  25. package/Common/cpp/{headers/SharedItems → SharedItems}/FrozenObject.h +0 -0
  26. package/Common/cpp/{headers/SharedItems → SharedItems}/HostFunctionHandler.h +0 -0
  27. package/Common/cpp/SharedItems/MutableValue.cpp +2 -0
  28. package/Common/cpp/{headers/SharedItems → SharedItems}/MutableValue.h +0 -0
  29. package/Common/cpp/{headers/SharedItems → SharedItems}/MutableValueSetterProxy.h +0 -0
  30. package/Common/cpp/{headers/SharedItems → SharedItems}/RemoteObject.h +0 -0
  31. package/Common/cpp/{headers/SharedItems → SharedItems}/RuntimeManager.h +0 -0
  32. package/Common/cpp/SharedItems/ShareableValue.cpp +6 -2
  33. package/Common/cpp/{headers/SharedItems → SharedItems}/ShareableValue.h +0 -0
  34. package/Common/cpp/{headers/SharedItems → SharedItems}/SharedParent.h +0 -0
  35. package/Common/cpp/{headers/SharedItems → SharedItems}/ValueWrapper.h +0 -0
  36. package/Common/cpp/{headers/SpecTools → SpecTools}/ErrorHandler.h +0 -0
  37. package/Common/cpp/{headers/Tools → Tools}/FeaturesConfig.h +0 -0
  38. package/Common/cpp/Tools/JSIStoreValueUser.cpp +2 -2
  39. package/Common/cpp/{headers/Tools → Tools}/JSIStoreValueUser.h +0 -0
  40. package/Common/cpp/{headers/Tools → Tools}/Mapper.h +0 -0
  41. package/Common/cpp/{headers/Tools → Tools}/PlatformDepMethodsHolder.h +0 -0
  42. package/Common/cpp/{headers/Tools → Tools}/ReanimatedHiddenHeaders.h +1 -1
  43. package/Common/cpp/{headers/Tools → Tools}/RuntimeDecorator.h +0 -0
  44. package/Common/cpp/{headers/Tools → Tools}/Scheduler.h +0 -0
  45. package/Common/cpp/Tools/SingleInstanceChecker.h +58 -0
  46. package/Common/cpp/{headers/Tools → Tools}/WorkletEventHandler.h +0 -0
  47. package/RNReanimated.podspec +21 -85
  48. package/android/CMakeLists.txt +62 -58
  49. package/android/build.gradle +421 -114
  50. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  51. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +10 -8
  52. package/android/src/main/cpp/AndroidErrorHandler.cpp +3 -4
  53. package/android/src/main/cpp/{headers/AndroidErrorHandler.h → AndroidErrorHandler.h} +1 -4
  54. package/android/src/main/cpp/AndroidLogger.cpp +4 -1
  55. package/android/src/main/cpp/{headers/AndroidLogger.h → AndroidLogger.h} +0 -0
  56. package/android/src/main/cpp/{headers/AndroidScheduler.h → AndroidScheduler.h} +0 -0
  57. package/android/src/main/cpp/{headers/JNIHelper.h → JNIHelper.h} +0 -0
  58. package/android/src/main/cpp/{headers/LayoutAnimations.h → LayoutAnimations.h} +0 -0
  59. package/android/src/main/cpp/NativeProxy.cpp +12 -28
  60. package/android/src/main/cpp/{headers/NativeProxy.h → NativeProxy.h} +3 -1
  61. package/android/src/main/cpp/{headers/TurboModule.h → TurboModule.h} +0 -0
  62. package/android/src/main/java/com/swmansion/reanimated/ReanimatedMessageQueueThreadBase.java +72 -0
  63. package/android/src/main/java/com/swmansion/reanimated/keyboardObserver/ReanimatedKeyboardEventListener.java +2 -1
  64. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +1 -1
  65. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +7 -7
  66. package/android/{rnVersionPatch/62 → src/reactNativeVersionPatch/UIImplementation/64/com/swmansion/reanimated}/layoutReanimation/ReanimatedUIImplementation.java +0 -0
  67. package/android/src/{main/java → reactNativeVersionPatch/UIImplementation/latest}/com/swmansion/reanimated/layoutReanimation/ReanimatedUIImplementation.java +0 -0
  68. package/android/src/reactNativeVersionPatch/messageQueueThread/67/com/swmansion/reanimated/ReanimatedMessageQueueThread.java +12 -0
  69. package/android/src/reactNativeVersionPatch/messageQueueThread/latest/com/swmansion/reanimated/ReanimatedMessageQueueThread.java +12 -0
  70. package/android/{rnVersionPatch/62 → src/reactNativeVersionPatch/nativeHierarchyManager/62/com/swmansion/reanimated}/layoutReanimation/ReanimatedNativeHierarchyManager.java +0 -0
  71. package/android/src/{main/java → reactNativeVersionPatch/nativeHierarchyManager/latest}/com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java +0 -0
  72. package/ios/REAModule.mm +29 -0
  73. package/ios/keyboardObserver/REAKeyboardEventObserver.m +1 -1
  74. package/ios/native/NativeProxy.mm +12 -19
  75. package/ios/native/REAInitializer.h +2 -2
  76. package/ios/native/REAInitializer.mm +2 -2
  77. package/ios/native/REAMessageThread.h +22 -0
  78. package/ios/native/REAMessageThread.mm +38 -0
  79. package/ios/native/UIResponder+Reanimated.mm +1 -1
  80. package/lib/commonjs/createAnimatedComponent.js +2 -5
  81. package/lib/commonjs/createAnimatedComponent.js.map +1 -1
  82. package/lib/commonjs/reanimated2/NativeMethods.js +67 -31
  83. package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
  84. package/lib/commonjs/reanimated2/animation/delay.js +0 -12
  85. package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
  86. package/lib/commonjs/reanimated2/animation/repeat.js +0 -24
  87. package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
  88. package/lib/commonjs/reanimated2/animation/sequence.js +0 -12
  89. package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
  90. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  91. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +4 -4
  92. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  93. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +51 -19
  94. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  95. package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
  96. package/lib/commonjs/reanimated2/hook/index.js +8 -0
  97. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  98. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  99. package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
  100. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +33 -0
  101. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -0
  102. package/lib/commonjs/reanimated2/utils.js +12 -3
  103. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  104. package/lib/module/createAnimatedComponent.js +2 -5
  105. package/lib/module/createAnimatedComponent.js.map +1 -1
  106. package/lib/module/reanimated2/NativeMethods.js +68 -30
  107. package/lib/module/reanimated2/NativeMethods.js.map +1 -1
  108. package/lib/module/reanimated2/animation/delay.js +0 -10
  109. package/lib/module/reanimated2/animation/delay.js.map +1 -1
  110. package/lib/module/reanimated2/animation/repeat.js +0 -20
  111. package/lib/module/reanimated2/animation/repeat.js.map +1 -1
  112. package/lib/module/reanimated2/animation/sequence.js +0 -10
  113. package/lib/module/reanimated2/animation/sequence.js.map +1 -1
  114. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  115. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +4 -4
  116. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  117. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +51 -19
  118. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  119. package/lib/module/reanimated2/globals.d.js.map +1 -1
  120. package/lib/module/reanimated2/hook/index.js +1 -0
  121. package/lib/module/reanimated2/hook/index.js.map +1 -1
  122. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  123. package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
  124. package/lib/module/reanimated2/hook/useScrollViewOffset.js +21 -0
  125. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -0
  126. package/lib/module/reanimated2/utils.js +13 -3
  127. package/lib/module/reanimated2/utils.js.map +1 -1
  128. package/package.json +10 -6
  129. package/plugin.js +105 -47
  130. package/react-native-reanimated.d.ts +13 -9
  131. package/scripts/reanimated_utils.rb +77 -0
  132. package/src/createAnimatedComponent.tsx +2 -3
  133. package/src/reanimated2/NativeMethods.ts +91 -44
  134. package/src/reanimated2/animation/delay.ts +0 -12
  135. package/src/reanimated2/animation/repeat.ts +0 -25
  136. package/src/reanimated2/animation/sequence.ts +0 -13
  137. package/src/reanimated2/commonTypes.ts +9 -0
  138. package/src/reanimated2/frameCallback/FrameCallbackRegistryJS.ts +6 -9
  139. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +78 -27
  140. package/src/reanimated2/globals.d.ts +56 -14
  141. package/src/reanimated2/hook/index.ts +1 -0
  142. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +3 -1
  143. package/src/reanimated2/hook/useFrameCallback.ts +2 -1
  144. package/src/reanimated2/hook/useScrollViewOffset.ts +37 -0
  145. package/src/reanimated2/utils.ts +12 -5
  146. package/android/rnVersionPatch/63/layoutReanimation/ReanimatedUIImplementation.java +0 -68
  147. package/android/rnVersionPatch/64/layoutReanimation/ReanimatedUIImplementation.java +0 -68
  148. package/android/rnVersionPatch/65/.gitkeep +0 -0
  149. package/android/rnVersionPatch/66/.gitkeep +0 -0
  150. package/android/rnVersionPatch/67/.gitkeep +0 -0
  151. package/android/rnVersionPatch/68/.gitkeep +0 -0
  152. package/android/rnVersionPatch/backup/.gitkeep +0 -0
  153. package/android/src/main/java/com/swmansion/reanimated/AndroidErrorHandler.java +0 -8
  154. package/android/src/main/java/com/swmansion/reanimated/ReanimatedJSIModulePackage.java +0 -29
@@ -1 +1 @@
1
- {"version":3,"names":["findNodeHandle","shouldBeUseWeb","getTag","view","isNativeIndefined","measure","animatedRef","_WORKLET","console","warn","x","NaN","y","width","height","pageX","pageY","viewTag","result","_measure","Error","isNaN","dispatchCommand","commandName","args","shadowNodeWrapper","_dispatchCommand","scrollTo","global","_IS_FABRIC","animated","_scrollTo","setGestureState","handlerTag","newState","_setGestureState"],"sources":["NativeMethods.ts"],"sourcesContent":["/* global _WORKLET _measure _scrollTo _dispatchCommand _setGestureState */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { Component } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { RefObjectFunction } from './commonTypes';\nimport { shouldBeUseWeb } from './PlatformChecker';\n\nexport function getTag(\n view: null | number | React.Component<any, any> | React.ComponentClass<any>\n): null | number {\n return findNodeHandle(view);\n}\n\nexport interface MeasuredDimensions {\n x: number;\n y: number;\n width: number;\n height: number;\n pageX: number;\n pageY: number;\n}\n\nconst isNativeIndefined = shouldBeUseWeb();\n\nexport function measure(\n animatedRef: RefObjectFunction<Component>\n): MeasuredDimensions {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n console.warn(\n '[reanimated.measure] method cannot be used for web or Chrome Debugger'\n );\n return {\n x: NaN,\n y: NaN,\n width: NaN,\n height: NaN,\n pageX: NaN,\n pageY: NaN,\n };\n }\n const viewTag = animatedRef();\n const result = _measure(viewTag);\n if (result.x === -1234567) {\n throw new Error(`The view with tag ${viewTag} could not be measured`);\n }\n if (isNaN(result.x)) {\n console.warn(\n 'Trying to measure a component which gets view-flattened on Android. To disable view-flattening, set `collapsable={false}` on this component.'\n );\n }\n return result;\n}\n\nexport function dispatchCommand(\n animatedRef: RefObjectFunction<Component>,\n commandName: string,\n args: Array<unknown>\n): void {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n return;\n }\n const shadowNodeWrapper = animatedRef();\n _dispatchCommand(shadowNodeWrapper, commandName, args);\n}\n\nexport let scrollTo: (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n) => void;\n\nif (global._IS_FABRIC) {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n dispatchCommand(animatedRef, 'scrollTo', [x, y, animated]);\n };\n} else {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n return;\n }\n const viewTag = animatedRef();\n _scrollTo(viewTag, x, y, animated);\n };\n}\n\nexport function setGestureState(handlerTag: number, newState: number): void {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n console.warn(\n '[Reanimated] You can not use setGestureState in non-worklet function.'\n );\n return;\n }\n _setGestureState(handlerTag, newState);\n}\n"],"mappings":"AAAA;AACA;AACA;AAEA,SAASA,cAAT,QAA+B,cAA/B;AAEA,SAASC,cAAT,QAA+B,mBAA/B;AAEA,OAAO,SAASC,MAAT,CACLC,IADK,EAEU;EACf,OAAOH,cAAc,CAACG,IAAD,CAArB;AACD;AAWD,MAAMC,iBAAiB,GAAGH,cAAc,EAAxC;AAEA,OAAO,SAASI,OAAT,CACLC,WADK,EAEe;EACpB;;EACA,IAAI,CAACC,QAAD,IAAaH,iBAAjB,EAAoC;IAClCI,OAAO,CAACC,IAAR,CACE,uEADF;IAGA,OAAO;MACLC,CAAC,EAAEC,GADE;MAELC,CAAC,EAAED,GAFE;MAGLE,KAAK,EAAEF,GAHF;MAILG,MAAM,EAAEH,GAJH;MAKLI,KAAK,EAAEJ,GALF;MAMLK,KAAK,EAAEL;IANF,CAAP;EAQD;;EACD,MAAMM,OAAO,GAAGX,WAAW,EAA3B;;EACA,MAAMY,MAAM,GAAGC,QAAQ,CAACF,OAAD,CAAvB;;EACA,IAAIC,MAAM,CAACR,CAAP,KAAa,CAAC,OAAlB,EAA2B;IACzB,MAAM,IAAIU,KAAJ,CAAW,qBAAoBH,OAAQ,wBAAvC,CAAN;EACD;;EACD,IAAII,KAAK,CAACH,MAAM,CAACR,CAAR,CAAT,EAAqB;IACnBF,OAAO,CAACC,IAAR,CACE,8IADF;EAGD;;EACD,OAAOS,MAAP;AACD;AAED,OAAO,SAASI,eAAT,CACLhB,WADK,EAELiB,WAFK,EAGLC,IAHK,EAIC;EACN;;EACA,IAAI,CAACjB,QAAD,IAAaH,iBAAjB,EAAoC;IAClC;EACD;;EACD,MAAMqB,iBAAiB,GAAGnB,WAAW,EAArC;;EACAoB,gBAAgB,CAACD,iBAAD,EAAoBF,WAApB,EAAiCC,IAAjC,CAAhB;AACD;AAED,OAAO,IAAIG,QAAJ;;AAOP,IAAIC,MAAM,CAACC,UAAX,EAAuB;EACrBF,QAAQ,GAAG,CACTrB,WADS,EAETI,CAFS,EAGTE,CAHS,EAITkB,QAJS,KAKN;IACH;;IACAR,eAAe,CAAChB,WAAD,EAAc,UAAd,EAA0B,CAACI,CAAD,EAAIE,CAAJ,EAAOkB,QAAP,CAA1B,CAAf;EACD,CARD;AASD,CAVD,MAUO;EACLH,QAAQ,GAAG,CACTrB,WADS,EAETI,CAFS,EAGTE,CAHS,EAITkB,QAJS,KAKN;IACH;;IACA,IAAI,CAACvB,QAAD,IAAaH,iBAAjB,EAAoC;MAClC;IACD;;IACD,MAAMa,OAAO,GAAGX,WAAW,EAA3B;;IACAyB,SAAS,CAACd,OAAD,EAAUP,CAAV,EAAaE,CAAb,EAAgBkB,QAAhB,CAAT;EACD,CAZD;AAaD;;AAED,OAAO,SAASE,eAAT,CAAyBC,UAAzB,EAA6CC,QAA7C,EAAqE;EAC1E;;EACA,IAAI,CAAC3B,QAAD,IAAaH,iBAAjB,EAAoC;IAClCI,OAAO,CAACC,IAAR,CACE,uEADF;IAGA;EACD;;EACD0B,gBAAgB,CAACF,UAAD,EAAaC,QAAb,CAAhB;AACD"}
1
+ {"version":3,"names":["findNodeHandle","isChromeDebugger","isWeb","shouldBeUseWeb","getTag","view","isNative","measure","animatedRef","element","viewportOffset","getBoundingClientRect","width","offsetWidth","height","offsetHeight","x","offsetLeft","y","offsetTop","pageX","left","pageY","top","_animatedRef","console","warn","_WORKLET","viewTag","measured","_measure","isNaN","dispatchCommand","commandName","args","shadowNodeWrapper","_dispatchCommand","scrollTo","animated","global","_IS_FABRIC","_scrollTo","_x","_y","setGestureState","handlerTag","newState","_setGestureState"],"sources":["NativeMethods.ts"],"sourcesContent":["/* global _WORKLET _measure _scrollTo _dispatchCommand _setGestureState */\nimport { Component } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { MeasuredDimensions } from './commonTypes';\nimport { RefObjectFunction } from './hook/commonTypes';\nimport { isChromeDebugger, isWeb, shouldBeUseWeb } from './PlatformChecker';\n\nexport function getTag(\n view: null | number | React.Component<any, any> | React.ComponentClass<any>\n): null | number {\n return findNodeHandle(view);\n}\n\nconst isNative = !shouldBeUseWeb();\n\nexport let measure: (\n animatedRef: RefObjectFunction<Component>\n) => MeasuredDimensions | null;\n\nif (isWeb()) {\n measure = (animatedRef: RefObjectFunction<Component>) => {\n const element = animatedRef() as unknown as HTMLElement; // TODO: fix typing of animated refs on web\n const viewportOffset = element.getBoundingClientRect();\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n x: element.offsetLeft,\n y: element.offsetTop,\n pageX: viewportOffset.left,\n pageY: viewportOffset.top,\n };\n };\n} else if (isChromeDebugger()) {\n measure = (_animatedRef: RefObjectFunction<Component>) => {\n console.warn('[Reanimated] measure() cannot be used with Chrome Debugger.');\n return null;\n };\n} else {\n measure = (animatedRef: RefObjectFunction<Component>) => {\n 'worklet';\n if (!_WORKLET) {\n console.warn(\n '[Reanimated] measure() was called from the main JS context. Measure is ' +\n 'only available in the UI runtime. This may also happen if measure() ' +\n 'was called by a worklet in the useAnimatedStyle hook, because useAnimatedStyle ' +\n 'calls the given worklet on the JS runtime during render. If you want to ' +\n 'prevent this warning then wrap the call with `if (_WORKLET)`. Then it will ' +\n 'only be called on the UI runtime after the render has been completed.'\n );\n return null;\n }\n\n const viewTag = animatedRef();\n if (viewTag === -1) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} is not a valid argument for measure(). This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`\n );\n return null;\n }\n\n const measured = _measure(viewTag);\n if (measured === null) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} has some undefined, not-yet-computed or meaningless value of \\`LayoutMetrics\\` type. This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`\n );\n return null;\n } else if (measured.x === -1234567) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} returned an invalid measurement response.`\n );\n return null;\n } else if (isNaN(measured.x)) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \\`collapsable={false}\\` on this component.`\n );\n return null;\n } else {\n return measured;\n }\n };\n}\n\nexport function dispatchCommand(\n animatedRef: RefObjectFunction<Component>,\n commandName: string,\n args: Array<unknown>\n): void {\n 'worklet';\n if (!_WORKLET || !isNative) {\n return;\n }\n const shadowNodeWrapper = animatedRef();\n _dispatchCommand(shadowNodeWrapper, commandName, args);\n}\n\nexport let scrollTo: (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n) => void;\n\nif (isWeb()) {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n const element = animatedRef() as unknown as HTMLElement;\n // @ts-ignore same call as in react-native-web\n element.scrollTo({ x, y, animated });\n };\n} else if (isNative && global._IS_FABRIC) {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n dispatchCommand(animatedRef, 'scrollTo', [x, y, animated]);\n };\n} else if (isNative) {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n if (!_WORKLET) {\n return;\n }\n const viewTag = animatedRef();\n _scrollTo(viewTag, x, y, animated);\n };\n} else {\n scrollTo = (\n _animatedRef: RefObjectFunction<Component>,\n _x: number,\n _y: number\n ) => {\n // no-op\n };\n}\n\nexport function setGestureState(handlerTag: number, newState: number): void {\n 'worklet';\n if (!_WORKLET || !isNative) {\n console.warn(\n '[Reanimated] You can not use setGestureState in non-worklet function.'\n );\n return;\n }\n _setGestureState(handlerTag, newState);\n}\n"],"mappings":"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"}
@@ -66,14 +66,4 @@ export function withDelay(delayMs, _nextAnimation) {
66
66
  };
67
67
  });
68
68
  }
69
- /**
70
- * @deprecated Kept for backward compatibility. Will be removed soon.
71
- */
72
-
73
- export function delay(delayMs, _nextAnimation) {
74
- 'worklet';
75
-
76
- console.warn('Method `delay` is deprecated. Please use `withDelay` instead');
77
- return withDelay(delayMs, _nextAnimation);
78
- }
79
69
  //# sourceMappingURL=delay.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defineAnimation","withDelay","delayMs","_nextAnimation","nextAnimation","delay","animation","now","startTime","started","previousAnimation","onStart","current","finished","onFrame","value","callback","isHigherOrder","console","warn"],"sources":["delay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { Animation, Timestamp, AnimatableValue } from '../commonTypes';\nimport { NextAnimation, DelayAnimation } from './commonTypes';\n\nexport function withDelay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n return defineAnimation<DelayAnimation>(_nextAnimation, () => {\n 'worklet';\n const nextAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function delay(animation: DelayAnimation, now: Timestamp): boolean {\n const { startTime, started, previousAnimation } = animation;\n\n if (now - startTime > delayMs) {\n if (!started) {\n nextAnimation.onStart(\n nextAnimation,\n animation.current,\n now,\n previousAnimation as DelayAnimation\n );\n animation.previousAnimation = null;\n animation.started = true;\n }\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n return finished;\n } else if (previousAnimation) {\n const finished =\n previousAnimation.finished ||\n previousAnimation.onFrame(previousAnimation, now);\n animation.current = previousAnimation.current;\n if (finished) {\n animation.previousAnimation = null;\n }\n }\n return false;\n }\n\n function onStart(\n animation: DelayAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: DelayAnimation\n ): void {\n animation.startTime = now;\n animation.started = false;\n animation.current = value;\n if (previousAnimation === animation) {\n animation.previousAnimation = previousAnimation.previousAnimation;\n } else {\n animation.previousAnimation = previousAnimation;\n }\n }\n\n const callback = (finished?: boolean): void => {\n if (nextAnimation.callback) {\n nextAnimation.callback(finished);\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame: delay,\n onStart,\n current: nextAnimation.current,\n callback,\n previousAnimation: null,\n startTime: 0,\n started: false,\n };\n });\n}\n\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function delay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n console.warn('Method `delay` is deprecated. Please use `withDelay` instead');\n return withDelay(delayMs, _nextAnimation);\n}\n"],"mappings":"AAAA,SAASA,eAAT,QAAgC,QAAhC;AAIA,OAAO,SAASC,SAAT,CACLC,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACA,OAAOH,eAAe,CAAiBG,cAAjB,EAAiC,MAAM;IAC3D;;IACA,MAAMC,aAAa,GACjB,OAAOD,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASE,KAAT,CAAeC,SAAf,EAA0CC,GAA1C,EAAmE;MACjE,MAAM;QAAEC,SAAF;QAAaC,OAAb;QAAsBC;MAAtB,IAA4CJ,SAAlD;;MAEA,IAAIC,GAAG,GAAGC,SAAN,GAAkBN,OAAtB,EAA+B;QAC7B,IAAI,CAACO,OAAL,EAAc;UACZL,aAAa,CAACO,OAAd,CACEP,aADF,EAEEE,SAAS,CAACM,OAFZ,EAGEL,GAHF,EAIEG,iBAJF;UAMAJ,SAAS,CAACI,iBAAV,GAA8B,IAA9B;UACAJ,SAAS,CAACG,OAAV,GAAoB,IAApB;QACD;;QACD,MAAMI,QAAQ,GAAGT,aAAa,CAACU,OAAd,CAAsBV,aAAtB,EAAqCG,GAArC,CAAjB;QACAD,SAAS,CAACM,OAAV,GAAoBR,aAAa,CAACQ,OAAlC;QACA,OAAOC,QAAP;MACD,CAdD,MAcO,IAAIH,iBAAJ,EAAuB;QAC5B,MAAMG,QAAQ,GACZH,iBAAiB,CAACG,QAAlB,IACAH,iBAAiB,CAACI,OAAlB,CAA0BJ,iBAA1B,EAA6CH,GAA7C,CAFF;QAGAD,SAAS,CAACM,OAAV,GAAoBF,iBAAiB,CAACE,OAAtC;;QACA,IAAIC,QAAJ,EAAc;UACZP,SAAS,CAACI,iBAAV,GAA8B,IAA9B;QACD;MACF;;MACD,OAAO,KAAP;IACD;;IAED,SAASC,OAAT,CACEL,SADF,EAEES,KAFF,EAGER,GAHF,EAIEG,iBAJF,EAKQ;MACNJ,SAAS,CAACE,SAAV,GAAsBD,GAAtB;MACAD,SAAS,CAACG,OAAV,GAAoB,KAApB;MACAH,SAAS,CAACM,OAAV,GAAoBG,KAApB;;MACA,IAAIL,iBAAiB,KAAKJ,SAA1B,EAAqC;QACnCA,SAAS,CAACI,iBAAV,GAA8BA,iBAAiB,CAACA,iBAAhD;MACD,CAFD,MAEO;QACLJ,SAAS,CAACI,iBAAV,GAA8BA,iBAA9B;MACD;IACF;;IAED,MAAMM,QAAQ,GAAIH,QAAD,IAA8B;MAC7C,IAAIT,aAAa,CAACY,QAAlB,EAA4B;QAC1BZ,aAAa,CAACY,QAAd,CAAuBH,QAAvB;MACD;IACF,CAJD;;IAMA,OAAO;MACLI,aAAa,EAAE,IADV;MAELH,OAAO,EAAET,KAFJ;MAGLM,OAHK;MAILC,OAAO,EAAER,aAAa,CAACQ,OAJlB;MAKLI,QALK;MAMLN,iBAAiB,EAAE,IANd;MAOLF,SAAS,EAAE,CAPN;MAQLC,OAAO,EAAE;IARJ,CAAP;EAUD,CAlEqB,CAAtB;AAmED;AAED;AACA;AACA;;AACA,OAAO,SAASJ,KAAT,CACLH,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACAe,OAAO,CAACC,IAAR,CAAa,8DAAb;EACA,OAAOlB,SAAS,CAACC,OAAD,EAAUC,cAAV,CAAhB;AACD"}
1
+ {"version":3,"names":["defineAnimation","withDelay","delayMs","_nextAnimation","nextAnimation","delay","animation","now","startTime","started","previousAnimation","onStart","current","finished","onFrame","value","callback","isHigherOrder"],"sources":["delay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { Animation, Timestamp, AnimatableValue } from '../commonTypes';\nimport { NextAnimation, DelayAnimation } from './commonTypes';\n\nexport function withDelay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n return defineAnimation<DelayAnimation>(_nextAnimation, () => {\n 'worklet';\n const nextAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function delay(animation: DelayAnimation, now: Timestamp): boolean {\n const { startTime, started, previousAnimation } = animation;\n\n if (now - startTime > delayMs) {\n if (!started) {\n nextAnimation.onStart(\n nextAnimation,\n animation.current,\n now,\n previousAnimation as DelayAnimation\n );\n animation.previousAnimation = null;\n animation.started = true;\n }\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n return finished;\n } else if (previousAnimation) {\n const finished =\n previousAnimation.finished ||\n previousAnimation.onFrame(previousAnimation, now);\n animation.current = previousAnimation.current;\n if (finished) {\n animation.previousAnimation = null;\n }\n }\n return false;\n }\n\n function onStart(\n animation: DelayAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: DelayAnimation\n ): void {\n animation.startTime = now;\n animation.started = false;\n animation.current = value;\n if (previousAnimation === animation) {\n animation.previousAnimation = previousAnimation.previousAnimation;\n } else {\n animation.previousAnimation = previousAnimation;\n }\n }\n\n const callback = (finished?: boolean): void => {\n if (nextAnimation.callback) {\n nextAnimation.callback(finished);\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame: delay,\n onStart,\n current: nextAnimation.current,\n callback,\n previousAnimation: null,\n startTime: 0,\n started: false,\n };\n });\n}\n"],"mappings":"AAAA,SAASA,eAAT,QAAgC,QAAhC;AAIA,OAAO,SAASC,SAAT,CACLC,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACA,OAAOH,eAAe,CAAiBG,cAAjB,EAAiC,MAAM;IAC3D;;IACA,MAAMC,aAAa,GACjB,OAAOD,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASE,KAAT,CAAeC,SAAf,EAA0CC,GAA1C,EAAmE;MACjE,MAAM;QAAEC,SAAF;QAAaC,OAAb;QAAsBC;MAAtB,IAA4CJ,SAAlD;;MAEA,IAAIC,GAAG,GAAGC,SAAN,GAAkBN,OAAtB,EAA+B;QAC7B,IAAI,CAACO,OAAL,EAAc;UACZL,aAAa,CAACO,OAAd,CACEP,aADF,EAEEE,SAAS,CAACM,OAFZ,EAGEL,GAHF,EAIEG,iBAJF;UAMAJ,SAAS,CAACI,iBAAV,GAA8B,IAA9B;UACAJ,SAAS,CAACG,OAAV,GAAoB,IAApB;QACD;;QACD,MAAMI,QAAQ,GAAGT,aAAa,CAACU,OAAd,CAAsBV,aAAtB,EAAqCG,GAArC,CAAjB;QACAD,SAAS,CAACM,OAAV,GAAoBR,aAAa,CAACQ,OAAlC;QACA,OAAOC,QAAP;MACD,CAdD,MAcO,IAAIH,iBAAJ,EAAuB;QAC5B,MAAMG,QAAQ,GACZH,iBAAiB,CAACG,QAAlB,IACAH,iBAAiB,CAACI,OAAlB,CAA0BJ,iBAA1B,EAA6CH,GAA7C,CAFF;QAGAD,SAAS,CAACM,OAAV,GAAoBF,iBAAiB,CAACE,OAAtC;;QACA,IAAIC,QAAJ,EAAc;UACZP,SAAS,CAACI,iBAAV,GAA8B,IAA9B;QACD;MACF;;MACD,OAAO,KAAP;IACD;;IAED,SAASC,OAAT,CACEL,SADF,EAEES,KAFF,EAGER,GAHF,EAIEG,iBAJF,EAKQ;MACNJ,SAAS,CAACE,SAAV,GAAsBD,GAAtB;MACAD,SAAS,CAACG,OAAV,GAAoB,KAApB;MACAH,SAAS,CAACM,OAAV,GAAoBG,KAApB;;MACA,IAAIL,iBAAiB,KAAKJ,SAA1B,EAAqC;QACnCA,SAAS,CAACI,iBAAV,GAA8BA,iBAAiB,CAACA,iBAAhD;MACD,CAFD,MAEO;QACLJ,SAAS,CAACI,iBAAV,GAA8BA,iBAA9B;MACD;IACF;;IAED,MAAMM,QAAQ,GAAIH,QAAD,IAA8B;MAC7C,IAAIT,aAAa,CAACY,QAAlB,EAA4B;QAC1BZ,aAAa,CAACY,QAAd,CAAuBH,QAAvB;MACD;IACF,CAJD;;IAMA,OAAO;MACLI,aAAa,EAAE,IADV;MAELH,OAAO,EAAET,KAFJ;MAGLM,OAHK;MAILC,OAAO,EAAER,aAAa,CAACQ,OAJlB;MAKLI,QALK;MAMLN,iBAAiB,EAAE,IANd;MAOLF,SAAS,EAAE,CAPN;MAQLC,OAAO,EAAE;IARJ,CAAP;EAUD,CAlEqB,CAAtB;AAmED"}
@@ -72,24 +72,4 @@ export function withRepeat(_nextAnimation) {
72
72
  };
73
73
  });
74
74
  }
75
- /**
76
- * @deprecated Kept for backward compatibility. Will be removed soon.
77
- */
78
-
79
- export function repeat(_nextAnimation) {
80
- 'worklet';
81
-
82
- let numberOfReps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
83
- let reverse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
84
- let callback = arguments.length > 3 ? arguments[3] : undefined;
85
- console.warn('Method `repeat` is deprecated. Please use `withRepeat` instead');
86
- return withRepeat(_nextAnimation, numberOfReps, reverse, callback);
87
- }
88
- export function loop(nextAnimation) {
89
- 'worklet';
90
-
91
- let numberOfLoops = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
92
- console.warn('Method `loop` is deprecated. Please use `withRepeat` instead');
93
- return repeat(nextAnimation, Math.round(numberOfLoops * 2), true);
94
- }
95
75
  //# sourceMappingURL=repeat.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defineAnimation","withRepeat","_nextAnimation","numberOfReps","reverse","callback","nextAnimation","repeat","animation","now","finished","onFrame","current","reps","startValue","toValue","onStart","previousAnimation","repCallback","value","isHigherOrder","console","warn","loop","numberOfLoops","Math","round"],"sources":["repeat.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { NextAnimation, RepeatAnimation } from './commonTypes';\n\nexport interface InnerRepeatAnimation\n extends Omit<RepeatAnimation, 'toValue' | 'startValue'> {\n toValue: number;\n startValue: number;\n}\n\nexport function withRepeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n\n return defineAnimation<RepeatAnimation>(_nextAnimation, () => {\n 'worklet';\n\n const nextAnimation: RepeatAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function repeat(animation: InnerRepeatAnimation, now: Timestamp): boolean {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n\n const startValue = reverse\n ? (nextAnimation.current as number)\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(\n nextAnimation,\n startValue,\n now,\n nextAnimation.previousAnimation as RepeatAnimation\n );\n return false;\n }\n return false;\n }\n\n const repCallback = (finished: boolean): void => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n\n function onStart(\n animation: RepeatAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: RepeatAnimation\n ): void {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n } as RepeatAnimation;\n });\n}\n\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function repeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n console.warn(\n 'Method `repeat` is deprecated. Please use `withRepeat` instead'\n );\n return withRepeat(_nextAnimation, numberOfReps, reverse, callback);\n}\n\nexport function loop(\n nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfLoops = 1\n): Animation<RepeatAnimation> {\n 'worklet';\n console.warn('Method `loop` is deprecated. Please use `withRepeat` instead');\n return repeat(nextAnimation, Math.round(numberOfLoops * 2), true);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["defineAnimation","withRepeat","_nextAnimation","numberOfReps","reverse","callback","nextAnimation","repeat","animation","now","finished","onFrame","current","reps","startValue","toValue","onStart","previousAnimation","repCallback","value","isHigherOrder"],"sources":["repeat.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { NextAnimation, RepeatAnimation } from './commonTypes';\n\nexport interface InnerRepeatAnimation\n extends Omit<RepeatAnimation, 'toValue' | 'startValue'> {\n toValue: number;\n startValue: number;\n}\n\nexport function withRepeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n\n return defineAnimation<RepeatAnimation>(_nextAnimation, () => {\n 'worklet';\n\n const nextAnimation: RepeatAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function repeat(animation: InnerRepeatAnimation, now: Timestamp): boolean {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n\n const startValue = reverse\n ? (nextAnimation.current as number)\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(\n nextAnimation,\n startValue,\n now,\n nextAnimation.previousAnimation as RepeatAnimation\n );\n return false;\n }\n return false;\n }\n\n const repCallback = (finished: boolean): void => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n\n function onStart(\n animation: RepeatAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: RepeatAnimation\n ): void {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n } as RepeatAnimation;\n });\n}\n"],"mappings":"AAAA,SAASA,eAAT,QAAgC,QAAhC;AAeA,OAAO,SAASC,UAAT,CACLC,cADK,EAKuB;EAC5B;;EAD4B,IAH5BC,YAG4B,uEAHb,CAGa;EAAA,IAF5BC,OAE4B,uEAFlB,KAEkB;EAAA,IAD5BC,QAC4B;EAG5B,OAAOL,eAAe,CAAkBE,cAAlB,EAAkC,MAAM;IAC5D;;IAEA,MAAMI,aAA8B,GAClC,OAAOJ,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASK,MAAT,CAAgBC,SAAhB,EAAiDC,GAAjD,EAA0E;MACxE,MAAMC,QAAQ,GAAGJ,aAAa,CAACK,OAAd,CAAsBL,aAAtB,EAAqCG,GAArC,CAAjB;MACAD,SAAS,CAACI,OAAV,GAAoBN,aAAa,CAACM,OAAlC;;MACA,IAAIF,QAAJ,EAAc;QACZF,SAAS,CAACK,IAAV,IAAkB,CAAlB,CADY,CAEZ;QACA;;QACA,IAAIP,aAAa,CAACD,QAAlB,EAA4B;UAC1BC,aAAa,CAACD,QAAd,CAAuB;UAAK;UAA5B,EAA4CG,SAAS,CAACI,OAAtD;QACD;;QACD,IAAIT,YAAY,GAAG,CAAf,IAAoBK,SAAS,CAACK,IAAV,IAAkBV,YAA1C,EAAwD;UACtD,OAAO,IAAP;QACD;;QAED,MAAMW,UAAU,GAAGV,OAAO,GACrBE,aAAa,CAACM,OADO,GAEtBJ,SAAS,CAACM,UAFd;;QAGA,IAAIV,OAAJ,EAAa;UACXE,aAAa,CAACS,OAAd,GAAwBP,SAAS,CAACM,UAAlC;UACAN,SAAS,CAACM,UAAV,GAAuBA,UAAvB;QACD;;QACDR,aAAa,CAACU,OAAd,CACEV,aADF,EAEEQ,UAFF,EAGEL,GAHF,EAIEH,aAAa,CAACW,iBAJhB;QAMA,OAAO,KAAP;MACD;;MACD,OAAO,KAAP;IACD;;IAED,MAAMC,WAAW,GAAIR,QAAD,IAA6B;MAC/C,IAAIL,QAAJ,EAAc;QACZA,QAAQ,CAACK,QAAD,CAAR;MACD,CAH8C,CAI/C;;;MACA,IAAI,CAACA,QAAD,IAAaJ,aAAa,CAACD,QAA/B,EAAyC;QACvCC,aAAa,CAACD,QAAd,CAAuB;QAAM;QAA7B;MACD;IACF,CARD;;IAUA,SAASW,OAAT,CACER,SADF,EAEEW,KAFF,EAGEV,GAHF,EAIEQ,iBAJF,EAKQ;MACNT,SAAS,CAACM,UAAV,GAAuBK,KAAvB;MACAX,SAAS,CAACK,IAAV,GAAiB,CAAjB;MACAP,aAAa,CAACU,OAAd,CAAsBV,aAAtB,EAAqCa,KAArC,EAA4CV,GAA5C,EAAiDQ,iBAAjD;IACD;;IAED,OAAO;MACLG,aAAa,EAAE,IADV;MAELT,OAAO,EAAEJ,MAFJ;MAGLS,OAHK;MAILH,IAAI,EAAE,CAJD;MAKLD,OAAO,EAAEN,aAAa,CAACM,OALlB;MAMLP,QAAQ,EAAEa,WANL;MAOLJ,UAAU,EAAE;IAPP,CAAP;EASD,CApEqB,CAAtB;AAqED"}
@@ -80,14 +80,4 @@ export function withSequence() {
80
80
  };
81
81
  });
82
82
  }
83
- /**
84
- * @deprecated Kept for backward compatibility. Will be removed soon.
85
- */
86
-
87
- export function sequence() {
88
- 'worklet';
89
-
90
- console.warn('Method `sequence` is deprecated. Please use `withSequence` instead');
91
- return withSequence(...arguments);
92
- }
93
83
  //# sourceMappingURL=sequence.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defineAnimation","withSequence","_animations","animations","map","a","result","finished","firstAnimation","callback","forEach","animation","sequence","now","currentAnim","animationIndex","onFrame","current","length","nextAnim","onStart","value","previousAnimation","undefined","isHigherOrder","console","warn"],"sources":["sequence.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { NextAnimation, SequenceAnimation } from './commonTypes';\nimport {\n Animation,\n AnimatableValue,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\n\nexport function withSequence(\n ..._animations: NextAnimation<AnimationObject>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n return defineAnimation<SequenceAnimation>(\n _animations[0] as SequenceAnimation,\n () => {\n 'worklet';\n const animations = _animations.map((a) => {\n const result = typeof a === 'function' ? a() : a;\n result.finished = false;\n return result;\n });\n const firstAnimation = animations[0];\n\n const callback = (finished: boolean): void => {\n if (finished) {\n // we want to call the callback after every single animation\n // not after all of them\n return;\n }\n // this is going to be called only if sequence has been cancelled\n animations.forEach((animation) => {\n if (typeof animation.callback === 'function' && !animation.finished) {\n animation.callback(finished);\n }\n });\n };\n\n function sequence(animation: SequenceAnimation, now: Timestamp): boolean {\n const currentAnim = animations[animation.animationIndex];\n const finished = currentAnim.onFrame(currentAnim, now);\n animation.current = currentAnim.current;\n if (finished) {\n // we want to call the callback after every single animation\n if (currentAnim.callback) {\n currentAnim.callback(true /* finished */);\n }\n currentAnim.finished = true;\n animation.animationIndex += 1;\n if (animation.animationIndex < animations.length) {\n const nextAnim = animations[animation.animationIndex];\n nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);\n return false;\n }\n return true;\n }\n return false;\n }\n\n function onStart(\n animation: SequenceAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: SequenceAnimation\n ): void {\n animation.animationIndex = 0;\n if (previousAnimation === undefined) {\n previousAnimation = animations[\n animations.length - 1\n ] as SequenceAnimation;\n }\n firstAnimation.onStart(firstAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: sequence,\n onStart,\n animationIndex: 0,\n current: firstAnimation.current,\n callback,\n } as SequenceAnimation;\n }\n );\n}\n\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function sequence(\n ..._animations: NextAnimation<SequenceAnimation>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n console.warn(\n 'Method `sequence` is deprecated. Please use `withSequence` instead'\n );\n return withSequence(..._animations);\n}\n"],"mappings":"AAAA,SAASA,eAAT,QAAgC,QAAhC;AASA,OAAO,SAASC,YAAT,GAEyB;EAC9B;;EAD8B,kCAD3BC,WAC2B;IAD3BA,WAC2B;EAAA;;EAE9B,OAAOF,eAAe,CACpBE,WAAW,CAAC,CAAD,CADS,EAEpB,MAAM;IACJ;;IACA,MAAMC,UAAU,GAAGD,WAAW,CAACE,GAAZ,CAAiBC,CAAD,IAAO;MACxC,MAAMC,MAAM,GAAG,OAAOD,CAAP,KAAa,UAAb,GAA0BA,CAAC,EAA3B,GAAgCA,CAA/C;MACAC,MAAM,CAACC,QAAP,GAAkB,KAAlB;MACA,OAAOD,MAAP;IACD,CAJkB,CAAnB;;IAKA,MAAME,cAAc,GAAGL,UAAU,CAAC,CAAD,CAAjC;;IAEA,MAAMM,QAAQ,GAAIF,QAAD,IAA6B;MAC5C,IAAIA,QAAJ,EAAc;QACZ;QACA;QACA;MACD,CAL2C,CAM5C;;;MACAJ,UAAU,CAACO,OAAX,CAAoBC,SAAD,IAAe;QAChC,IAAI,OAAOA,SAAS,CAACF,QAAjB,KAA8B,UAA9B,IAA4C,CAACE,SAAS,CAACJ,QAA3D,EAAqE;UACnEI,SAAS,CAACF,QAAV,CAAmBF,QAAnB;QACD;MACF,CAJD;IAKD,CAZD;;IAcA,SAASK,QAAT,CAAkBD,SAAlB,EAAgDE,GAAhD,EAAyE;MACvE,MAAMC,WAAW,GAAGX,UAAU,CAACQ,SAAS,CAACI,cAAX,CAA9B;MACA,MAAMR,QAAQ,GAAGO,WAAW,CAACE,OAAZ,CAAoBF,WAApB,EAAiCD,GAAjC,CAAjB;MACAF,SAAS,CAACM,OAAV,GAAoBH,WAAW,CAACG,OAAhC;;MACA,IAAIV,QAAJ,EAAc;QACZ;QACA,IAAIO,WAAW,CAACL,QAAhB,EAA0B;UACxBK,WAAW,CAACL,QAAZ,CAAqB;UAAK;UAA1B;QACD;;QACDK,WAAW,CAACP,QAAZ,GAAuB,IAAvB;QACAI,SAAS,CAACI,cAAV,IAA4B,CAA5B;;QACA,IAAIJ,SAAS,CAACI,cAAV,GAA2BZ,UAAU,CAACe,MAA1C,EAAkD;UAChD,MAAMC,QAAQ,GAAGhB,UAAU,CAACQ,SAAS,CAACI,cAAX,CAA3B;UACAI,QAAQ,CAACC,OAAT,CAAiBD,QAAjB,EAA2BL,WAAW,CAACG,OAAvC,EAAgDJ,GAAhD,EAAqDC,WAArD;UACA,OAAO,KAAP;QACD;;QACD,OAAO,IAAP;MACD;;MACD,OAAO,KAAP;IACD;;IAED,SAASM,OAAT,CACET,SADF,EAEEU,KAFF,EAGER,GAHF,EAIES,iBAJF,EAKQ;MACNX,SAAS,CAACI,cAAV,GAA2B,CAA3B;;MACA,IAAIO,iBAAiB,KAAKC,SAA1B,EAAqC;QACnCD,iBAAiB,GAAGnB,UAAU,CAC5BA,UAAU,CAACe,MAAX,GAAoB,CADQ,CAA9B;MAGD;;MACDV,cAAc,CAACY,OAAf,CAAuBZ,cAAvB,EAAuCa,KAAvC,EAA8CR,GAA9C,EAAmDS,iBAAnD;IACD;;IAED,OAAO;MACLE,aAAa,EAAE,IADV;MAELR,OAAO,EAAEJ,QAFJ;MAGLQ,OAHK;MAILL,cAAc,EAAE,CAJX;MAKLE,OAAO,EAAET,cAAc,CAACS,OALnB;MAMLR;IANK,CAAP;EAQD,CArEmB,CAAtB;AAuED;AAED;AACA;AACA;;AACA,OAAO,SAASG,QAAT,GAEyB;EAC9B;;EACAa,OAAO,CAACC,IAAR,CACE,oEADF;EAGA,OAAOzB,YAAY,CAAC,YAAD,CAAnB;AACD"}
1
+ {"version":3,"names":["defineAnimation","withSequence","_animations","animations","map","a","result","finished","firstAnimation","callback","forEach","animation","sequence","now","currentAnim","animationIndex","onFrame","current","length","nextAnim","onStart","value","previousAnimation","undefined","isHigherOrder"],"sources":["sequence.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { NextAnimation, SequenceAnimation } from './commonTypes';\nimport {\n Animation,\n AnimatableValue,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\n\nexport function withSequence(\n ..._animations: NextAnimation<AnimationObject>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n return defineAnimation<SequenceAnimation>(\n _animations[0] as SequenceAnimation,\n () => {\n 'worklet';\n const animations = _animations.map((a) => {\n const result = typeof a === 'function' ? a() : a;\n result.finished = false;\n return result;\n });\n const firstAnimation = animations[0];\n\n const callback = (finished: boolean): void => {\n if (finished) {\n // we want to call the callback after every single animation\n // not after all of them\n return;\n }\n // this is going to be called only if sequence has been cancelled\n animations.forEach((animation) => {\n if (typeof animation.callback === 'function' && !animation.finished) {\n animation.callback(finished);\n }\n });\n };\n\n function sequence(animation: SequenceAnimation, now: Timestamp): boolean {\n const currentAnim = animations[animation.animationIndex];\n const finished = currentAnim.onFrame(currentAnim, now);\n animation.current = currentAnim.current;\n if (finished) {\n // we want to call the callback after every single animation\n if (currentAnim.callback) {\n currentAnim.callback(true /* finished */);\n }\n currentAnim.finished = true;\n animation.animationIndex += 1;\n if (animation.animationIndex < animations.length) {\n const nextAnim = animations[animation.animationIndex];\n nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);\n return false;\n }\n return true;\n }\n return false;\n }\n\n function onStart(\n animation: SequenceAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: SequenceAnimation\n ): void {\n animation.animationIndex = 0;\n if (previousAnimation === undefined) {\n previousAnimation = animations[\n animations.length - 1\n ] as SequenceAnimation;\n }\n firstAnimation.onStart(firstAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: sequence,\n onStart,\n animationIndex: 0,\n current: firstAnimation.current,\n callback,\n } as SequenceAnimation;\n }\n );\n}\n"],"mappings":"AAAA,SAASA,eAAT,QAAgC,QAAhC;AASA,OAAO,SAASC,YAAT,GAEyB;EAC9B;;EAD8B,kCAD3BC,WAC2B;IAD3BA,WAC2B;EAAA;;EAE9B,OAAOF,eAAe,CACpBE,WAAW,CAAC,CAAD,CADS,EAEpB,MAAM;IACJ;;IACA,MAAMC,UAAU,GAAGD,WAAW,CAACE,GAAZ,CAAiBC,CAAD,IAAO;MACxC,MAAMC,MAAM,GAAG,OAAOD,CAAP,KAAa,UAAb,GAA0BA,CAAC,EAA3B,GAAgCA,CAA/C;MACAC,MAAM,CAACC,QAAP,GAAkB,KAAlB;MACA,OAAOD,MAAP;IACD,CAJkB,CAAnB;;IAKA,MAAME,cAAc,GAAGL,UAAU,CAAC,CAAD,CAAjC;;IAEA,MAAMM,QAAQ,GAAIF,QAAD,IAA6B;MAC5C,IAAIA,QAAJ,EAAc;QACZ;QACA;QACA;MACD,CAL2C,CAM5C;;;MACAJ,UAAU,CAACO,OAAX,CAAoBC,SAAD,IAAe;QAChC,IAAI,OAAOA,SAAS,CAACF,QAAjB,KAA8B,UAA9B,IAA4C,CAACE,SAAS,CAACJ,QAA3D,EAAqE;UACnEI,SAAS,CAACF,QAAV,CAAmBF,QAAnB;QACD;MACF,CAJD;IAKD,CAZD;;IAcA,SAASK,QAAT,CAAkBD,SAAlB,EAAgDE,GAAhD,EAAyE;MACvE,MAAMC,WAAW,GAAGX,UAAU,CAACQ,SAAS,CAACI,cAAX,CAA9B;MACA,MAAMR,QAAQ,GAAGO,WAAW,CAACE,OAAZ,CAAoBF,WAApB,EAAiCD,GAAjC,CAAjB;MACAF,SAAS,CAACM,OAAV,GAAoBH,WAAW,CAACG,OAAhC;;MACA,IAAIV,QAAJ,EAAc;QACZ;QACA,IAAIO,WAAW,CAACL,QAAhB,EAA0B;UACxBK,WAAW,CAACL,QAAZ,CAAqB;UAAK;UAA1B;QACD;;QACDK,WAAW,CAACP,QAAZ,GAAuB,IAAvB;QACAI,SAAS,CAACI,cAAV,IAA4B,CAA5B;;QACA,IAAIJ,SAAS,CAACI,cAAV,GAA2BZ,UAAU,CAACe,MAA1C,EAAkD;UAChD,MAAMC,QAAQ,GAAGhB,UAAU,CAACQ,SAAS,CAACI,cAAX,CAA3B;UACAI,QAAQ,CAACC,OAAT,CAAiBD,QAAjB,EAA2BL,WAAW,CAACG,OAAvC,EAAgDJ,GAAhD,EAAqDC,WAArD;UACA,OAAO,KAAP;QACD;;QACD,OAAO,IAAP;MACD;;MACD,OAAO,KAAP;IACD;;IAED,SAASM,OAAT,CACET,SADF,EAEEU,KAFF,EAGER,GAHF,EAIES,iBAJF,EAKQ;MACNX,SAAS,CAACI,cAAV,GAA2B,CAA3B;;MACA,IAAIO,iBAAiB,KAAKC,SAA1B,EAAqC;QACnCD,iBAAiB,GAAGnB,UAAU,CAC5BA,UAAU,CAACe,MAAX,GAAoB,CADQ,CAA9B;MAGD;;MACDV,cAAc,CAACY,OAAf,CAAuBZ,cAAvB,EAAuCa,KAAvC,EAA8CR,GAA9C,EAAmDS,iBAAnD;IACD;;IAED,OAAO;MACLE,aAAa,EAAE,IADV;MAELR,OAAO,EAAEJ,QAFJ;MAGLQ,OAHK;MAILL,cAAc,EAAE,CAJX;MAKLE,OAAO,EAAET,cAAc,CAACS,OALnB;MAMLR;IANK,CAAP;EAQD,CArEmB,CAAtB;AAuED"}
@@ -1 +1 @@
1
- {"version":3,"names":["KeyboardState"],"sources":["commonTypes.ts"],"sourcesContent":["import {\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n TranslateXTransform,\n TranslateYTransform,\n SkewXTransform,\n SkewYTransform,\n MatrixTransform,\n ViewStyle,\n TextStyle,\n} from 'react-native';\n\nexport type TransformProperty =\n | PerpectiveTransform\n | RotateTransform\n | RotateXTransform\n | RotateYTransform\n | RotateZTransform\n | ScaleTransform\n | ScaleXTransform\n | ScaleYTransform\n | TranslateXTransform\n | TranslateYTransform\n | SkewXTransform\n | SkewYTransform\n | MatrixTransform;\n\nexport interface StyleProps extends ViewStyle, TextStyle {\n originX?: number;\n originY?: number;\n [key: string]: any;\n}\n\nexport interface AnimatedStyle\n extends Record<string, Animation<AnimationObject>> {\n [key: string]: any;\n transform?: Array<Record<string, Animation<AnimationObject>>>;\n}\nexport interface SharedValue<T> {\n value: T;\n}\n\nexport type Context = Record<string, unknown>;\n\nexport interface WorkletFunction {\n _closure?: Context;\n __workletHash?: number;\n __optimalization?: number;\n}\n\nexport interface BasicWorkletFunction<T> extends WorkletFunction {\n (): T;\n}\n\nexport interface BasicWorkletFunctionOptional<T> extends WorkletFunction {\n (): Partial<T>;\n}\n\nexport interface NativeEvent<T> {\n nativeEvent: T;\n}\nexport interface ComplexWorkletFunction<A extends any[], R>\n extends WorkletFunction {\n (...args: A): R;\n}\n\nexport interface NestedObject<T> {\n [key: string]: NestedObjectValues<T>;\n}\n\nexport type NestedObjectValues<T> =\n | T\n | Array<NestedObjectValues<T>>\n | NestedObject<T>;\n\nexport interface AdapterWorkletFunction extends WorkletFunction {\n (value: NestedObject<string | number | AnimationObject>): void;\n}\n\nexport type AnimatableValue = number | string | Array<number>;\n\nexport interface AnimationObject {\n [key: string]: any;\n callback: AnimationCallback;\n current?: AnimatableValue;\n toValue?: AnimationObject['current'];\n startValue?: AnimationObject['current'];\n finished?: boolean;\n strippedCurrent?: number;\n cancelled?: boolean;\n\n __prefix?: string;\n __suffix?: string;\n onFrame: (animation: any, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: any,\n current: any,\n timestamp: Timestamp,\n previousAnimation: any\n ) => void;\n}\n\nexport interface Animation<T extends AnimationObject> extends AnimationObject {\n onFrame: (animation: T, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: T,\n current: T extends NumericAnimation ? number : AnimatableValue,\n timestamp: Timestamp,\n previousAnimation: T\n ) => void;\n}\n\nexport interface NumericAnimation {\n current?: number;\n}\n\nexport type AnimationCallback = (\n finished?: boolean,\n current?: AnimatableValue\n) => void;\n\nexport type Timestamp = number;\n\nexport type Value3D = {\n x: number;\n y: number;\n z: number;\n};\n\nexport type SensorValue3D = SharedValue<Value3D>;\n\nexport type ValueRotation = {\n qw: number;\n qx: number;\n qy: number;\n qz: number;\n yaw: number;\n pitch: number;\n roll: number;\n};\n\nexport type SensorValueRotation = SharedValue<ValueRotation>;\n\nexport type ShadowNodeWrapper = object;\n\nexport enum KeyboardState {\n UNKNOWN = 0,\n OPENING = 1,\n OPEN = 2,\n CLOSING = 3,\n CLOSED = 4,\n}\n\nexport type AnimatedKeyboardInfo = {\n height: SharedValue<number>;\n state: SharedValue<KeyboardState>;\n};\n"],"mappings":"AAuJA,WAAYA,aAAZ;;WAAYA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a"}
1
+ {"version":3,"names":["KeyboardState"],"sources":["commonTypes.ts"],"sourcesContent":["import {\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n TranslateXTransform,\n TranslateYTransform,\n SkewXTransform,\n SkewYTransform,\n MatrixTransform,\n ViewStyle,\n TextStyle,\n} from 'react-native';\n\nexport type TransformProperty =\n | PerpectiveTransform\n | RotateTransform\n | RotateXTransform\n | RotateYTransform\n | RotateZTransform\n | ScaleTransform\n | ScaleXTransform\n | ScaleYTransform\n | TranslateXTransform\n | TranslateYTransform\n | SkewXTransform\n | SkewYTransform\n | MatrixTransform;\n\nexport interface StyleProps extends ViewStyle, TextStyle {\n originX?: number;\n originY?: number;\n [key: string]: any;\n}\n\nexport interface AnimatedStyle\n extends Record<string, Animation<AnimationObject>> {\n [key: string]: any;\n transform?: Array<Record<string, Animation<AnimationObject>>>;\n}\nexport interface SharedValue<T> {\n value: T;\n}\n\nexport type Context = Record<string, unknown>;\n\nexport interface WorkletFunction {\n _closure?: Context;\n __workletHash?: number;\n __optimalization?: number;\n}\n\nexport interface BasicWorkletFunction<T> extends WorkletFunction {\n (): T;\n}\n\nexport interface BasicWorkletFunctionOptional<T> extends WorkletFunction {\n (): Partial<T>;\n}\n\nexport interface NativeEvent<T> {\n nativeEvent: T;\n}\nexport interface ComplexWorkletFunction<A extends any[], R>\n extends WorkletFunction {\n (...args: A): R;\n}\n\nexport interface NestedObject<T> {\n [key: string]: NestedObjectValues<T>;\n}\n\nexport type NestedObjectValues<T> =\n | T\n | Array<NestedObjectValues<T>>\n | NestedObject<T>;\n\nexport interface AdapterWorkletFunction extends WorkletFunction {\n (value: NestedObject<string | number | AnimationObject>): void;\n}\n\nexport type AnimatableValue = number | string | Array<number>;\n\nexport interface AnimationObject {\n [key: string]: any;\n callback: AnimationCallback;\n current?: AnimatableValue;\n toValue?: AnimationObject['current'];\n startValue?: AnimationObject['current'];\n finished?: boolean;\n strippedCurrent?: number;\n cancelled?: boolean;\n\n __prefix?: string;\n __suffix?: string;\n onFrame: (animation: any, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: any,\n current: any,\n timestamp: Timestamp,\n previousAnimation: any\n ) => void;\n}\n\nexport interface Animation<T extends AnimationObject> extends AnimationObject {\n onFrame: (animation: T, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: T,\n current: T extends NumericAnimation ? number : AnimatableValue,\n timestamp: Timestamp,\n previousAnimation: T\n ) => void;\n}\n\nexport interface NumericAnimation {\n current?: number;\n}\n\nexport type AnimationCallback = (\n finished?: boolean,\n current?: AnimatableValue\n) => void;\n\nexport type Timestamp = number;\n\nexport type Value3D = {\n x: number;\n y: number;\n z: number;\n};\n\nexport type SensorValue3D = SharedValue<Value3D>;\n\nexport type ValueRotation = {\n qw: number;\n qx: number;\n qy: number;\n qz: number;\n yaw: number;\n pitch: number;\n roll: number;\n};\n\nexport type SensorValueRotation = SharedValue<ValueRotation>;\n\nexport type ShadowNodeWrapper = object;\n\nexport enum KeyboardState {\n UNKNOWN = 0,\n OPENING = 1,\n OPEN = 2,\n CLOSING = 3,\n CLOSED = 4,\n}\n\nexport type AnimatedKeyboardInfo = {\n height: SharedValue<number>;\n state: SharedValue<KeyboardState>;\n};\n\nexport interface MeasuredDimensions {\n x: number;\n y: number;\n width: number;\n height: number;\n pageX: number;\n pageY: number;\n}\n"],"mappings":"AAuJA,WAAYA,aAAZ;;WAAYA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a"}
@@ -24,19 +24,19 @@ export default class FrameCallbackRegistryJS {
24
24
  return callbackId;
25
25
  }
26
26
 
27
- unregisterFrameCallback(frameCallbackId) {
27
+ unregisterFrameCallback(callbackId) {
28
28
  runOnUI(() => {
29
29
  'worklet';
30
30
 
31
- global._frameCallbackRegistry.unregisterFrameCallback(frameCallbackId);
31
+ global._frameCallbackRegistry.unregisterFrameCallback(callbackId);
32
32
  })();
33
33
  }
34
34
 
35
- manageStateFrameCallback(frameCallbackId, state) {
35
+ manageStateFrameCallback(callbackId, state) {
36
36
  runOnUI(() => {
37
37
  'worklet';
38
38
 
39
- global._frameCallbackRegistry.manageStateFrameCallback(frameCallbackId, state);
39
+ global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);
40
40
  })();
41
41
  }
42
42
 
@@ -1 +1 @@
1
- {"version":3,"names":["runOnUI","prepareUIRegistry","FrameCallbackRegistryJS","constructor","registerFrameCallback","callback","callbackId","nextCallbackId","global","_frameCallbackRegistry","unregisterFrameCallback","frameCallbackId","manageStateFrameCallback","state"],"sources":["FrameCallbackRegistryJS.ts"],"sourcesContent":["import { runOnUI } from '../core';\nimport { prepareUIRegistry } from './FrameCallbackRegistryUI';\n\nexport default class FrameCallbackRegistryJS {\n private nextCallbackId = 0;\n\n constructor() {\n prepareUIRegistry();\n }\n\n registerFrameCallback(callback: () => void): number {\n if (!callback) {\n return -1;\n }\n\n const callbackId = this.nextCallbackId;\n this.nextCallbackId++;\n\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.registerFrameCallback(callback, callbackId);\n })();\n\n return callbackId;\n }\n\n unregisterFrameCallback(frameCallbackId: number): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.unregisterFrameCallback(frameCallbackId);\n })();\n }\n\n manageStateFrameCallback(frameCallbackId: number, state: boolean): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.manageStateFrameCallback(\n frameCallbackId,\n state\n );\n })();\n }\n}\n"],"mappings":";;AAAA,SAASA,OAAT,QAAwB,SAAxB;AACA,SAASC,iBAAT,QAAkC,2BAAlC;AAEA,eAAe,MAAMC,uBAAN,CAA8B;EAG3CC,WAAW,GAAG;IAAA,wCAFW,CAEX;;IACZF,iBAAiB;EAClB;;EAEDG,qBAAqB,CAACC,QAAD,EAA+B;IAClD,IAAI,CAACA,QAAL,EAAe;MACb,OAAO,CAAC,CAAR;IACD;;IAED,MAAMC,UAAU,GAAG,KAAKC,cAAxB;IACA,KAAKA,cAAL;IAEAP,OAAO,CAAC,MAAM;MACZ;;MACAQ,MAAM,CAACC,sBAAP,CAA8BL,qBAA9B,CAAoDC,QAApD,EAA8DC,UAA9D;IACD,CAHM,CAAP;IAKA,OAAOA,UAAP;EACD;;EAEDI,uBAAuB,CAACC,eAAD,EAAgC;IACrDX,OAAO,CAAC,MAAM;MACZ;;MACAQ,MAAM,CAACC,sBAAP,CAA8BC,uBAA9B,CAAsDC,eAAtD;IACD,CAHM,CAAP;EAID;;EAEDC,wBAAwB,CAACD,eAAD,EAA0BE,KAA1B,EAAgD;IACtEb,OAAO,CAAC,MAAM;MACZ;;MACAQ,MAAM,CAACC,sBAAP,CAA8BG,wBAA9B,CACED,eADF,EAEEE,KAFF;IAID,CANM,CAAP;EAOD;;AAtC0C"}
1
+ {"version":3,"names":["runOnUI","prepareUIRegistry","FrameCallbackRegistryJS","constructor","registerFrameCallback","callback","callbackId","nextCallbackId","global","_frameCallbackRegistry","unregisterFrameCallback","manageStateFrameCallback","state"],"sources":["FrameCallbackRegistryJS.ts"],"sourcesContent":["import { runOnUI } from '../core';\nimport { FrameInfo, prepareUIRegistry } from './FrameCallbackRegistryUI';\n\nexport default class FrameCallbackRegistryJS {\n private nextCallbackId = 0;\n\n constructor() {\n prepareUIRegistry();\n }\n\n registerFrameCallback(callback: (frameInfo: FrameInfo) => void): number {\n if (!callback) {\n return -1;\n }\n\n const callbackId = this.nextCallbackId;\n this.nextCallbackId++;\n\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.registerFrameCallback(callback, callbackId);\n })();\n\n return callbackId;\n }\n\n unregisterFrameCallback(callbackId: number): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.unregisterFrameCallback(callbackId);\n })();\n }\n\n manageStateFrameCallback(callbackId: number, state: boolean): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);\n })();\n }\n}\n"],"mappings":";;AAAA,SAASA,OAAT,QAAwB,SAAxB;AACA,SAAoBC,iBAApB,QAA6C,2BAA7C;AAEA,eAAe,MAAMC,uBAAN,CAA8B;EAG3CC,WAAW,GAAG;IAAA,wCAFW,CAEX;;IACZF,iBAAiB;EAClB;;EAEDG,qBAAqB,CAACC,QAAD,EAAmD;IACtE,IAAI,CAACA,QAAL,EAAe;MACb,OAAO,CAAC,CAAR;IACD;;IAED,MAAMC,UAAU,GAAG,KAAKC,cAAxB;IACA,KAAKA,cAAL;IAEAP,OAAO,CAAC,MAAM;MACZ;;MACAQ,MAAM,CAACC,sBAAP,CAA8BL,qBAA9B,CAAoDC,QAApD,EAA8DC,UAA9D;IACD,CAHM,CAAP;IAKA,OAAOA,UAAP;EACD;;EAEDI,uBAAuB,CAACJ,UAAD,EAA2B;IAChDN,OAAO,CAAC,MAAM;MACZ;;MACAQ,MAAM,CAACC,sBAAP,CAA8BC,uBAA9B,CAAsDJ,UAAtD;IACD,CAHM,CAAP;EAID;;EAEDK,wBAAwB,CAACL,UAAD,EAAqBM,KAArB,EAA2C;IACjEZ,OAAO,CAAC,MAAM;MACZ;;MACAQ,MAAM,CAACC,sBAAP,CAA8BE,wBAA9B,CAAuDL,UAAvD,EAAmEM,KAAnE;IACD,CAHM,CAAP;EAID;;AAnC0C"}
@@ -4,48 +4,80 @@ export const prepareUIRegistry = runOnUI(() => {
4
4
 
5
5
  const frameCallbackRegistry = {
6
6
  frameCallbackRegistry: new Map(),
7
- frameCallbackActive: new Set(),
8
- isFrameCallbackRunning: false,
7
+ activeFrameCallbacks: new Set(),
8
+ previousFrameTimestamp: null,
9
9
 
10
10
  runCallbacks() {
11
- const loop = () => {
12
- this.frameCallbackActive.forEach(key => {
13
- const callback = this.frameCallbackRegistry.get(key);
14
- callback();
11
+ const loop = timestamp => {
12
+ if (this.previousFrameTimestamp === null) {
13
+ this.previousFrameTimestamp = timestamp;
14
+ }
15
+
16
+ const delta = timestamp - this.previousFrameTimestamp;
17
+ this.activeFrameCallbacks.forEach(callbackId => {
18
+ const callbackDetails = this.frameCallbackRegistry.get(callbackId);
19
+ const {
20
+ startTime
21
+ } = callbackDetails;
22
+
23
+ if (startTime === null) {
24
+ // First frame
25
+ callbackDetails.startTime = timestamp;
26
+ callbackDetails.callback({
27
+ timestamp,
28
+ timeSincePreviousFrame: null,
29
+ timeSinceFirstFrame: 0
30
+ });
31
+ } else {
32
+ // Next frame
33
+ callbackDetails.callback({
34
+ timestamp,
35
+ timeSincePreviousFrame: delta,
36
+ timeSinceFirstFrame: timestamp - startTime
37
+ });
38
+ }
15
39
  });
16
40
 
17
- if (this.frameCallbackActive.size > 0) {
41
+ if (this.activeFrameCallbacks.size > 0) {
42
+ this.previousFrameTimestamp = timestamp;
18
43
  requestAnimationFrame(loop);
19
44
  } else {
20
- this.isFrameCallbackRunning = false;
45
+ this.previousFrameTimestamp = null;
21
46
  }
22
- };
47
+ }; // runCallback() should only be called after registering a callback,
48
+ // so if there is only one active callback, then it means that there were
49
+ // zero previously and the loop isn't running yet.
50
+
23
51
 
24
- if (!this.isFrameCallbackRunning) {
52
+ if (this.activeFrameCallbacks.size === 1) {
25
53
  requestAnimationFrame(loop);
26
- this.isFrameCallbackRunning = true;
27
54
  }
28
55
  },
29
56
 
30
57
  registerFrameCallback(callback, callbackId) {
31
- this.frameCallbackRegistry.set(callbackId, callback);
58
+ this.frameCallbackRegistry.set(callbackId, {
59
+ callback: callback,
60
+ startTime: null
61
+ });
32
62
  },
33
63
 
34
- unregisterFrameCallback(frameCallbackId) {
35
- this.manageStateFrameCallback(frameCallbackId, false);
36
- this.frameCallbackRegistry.delete(frameCallbackId);
64
+ unregisterFrameCallback(callbackId) {
65
+ this.manageStateFrameCallback(callbackId, false);
66
+ this.frameCallbackRegistry.delete(callbackId);
37
67
  },
38
68
 
39
- manageStateFrameCallback(frameCallbackId, state) {
40
- if (frameCallbackId === -1) {
69
+ manageStateFrameCallback(callbackId, state) {
70
+ if (callbackId === -1) {
41
71
  return;
42
72
  }
43
73
 
44
74
  if (state) {
45
- this.frameCallbackActive.add(frameCallbackId);
75
+ this.activeFrameCallbacks.add(callbackId);
46
76
  this.runCallbacks();
47
77
  } else {
48
- this.frameCallbackActive.delete(frameCallbackId);
78
+ const callback = this.frameCallbackRegistry.get(callbackId);
79
+ callback.startTime = null;
80
+ this.activeFrameCallbacks.delete(callbackId);
49
81
  }
50
82
  }
51
83
 
@@ -1 +1 @@
1
- {"version":3,"names":["runOnUI","prepareUIRegistry","frameCallbackRegistry","Map","frameCallbackActive","Set","isFrameCallbackRunning","runCallbacks","loop","forEach","key","callback","get","size","requestAnimationFrame","registerFrameCallback","callbackId","set","unregisterFrameCallback","frameCallbackId","manageStateFrameCallback","delete","state","add","global","_frameCallbackRegistry"],"sources":["FrameCallbackRegistryUI.ts"],"sourcesContent":["import { runOnUI } from '../core';\n\nexport default interface FrameCallbackRegistryUI {\n frameCallbackRegistry: Map<number, () => void>;\n frameCallbackActive: Set<number>;\n isFrameCallbackRunning: boolean;\n runCallbacks: () => void;\n registerFrameCallback: (callback: () => void, callbackId: number) => void;\n unregisterFrameCallback: (frameCallbackId: number) => void;\n manageStateFrameCallback: (frameCallbackId: number, state: boolean) => void;\n}\n\nexport const prepareUIRegistry = runOnUI(() => {\n 'worklet';\n\n const frameCallbackRegistry: FrameCallbackRegistryUI = {\n frameCallbackRegistry: new Map<number, () => void>(),\n frameCallbackActive: new Set<number>(),\n isFrameCallbackRunning: false,\n\n runCallbacks() {\n const loop = () => {\n this.frameCallbackActive.forEach((key: number) => {\n const callback = this.frameCallbackRegistry.get(key);\n callback!();\n });\n\n if (this.frameCallbackActive.size > 0) {\n requestAnimationFrame(loop);\n } else {\n this.isFrameCallbackRunning = false;\n }\n };\n\n if (!this.isFrameCallbackRunning) {\n requestAnimationFrame(loop);\n this.isFrameCallbackRunning = true;\n }\n },\n\n registerFrameCallback(callback: () => void, callbackId: number) {\n this.frameCallbackRegistry.set(callbackId, callback);\n },\n\n unregisterFrameCallback(frameCallbackId: number) {\n this.manageStateFrameCallback(frameCallbackId, false);\n this.frameCallbackRegistry.delete(frameCallbackId);\n },\n\n manageStateFrameCallback(frameCallbackId: number, state: boolean) {\n if (frameCallbackId === -1) {\n return;\n }\n if (state) {\n this.frameCallbackActive.add(frameCallbackId);\n this.runCallbacks();\n } else {\n this.frameCallbackActive.delete(frameCallbackId);\n }\n },\n };\n\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,SAAxB;AAYA,OAAO,MAAMC,iBAAiB,GAAGD,OAAO,CAAC,MAAM;EAC7C;;EAEA,MAAME,qBAA8C,GAAG;IACrDA,qBAAqB,EAAE,IAAIC,GAAJ,EAD8B;IAErDC,mBAAmB,EAAE,IAAIC,GAAJ,EAFgC;IAGrDC,sBAAsB,EAAE,KAH6B;;IAKrDC,YAAY,GAAG;MACb,MAAMC,IAAI,GAAG,MAAM;QACjB,KAAKJ,mBAAL,CAAyBK,OAAzB,CAAkCC,GAAD,IAAiB;UAChD,MAAMC,QAAQ,GAAG,KAAKT,qBAAL,CAA2BU,GAA3B,CAA+BF,GAA/B,CAAjB;UACAC,QAAQ;QACT,CAHD;;QAKA,IAAI,KAAKP,mBAAL,CAAyBS,IAAzB,GAAgC,CAApC,EAAuC;UACrCC,qBAAqB,CAACN,IAAD,CAArB;QACD,CAFD,MAEO;UACL,KAAKF,sBAAL,GAA8B,KAA9B;QACD;MACF,CAXD;;MAaA,IAAI,CAAC,KAAKA,sBAAV,EAAkC;QAChCQ,qBAAqB,CAACN,IAAD,CAArB;QACA,KAAKF,sBAAL,GAA8B,IAA9B;MACD;IACF,CAvBoD;;IAyBrDS,qBAAqB,CAACJ,QAAD,EAAuBK,UAAvB,EAA2C;MAC9D,KAAKd,qBAAL,CAA2Be,GAA3B,CAA+BD,UAA/B,EAA2CL,QAA3C;IACD,CA3BoD;;IA6BrDO,uBAAuB,CAACC,eAAD,EAA0B;MAC/C,KAAKC,wBAAL,CAA8BD,eAA9B,EAA+C,KAA/C;MACA,KAAKjB,qBAAL,CAA2BmB,MAA3B,CAAkCF,eAAlC;IACD,CAhCoD;;IAkCrDC,wBAAwB,CAACD,eAAD,EAA0BG,KAA1B,EAA0C;MAChE,IAAIH,eAAe,KAAK,CAAC,CAAzB,EAA4B;QAC1B;MACD;;MACD,IAAIG,KAAJ,EAAW;QACT,KAAKlB,mBAAL,CAAyBmB,GAAzB,CAA6BJ,eAA7B;QACA,KAAKZ,YAAL;MACD,CAHD,MAGO;QACL,KAAKH,mBAAL,CAAyBiB,MAAzB,CAAgCF,eAAhC;MACD;IACF;;EA5CoD,CAAvD;EA+CAK,MAAM,CAACC,sBAAP,GAAgCvB,qBAAhC;AACD,CAnDuC,CAAjC"}
1
+ {"version":3,"names":["runOnUI","prepareUIRegistry","frameCallbackRegistry","Map","activeFrameCallbacks","Set","previousFrameTimestamp","runCallbacks","loop","timestamp","delta","forEach","callbackId","callbackDetails","get","startTime","callback","timeSincePreviousFrame","timeSinceFirstFrame","size","requestAnimationFrame","registerFrameCallback","set","unregisterFrameCallback","manageStateFrameCallback","delete","state","add","global","_frameCallbackRegistry"],"sources":["FrameCallbackRegistryUI.ts"],"sourcesContent":["import { runOnUI } from '../core';\n\ntype CallbackDetails = {\n callback: (frameInfo: FrameInfo) => void;\n startTime: number | null;\n};\n\nexport type FrameInfo = {\n timestamp: number;\n timeSincePreviousFrame: number | null;\n timeSinceFirstFrame: number;\n};\n\nexport interface FrameCallbackRegistryUI {\n frameCallbackRegistry: Map<number, CallbackDetails>;\n activeFrameCallbacks: Set<number>;\n previousFrameTimestamp: number | null;\n runCallbacks: () => void;\n registerFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) => void;\n unregisterFrameCallback: (callbackId: number) => void;\n manageStateFrameCallback: (callbackId: number, state: boolean) => void;\n}\n\nexport const prepareUIRegistry = runOnUI(() => {\n 'worklet';\n\n const frameCallbackRegistry: FrameCallbackRegistryUI = {\n frameCallbackRegistry: new Map<number, CallbackDetails>(),\n activeFrameCallbacks: new Set<number>(),\n previousFrameTimestamp: null,\n\n runCallbacks() {\n const loop = (timestamp: number) => {\n if (this.previousFrameTimestamp === null) {\n this.previousFrameTimestamp = timestamp;\n }\n\n const delta = timestamp - this.previousFrameTimestamp;\n\n this.activeFrameCallbacks.forEach((callbackId: number) => {\n const callbackDetails = this.frameCallbackRegistry.get(callbackId)!;\n\n const { startTime } = callbackDetails;\n\n if (startTime === null) {\n // First frame\n callbackDetails.startTime = timestamp;\n\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: null,\n timeSinceFirstFrame: 0,\n });\n } else {\n // Next frame\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: delta,\n timeSinceFirstFrame: timestamp - startTime,\n });\n }\n });\n\n if (this.activeFrameCallbacks.size > 0) {\n this.previousFrameTimestamp = timestamp;\n requestAnimationFrame(loop);\n } else {\n this.previousFrameTimestamp = null;\n }\n };\n\n // runCallback() should only be called after registering a callback,\n // so if there is only one active callback, then it means that there were\n // zero previously and the loop isn't running yet.\n if (this.activeFrameCallbacks.size === 1) {\n requestAnimationFrame(loop);\n }\n },\n\n registerFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) {\n this.frameCallbackRegistry.set(callbackId, {\n callback: callback,\n startTime: null,\n });\n },\n\n unregisterFrameCallback(callbackId: number) {\n this.manageStateFrameCallback(callbackId, false);\n this.frameCallbackRegistry.delete(callbackId);\n },\n\n manageStateFrameCallback(callbackId: number, state: boolean) {\n if (callbackId === -1) {\n return;\n }\n if (state) {\n this.activeFrameCallbacks.add(callbackId);\n this.runCallbacks();\n } else {\n const callback = this.frameCallbackRegistry.get(callbackId)!;\n callback.startTime = null;\n\n this.activeFrameCallbacks.delete(callbackId);\n }\n },\n };\n\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,SAAxB;AA0BA,OAAO,MAAMC,iBAAiB,GAAGD,OAAO,CAAC,MAAM;EAC7C;;EAEA,MAAME,qBAA8C,GAAG;IACrDA,qBAAqB,EAAE,IAAIC,GAAJ,EAD8B;IAErDC,oBAAoB,EAAE,IAAIC,GAAJ,EAF+B;IAGrDC,sBAAsB,EAAE,IAH6B;;IAKrDC,YAAY,GAAG;MACb,MAAMC,IAAI,GAAIC,SAAD,IAAuB;QAClC,IAAI,KAAKH,sBAAL,KAAgC,IAApC,EAA0C;UACxC,KAAKA,sBAAL,GAA8BG,SAA9B;QACD;;QAED,MAAMC,KAAK,GAAGD,SAAS,GAAG,KAAKH,sBAA/B;QAEA,KAAKF,oBAAL,CAA0BO,OAA1B,CAAmCC,UAAD,IAAwB;UACxD,MAAMC,eAAe,GAAG,KAAKX,qBAAL,CAA2BY,GAA3B,CAA+BF,UAA/B,CAAxB;UAEA,MAAM;YAAEG;UAAF,IAAgBF,eAAtB;;UAEA,IAAIE,SAAS,KAAK,IAAlB,EAAwB;YACtB;YACAF,eAAe,CAACE,SAAhB,GAA4BN,SAA5B;YAEAI,eAAe,CAACG,QAAhB,CAAyB;cACvBP,SADuB;cAEvBQ,sBAAsB,EAAE,IAFD;cAGvBC,mBAAmB,EAAE;YAHE,CAAzB;UAKD,CATD,MASO;YACL;YACAL,eAAe,CAACG,QAAhB,CAAyB;cACvBP,SADuB;cAEvBQ,sBAAsB,EAAEP,KAFD;cAGvBQ,mBAAmB,EAAET,SAAS,GAAGM;YAHV,CAAzB;UAKD;QACF,CAtBD;;QAwBA,IAAI,KAAKX,oBAAL,CAA0Be,IAA1B,GAAiC,CAArC,EAAwC;UACtC,KAAKb,sBAAL,GAA8BG,SAA9B;UACAW,qBAAqB,CAACZ,IAAD,CAArB;QACD,CAHD,MAGO;UACL,KAAKF,sBAAL,GAA8B,IAA9B;QACD;MACF,CArCD,CADa,CAwCb;MACA;MACA;;;MACA,IAAI,KAAKF,oBAAL,CAA0Be,IAA1B,KAAmC,CAAvC,EAA0C;QACxCC,qBAAqB,CAACZ,IAAD,CAArB;MACD;IACF,CAnDoD;;IAqDrDa,qBAAqB,CACnBL,QADmB,EAEnBJ,UAFmB,EAGnB;MACA,KAAKV,qBAAL,CAA2BoB,GAA3B,CAA+BV,UAA/B,EAA2C;QACzCI,QAAQ,EAAEA,QAD+B;QAEzCD,SAAS,EAAE;MAF8B,CAA3C;IAID,CA7DoD;;IA+DrDQ,uBAAuB,CAACX,UAAD,EAAqB;MAC1C,KAAKY,wBAAL,CAA8BZ,UAA9B,EAA0C,KAA1C;MACA,KAAKV,qBAAL,CAA2BuB,MAA3B,CAAkCb,UAAlC;IACD,CAlEoD;;IAoErDY,wBAAwB,CAACZ,UAAD,EAAqBc,KAArB,EAAqC;MAC3D,IAAId,UAAU,KAAK,CAAC,CAApB,EAAuB;QACrB;MACD;;MACD,IAAIc,KAAJ,EAAW;QACT,KAAKtB,oBAAL,CAA0BuB,GAA1B,CAA8Bf,UAA9B;QACA,KAAKL,YAAL;MACD,CAHD,MAGO;QACL,MAAMS,QAAQ,GAAG,KAAKd,qBAAL,CAA2BY,GAA3B,CAA+BF,UAA/B,CAAjB;QACAI,QAAQ,CAACD,SAAT,GAAqB,IAArB;QAEA,KAAKX,oBAAL,CAA0BqB,MAA1B,CAAiCb,UAAjC;MACD;IACF;;EAjFoD,CAAvD;EAoFAgB,MAAM,CAACC,sBAAP,GAAgC3B,qBAAhC;AACD,CAxFuC,CAAjC"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["globals.d.ts"],"sourcesContent":["import { AnimatedStyle, StyleProps } from './commonTypes';\nimport { ReanimatedConsole } from './core';\nimport { FrameCallbackRegistryUI } from './frameCallback/FrameCallbackRegistryUI';\nimport { ShadowNodeWrapper } from './hook/commonTypes';\nimport { MeasuredDimensions } from './NativeMethods';\nimport { NativeReanimated } from './NativeReanimated/NativeReanimated';\ndeclare global {\n const _WORKLET: boolean;\n const _IS_FABRIC: boolean;\n const _frameTimestamp: number;\n const _eventTimestamp: number;\n const _setGlobalConsole: (console?: ReanimatedConsole) => void;\n const _getCurrentTime: () => number;\n const _stopObservingProgress: (tag: number, flag: boolean) => void;\n const _startObservingProgress: (\n tag: number,\n flag: { value: boolean; _value: boolean }\n ) => void;\n const _setGestureState: (handlerTag: number, newState: number) => void;\n const _updatePropsPaper: (\n tag: number,\n name: string,\n updates: StyleProps | AnimatedStyle\n ) => void;\n const _updatePropsFabric: (\n shadowNodeWrapper: ShadowNodeWrapper,\n props: StyleProps | AnimatedStyle\n ) => void;\n const _removeShadowNodeFromRegistry: (\n shadowNodeWrapper: ShadowNodeWrapper\n ) => void;\n const _measure: (viewTag: number) => MeasuredDimensions;\n const _scrollTo: (\n viewTag: number,\n x: number,\n y: number,\n animated: boolean\n ) => void;\n const _dispatchCommand: (\n shadowNodeWrapper: ShadowNodeWrapper,\n commandName: string,\n args: Array<unknown>\n ) => void;\n const _chronoNow: () => number;\n const ReanimatedDataMock: {\n now: () => number;\n };\n const _frameCallbackRegistry: FrameCallbackRegistryUI;\n namespace NodeJS {\n interface Global {\n _setGlobalConsole: (console?: ReanimatedConsole) => void;\n _log: (s: string) => void;\n _setGestureState: () => void;\n _WORKLET: boolean;\n _IS_FABRIC: boolean;\n __reanimatedModuleProxy: NativeReanimated;\n _frameTimestamp: number | null;\n _measure: () => MeasuredDimensions;\n _scrollTo: () => void;\n _dispatchCommand: () => void;\n _chronoNow: () => number;\n performance: { now: () => number };\n LayoutAnimationRepository: {\n configs: Record<string, unknown>;\n registerConfig(tag: number, config: Record<string, unknown>): void;\n removeConfig(tag: number): void;\n startAnimationForTag(\n tag: number,\n type: string,\n yogaValues: unknown\n ): void;\n };\n ReanimatedDataMock: {\n now: () => number;\n };\n _frameCallbackRegistry: FrameCallbackRegistryUI;\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["globals.d.ts"],"sourcesContent":["import type {\n AnimatedStyle,\n StyleProps,\n MeasuredDimensions,\n} from './commonTypes';\nimport type { ReanimatedConsole } from './core';\nimport type { FrameCallbackRegistryUI } from './frameCallback/FrameCallbackRegistryUI';\nimport type { ShadowNodeWrapper } from './hook/commonTypes';\nimport type { NativeReanimated } from './NativeReanimated/NativeReanimated';\n\ndeclare global {\n const _WORKLET: boolean;\n const _IS_FABRIC: boolean;\n const _frameTimestamp: number | null;\n const _eventTimestamp: number;\n const __reanimatedModuleProxy: NativeReanimated;\n const _setGlobalConsole: (console?: ReanimatedConsole) => void;\n const _log: (s: string) => void;\n const _getCurrentTime: () => number;\n const _stopObservingProgress: (tag: number, flag: boolean) => void;\n const _startObservingProgress: (\n tag: number,\n flag: { value: boolean; _value: boolean }\n ) => void;\n const _setGestureState: (handlerTag: number, newState: number) => void;\n const _updatePropsPaper: (\n tag: number,\n name: string,\n updates: StyleProps | AnimatedStyle\n ) => void;\n const _updatePropsFabric: (\n shadowNodeWrapper: ShadowNodeWrapper,\n props: StyleProps | AnimatedStyle\n ) => void;\n const _removeShadowNodeFromRegistry: (\n shadowNodeWrapper: ShadowNodeWrapper\n ) => void;\n const _measure: (viewTag: number) => MeasuredDimensions;\n const _scrollTo: (\n viewTag: number,\n x: number,\n y: number,\n animated: boolean\n ) => void;\n const _dispatchCommand: (\n shadowNodeWrapper: ShadowNodeWrapper,\n commandName: string,\n args: Array<unknown>\n ) => void;\n const _chronoNow: () => number;\n const performance: { now: () => number };\n const LayoutAnimationRepository: {\n configs: Record<string, unknown>;\n registerConfig(tag: number, config: Record<string, unknown>): void;\n removeConfig(tag: number): void;\n startAnimationForTag(tag: number, type: string, yogaValues: unknown): void;\n };\n const ReanimatedDataMock: {\n now: () => number;\n };\n const _frameCallbackRegistry: FrameCallbackRegistryUI;\n\n namespace NodeJS {\n interface Global {\n _WORKLET: boolean;\n _IS_FABRIC: boolean;\n _frameTimestamp: number | null;\n _eventTimestamp: number;\n __reanimatedModuleProxy: NativeReanimated;\n _setGlobalConsole: (console?: ReanimatedConsole) => void;\n _log: (s: string) => void;\n _getCurrentTime: () => number;\n _stopObservingProgress: (tag: number, flag: boolean) => void;\n _startObservingProgress: (\n tag: number,\n flag: { value: boolean; _value: boolean }\n ) => void;\n _setGestureState: (handlerTag: number, newState: number) => void;\n _updatePropsPaper: (\n tag: number,\n name: string,\n updates: StyleProps | AnimatedStyle\n ) => void;\n _updatePropsFabric: (\n shadowNodeWrapper: ShadowNodeWrapper,\n props: StyleProps | AnimatedStyle\n ) => void;\n _removeShadowNodeFromRegistry: (\n shadowNodeWrapper: ShadowNodeWrapper\n ) => void;\n _measure: (viewTag: number) => MeasuredDimensions;\n _scrollTo: (\n viewTag: number,\n x: number,\n y: number,\n animated: boolean\n ) => void;\n _dispatchCommand: (\n shadowNodeWrapper: ShadowNodeWrapper,\n commandName: string,\n args: Array<unknown>\n ) => void;\n _chronoNow: () => number;\n performance: { now: () => number };\n LayoutAnimationRepository: {\n configs: Record<string, unknown>;\n registerConfig(tag: number, config: Record<string, unknown>): void;\n removeConfig(tag: number): void;\n startAnimationForTag(\n tag: number,\n type: string,\n yogaValues: unknown\n ): void;\n };\n ReanimatedDataMock: {\n now: () => number;\n };\n _frameCallbackRegistry: FrameCallbackRegistryUI;\n }\n }\n}\n"],"mappings":""}
@@ -9,4 +9,5 @@ export { useDerivedValue } from './useDerivedValue';
9
9
  export { useAnimatedSensor, SensorType } from './useAnimatedSensor';
10
10
  export { useFrameCallback } from './useFrameCallback';
11
11
  export { useAnimatedKeyboard } from './useAnimatedKeyboard';
12
+ export { useScrollViewOffset } from './useScrollViewOffset';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useAnimatedProps","useEvent","useHandler","useWorkletCallback","useSharedValue","useAnimatedStyle","useAnimatedGestureHandler","useAnimatedReaction","useAnimatedRef","useAnimatedScrollHandler","useDerivedValue","useAnimatedSensor","SensorType","useFrameCallback","useAnimatedKeyboard"],"sources":["index.ts"],"sourcesContent":["export type { DependencyList } from './commonTypes';\nexport {\n useAnimatedProps,\n useEvent,\n useHandler,\n useWorkletCallback,\n} from './Hooks';\nexport { useSharedValue } from './useSharedValue';\nexport { useAnimatedStyle } from './useAnimatedStyle';\nexport type { AnimatedStyleResult } from './useAnimatedStyle';\nexport { useAnimatedGestureHandler } from './useAnimatedGestureHandler';\nexport type {\n GestureHandlerEvent,\n GestureHandlers,\n} from './useAnimatedGestureHandler';\nexport { useAnimatedReaction } from './useAnimatedReaction';\nexport type { AnimatedReactionWorkletFunction } from './useAnimatedReaction';\nexport { useAnimatedRef } from './useAnimatedRef';\nexport { useAnimatedScrollHandler } from './useAnimatedScrollHandler';\nexport type { ScrollHandler, ScrollHandlers } from './useAnimatedScrollHandler';\nexport { useDerivedValue } from './useDerivedValue';\nexport type { DerivedValue } from './useDerivedValue';\nexport { useAnimatedSensor, SensorType } from './useAnimatedSensor';\nexport { useFrameCallback } from './useFrameCallback';\nexport type { FrameCallback } from './useFrameCallback';\nexport { useAnimatedKeyboard } from './useAnimatedKeyboard';\n"],"mappings":"AACA,SACEA,gBADF,EAEEC,QAFF,EAGEC,UAHF,EAIEC,kBAJF,QAKO,SALP;AAMA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AAEA,SAASC,yBAAT,QAA0C,6BAA1C;AAKA,SAASC,mBAAT,QAAoC,uBAApC;AAEA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,wBAAT,QAAyC,4BAAzC;AAEA,SAASC,eAAT,QAAgC,mBAAhC;AAEA,SAASC,iBAAT,EAA4BC,UAA5B,QAA8C,qBAA9C;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AAEA,SAASC,mBAAT,QAAoC,uBAApC"}
1
+ {"version":3,"names":["useAnimatedProps","useEvent","useHandler","useWorkletCallback","useSharedValue","useAnimatedStyle","useAnimatedGestureHandler","useAnimatedReaction","useAnimatedRef","useAnimatedScrollHandler","useDerivedValue","useAnimatedSensor","SensorType","useFrameCallback","useAnimatedKeyboard","useScrollViewOffset"],"sources":["index.ts"],"sourcesContent":["export type { DependencyList } from './commonTypes';\nexport {\n useAnimatedProps,\n useEvent,\n useHandler,\n useWorkletCallback,\n} from './Hooks';\nexport { useSharedValue } from './useSharedValue';\nexport { useAnimatedStyle } from './useAnimatedStyle';\nexport type { AnimatedStyleResult } from './useAnimatedStyle';\nexport { useAnimatedGestureHandler } from './useAnimatedGestureHandler';\nexport type {\n GestureHandlerEvent,\n GestureHandlers,\n} from './useAnimatedGestureHandler';\nexport { useAnimatedReaction } from './useAnimatedReaction';\nexport type { AnimatedReactionWorkletFunction } from './useAnimatedReaction';\nexport { useAnimatedRef } from './useAnimatedRef';\nexport { useAnimatedScrollHandler } from './useAnimatedScrollHandler';\nexport type { ScrollHandler, ScrollHandlers } from './useAnimatedScrollHandler';\nexport { useDerivedValue } from './useDerivedValue';\nexport type { DerivedValue } from './useDerivedValue';\nexport { useAnimatedSensor, SensorType } from './useAnimatedSensor';\nexport { useFrameCallback } from './useFrameCallback';\nexport type { FrameCallback } from './useFrameCallback';\nexport { useAnimatedKeyboard } from './useAnimatedKeyboard';\nexport { useScrollViewOffset } from './useScrollViewOffset';\n"],"mappings":"AACA,SACEA,gBADF,EAEEC,QAFF,EAGEC,UAHF,EAIEC,kBAJF,QAKO,SALP;AAMA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AAEA,SAASC,yBAAT,QAA0C,6BAA1C;AAKA,SAASC,mBAAT,QAAoC,uBAApC;AAEA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,wBAAT,QAAyC,4BAAzC;AAEA,SAASC,eAAT,QAAgC,mBAAhC;AAEA,SAASC,iBAAT,EAA4BC,UAA5B,QAA8C,qBAA9C;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AAEA,SAASC,mBAAT,QAAoC,uBAApC;AACA,SAASC,mBAAT,QAAoC,uBAApC"}
@@ -1 +1 @@
1
- {"version":3,"names":["useEvent","useHandler","useAnimatedScrollHandler","handlers","dependencies","scrollHandlers","onScroll","context","doDependenciesDiffer","subscribeForEvents","onBeginDrag","undefined","push","onEndDrag","onMomentumBegin","onMomentumEnd","event","eventName","endsWith"],"sources":["useAnimatedScrollHandler.ts"],"sourcesContent":["import { RefObject } from 'react';\nimport { NativeScrollEvent } from 'react-native';\nimport { Context, NativeEvent, WorkletFunction } from '../commonTypes';\nimport WorkletEventHandler from '../WorkletEventHandler';\nimport { DependencyList } from './commonTypes';\nimport { useEvent, useHandler } from './Hooks';\n\nexport interface ScrollHandler<TContext extends Context>\n extends WorkletFunction {\n (event: NativeScrollEvent, context?: TContext): void;\n}\n\ninterface ScrollEvent extends NativeScrollEvent, NativeEvent<ScrollEvent> {\n eventName: string;\n}\nexport interface ScrollHandlers<TContext extends Context> {\n [key: string]: ScrollHandler<TContext> | undefined;\n onScroll?: ScrollHandler<TContext>;\n onBeginDrag?: ScrollHandler<TContext>;\n onEndDrag?: ScrollHandler<TContext>;\n onMomentumBegin?: ScrollHandler<TContext>;\n onMomentumEnd?: ScrollHandler<TContext>;\n}\n\nexport function useAnimatedScrollHandler<TContext extends Context>(\n handlers: ScrollHandlers<TContext> | ScrollHandler<TContext>,\n dependencies?: DependencyList\n): RefObject<WorkletEventHandler<ScrollEvent>> {\n // case when handlers is a function\n const scrollHandlers: ScrollHandlers<TContext> =\n typeof handlers === 'function' ? { onScroll: handlers } : handlers;\n const { context, doDependenciesDiffer } = useHandler<ScrollEvent, TContext>(\n scrollHandlers,\n dependencies\n );\n\n // build event subscription array\n const subscribeForEvents = ['onScroll'];\n if (scrollHandlers.onBeginDrag !== undefined) {\n subscribeForEvents.push('onScrollBeginDrag');\n }\n if (scrollHandlers.onEndDrag !== undefined) {\n subscribeForEvents.push('onScrollEndDrag');\n }\n if (scrollHandlers.onMomentumBegin !== undefined) {\n subscribeForEvents.push('onMomentumScrollBegin');\n }\n if (scrollHandlers.onMomentumEnd !== undefined) {\n subscribeForEvents.push('onMomentumScrollEnd');\n }\n\n return useEvent<ScrollEvent>(\n (event: ScrollEvent) => {\n 'worklet';\n const {\n onScroll,\n onBeginDrag,\n onEndDrag,\n onMomentumBegin,\n onMomentumEnd,\n } = scrollHandlers;\n if (onScroll && event.eventName.endsWith('onScroll')) {\n onScroll(event, context);\n } else if (onBeginDrag && event.eventName.endsWith('onScrollBeginDrag')) {\n onBeginDrag(event, context);\n } else if (onEndDrag && event.eventName.endsWith('onScrollEndDrag')) {\n onEndDrag(event, context);\n } else if (\n onMomentumBegin &&\n event.eventName.endsWith('onMomentumScrollBegin')\n ) {\n onMomentumBegin(event, context);\n } else if (\n onMomentumEnd &&\n event.eventName.endsWith('onMomentumScrollEnd')\n ) {\n onMomentumEnd(event, context);\n }\n },\n subscribeForEvents,\n doDependenciesDiffer\n );\n}\n"],"mappings":"AAKA,SAASA,QAAT,EAAmBC,UAAnB,QAAqC,SAArC;AAmBA,OAAO,SAASC,wBAAT,CACLC,QADK,EAELC,YAFK,EAGwC;EAC7C;EACA,MAAMC,cAAwC,GAC5C,OAAOF,QAAP,KAAoB,UAApB,GAAiC;IAAEG,QAAQ,EAAEH;EAAZ,CAAjC,GAA0DA,QAD5D;EAEA,MAAM;IAAEI,OAAF;IAAWC;EAAX,IAAoCP,UAAU,CAClDI,cADkD,EAElDD,YAFkD,CAApD,CAJ6C,CAS7C;;EACA,MAAMK,kBAAkB,GAAG,CAAC,UAAD,CAA3B;;EACA,IAAIJ,cAAc,CAACK,WAAf,KAA+BC,SAAnC,EAA8C;IAC5CF,kBAAkB,CAACG,IAAnB,CAAwB,mBAAxB;EACD;;EACD,IAAIP,cAAc,CAACQ,SAAf,KAA6BF,SAAjC,EAA4C;IAC1CF,kBAAkB,CAACG,IAAnB,CAAwB,iBAAxB;EACD;;EACD,IAAIP,cAAc,CAACS,eAAf,KAAmCH,SAAvC,EAAkD;IAChDF,kBAAkB,CAACG,IAAnB,CAAwB,uBAAxB;EACD;;EACD,IAAIP,cAAc,CAACU,aAAf,KAAiCJ,SAArC,EAAgD;IAC9CF,kBAAkB,CAACG,IAAnB,CAAwB,qBAAxB;EACD;;EAED,OAAOZ,QAAQ,CACZgB,KAAD,IAAwB;IACtB;;IACA,MAAM;MACJV,QADI;MAEJI,WAFI;MAGJG,SAHI;MAIJC,eAJI;MAKJC;IALI,IAMFV,cANJ;;IAOA,IAAIC,QAAQ,IAAIU,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,UAAzB,CAAhB,EAAsD;MACpDZ,QAAQ,CAACU,KAAD,EAAQT,OAAR,CAAR;IACD,CAFD,MAEO,IAAIG,WAAW,IAAIM,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,mBAAzB,CAAnB,EAAkE;MACvER,WAAW,CAACM,KAAD,EAAQT,OAAR,CAAX;IACD,CAFM,MAEA,IAAIM,SAAS,IAAIG,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,iBAAzB,CAAjB,EAA8D;MACnEL,SAAS,CAACG,KAAD,EAAQT,OAAR,CAAT;IACD,CAFM,MAEA,IACLO,eAAe,IACfE,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,uBAAzB,CAFK,EAGL;MACAJ,eAAe,CAACE,KAAD,EAAQT,OAAR,CAAf;IACD,CALM,MAKA,IACLQ,aAAa,IACbC,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,qBAAzB,CAFK,EAGL;MACAH,aAAa,CAACC,KAAD,EAAQT,OAAR,CAAb;IACD;EACF,CA3BY,EA4BbE,kBA5Ba,EA6BbD,oBA7Ba,CAAf;AA+BD"}
1
+ {"version":3,"names":["useEvent","useHandler","useAnimatedScrollHandler","handlers","dependencies","scrollHandlers","onScroll","context","doDependenciesDiffer","subscribeForEvents","onBeginDrag","undefined","push","onEndDrag","onMomentumBegin","onMomentumEnd","event","eventName","endsWith"],"sources":["useAnimatedScrollHandler.ts"],"sourcesContent":["import { RefObject } from 'react';\nimport { NativeScrollEvent } from 'react-native';\nimport { Context, NativeEvent, WorkletFunction } from '../commonTypes';\nimport WorkletEventHandler from '../WorkletEventHandler';\nimport { DependencyList } from './commonTypes';\nimport { useEvent, useHandler } from './Hooks';\n\nexport interface ScrollHandler<TContext extends Context>\n extends WorkletFunction {\n (event: NativeScrollEvent, context?: TContext): void;\n}\n\nexport interface ScrollEvent\n extends NativeScrollEvent,\n NativeEvent<ScrollEvent> {\n eventName: string;\n}\nexport interface ScrollHandlers<TContext extends Context> {\n [key: string]: ScrollHandler<TContext> | undefined;\n onScroll?: ScrollHandler<TContext>;\n onBeginDrag?: ScrollHandler<TContext>;\n onEndDrag?: ScrollHandler<TContext>;\n onMomentumBegin?: ScrollHandler<TContext>;\n onMomentumEnd?: ScrollHandler<TContext>;\n}\n\nexport function useAnimatedScrollHandler<TContext extends Context>(\n handlers: ScrollHandlers<TContext> | ScrollHandler<TContext>,\n dependencies?: DependencyList\n): RefObject<WorkletEventHandler<ScrollEvent>> {\n // case when handlers is a function\n const scrollHandlers: ScrollHandlers<TContext> =\n typeof handlers === 'function' ? { onScroll: handlers } : handlers;\n const { context, doDependenciesDiffer } = useHandler<ScrollEvent, TContext>(\n scrollHandlers,\n dependencies\n );\n\n // build event subscription array\n const subscribeForEvents = ['onScroll'];\n if (scrollHandlers.onBeginDrag !== undefined) {\n subscribeForEvents.push('onScrollBeginDrag');\n }\n if (scrollHandlers.onEndDrag !== undefined) {\n subscribeForEvents.push('onScrollEndDrag');\n }\n if (scrollHandlers.onMomentumBegin !== undefined) {\n subscribeForEvents.push('onMomentumScrollBegin');\n }\n if (scrollHandlers.onMomentumEnd !== undefined) {\n subscribeForEvents.push('onMomentumScrollEnd');\n }\n\n return useEvent<ScrollEvent>(\n (event: ScrollEvent) => {\n 'worklet';\n const {\n onScroll,\n onBeginDrag,\n onEndDrag,\n onMomentumBegin,\n onMomentumEnd,\n } = scrollHandlers;\n if (onScroll && event.eventName.endsWith('onScroll')) {\n onScroll(event, context);\n } else if (onBeginDrag && event.eventName.endsWith('onScrollBeginDrag')) {\n onBeginDrag(event, context);\n } else if (onEndDrag && event.eventName.endsWith('onScrollEndDrag')) {\n onEndDrag(event, context);\n } else if (\n onMomentumBegin &&\n event.eventName.endsWith('onMomentumScrollBegin')\n ) {\n onMomentumBegin(event, context);\n } else if (\n onMomentumEnd &&\n event.eventName.endsWith('onMomentumScrollEnd')\n ) {\n onMomentumEnd(event, context);\n }\n },\n subscribeForEvents,\n doDependenciesDiffer\n );\n}\n"],"mappings":"AAKA,SAASA,QAAT,EAAmBC,UAAnB,QAAqC,SAArC;AAqBA,OAAO,SAASC,wBAAT,CACLC,QADK,EAELC,YAFK,EAGwC;EAC7C;EACA,MAAMC,cAAwC,GAC5C,OAAOF,QAAP,KAAoB,UAApB,GAAiC;IAAEG,QAAQ,EAAEH;EAAZ,CAAjC,GAA0DA,QAD5D;EAEA,MAAM;IAAEI,OAAF;IAAWC;EAAX,IAAoCP,UAAU,CAClDI,cADkD,EAElDD,YAFkD,CAApD,CAJ6C,CAS7C;;EACA,MAAMK,kBAAkB,GAAG,CAAC,UAAD,CAA3B;;EACA,IAAIJ,cAAc,CAACK,WAAf,KAA+BC,SAAnC,EAA8C;IAC5CF,kBAAkB,CAACG,IAAnB,CAAwB,mBAAxB;EACD;;EACD,IAAIP,cAAc,CAACQ,SAAf,KAA6BF,SAAjC,EAA4C;IAC1CF,kBAAkB,CAACG,IAAnB,CAAwB,iBAAxB;EACD;;EACD,IAAIP,cAAc,CAACS,eAAf,KAAmCH,SAAvC,EAAkD;IAChDF,kBAAkB,CAACG,IAAnB,CAAwB,uBAAxB;EACD;;EACD,IAAIP,cAAc,CAACU,aAAf,KAAiCJ,SAArC,EAAgD;IAC9CF,kBAAkB,CAACG,IAAnB,CAAwB,qBAAxB;EACD;;EAED,OAAOZ,QAAQ,CACZgB,KAAD,IAAwB;IACtB;;IACA,MAAM;MACJV,QADI;MAEJI,WAFI;MAGJG,SAHI;MAIJC,eAJI;MAKJC;IALI,IAMFV,cANJ;;IAOA,IAAIC,QAAQ,IAAIU,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,UAAzB,CAAhB,EAAsD;MACpDZ,QAAQ,CAACU,KAAD,EAAQT,OAAR,CAAR;IACD,CAFD,MAEO,IAAIG,WAAW,IAAIM,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,mBAAzB,CAAnB,EAAkE;MACvER,WAAW,CAACM,KAAD,EAAQT,OAAR,CAAX;IACD,CAFM,MAEA,IAAIM,SAAS,IAAIG,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,iBAAzB,CAAjB,EAA8D;MACnEL,SAAS,CAACG,KAAD,EAAQT,OAAR,CAAT;IACD,CAFM,MAEA,IACLO,eAAe,IACfE,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,uBAAzB,CAFK,EAGL;MACAJ,eAAe,CAACE,KAAD,EAAQT,OAAR,CAAf;IACD,CALM,MAKA,IACLQ,aAAa,IACbC,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,qBAAzB,CAFK,EAGL;MACAH,aAAa,CAACC,KAAD,EAAQT,OAAR,CAAb;IACD;EACF,CA3BY,EA4BbE,kBA5Ba,EA6BbD,oBA7Ba,CAAf;AA+BD"}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","FrameCallbackRegistryJS","frameCallbackRegistry","useFrameCallback","callback","autostart","ref","setActive","isActive","manageStateFrameCallback","current","callbackId","registerFrameCallback","unregisterFrameCallback"],"sources":["useFrameCallback.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\n\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\nexport function useFrameCallback(\n callback: () => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AACA,OAAOC,uBAAP,MAAoC,0CAApC;AAOA,MAAMC,qBAAqB,GAAG,IAAID,uBAAJ,EAA9B;AAEA,OAAO,SAASE,gBAAT,CACLC,QADK,EAGU;EAAA,IADfC,SACe,uEADH,IACG;EACf,MAAMC,GAAG,GAAGN,MAAM,CAAgB;IAChCO,SAAS,EAAGC,QAAD,IAAuB;MAChCN,qBAAqB,CAACO,wBAAtB,CACEH,GAAG,CAACI,OAAJ,CAAYC,UADd,EAEEH,QAFF;MAIAF,GAAG,CAACI,OAAJ,CAAYF,QAAZ,GAAuBA,QAAvB;IACD,CAP+B;IAQhCA,QAAQ,EAAEH,SARsB;IAShCM,UAAU,EAAE,CAAC;EATmB,CAAhB,CAAlB;EAYAZ,SAAS,CAAC,MAAM;IACdO,GAAG,CAACI,OAAJ,CAAYC,UAAZ,GACET,qBAAqB,CAACU,qBAAtB,CAA4CR,QAA5C,CADF;IAEAE,GAAG,CAACI,OAAJ,CAAYH,SAAZ,CAAsBD,GAAG,CAACI,OAAJ,CAAYF,QAAlC;IAEA,OAAO,MAAM;MACXN,qBAAqB,CAACW,uBAAtB,CAA8CP,GAAG,CAACI,OAAJ,CAAYC,UAA1D;MACAL,GAAG,CAACI,OAAJ,CAAYC,UAAZ,GAAyB,CAAC,CAA1B;IACD,CAHD;EAID,CATQ,EASN,CAACP,QAAD,EAAWC,SAAX,CATM,CAAT;EAWA,OAAOC,GAAG,CAACI,OAAX;AACD"}
1
+ {"version":3,"names":["useEffect","useRef","FrameCallbackRegistryJS","frameCallbackRegistry","useFrameCallback","callback","autostart","ref","setActive","isActive","manageStateFrameCallback","current","callbackId","registerFrameCallback","unregisterFrameCallback"],"sources":["useFrameCallback.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nimport { FrameInfo } from '../frameCallback/FrameCallbackRegistryUI';\n\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\nexport function useFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AACA,OAAOC,uBAAP,MAAoC,0CAApC;AAQA,MAAMC,qBAAqB,GAAG,IAAID,uBAAJ,EAA9B;AAEA,OAAO,SAASE,gBAAT,CACLC,QADK,EAGU;EAAA,IADfC,SACe,uEADH,IACG;EACf,MAAMC,GAAG,GAAGN,MAAM,CAAgB;IAChCO,SAAS,EAAGC,QAAD,IAAuB;MAChCN,qBAAqB,CAACO,wBAAtB,CACEH,GAAG,CAACI,OAAJ,CAAYC,UADd,EAEEH,QAFF;MAIAF,GAAG,CAACI,OAAJ,CAAYF,QAAZ,GAAuBA,QAAvB;IACD,CAP+B;IAQhCA,QAAQ,EAAEH,SARsB;IAShCM,UAAU,EAAE,CAAC;EATmB,CAAhB,CAAlB;EAYAZ,SAAS,CAAC,MAAM;IACdO,GAAG,CAACI,OAAJ,CAAYC,UAAZ,GACET,qBAAqB,CAACU,qBAAtB,CAA4CR,QAA5C,CADF;IAEAE,GAAG,CAACI,OAAJ,CAAYH,SAAZ,CAAsBD,GAAG,CAACI,OAAJ,CAAYF,QAAlC;IAEA,OAAO,MAAM;MACXN,qBAAqB,CAACW,uBAAtB,CAA8CP,GAAG,CAACI,OAAJ,CAAYC,UAA1D;MACAL,GAAG,CAACI,OAAJ,CAAYC,UAAZ,GAAyB,CAAC,CAA1B;IACD,CAHD;EAID,CATQ,EASN,CAACP,QAAD,EAAWC,SAAX,CATM,CAAT;EAWA,OAAOC,GAAG,CAACI,OAAX;AACD"}
@@ -0,0 +1,21 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { findNodeHandle } from 'react-native';
3
+ import { useEvent } from './utils';
4
+ import { useSharedValue } from './useSharedValue';
5
+ const subscribeForEvents = ['onScroll', 'onScrollBeginDrag', 'onScrollEndDrag', 'onMomentumScrollBegin', 'onMomentumScrollEnd'];
6
+ export function useScrollViewOffset(aref) {
7
+ const offsetRef = useRef(useSharedValue(0));
8
+ const event = useEvent(event => {
9
+ 'worklet';
10
+
11
+ offsetRef.current.value = event.contentOffset.x === 0 ? event.contentOffset.y : event.contentOffset.x;
12
+ }, subscribeForEvents);
13
+ useEffect(() => {
14
+ var _event$current;
15
+
16
+ const viewTag = findNodeHandle(aref.current);
17
+ (_event$current = event.current) === null || _event$current === void 0 ? void 0 : _event$current.registerForEvents(viewTag);
18
+ }, [aref.current]);
19
+ return offsetRef.current;
20
+ }
21
+ //# sourceMappingURL=useScrollViewOffset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","findNodeHandle","useEvent","useSharedValue","subscribeForEvents","useScrollViewOffset","aref","offsetRef","event","current","value","contentOffset","x","y","viewTag","registerForEvents"],"sources":["useScrollViewOffset.ts"],"sourcesContent":["import { RefObject, useEffect, useRef } from 'react';\n\nimport type Animated from 'react-native-reanimated';\nimport { ScrollEvent } from './useAnimatedScrollHandler';\nimport { SharedValue } from '../commonTypes';\nimport { findNodeHandle } from 'react-native';\nimport { useEvent } from './utils';\nimport { useSharedValue } from './useSharedValue';\n\nconst subscribeForEvents = [\n 'onScroll',\n 'onScrollBeginDrag',\n 'onScrollEndDrag',\n 'onMomentumScrollBegin',\n 'onMomentumScrollEnd',\n];\n\nexport function useScrollViewOffset(\n aref: RefObject<Animated.ScrollView>\n): SharedValue<number> {\n const offsetRef = useRef(useSharedValue(0));\n\n const event = useEvent<ScrollEvent>((event: ScrollEvent) => {\n 'worklet';\n offsetRef.current.value =\n event.contentOffset.x === 0\n ? event.contentOffset.y\n : event.contentOffset.x;\n }, subscribeForEvents);\n\n useEffect(() => {\n const viewTag = findNodeHandle(aref.current);\n event.current?.registerForEvents(viewTag as number);\n }, [aref.current]);\n\n return offsetRef.current;\n}\n"],"mappings":"AAAA,SAAoBA,SAApB,EAA+BC,MAA/B,QAA6C,OAA7C;AAKA,SAASC,cAAT,QAA+B,cAA/B;AACA,SAASC,QAAT,QAAyB,SAAzB;AACA,SAASC,cAAT,QAA+B,kBAA/B;AAEA,MAAMC,kBAAkB,GAAG,CACzB,UADyB,EAEzB,mBAFyB,EAGzB,iBAHyB,EAIzB,uBAJyB,EAKzB,qBALyB,CAA3B;AAQA,OAAO,SAASC,mBAAT,CACLC,IADK,EAEgB;EACrB,MAAMC,SAAS,GAAGP,MAAM,CAACG,cAAc,CAAC,CAAD,CAAf,CAAxB;EAEA,MAAMK,KAAK,GAAGN,QAAQ,CAAeM,KAAD,IAAwB;IAC1D;;IACAD,SAAS,CAACE,OAAV,CAAkBC,KAAlB,GACEF,KAAK,CAACG,aAAN,CAAoBC,CAApB,KAA0B,CAA1B,GACIJ,KAAK,CAACG,aAAN,CAAoBE,CADxB,GAEIL,KAAK,CAACG,aAAN,CAAoBC,CAH1B;EAID,CANqB,EAMnBR,kBANmB,CAAtB;EAQAL,SAAS,CAAC,MAAM;IAAA;;IACd,MAAMe,OAAO,GAAGb,cAAc,CAACK,IAAI,CAACG,OAAN,CAA9B;IACA,kBAAAD,KAAK,CAACC,OAAN,kEAAeM,iBAAf,CAAiCD,OAAjC;EACD,CAHQ,EAGN,CAACR,IAAI,CAACG,OAAN,CAHM,CAAT;EAKA,OAAOF,SAAS,CAACE,OAAjB;AACD"}
@@ -1,11 +1,21 @@
1
1
  import { measure } from './NativeMethods';
2
- export function getRelativeCoords(parentRef, x, y) {
2
+
3
+ /**
4
+ * Given an absolute position and a component ref, returns the relative
5
+ * position in the component's local coordinate space.
6
+ */
7
+ export function getRelativeCoords(parentRef, absoluteX, absoluteY) {
3
8
  'worklet';
4
9
 
5
10
  const parentCoords = measure(parentRef);
11
+
12
+ if (parentCoords === null) {
13
+ return null;
14
+ }
15
+
6
16
  return {
7
- x: x - parentCoords.x,
8
- y: y - parentCoords.y
17
+ x: absoluteX - parentCoords.x,
18
+ y: absoluteY - parentCoords.y
9
19
  };
10
20
  }
11
21
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["measure","getRelativeCoords","parentRef","x","y","parentCoords"],"sources":["utils.ts"],"sourcesContent":["import { Component } from 'react';\nimport { measure } from './NativeMethods';\nimport { RefObjectFunction } from './hook/commonTypes';\n\nexport interface ComponentCoords {\n x: number;\n y: number;\n}\n\nexport function getRelativeCoords(\n parentRef: RefObjectFunction<Component>,\n x: number,\n y: number\n): ComponentCoords {\n 'worklet';\n const parentCoords = measure(parentRef);\n return {\n x: x - parentCoords.x,\n y: y - parentCoords.y,\n };\n}\n"],"mappings":"AACA,SAASA,OAAT,QAAwB,iBAAxB;AAQA,OAAO,SAASC,iBAAT,CACLC,SADK,EAELC,CAFK,EAGLC,CAHK,EAIY;EACjB;;EACA,MAAMC,YAAY,GAAGL,OAAO,CAACE,SAAD,CAA5B;EACA,OAAO;IACLC,CAAC,EAAEA,CAAC,GAAGE,YAAY,CAACF,CADf;IAELC,CAAC,EAAEA,CAAC,GAAGC,YAAY,CAACD;EAFf,CAAP;AAID"}
1
+ {"version":3,"names":["measure","getRelativeCoords","parentRef","absoluteX","absoluteY","parentCoords","x","y"],"sources":["utils.ts"],"sourcesContent":["import { Component } from 'react';\nimport { measure } from './NativeMethods';\nimport { RefObjectFunction } from './hook/commonTypes';\n\nexport interface ComponentCoords {\n x: number;\n y: number;\n}\n\n/**\n * Given an absolute position and a component ref, returns the relative\n * position in the component's local coordinate space.\n */\nexport function getRelativeCoords(\n parentRef: RefObjectFunction<Component>,\n absoluteX: number,\n absoluteY: number\n): ComponentCoords | null {\n 'worklet';\n const parentCoords = measure(parentRef);\n if (parentCoords === null) {\n return null;\n }\n return {\n x: absoluteX - parentCoords.x,\n y: absoluteY - parentCoords.y,\n };\n}\n"],"mappings":"AACA,SAASA,OAAT,QAAwB,iBAAxB;;AAQA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAT,CACLC,SADK,EAELC,SAFK,EAGLC,SAHK,EAImB;EACxB;;EACA,MAAMC,YAAY,GAAGL,OAAO,CAACE,SAAD,CAA5B;;EACA,IAAIG,YAAY,KAAK,IAArB,EAA2B;IACzB,OAAO,IAAP;EACD;;EACD,OAAO;IACLC,CAAC,EAAEH,SAAS,GAAGE,YAAY,CAACC,CADvB;IAELC,CAAC,EAAEH,SAAS,GAAGC,YAAY,CAACE;EAFvB,CAAP;AAID"}
package/package.json CHANGED
@@ -1,24 +1,26 @@
1
1
  {
2
2
  "name": "react-native-reanimated",
3
- "version": "3.0.0-rc.2",
3
+ "version": "3.0.0-rc.4",
4
4
  "description": "More powerful alternative to Animated library for React Native.",
5
5
  "scripts": {
6
6
  "test": "yarn run format:js && yarn run lint:js && yarn run test:unit",
7
7
  "test:unit": "jest",
8
- "lint": "yarn lint:js && yarn lint:cpp && yarn lint:java",
8
+ "lint": "yarn lint:js && yarn lint:cpp && yarn lint:java && yarn lint:ios && yarn lint:docs",
9
9
  "lint:js": "eslint --ext '.js,.ts,.tsx' src/ && yarn prettier --check src/",
10
+ "lint:docs": "cd docs && yarn lint && cd ..",
10
11
  "lint:java": "./android/gradlew -p android spotlessCheck -q",
11
12
  "lint:cpp": "./scripts/cpplint.sh",
13
+ "lint:ios": "./scripts/validate-ios.sh && yarn format:ios --dry-run",
12
14
  "format": "yarn format:js && yarn format:java && yarn format:ios && yarn format:android && yarn format:common",
13
15
  "format:js": "prettier --write --list-different './src/'",
14
16
  "format:java": "node ./scripts/format-java.js",
15
- "format:ios": "find ios/ -iname *.h -o -iname *.m -o -iname *.mm -o -iname *.cpp | xargs clang-format -i",
17
+ "format:ios": "find ios/ -iname *.h -o -iname *.m -o -iname *.mm -o -iname *.cpp | xargs clang-format -i --Werror",
16
18
  "format:android": "find android/src/ -iname *.h -o -iname *.cpp | xargs clang-format -i",
17
19
  "format:common": "find Common/ -iname *.h -o -iname *.cpp | xargs clang-format -i",
18
20
  "release": "npm login && release-it",
19
21
  "type:check": "yarn tsc --noEmit",
20
22
  "prepare": "bob build && husky install",
21
- "circular_dependency_check": "yarn madge --extensions js,ts,tsx --circular ./src",
23
+ "circular_dependency_check": "yarn madge --extensions js,ts,tsx --circular src lib",
22
24
  "setup": "yarn && cd Example && yarn && cd ios && pod install --verbose && cd ../..",
23
25
  "clean": "rm -rf node_modules && cd Example && rm -rf node_modules && cd ios && pod deintegrate && cd ../..",
24
26
  "reset": "yarn clean && yarn setup",
@@ -49,6 +51,7 @@
49
51
  "!android/.cxx/",
50
52
  "!android/.gradle/",
51
53
  "RNReanimated.podspec",
54
+ "scripts/reanimated_utils.rb",
52
55
  "README.md",
53
56
  "mock.js",
54
57
  "plugin.js",
@@ -120,7 +123,7 @@
120
123
  "madge": "^5.0.1",
121
124
  "prettier": "^2.5.1",
122
125
  "react": "17.0.2",
123
- "react-native": "0.70.0-rc.2",
126
+ "react-native": "0.70.3",
124
127
  "react-native-builder-bob": "^0.18.3",
125
128
  "react-native-codegen": "^0.0.7",
126
129
  "react-native-gesture-handler": "^2.4.2",
@@ -137,7 +140,8 @@
137
140
  "android/src/**/*.java": "yarn format:java",
138
141
  "android/src/**/*.{h,cpp}": "yarn format:android",
139
142
  "ios/**/*.{h,m,mm,cpp}": "yarn format:ios",
140
- "Common/**/*.{h,cpp}": "yarn format:common"
143
+ "Common/**/*.{h,cpp}": "yarn format:common",
144
+ "docs/**/*.{md,mdx}": "yarn lint:docs"
141
145
  },
142
146
  "release-it": {
143
147
  "hooks": {