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

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 (127) 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 +1 -0
  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 -0
  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 +25 -23
  48. package/android/CMakeLists.txt +41 -38
  49. package/android/build.gradle +91 -72
  50. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +10 -8
  51. package/android/src/main/cpp/{headers/AndroidErrorHandler.h → AndroidErrorHandler.h} +0 -0
  52. package/android/src/main/cpp/AndroidLogger.cpp +4 -1
  53. package/android/src/main/cpp/{headers/AndroidLogger.h → AndroidLogger.h} +0 -0
  54. package/android/src/main/cpp/{headers/AndroidScheduler.h → AndroidScheduler.h} +0 -0
  55. package/android/src/main/cpp/{headers/JNIHelper.h → JNIHelper.h} +0 -0
  56. package/android/src/main/cpp/{headers/LayoutAnimations.h → LayoutAnimations.h} +0 -0
  57. package/android/src/main/cpp/NativeProxy.cpp +12 -28
  58. package/android/src/main/cpp/{headers/NativeProxy.h → NativeProxy.h} +3 -1
  59. package/android/src/main/cpp/{headers/TurboModule.h → TurboModule.h} +0 -0
  60. package/android/src/main/java/com/swmansion/reanimated/ReanimatedMessageQueueThread.java +77 -0
  61. package/android/src/main/java/com/swmansion/reanimated/keyboardObserver/ReanimatedKeyboardEventListener.java +2 -1
  62. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +7 -7
  63. package/ios/REAModule.mm +10 -0
  64. package/ios/native/NativeProxy.mm +12 -19
  65. package/ios/native/REAInitializer.h +2 -2
  66. package/ios/native/REAInitializer.mm +2 -2
  67. package/ios/native/REAMessageThread.h +22 -0
  68. package/ios/native/REAMessageThread.mm +38 -0
  69. package/ios/native/UIResponder+Reanimated.mm +1 -1
  70. package/lib/commonjs/reanimated2/NativeMethods.js +20 -24
  71. package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
  72. package/lib/commonjs/reanimated2/animation/delay.js +0 -12
  73. package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
  74. package/lib/commonjs/reanimated2/animation/repeat.js +0 -24
  75. package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
  76. package/lib/commonjs/reanimated2/animation/sequence.js +0 -12
  77. package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
  78. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  79. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +4 -4
  80. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  81. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +51 -19
  82. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  83. package/lib/commonjs/reanimated2/hook/index.js +8 -0
  84. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  85. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  86. package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
  87. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +31 -0
  88. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -0
  89. package/lib/commonjs/reanimated2/utils.js +12 -3
  90. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  91. package/lib/module/reanimated2/NativeMethods.js +20 -24
  92. package/lib/module/reanimated2/NativeMethods.js.map +1 -1
  93. package/lib/module/reanimated2/animation/delay.js +0 -10
  94. package/lib/module/reanimated2/animation/delay.js.map +1 -1
  95. package/lib/module/reanimated2/animation/repeat.js +0 -20
  96. package/lib/module/reanimated2/animation/repeat.js.map +1 -1
  97. package/lib/module/reanimated2/animation/sequence.js +0 -10
  98. package/lib/module/reanimated2/animation/sequence.js.map +1 -1
  99. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  100. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +4 -4
  101. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  102. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +51 -19
  103. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  104. package/lib/module/reanimated2/hook/index.js +1 -0
  105. package/lib/module/reanimated2/hook/index.js.map +1 -1
  106. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  107. package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
  108. package/lib/module/reanimated2/hook/useScrollViewOffset.js +20 -0
  109. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -0
  110. package/lib/module/reanimated2/utils.js +13 -3
  111. package/lib/module/reanimated2/utils.js.map +1 -1
  112. package/package.json +6 -4
  113. package/plugin.js +105 -47
  114. package/react-native-reanimated.d.ts +13 -9
  115. package/src/reanimated2/NativeMethods.ts +28 -33
  116. package/src/reanimated2/animation/delay.ts +0 -12
  117. package/src/reanimated2/animation/repeat.ts +0 -25
  118. package/src/reanimated2/animation/sequence.ts +0 -13
  119. package/src/reanimated2/commonTypes.ts +9 -0
  120. package/src/reanimated2/frameCallback/FrameCallbackRegistryJS.ts +6 -9
  121. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +78 -27
  122. package/src/reanimated2/hook/index.ts +1 -0
  123. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +3 -1
  124. package/src/reanimated2/hook/useFrameCallback.ts +2 -1
  125. package/src/reanimated2/hook/useScrollViewOffset.ts +36 -0
  126. package/src/reanimated2/utils.ts +12 -5
  127. package/android/src/main/java/com/swmansion/reanimated/ReanimatedJSIModulePackage.java +0 -29
@@ -7,6 +7,7 @@ import com.facebook.jni.HybridData;
7
7
  import com.facebook.proguard.annotations.DoNotStrip;
8
8
  import com.facebook.react.ReactApplication;
9
9
  import com.facebook.react.bridge.NativeModule;
10
+ import com.facebook.react.bridge.queue.MessageQueueThread;
10
11
  import com.facebook.react.bridge.ReactApplicationContext;
11
12
  import com.facebook.react.bridge.ReadableMap;
12
13
  import com.facebook.react.bridge.ReadableNativeArray;
@@ -152,7 +153,7 @@ public class NativeProxy {
152
153
  Scheduler scheduler,
153
154
  LayoutAnimations LayoutAnimations);
154
155
 
155
- private native void installJSIBindings();
156
+ private native void installJSIBindings(MessageQueueThread messageQueueThread);
156
157
 
157
158
  public native boolean isAnyHandlerWaitingForEvent(String eventName);
158
159
 
@@ -216,14 +217,12 @@ public class NativeProxy {
216
217
  }
217
218
 
218
219
  @DoNotStrip
219
- private String getUptime() {
220
+ private long getCurrentTime() {
220
221
  if (slowAnimationsEnabled) {
221
222
  final long ANIMATIONS_DRAG_FACTOR = 10;
222
- return Long.toString(
223
- this.firstUptime
224
- + (SystemClock.uptimeMillis() - this.firstUptime) / ANIMATIONS_DRAG_FACTOR);
223
+ return this.firstUptime + (SystemClock.uptimeMillis() - this.firstUptime) / ANIMATIONS_DRAG_FACTOR;
225
224
  } else {
226
- return Long.toString(SystemClock.uptimeMillis());
225
+ return SystemClock.uptimeMillis();
227
226
  }
228
227
  }
229
228
 
@@ -286,7 +285,8 @@ public class NativeProxy {
286
285
  return;
287
286
  }
288
287
  mNodesManager = mContext.get().getNativeModule(ReanimatedModule.class).getNodesManager();
289
- installJSIBindings();
288
+ ReanimatedMessageQueueThread messageQueueThread = new ReanimatedMessageQueueThread();
289
+ installJSIBindings(messageQueueThread);
290
290
  AnimationsManager animationsManager =
291
291
  mContext
292
292
  .get()
package/ios/REAModule.mm CHANGED
@@ -20,6 +20,8 @@
20
20
  #import <RNReanimated/REAModule.h>
21
21
  #import <RNReanimated/REANodesManager.h>
22
22
 
23
+ #import "SingleInstanceChecker.h"
24
+
23
25
  using namespace facebook::react;
24
26
  using namespace reanimated;
25
27
 
@@ -47,10 +49,18 @@ typedef void (^AnimatedOperation)(REANodesManager *nodesManager);
47
49
  #else
48
50
  NSMutableArray<AnimatedOperation> *_operations;
49
51
  #endif
52
+ #ifdef DEBUG
53
+ SingleInstanceChecker<REAModule> singleInstanceChecker_;
54
+ #endif
50
55
  }
51
56
 
52
57
  RCT_EXPORT_MODULE(ReanimatedModule);
53
58
 
59
+ + (BOOL)requiresMainQueueSetup
60
+ {
61
+ return YES;
62
+ }
63
+
54
64
  - (void)invalidate
55
65
  {
56
66
  #ifdef RCT_NEW_ARCH_ENABLED
@@ -6,10 +6,12 @@
6
6
  #import <RNReanimated/REAIOSScheduler.h>
7
7
  #import <RNReanimated/REAJSIUtils.h>
8
8
  #import <RNReanimated/REAKeyboardEventObserver.h>
9
+ #import <RNReanimated/REAMessageThread.h>
9
10
  #import <RNReanimated/REAModule.h>
10
11
  #import <RNReanimated/REANodesManager.h>
11
12
  #import <RNReanimated/REAUIManager.h>
12
13
  #import <RNReanimated/RNGestureHandlerStateManager.h>
14
+ #import <RNReanimated/ReanimatedRuntime.h>
13
15
  #import <RNReanimated/ReanimatedSensorContainer.h>
14
16
 
15
17
  #ifdef RCT_NEW_ARCH_ENABLED
@@ -30,14 +32,6 @@
30
32
  #import <dlfcn.h>
31
33
  #endif
32
34
 
33
- #if __has_include(<reacthermes/HermesExecutorFactory.h>)
34
- #import <reacthermes/HermesExecutorFactory.h>
35
- #elif __has_include(<hermes/hermes.h>)
36
- #import <hermes/hermes.h>
37
- #else
38
- #import <jsi/JSCRuntime.h>
39
- #endif
40
-
41
35
  namespace reanimated {
42
36
 
43
37
  using namespace facebook;
@@ -201,20 +195,19 @@ std::shared_ptr<NativeReanimatedModule> createReanimatedModule(
201
195
  };
202
196
  #endif
203
197
 
204
- #if __has_include(<reacthermes/HermesExecutorFactory.h>)
205
- std::shared_ptr<jsi::Runtime> animatedRuntime = facebook::hermes::makeHermesRuntime();
206
- #elif __has_include(<hermes/hermes.h>)
207
- std::shared_ptr<jsi::Runtime> animatedRuntime = facebook::hermes::makeHermesRuntime();
208
- #else
209
- std::shared_ptr<jsi::Runtime> animatedRuntime = facebook::jsc::makeJSCRuntime();
210
- #endif
198
+ auto jsQueue = std::make_shared<REAMessageThread>([NSRunLoop currentRunLoop], ^(NSError *error) {
199
+ throw error;
200
+ });
201
+ std::shared_ptr<jsi::Runtime> animatedRuntime = ReanimatedRuntime::make(jsQueue);
211
202
 
212
203
  std::shared_ptr<Scheduler> scheduler = std::make_shared<REAIOSScheduler>(jsInvoker);
213
204
  std::shared_ptr<ErrorHandler> errorHandler = std::make_shared<REAIOSErrorHandler>(scheduler);
214
205
  std::shared_ptr<NativeReanimatedModule> module;
215
206
 
216
- auto requestRender = [reanimatedModule, &module](std::function<void(double)> onRender, jsi::Runtime &rt) {
217
- [reanimatedModule.nodesManager postOnAnimation:^(CADisplayLink *displayLink) {
207
+ auto nodesManager = reanimatedModule.nodesManager;
208
+
209
+ auto requestRender = [nodesManager, &module](std::function<void(double)> onRender, jsi::Runtime &rt) {
210
+ [nodesManager postOnAnimation:^(CADisplayLink *displayLink) {
218
211
  double frameTimestamp = calculateTimestampWithSlowAnimations(displayLink.targetTimestamp) * 1000;
219
212
  jsi::Object global = rt.global();
220
213
  jsi::String frameTimestampName = jsi::String::createFromAscii(rt, "_frameTimestamp");
@@ -225,10 +218,10 @@ std::shared_ptr<NativeReanimatedModule> createReanimatedModule(
225
218
  };
226
219
 
227
220
  #ifdef RCT_NEW_ARCH_ENABLED
228
- auto synchronouslyUpdateUIPropsFunction = [reanimatedModule](jsi::Runtime &rt, Tag tag, const jsi::Value &props) {
221
+ auto synchronouslyUpdateUIPropsFunction = [nodesManager](jsi::Runtime &rt, Tag tag, const jsi::Value &props) {
229
222
  NSNumber *viewTag = @(tag);
230
223
  NSDictionary *uiProps = convertJSIObjectToNSDictionary(rt, props.asObject(rt));
231
- [reanimatedModule.nodesManager synchronouslyUpdateViewOnUIThread:viewTag props:uiProps];
224
+ [nodesManager synchronouslyUpdateViewOnUIThread:viewTag props:uiProps];
232
225
  };
233
226
 
234
227
  std::shared_ptr<LayoutAnimationsProxy> layoutAnimationsProxy =
@@ -7,11 +7,11 @@
7
7
  #import <ReactCommon/RCTTurboModuleManager.h>
8
8
  #import <jsireact/JSIExecutor.h>
9
9
 
10
- #if RNVERSION >= 64
10
+ #if REACT_NATIVE_MINOR_VERSION >= 64
11
11
  #import <React/RCTJSIExecutorRuntimeInstaller.h>
12
12
  #endif
13
13
 
14
- #if RNVERSION < 63
14
+ #if REACT_NATIVE_MINOR_VERSION < 63
15
15
  #import <ReactCommon/BridgeJSCallInvoker.h>
16
16
  #endif
17
17
 
@@ -24,7 +24,7 @@ JSIExecutor::RuntimeInstaller REAJSIExecutorRuntimeInstaller(
24
24
 
25
25
  [bridge moduleForClass:[RCTEventDispatcher class]];
26
26
  RCTEventDispatcher *eventDispatcher = [REAEventDispatcher new];
27
- #if RNVERSION >= 66
27
+ #if REACT_NATIVE_MINOR_VERSION >= 66
28
28
  RCTCallableJSModules *callableJSModules = [RCTCallableJSModules new];
29
29
  [bridge setValue:callableJSModules forKey:@"_callableJSModules"];
30
30
  [callableJSModules setBridge:bridge];
@@ -39,7 +39,7 @@ JSIExecutor::RuntimeInstaller REAJSIExecutorRuntimeInstaller(
39
39
  if (!bridge) {
40
40
  return;
41
41
  }
42
- #if RNVERSION >= 63
42
+ #if REACT_NATIVE_MINOR_VERSION >= 63
43
43
  auto reanimatedModule = reanimated::createReanimatedModule(bridge, bridge.jsCallInvoker);
44
44
  #else
45
45
  auto callInvoker = std::make_shared<react::BridgeJSCallInvoker>(bridge.reactInstance);
@@ -0,0 +1,22 @@
1
+ #pragma once
2
+
3
+ #import <memory>
4
+ #import <string>
5
+
6
+ #import <Foundation/Foundation.h>
7
+
8
+ #import <React/RCTJavaScriptExecutor.h>
9
+ #import <React/RCTMessageThread.h>
10
+ #import <cxxreact/MessageQueueThread.h>
11
+
12
+ namespace facebook {
13
+ namespace react {
14
+
15
+ class REAMessageThread : public RCTMessageThread {
16
+ public:
17
+ using RCTMessageThread::RCTMessageThread;
18
+ virtual void quitSynchronous() override;
19
+ };
20
+
21
+ } // namespace react
22
+ } // namespace facebook
@@ -0,0 +1,38 @@
1
+ #import "REAMessageThread.h"
2
+
3
+ #include <condition_variable>
4
+ #include <mutex>
5
+
6
+ #import <React/RCTCxxUtils.h>
7
+ #import <React/RCTMessageThread.h>
8
+ #import <React/RCTUtils.h>
9
+
10
+ namespace facebook {
11
+ namespace react {
12
+
13
+ // Essentially the same as RCTMessageThread, but with public fields.
14
+ struct REAMessageThreadPublic {
15
+ // I don't know why we need three vtables (if you know then feel free to
16
+ // explain it instead of this message), but this is what makes the casts in
17
+ // quitSynchronous() work correctly.
18
+ void *vtable1;
19
+ void *vtable2;
20
+ void *vtable3;
21
+ CFRunLoopRef m_cfRunLoop;
22
+ RCTJavaScriptCompleteBlock m_errorBlock;
23
+ std::atomic_bool m_shutdown;
24
+ };
25
+
26
+ // We need to prevent any new code from being executed on the thread as there
27
+ // is an assertion for that in the destructor of RCTMessageThread, but we have
28
+ // to override quitSynchronous() as it would quit the main looper and freeze
29
+ // the app.
30
+ void REAMessageThread::quitSynchronous()
31
+ {
32
+ RCTMessageThread *rctThread = static_cast<RCTMessageThread *>(this);
33
+ REAMessageThreadPublic *rctThreadPublic = reinterpret_cast<REAMessageThreadPublic *>(rctThread);
34
+ rctThreadPublic->m_shutdown = true;
35
+ }
36
+
37
+ }
38
+ }
@@ -21,7 +21,7 @@ typedef JSCExecutorFactory ExecutorFactory;
21
21
  {
22
22
  const auto installer = reanimated::REAJSIExecutorRuntimeInstaller(bridge, NULL);
23
23
 
24
- #if RNVERSION >= 64
24
+ #if REACT_NATIVE_MINOR_VERSION >= 64
25
25
  // installs globals such as console, nativePerformanceNow, etc.
26
26
  return std::make_unique<ExecutorFactory>(RCTJSIExecutorRuntimeInstaller(installer));
27
27
  #else
@@ -14,48 +14,44 @@ var _reactNative = require("react-native");
14
14
  var _PlatformChecker = require("./PlatformChecker");
15
15
 
16
16
  /* global _WORKLET _measure _scrollTo _dispatchCommand _setGestureState */
17
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
- // @ts-nocheck
19
17
  function getTag(view) {
20
18
  return (0, _reactNative.findNodeHandle)(view);
21
19
  }
22
20
 
23
- const isNativeIndefined = (0, _PlatformChecker.shouldBeUseWeb)();
21
+ const isNative = !(0, _PlatformChecker.shouldBeUseWeb)();
24
22
 
25
23
  function measure(animatedRef) {
26
24
  'worklet';
27
25
 
28
- if (!_WORKLET || isNativeIndefined) {
29
- console.warn('[reanimated.measure] method cannot be used for web or Chrome Debugger');
30
- return {
31
- x: NaN,
32
- y: NaN,
33
- width: NaN,
34
- height: NaN,
35
- pageX: NaN,
36
- pageY: NaN
37
- };
26
+ if (!_WORKLET || !isNative) {
27
+ console.warn('[Reanimated] measure() cannot be used for web or Chrome Debugger');
28
+ return null;
38
29
  }
39
30
 
40
31
  const viewTag = animatedRef();
41
32
 
42
- const result = _measure(viewTag);
43
-
44
- if (result.x === -1234567) {
45
- throw new Error(`The view with tag ${viewTag} could not be measured`);
33
+ if (viewTag === -1) {
34
+ console.warn(`[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).`);
35
+ return null;
46
36
  }
47
37
 
48
- if (isNaN(result.x)) {
49
- console.warn('Trying to measure a component which gets view-flattened on Android. To disable view-flattening, set `collapsable={false}` on this component.');
50
- }
38
+ const measured = _measure(viewTag);
51
39
 
52
- return result;
40
+ if (measured.x === -1234567) {
41
+ console.warn(`[Reanimated] The view with tag ${viewTag} returned an invalid measurement response`);
42
+ return null;
43
+ } else if (isNaN(measured.x)) {
44
+ console.warn(`[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \`collapsable={false}\` on this component.`);
45
+ return null;
46
+ } else {
47
+ return measured;
48
+ }
53
49
  }
54
50
 
55
51
  function dispatchCommand(animatedRef, commandName, args) {
56
52
  'worklet';
57
53
 
58
- if (!_WORKLET || isNativeIndefined) {
54
+ if (!_WORKLET || !isNative) {
59
55
  return;
60
56
  }
61
57
 
@@ -77,7 +73,7 @@ if (global._IS_FABRIC) {
77
73
  exports.scrollTo = scrollTo = (animatedRef, x, y, animated) => {
78
74
  'worklet';
79
75
 
80
- if (!_WORKLET || isNativeIndefined) {
76
+ if (!_WORKLET || !isNative) {
81
77
  return;
82
78
  }
83
79
 
@@ -90,7 +86,7 @@ if (global._IS_FABRIC) {
90
86
  function setGestureState(handlerTag, newState) {
91
87
  'worklet';
92
88
 
93
- if (!_WORKLET || isNativeIndefined) {
89
+ if (!_WORKLET || !isNative) {
94
90
  console.warn('[Reanimated] You can not use setGestureState in non-worklet function.');
95
91
  return;
96
92
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getTag","view","findNodeHandle","isNativeIndefined","shouldBeUseWeb","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":";;;;;;;;;;;AAIA;;AAEA;;AANA;AACA;AACA;AAMO,SAASA,MAAT,CACLC,IADK,EAEU;EACf,OAAO,IAAAC,2BAAA,EAAeD,IAAf,CAAP;AACD;;AAWD,MAAME,iBAAiB,GAAG,IAAAC,+BAAA,GAA1B;;AAEO,SAASC,OAAT,CACLC,WADK,EAEe;EACpB;;EACA,IAAI,CAACC,QAAD,IAAaJ,iBAAjB,EAAoC;IAClCK,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;;AAEM,SAASI,eAAT,CACLhB,WADK,EAELiB,WAFK,EAGLC,IAHK,EAIC;EACN;;EACA,IAAI,CAACjB,QAAD,IAAaJ,iBAAjB,EAAoC;IAClC;EACD;;EACD,MAAMsB,iBAAiB,GAAGnB,WAAW,EAArC;;EACAoB,gBAAgB,CAACD,iBAAD,EAAoBF,WAApB,EAAiCC,IAAjC,CAAhB;AACD;;AAEM,IAAIG,QAAJ;;;AAOP,IAAIC,MAAM,CAACC,UAAX,EAAuB;EACrB,mBAAAF,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;EACL,mBAAAH,QAAQ,GAAG,CACTrB,WADS,EAETI,CAFS,EAGTE,CAHS,EAITkB,QAJS,KAKN;IACH;;IACA,IAAI,CAACvB,QAAD,IAAaJ,iBAAjB,EAAoC;MAClC;IACD;;IACD,MAAMc,OAAO,GAAGX,WAAW,EAA3B;;IACAyB,SAAS,CAACd,OAAD,EAAUP,CAAV,EAAaE,CAAb,EAAgBkB,QAAhB,CAAT;EACD,CAZD;AAaD;;AAEM,SAASE,eAAT,CAAyBC,UAAzB,EAA6CC,QAA7C,EAAqE;EAC1E;;EACA,IAAI,CAAC3B,QAAD,IAAaJ,iBAAjB,EAAoC;IAClCK,OAAO,CAACC,IAAR,CACE,uEADF;IAGA;EACD;;EACD0B,gBAAgB,CAACF,UAAD,EAAaC,QAAb,CAAhB;AACD"}
1
+ {"version":3,"names":["getTag","view","findNodeHandle","isNative","shouldBeUseWeb","measure","animatedRef","_WORKLET","console","warn","viewTag","measured","_measure","x","isNaN","dispatchCommand","commandName","args","shadowNodeWrapper","_dispatchCommand","scrollTo","global","_IS_FABRIC","y","animated","_scrollTo","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 { 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 function measure(\n animatedRef: RefObjectFunction<Component>\n): MeasuredDimensions | null {\n 'worklet';\n if (!_WORKLET || !isNative) {\n console.warn(\n '[Reanimated] measure() cannot be used for web or Chrome Debugger'\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.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\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 (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 || !isNative) {\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 || !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":";;;;;;;;;;;AAEA;;AAGA;;AALA;AAOO,SAASA,MAAT,CACLC,IADK,EAEU;EACf,OAAO,IAAAC,2BAAA,EAAeD,IAAf,CAAP;AACD;;AAED,MAAME,QAAQ,GAAG,CAAC,IAAAC,+BAAA,GAAlB;;AAEO,SAASC,OAAT,CACLC,WADK,EAEsB;EAC3B;;EACA,IAAI,CAACC,QAAD,IAAa,CAACJ,QAAlB,EAA4B;IAC1BK,OAAO,CAACC,IAAR,CACE,kEADF;IAGA,OAAO,IAAP;EACD;;EAED,MAAMC,OAAO,GAAGJ,WAAW,EAA3B;;EACA,IAAII,OAAO,KAAK,CAAC,CAAjB,EAAoB;IAClBF,OAAO,CAACC,IAAR,CACG,kCAAiCC,OAAQ,4JAD5C;IAGA,OAAO,IAAP;EACD;;EAED,MAAMC,QAAQ,GAAGC,QAAQ,CAACF,OAAD,CAAzB;;EACA,IAAIC,QAAQ,CAACE,CAAT,KAAe,CAAC,OAApB,EAA6B;IAC3BL,OAAO,CAACC,IAAR,CACG,kCAAiCC,OAAQ,2CAD5C;IAGA,OAAO,IAAP;EACD,CALD,MAKO,IAAII,KAAK,CAACH,QAAQ,CAACE,CAAV,CAAT,EAAuB;IAC5BL,OAAO,CAACC,IAAR,CACG,kCAAiCC,OAAQ,6GAD5C;IAGA,OAAO,IAAP;EACD,CALM,MAKA;IACL,OAAOC,QAAP;EACD;AACF;;AAEM,SAASI,eAAT,CACLT,WADK,EAELU,WAFK,EAGLC,IAHK,EAIC;EACN;;EACA,IAAI,CAACV,QAAD,IAAa,CAACJ,QAAlB,EAA4B;IAC1B;EACD;;EACD,MAAMe,iBAAiB,GAAGZ,WAAW,EAArC;;EACAa,gBAAgB,CAACD,iBAAD,EAAoBF,WAApB,EAAiCC,IAAjC,CAAhB;AACD;;AAEM,IAAIG,QAAJ;;;AAOP,IAAIC,MAAM,CAACC,UAAX,EAAuB;EACrB,mBAAAF,QAAQ,GAAG,CACTd,WADS,EAETO,CAFS,EAGTU,CAHS,EAITC,QAJS,KAKN;IACH;;IACAT,eAAe,CAACT,WAAD,EAAc,UAAd,EAA0B,CAACO,CAAD,EAAIU,CAAJ,EAAOC,QAAP,CAA1B,CAAf;EACD,CARD;AASD,CAVD,MAUO;EACL,mBAAAJ,QAAQ,GAAG,CACTd,WADS,EAETO,CAFS,EAGTU,CAHS,EAITC,QAJS,KAKN;IACH;;IACA,IAAI,CAACjB,QAAD,IAAa,CAACJ,QAAlB,EAA4B;MAC1B;IACD;;IACD,MAAMO,OAAO,GAAGJ,WAAW,EAA3B;;IACAmB,SAAS,CAACf,OAAD,EAAUG,CAAV,EAAaU,CAAb,EAAgBC,QAAhB,CAAT;EACD,CAZD;AAaD;;AAEM,SAASE,eAAT,CAAyBC,UAAzB,EAA6CC,QAA7C,EAAqE;EAC1E;;EACA,IAAI,CAACrB,QAAD,IAAa,CAACJ,QAAlB,EAA4B;IAC1BK,OAAO,CAACC,IAAR,CACE,uEADF;IAGA;EACD;;EACDoB,gBAAgB,CAACF,UAAD,EAAaC,QAAb,CAAhB;AACD"}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.delay = delay;
7
6
  exports.withDelay = withDelay;
8
7
 
9
8
  var _util = require("./util");
@@ -75,15 +74,4 @@ function withDelay(delayMs, _nextAnimation) {
75
74
  };
76
75
  });
77
76
  }
78
- /**
79
- * @deprecated Kept for backward compatibility. Will be removed soon.
80
- */
81
-
82
-
83
- function delay(delayMs, _nextAnimation) {
84
- 'worklet';
85
-
86
- console.warn('Method `delay` is deprecated. Please use `withDelay` instead');
87
- return withDelay(delayMs, _nextAnimation);
88
- }
89
77
  //# sourceMappingURL=delay.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withDelay","delayMs","_nextAnimation","defineAnimation","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;;AAIO,SAASA,SAAT,CACLC,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACA,OAAO,IAAAC,qBAAA,EAAgCD,cAAhC,EAAgD,MAAM;IAC3D;;IACA,MAAME,aAAa,GACjB,OAAOF,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASG,KAAT,CAAeC,SAAf,EAA0CC,GAA1C,EAAmE;MACjE,MAAM;QAAEC,SAAF;QAAaC,OAAb;QAAsBC;MAAtB,IAA4CJ,SAAlD;;MAEA,IAAIC,GAAG,GAAGC,SAAN,GAAkBP,OAAtB,EAA+B;QAC7B,IAAI,CAACQ,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,CAlEM,CAAP;AAmED;AAED;AACA;AACA;;;AACO,SAASJ,KAAT,CACLJ,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACAgB,OAAO,CAACC,IAAR,CAAa,8DAAb;EACA,OAAOnB,SAAS,CAACC,OAAD,EAAUC,cAAV,CAAhB;AACD"}
1
+ {"version":3,"names":["withDelay","delayMs","_nextAnimation","defineAnimation","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;;AAIO,SAASA,SAAT,CACLC,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACA,OAAO,IAAAC,qBAAA,EAAgCD,cAAhC,EAAgD,MAAM;IAC3D;;IACA,MAAME,aAAa,GACjB,OAAOF,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASG,KAAT,CAAeC,SAAf,EAA0CC,GAA1C,EAAmE;MACjE,MAAM;QAAEC,SAAF;QAAaC,OAAb;QAAsBC;MAAtB,IAA4CJ,SAAlD;;MAEA,IAAIC,GAAG,GAAGC,SAAN,GAAkBP,OAAtB,EAA+B;QAC7B,IAAI,CAACQ,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,CAlEM,CAAP;AAmED"}
@@ -3,8 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.loop = loop;
7
- exports.repeat = repeat;
8
6
  exports.withRepeat = withRepeat;
9
7
 
10
8
  var _util = require("./util");
@@ -82,26 +80,4 @@ function withRepeat(_nextAnimation) {
82
80
  };
83
81
  });
84
82
  }
85
- /**
86
- * @deprecated Kept for backward compatibility. Will be removed soon.
87
- */
88
-
89
-
90
- function repeat(_nextAnimation) {
91
- 'worklet';
92
-
93
- let numberOfReps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
94
- let reverse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
95
- let callback = arguments.length > 3 ? arguments[3] : undefined;
96
- console.warn('Method `repeat` is deprecated. Please use `withRepeat` instead');
97
- return withRepeat(_nextAnimation, numberOfReps, reverse, callback);
98
- }
99
-
100
- function loop(nextAnimation) {
101
- 'worklet';
102
-
103
- let numberOfLoops = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
104
- console.warn('Method `loop` is deprecated. Please use `withRepeat` instead');
105
- return repeat(nextAnimation, Math.round(numberOfLoops * 2), true);
106
- }
107
83
  //# sourceMappingURL=repeat.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withRepeat","_nextAnimation","numberOfReps","reverse","callback","defineAnimation","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":";;;;;;;;;AAAA;;AAeO,SAASA,UAAT,CACLC,cADK,EAKuB;EAC5B;;EAD4B,IAH5BC,YAG4B,uEAHb,CAGa;EAAA,IAF5BC,OAE4B,uEAFlB,KAEkB;EAAA,IAD5BC,QAC4B;EAG5B,OAAO,IAAAC,qBAAA,EAAiCJ,cAAjC,EAAiD,MAAM;IAC5D;;IAEA,MAAMK,aAA8B,GAClC,OAAOL,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASM,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,CAACF,QAAlB,EAA4B;UAC1BE,aAAa,CAACF,QAAd,CAAuB;UAAK;UAA5B,EAA4CI,SAAS,CAACI,OAAtD;QACD;;QACD,IAAIV,YAAY,GAAG,CAAf,IAAoBM,SAAS,CAACK,IAAV,IAAkBX,YAA1C,EAAwD;UACtD,OAAO,IAAP;QACD;;QAED,MAAMY,UAAU,GAAGX,OAAO,GACrBG,aAAa,CAACM,OADO,GAEtBJ,SAAS,CAACM,UAFd;;QAGA,IAAIX,OAAJ,EAAa;UACXG,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,IAAIN,QAAJ,EAAc;QACZA,QAAQ,CAACM,QAAD,CAAR;MACD,CAH8C,CAI/C;;;MACA,IAAI,CAACA,QAAD,IAAaJ,aAAa,CAACF,QAA/B,EAAyC;QACvCE,aAAa,CAACF,QAAd,CAAuB;QAAM;QAA7B;MACD;IACF,CARD;;IAUA,SAASY,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;MAMLR,QAAQ,EAAEc,WANL;MAOLJ,UAAU,EAAE;IAPP,CAAP;EASD,CApEM,CAAP;AAqED;AAED;AACA;AACA;;;AACO,SAASP,MAAT,CACLN,cADK,EAKuB;EAC5B;;EAD4B,IAH5BC,YAG4B,uEAHb,CAGa;EAAA,IAF5BC,OAE4B,uEAFlB,KAEkB;EAAA,IAD5BC,QAC4B;EAE5BiB,OAAO,CAACC,IAAR,CACE,gEADF;EAGA,OAAOtB,UAAU,CAACC,cAAD,EAAiBC,YAAjB,EAA+BC,OAA/B,EAAwCC,QAAxC,CAAjB;AACD;;AAEM,SAASmB,IAAT,CACLjB,aADK,EAGuB;EAC5B;;EAD4B,IAD5BkB,aAC4B,uEADZ,CACY;EAE5BH,OAAO,CAACC,IAAR,CAAa,8DAAb;EACA,OAAOf,MAAM,CAACD,aAAD,EAAgBmB,IAAI,CAACC,KAAL,CAAWF,aAAa,GAAG,CAA3B,CAAhB,EAA+C,IAA/C,CAAb;AACD"}
1
+ {"version":3,"names":["withRepeat","_nextAnimation","numberOfReps","reverse","callback","defineAnimation","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;;AAeO,SAASA,UAAT,CACLC,cADK,EAKuB;EAC5B;;EAD4B,IAH5BC,YAG4B,uEAHb,CAGa;EAAA,IAF5BC,OAE4B,uEAFlB,KAEkB;EAAA,IAD5BC,QAC4B;EAG5B,OAAO,IAAAC,qBAAA,EAAiCJ,cAAjC,EAAiD,MAAM;IAC5D;;IAEA,MAAMK,aAA8B,GAClC,OAAOL,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASM,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,CAACF,QAAlB,EAA4B;UAC1BE,aAAa,CAACF,QAAd,CAAuB;UAAK;UAA5B,EAA4CI,SAAS,CAACI,OAAtD;QACD;;QACD,IAAIV,YAAY,GAAG,CAAf,IAAoBM,SAAS,CAACK,IAAV,IAAkBX,YAA1C,EAAwD;UACtD,OAAO,IAAP;QACD;;QAED,MAAMY,UAAU,GAAGX,OAAO,GACrBG,aAAa,CAACM,OADO,GAEtBJ,SAAS,CAACM,UAFd;;QAGA,IAAIX,OAAJ,EAAa;UACXG,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,IAAIN,QAAJ,EAAc;QACZA,QAAQ,CAACM,QAAD,CAAR;MACD,CAH8C,CAI/C;;;MACA,IAAI,CAACA,QAAD,IAAaJ,aAAa,CAACF,QAA/B,EAAyC;QACvCE,aAAa,CAACF,QAAd,CAAuB;QAAM;QAA7B;MACD;IACF,CARD;;IAUA,SAASY,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;MAMLR,QAAQ,EAAEc,WANL;MAOLJ,UAAU,EAAE;IAPP,CAAP;EASD,CApEM,CAAP;AAqED"}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sequence = sequence;
7
6
  exports.withSequence = withSequence;
8
7
 
9
8
  var _util = require("./util");
@@ -89,15 +88,4 @@ function withSequence() {
89
88
  };
90
89
  });
91
90
  }
92
- /**
93
- * @deprecated Kept for backward compatibility. Will be removed soon.
94
- */
95
-
96
-
97
- function sequence() {
98
- 'worklet';
99
-
100
- console.warn('Method `sequence` is deprecated. Please use `withSequence` instead');
101
- return withSequence(...arguments);
102
- }
103
91
  //# sourceMappingURL=sequence.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withSequence","_animations","defineAnimation","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;;AASO,SAASA,YAAT,GAEyB;EAC9B;;EAD8B,kCAD3BC,WAC2B;IAD3BA,WAC2B;EAAA;;EAE9B,OAAO,IAAAC,qBAAA,EACLD,WAAW,CAAC,CAAD,CADN,EAEL,MAAM;IACJ;;IACA,MAAME,UAAU,GAAGF,WAAW,CAACG,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,CArEI,CAAP;AAuED;AAED;AACA;AACA;;;AACO,SAASG,QAAT,GAEyB;EAC9B;;EACAa,OAAO,CAACC,IAAR,CACE,oEADF;EAGA,OAAO1B,YAAY,CAAC,YAAD,CAAnB;AACD"}
1
+ {"version":3,"names":["withSequence","_animations","defineAnimation","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;;AASO,SAASA,YAAT,GAEyB;EAC9B;;EAD8B,kCAD3BC,WAC2B;IAD3BA,WAC2B;EAAA;;EAE9B,OAAO,IAAAC,qBAAA,EACLD,WAAW,CAAC,CAAD,CADN,EAEL,MAAM;IACJ;;IACA,MAAME,UAAU,GAAGF,WAAW,CAACG,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,CArEI,CAAP;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":";;;;;;IAuJYA,a;;;WAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,6BAAAA,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":";;;;;;IAuJYA,a;;;WAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,6BAAAA,a"}
@@ -33,19 +33,19 @@ class FrameCallbackRegistryJS {
33
33
  return callbackId;
34
34
  }
35
35
 
36
- unregisterFrameCallback(frameCallbackId) {
36
+ unregisterFrameCallback(callbackId) {
37
37
  (0, _core.runOnUI)(() => {
38
38
  'worklet';
39
39
 
40
- global._frameCallbackRegistry.unregisterFrameCallback(frameCallbackId);
40
+ global._frameCallbackRegistry.unregisterFrameCallback(callbackId);
41
41
  })();
42
42
  }
43
43
 
44
- manageStateFrameCallback(frameCallbackId, state) {
44
+ manageStateFrameCallback(callbackId, state) {
45
45
  (0, _core.runOnUI)(() => {
46
46
  'worklet';
47
47
 
48
- global._frameCallbackRegistry.manageStateFrameCallback(frameCallbackId, state);
48
+ global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);
49
49
  })();
50
50
  }
51
51
 
@@ -1 +1 @@
1
- {"version":3,"names":["FrameCallbackRegistryJS","constructor","prepareUIRegistry","registerFrameCallback","callback","callbackId","nextCallbackId","runOnUI","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;;AACA;;;;AAEe,MAAMA,uBAAN,CAA8B;EAG3CC,WAAW,GAAG;IAAA,wCAFW,CAEX;;IACZ,IAAAC,0CAAA;EACD;;EAEDC,qBAAqB,CAACC,QAAD,EAA+B;IAClD,IAAI,CAACA,QAAL,EAAe;MACb,OAAO,CAAC,CAAR;IACD;;IAED,MAAMC,UAAU,GAAG,KAAKC,cAAxB;IACA,KAAKA,cAAL;IAEA,IAAAC,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BN,qBAA9B,CAAoDC,QAApD,EAA8DC,UAA9D;IACD,CAHD;IAKA,OAAOA,UAAP;EACD;;EAEDK,uBAAuB,CAACC,eAAD,EAAgC;IACrD,IAAAJ,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BC,uBAA9B,CAAsDC,eAAtD;IACD,CAHD;EAID;;EAEDC,wBAAwB,CAACD,eAAD,EAA0BE,KAA1B,EAAgD;IACtE,IAAAN,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BG,wBAA9B,CACED,eADF,EAEEE,KAFF;IAID,CAND;EAOD;;AAtC0C"}
1
+ {"version":3,"names":["FrameCallbackRegistryJS","constructor","prepareUIRegistry","registerFrameCallback","callback","callbackId","nextCallbackId","runOnUI","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;;AACA;;;;AAEe,MAAMA,uBAAN,CAA8B;EAG3CC,WAAW,GAAG;IAAA,wCAFW,CAEX;;IACZ,IAAAC,0CAAA;EACD;;EAEDC,qBAAqB,CAACC,QAAD,EAAmD;IACtE,IAAI,CAACA,QAAL,EAAe;MACb,OAAO,CAAC,CAAR;IACD;;IAED,MAAMC,UAAU,GAAG,KAAKC,cAAxB;IACA,KAAKA,cAAL;IAEA,IAAAC,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BN,qBAA9B,CAAoDC,QAApD,EAA8DC,UAA9D;IACD,CAHD;IAKA,OAAOA,UAAP;EACD;;EAEDK,uBAAuB,CAACL,UAAD,EAA2B;IAChD,IAAAE,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BC,uBAA9B,CAAsDL,UAAtD;IACD,CAHD;EAID;;EAEDM,wBAAwB,CAACN,UAAD,EAAqBO,KAArB,EAA2C;IACjE,IAAAL,aAAA,EAAQ,MAAM;MACZ;;MACAC,MAAM,CAACC,sBAAP,CAA8BE,wBAA9B,CAAuDN,UAAvD,EAAmEO,KAAnE;IACD,CAHD;EAID;;AAnC0C"}