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.
- package/Common/cpp/AnimatedSensor/AnimatedSensorModule.cpp +3 -0
- package/Common/cpp/{headers/AnimatedSensor → AnimatedSensor}/AnimatedSensorModule.h +0 -0
- package/Common/cpp/Fabric/FabricUtils.cpp +1 -1
- package/Common/cpp/{headers/Fabric → Fabric}/FabricUtils.h +0 -0
- package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +2 -0
- package/Common/cpp/{headers/Fabric → Fabric}/ReanimatedUIManagerBinding.h +0 -0
- package/Common/cpp/{headers/Fabric → Fabric}/ShadowTreeCloner.h +1 -1
- package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +2 -0
- package/Common/cpp/{headers/LayoutAnimations → LayoutAnimations}/LayoutAnimationsProxy.h +0 -0
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +1 -0
- package/Common/cpp/{headers/NativeModules → NativeModules}/NativeReanimatedModule.h +5 -0
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +2 -0
- package/Common/cpp/{headers/NativeModules → NativeModules}/NativeReanimatedModuleSpec.h +1 -1
- package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.cpp +93 -0
- package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.h +125 -0
- package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.cpp +50 -0
- package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.h +27 -0
- package/Common/cpp/ReanimatedRuntime/RuntimeInitialization.md +194 -0
- package/Common/cpp/{headers/Registries → Registries}/EventHandlerRegistry.h +0 -0
- package/Common/cpp/Registries/MapperRegistry.cpp +3 -1
- package/Common/cpp/{headers/Registries → Registries}/MapperRegistry.h +0 -0
- package/Common/cpp/{headers/Registries → Registries}/NewestShadowNodesRegistry.h +0 -0
- package/Common/cpp/Registries/WorkletsCache.cpp +8 -1
- package/Common/cpp/{headers/Registries → Registries}/WorkletsCache.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/FrozenObject.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/HostFunctionHandler.h +0 -0
- package/Common/cpp/SharedItems/MutableValue.cpp +2 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/MutableValue.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/MutableValueSetterProxy.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/RemoteObject.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/RuntimeManager.h +0 -0
- package/Common/cpp/SharedItems/ShareableValue.cpp +6 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/ShareableValue.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/SharedParent.h +0 -0
- package/Common/cpp/{headers/SharedItems → SharedItems}/ValueWrapper.h +0 -0
- package/Common/cpp/{headers/SpecTools → SpecTools}/ErrorHandler.h +0 -0
- package/Common/cpp/{headers/Tools → Tools}/FeaturesConfig.h +0 -0
- package/Common/cpp/Tools/JSIStoreValueUser.cpp +2 -2
- package/Common/cpp/{headers/Tools → Tools}/JSIStoreValueUser.h +0 -0
- package/Common/cpp/{headers/Tools → Tools}/Mapper.h +0 -0
- package/Common/cpp/{headers/Tools → Tools}/PlatformDepMethodsHolder.h +0 -0
- package/Common/cpp/{headers/Tools → Tools}/ReanimatedHiddenHeaders.h +1 -1
- package/Common/cpp/{headers/Tools → Tools}/RuntimeDecorator.h +0 -0
- package/Common/cpp/{headers/Tools → Tools}/Scheduler.h +0 -0
- package/Common/cpp/Tools/SingleInstanceChecker.h +58 -0
- package/Common/cpp/{headers/Tools → Tools}/WorkletEventHandler.h +0 -0
- package/RNReanimated.podspec +25 -23
- package/android/CMakeLists.txt +41 -38
- package/android/build.gradle +91 -72
- package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +10 -8
- package/android/src/main/cpp/{headers/AndroidErrorHandler.h → AndroidErrorHandler.h} +0 -0
- package/android/src/main/cpp/AndroidLogger.cpp +4 -1
- package/android/src/main/cpp/{headers/AndroidLogger.h → AndroidLogger.h} +0 -0
- package/android/src/main/cpp/{headers/AndroidScheduler.h → AndroidScheduler.h} +0 -0
- package/android/src/main/cpp/{headers/JNIHelper.h → JNIHelper.h} +0 -0
- package/android/src/main/cpp/{headers/LayoutAnimations.h → LayoutAnimations.h} +0 -0
- package/android/src/main/cpp/NativeProxy.cpp +12 -28
- package/android/src/main/cpp/{headers/NativeProxy.h → NativeProxy.h} +3 -1
- package/android/src/main/cpp/{headers/TurboModule.h → TurboModule.h} +0 -0
- package/android/src/main/java/com/swmansion/reanimated/ReanimatedMessageQueueThread.java +77 -0
- package/android/src/main/java/com/swmansion/reanimated/keyboardObserver/ReanimatedKeyboardEventListener.java +2 -1
- package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +7 -7
- package/ios/REAModule.mm +10 -0
- package/ios/native/NativeProxy.mm +12 -19
- package/ios/native/REAInitializer.h +2 -2
- package/ios/native/REAInitializer.mm +2 -2
- package/ios/native/REAMessageThread.h +22 -0
- package/ios/native/REAMessageThread.mm +38 -0
- package/ios/native/UIResponder+Reanimated.mm +1 -1
- package/lib/commonjs/reanimated2/NativeMethods.js +20 -24
- package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/delay.js +0 -12
- package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/repeat.js +0 -24
- package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/sequence.js +0 -12
- package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
- package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +4 -4
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +51 -19
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/index.js +8 -0
- package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +31 -0
- package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -0
- package/lib/commonjs/reanimated2/utils.js +12 -3
- package/lib/commonjs/reanimated2/utils.js.map +1 -1
- package/lib/module/reanimated2/NativeMethods.js +20 -24
- package/lib/module/reanimated2/NativeMethods.js.map +1 -1
- package/lib/module/reanimated2/animation/delay.js +0 -10
- package/lib/module/reanimated2/animation/delay.js.map +1 -1
- package/lib/module/reanimated2/animation/repeat.js +0 -20
- package/lib/module/reanimated2/animation/repeat.js.map +1 -1
- package/lib/module/reanimated2/animation/sequence.js +0 -10
- package/lib/module/reanimated2/animation/sequence.js.map +1 -1
- package/lib/module/reanimated2/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +4 -4
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +51 -19
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/module/reanimated2/hook/index.js +1 -0
- package/lib/module/reanimated2/hook/index.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
- package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
- package/lib/module/reanimated2/hook/useScrollViewOffset.js +20 -0
- package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -0
- package/lib/module/reanimated2/utils.js +13 -3
- package/lib/module/reanimated2/utils.js.map +1 -1
- package/package.json +6 -4
- package/plugin.js +105 -47
- package/react-native-reanimated.d.ts +13 -9
- package/src/reanimated2/NativeMethods.ts +28 -33
- package/src/reanimated2/animation/delay.ts +0 -12
- package/src/reanimated2/animation/repeat.ts +0 -25
- package/src/reanimated2/animation/sequence.ts +0 -13
- package/src/reanimated2/commonTypes.ts +9 -0
- package/src/reanimated2/frameCallback/FrameCallbackRegistryJS.ts +6 -9
- package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +78 -27
- package/src/reanimated2/hook/index.ts +1 -0
- package/src/reanimated2/hook/useAnimatedScrollHandler.ts +3 -1
- package/src/reanimated2/hook/useFrameCallback.ts +2 -1
- package/src/reanimated2/hook/useScrollViewOffset.ts +36 -0
- package/src/reanimated2/utils.ts +12 -5
- package/android/src/main/java/com/swmansion/reanimated/ReanimatedJSIModulePackage.java +0 -29
|
@@ -12,48 +12,80 @@ const prepareUIRegistry = (0, _core.runOnUI)(() => {
|
|
|
12
12
|
|
|
13
13
|
const frameCallbackRegistry = {
|
|
14
14
|
frameCallbackRegistry: new Map(),
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
activeFrameCallbacks: new Set(),
|
|
16
|
+
previousFrameTimestamp: null,
|
|
17
17
|
|
|
18
18
|
runCallbacks() {
|
|
19
|
-
const loop =
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
const loop = timestamp => {
|
|
20
|
+
if (this.previousFrameTimestamp === null) {
|
|
21
|
+
this.previousFrameTimestamp = timestamp;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const delta = timestamp - this.previousFrameTimestamp;
|
|
25
|
+
this.activeFrameCallbacks.forEach(callbackId => {
|
|
26
|
+
const callbackDetails = this.frameCallbackRegistry.get(callbackId);
|
|
27
|
+
const {
|
|
28
|
+
startTime
|
|
29
|
+
} = callbackDetails;
|
|
30
|
+
|
|
31
|
+
if (startTime === null) {
|
|
32
|
+
// First frame
|
|
33
|
+
callbackDetails.startTime = timestamp;
|
|
34
|
+
callbackDetails.callback({
|
|
35
|
+
timestamp,
|
|
36
|
+
timeSincePreviousFrame: null,
|
|
37
|
+
timeSinceFirstFrame: 0
|
|
38
|
+
});
|
|
39
|
+
} else {
|
|
40
|
+
// Next frame
|
|
41
|
+
callbackDetails.callback({
|
|
42
|
+
timestamp,
|
|
43
|
+
timeSincePreviousFrame: delta,
|
|
44
|
+
timeSinceFirstFrame: timestamp - startTime
|
|
45
|
+
});
|
|
46
|
+
}
|
|
23
47
|
});
|
|
24
48
|
|
|
25
|
-
if (this.
|
|
49
|
+
if (this.activeFrameCallbacks.size > 0) {
|
|
50
|
+
this.previousFrameTimestamp = timestamp;
|
|
26
51
|
requestAnimationFrame(loop);
|
|
27
52
|
} else {
|
|
28
|
-
this.
|
|
53
|
+
this.previousFrameTimestamp = null;
|
|
29
54
|
}
|
|
30
|
-
};
|
|
55
|
+
}; // runCallback() should only be called after registering a callback,
|
|
56
|
+
// so if there is only one active callback, then it means that there were
|
|
57
|
+
// zero previously and the loop isn't running yet.
|
|
58
|
+
|
|
31
59
|
|
|
32
|
-
if (
|
|
60
|
+
if (this.activeFrameCallbacks.size === 1) {
|
|
33
61
|
requestAnimationFrame(loop);
|
|
34
|
-
this.isFrameCallbackRunning = true;
|
|
35
62
|
}
|
|
36
63
|
},
|
|
37
64
|
|
|
38
65
|
registerFrameCallback(callback, callbackId) {
|
|
39
|
-
this.frameCallbackRegistry.set(callbackId,
|
|
66
|
+
this.frameCallbackRegistry.set(callbackId, {
|
|
67
|
+
callback: callback,
|
|
68
|
+
startTime: null
|
|
69
|
+
});
|
|
40
70
|
},
|
|
41
71
|
|
|
42
|
-
unregisterFrameCallback(
|
|
43
|
-
this.manageStateFrameCallback(
|
|
44
|
-
this.frameCallbackRegistry.delete(
|
|
72
|
+
unregisterFrameCallback(callbackId) {
|
|
73
|
+
this.manageStateFrameCallback(callbackId, false);
|
|
74
|
+
this.frameCallbackRegistry.delete(callbackId);
|
|
45
75
|
},
|
|
46
76
|
|
|
47
|
-
manageStateFrameCallback(
|
|
48
|
-
if (
|
|
77
|
+
manageStateFrameCallback(callbackId, state) {
|
|
78
|
+
if (callbackId === -1) {
|
|
49
79
|
return;
|
|
50
80
|
}
|
|
51
81
|
|
|
52
82
|
if (state) {
|
|
53
|
-
this.
|
|
83
|
+
this.activeFrameCallbacks.add(callbackId);
|
|
54
84
|
this.runCallbacks();
|
|
55
85
|
} else {
|
|
56
|
-
this.
|
|
86
|
+
const callback = this.frameCallbackRegistry.get(callbackId);
|
|
87
|
+
callback.startTime = null;
|
|
88
|
+
this.activeFrameCallbacks.delete(callbackId);
|
|
57
89
|
}
|
|
58
90
|
}
|
|
59
91
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["prepareUIRegistry","runOnUI","frameCallbackRegistry","Map","
|
|
1
|
+
{"version":3,"names":["prepareUIRegistry","runOnUI","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\ninterface 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;;AA0BO,MAAMA,iBAAiB,GAAG,IAAAC,aAAA,EAAQ,MAAM;EAC7C;;EAEA,MAAMC,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,CAxFgC,CAA1B"}
|
|
@@ -81,6 +81,12 @@ Object.defineProperty(exports, "useHandler", {
|
|
|
81
81
|
return _Hooks.useHandler;
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
|
+
Object.defineProperty(exports, "useScrollViewOffset", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return _useScrollViewOffset.useScrollViewOffset;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
84
90
|
Object.defineProperty(exports, "useSharedValue", {
|
|
85
91
|
enumerable: true,
|
|
86
92
|
get: function () {
|
|
@@ -115,4 +121,6 @@ var _useAnimatedSensor = require("./useAnimatedSensor");
|
|
|
115
121
|
var _useFrameCallback = require("./useFrameCallback");
|
|
116
122
|
|
|
117
123
|
var _useAnimatedKeyboard = require("./useAnimatedKeyboard");
|
|
124
|
+
|
|
125
|
+
var _useScrollViewOffset = require("./useScrollViewOffset");
|
|
118
126
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"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":"
|
|
1
|
+
{"version":3,"names":[],"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;;AAMA;;AACA;;AAEA;;AAKA;;AAEA;;AACA;;AAEA;;AAEA;;AACA;;AAEA;;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useAnimatedScrollHandler","handlers","dependencies","scrollHandlers","onScroll","context","doDependenciesDiffer","useHandler","subscribeForEvents","onBeginDrag","undefined","push","onEndDrag","onMomentumBegin","onMomentumEnd","useEvent","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\
|
|
1
|
+
{"version":3,"names":["useAnimatedScrollHandler","handlers","dependencies","scrollHandlers","onScroll","context","doDependenciesDiffer","useHandler","subscribeForEvents","onBeginDrag","undefined","push","onEndDrag","onMomentumBegin","onMomentumEnd","useEvent","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;;AAqBO,SAASA,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,IAAoC,IAAAC,iBAAA,EACxCJ,cADwC,EAExCD,YAFwC,CAA1C,CAJ6C,CAS7C;;EACA,MAAMM,kBAAkB,GAAG,CAAC,UAAD,CAA3B;;EACA,IAAIL,cAAc,CAACM,WAAf,KAA+BC,SAAnC,EAA8C;IAC5CF,kBAAkB,CAACG,IAAnB,CAAwB,mBAAxB;EACD;;EACD,IAAIR,cAAc,CAACS,SAAf,KAA6BF,SAAjC,EAA4C;IAC1CF,kBAAkB,CAACG,IAAnB,CAAwB,iBAAxB;EACD;;EACD,IAAIR,cAAc,CAACU,eAAf,KAAmCH,SAAvC,EAAkD;IAChDF,kBAAkB,CAACG,IAAnB,CAAwB,uBAAxB;EACD;;EACD,IAAIR,cAAc,CAACW,aAAf,KAAiCJ,SAArC,EAAgD;IAC9CF,kBAAkB,CAACG,IAAnB,CAAwB,qBAAxB;EACD;;EAED,OAAO,IAAAI,eAAA,EACJC,KAAD,IAAwB;IACtB;;IACA,MAAM;MACJZ,QADI;MAEJK,WAFI;MAGJG,SAHI;MAIJC,eAJI;MAKJC;IALI,IAMFX,cANJ;;IAOA,IAAIC,QAAQ,IAAIY,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,UAAzB,CAAhB,EAAsD;MACpDd,QAAQ,CAACY,KAAD,EAAQX,OAAR,CAAR;IACD,CAFD,MAEO,IAAII,WAAW,IAAIO,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,mBAAzB,CAAnB,EAAkE;MACvET,WAAW,CAACO,KAAD,EAAQX,OAAR,CAAX;IACD,CAFM,MAEA,IAAIO,SAAS,IAAII,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,iBAAzB,CAAjB,EAA8D;MACnEN,SAAS,CAACI,KAAD,EAAQX,OAAR,CAAT;IACD,CAFM,MAEA,IACLQ,eAAe,IACfG,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,uBAAzB,CAFK,EAGL;MACAL,eAAe,CAACG,KAAD,EAAQX,OAAR,CAAf;IACD,CALM,MAKA,IACLS,aAAa,IACbE,KAAK,CAACC,SAAN,CAAgBC,QAAhB,CAAyB,qBAAzB,CAFK,EAGL;MACAJ,aAAa,CAACE,KAAD,EAAQX,OAAR,CAAb;IACD;EACF,CA3BI,EA4BLG,kBA5BK,EA6BLF,oBA7BK,CAAP;AA+BD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["frameCallbackRegistry","FrameCallbackRegistryJS","useFrameCallback","callback","autostart","ref","useRef","setActive","isActive","manageStateFrameCallback","current","callbackId","useEffect","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;;AACA;;;;
|
|
1
|
+
{"version":3,"names":["frameCallbackRegistry","FrameCallbackRegistryJS","useFrameCallback","callback","autostart","ref","useRef","setActive","isActive","manageStateFrameCallback","current","callbackId","useEffect","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;;AACA;;;;AAQA,MAAMA,qBAAqB,GAAG,IAAIC,gCAAJ,EAA9B;;AAEO,SAASC,gBAAT,CACLC,QADK,EAGU;EAAA,IADfC,SACe,uEADH,IACG;EACf,MAAMC,GAAG,GAAG,IAAAC,aAAA,EAAsB;IAChCC,SAAS,EAAGC,QAAD,IAAuB;MAChCR,qBAAqB,CAACS,wBAAtB,CACEJ,GAAG,CAACK,OAAJ,CAAYC,UADd,EAEEH,QAFF;MAIAH,GAAG,CAACK,OAAJ,CAAYF,QAAZ,GAAuBA,QAAvB;IACD,CAP+B;IAQhCA,QAAQ,EAAEJ,SARsB;IAShCO,UAAU,EAAE,CAAC;EATmB,CAAtB,CAAZ;EAYA,IAAAC,gBAAA,EAAU,MAAM;IACdP,GAAG,CAACK,OAAJ,CAAYC,UAAZ,GACEX,qBAAqB,CAACa,qBAAtB,CAA4CV,QAA5C,CADF;IAEAE,GAAG,CAACK,OAAJ,CAAYH,SAAZ,CAAsBF,GAAG,CAACK,OAAJ,CAAYF,QAAlC;IAEA,OAAO,MAAM;MACXR,qBAAqB,CAACc,uBAAtB,CAA8CT,GAAG,CAACK,OAAJ,CAAYC,UAA1D;MACAN,GAAG,CAACK,OAAJ,CAAYC,UAAZ,GAAyB,CAAC,CAA1B;IACD,CAHD;EAID,CATD,EASG,CAACR,QAAD,EAAWC,SAAX,CATH;EAWA,OAAOC,GAAG,CAACK,OAAX;AACD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useScrollViewOffset = useScrollViewOffset;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
|
|
12
|
+
var _ = require(".");
|
|
13
|
+
|
|
14
|
+
const subscribeForEvents = ['onScroll', 'onScrollBeginDrag', 'onScrollEndDrag', 'onMomentumScrollBegin', 'onMomentumScrollEnd'];
|
|
15
|
+
|
|
16
|
+
function useScrollViewOffset(aref) {
|
|
17
|
+
const offsetRef = (0, _react.useRef)((0, _.useSharedValue)(0));
|
|
18
|
+
const event = (0, _.useEvent)(event => {
|
|
19
|
+
'worklet';
|
|
20
|
+
|
|
21
|
+
offsetRef.current.value = event.contentOffset.x === 0 ? event.contentOffset.y : event.contentOffset.x;
|
|
22
|
+
}, subscribeForEvents);
|
|
23
|
+
(0, _react.useEffect)(() => {
|
|
24
|
+
var _event$current;
|
|
25
|
+
|
|
26
|
+
const viewTag = (0, _reactNative.findNodeHandle)(aref.current);
|
|
27
|
+
(_event$current = event.current) === null || _event$current === void 0 ? void 0 : _event$current.registerForEvents(viewTag);
|
|
28
|
+
}, [aref.current]);
|
|
29
|
+
return offsetRef.current;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=useScrollViewOffset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["subscribeForEvents","useScrollViewOffset","aref","offsetRef","useRef","useSharedValue","event","useEvent","current","value","contentOffset","x","y","useEffect","viewTag","findNodeHandle","registerForEvents"],"sources":["useScrollViewOffset.ts"],"sourcesContent":["import { RefObject, useEffect, useRef } from 'react';\n\nimport { findNodeHandle } from 'react-native';\nimport type Animated from 'react-native-reanimated';\nimport { useEvent, useSharedValue } from '.';\nimport { SharedValue } from '../commonTypes';\nimport { ScrollEvent } from './useAnimatedScrollHandler';\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;;AAEA;;AAEA;;AAIA,MAAMA,kBAAkB,GAAG,CACzB,UADyB,EAEzB,mBAFyB,EAGzB,iBAHyB,EAIzB,uBAJyB,EAKzB,qBALyB,CAA3B;;AAQO,SAASC,mBAAT,CACLC,IADK,EAEgB;EACrB,MAAMC,SAAS,GAAG,IAAAC,aAAA,EAAO,IAAAC,gBAAA,EAAe,CAAf,CAAP,CAAlB;EAEA,MAAMC,KAAK,GAAG,IAAAC,UAAA,EAAuBD,KAAD,IAAwB;IAC1D;;IACAH,SAAS,CAACK,OAAV,CAAkBC,KAAlB,GACEH,KAAK,CAACI,aAAN,CAAoBC,CAApB,KAA0B,CAA1B,GACIL,KAAK,CAACI,aAAN,CAAoBE,CADxB,GAEIN,KAAK,CAACI,aAAN,CAAoBC,CAH1B;EAID,CANa,EAMXX,kBANW,CAAd;EAQA,IAAAa,gBAAA,EAAU,MAAM;IAAA;;IACd,MAAMC,OAAO,GAAG,IAAAC,2BAAA,EAAeb,IAAI,CAACM,OAApB,CAAhB;IACA,kBAAAF,KAAK,CAACE,OAAN,kEAAeQ,iBAAf,CAAiCF,OAAjC;EACD,CAHD,EAGG,CAACZ,IAAI,CAACM,OAAN,CAHH;EAKA,OAAOL,SAAS,CAACK,OAAjB;AACD"}
|
|
@@ -7,13 +7,22 @@ exports.getRelativeCoords = getRelativeCoords;
|
|
|
7
7
|
|
|
8
8
|
var _NativeMethods = require("./NativeMethods");
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Given an absolute position and a component ref, returns the relative
|
|
12
|
+
* position in the component's local coordinate space.
|
|
13
|
+
*/
|
|
14
|
+
function getRelativeCoords(parentRef, absoluteX, absoluteY) {
|
|
11
15
|
'worklet';
|
|
12
16
|
|
|
13
17
|
const parentCoords = (0, _NativeMethods.measure)(parentRef);
|
|
18
|
+
|
|
19
|
+
if (parentCoords === null) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
|
|
14
23
|
return {
|
|
15
|
-
x:
|
|
16
|
-
y:
|
|
24
|
+
x: absoluteX - parentCoords.x,
|
|
25
|
+
y: absoluteY - parentCoords.y
|
|
17
26
|
};
|
|
18
27
|
}
|
|
19
28
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getRelativeCoords","parentRef","
|
|
1
|
+
{"version":3,"names":["getRelativeCoords","parentRef","absoluteX","absoluteY","parentCoords","measure","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;;AAQA;AACA;AACA;AACA;AACO,SAASA,iBAAT,CACLC,SADK,EAELC,SAFK,EAGLC,SAHK,EAImB;EACxB;;EACA,MAAMC,YAAY,GAAG,IAAAC,sBAAA,EAAQJ,SAAR,CAArB;;EACA,IAAIG,YAAY,KAAK,IAArB,EAA2B;IACzB,OAAO,IAAP;EACD;;EACD,OAAO;IACLE,CAAC,EAAEJ,SAAS,GAAGE,YAAY,CAACE,CADvB;IAELC,CAAC,EAAEJ,SAAS,GAAGC,YAAY,CAACG;EAFvB,CAAP;AAID"}
|
|
@@ -1,45 +1,41 @@
|
|
|
1
1
|
/* global _WORKLET _measure _scrollTo _dispatchCommand _setGestureState */
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3
|
-
// @ts-nocheck
|
|
4
2
|
import { findNodeHandle } from 'react-native';
|
|
5
3
|
import { shouldBeUseWeb } from './PlatformChecker';
|
|
6
4
|
export function getTag(view) {
|
|
7
5
|
return findNodeHandle(view);
|
|
8
6
|
}
|
|
9
|
-
const
|
|
7
|
+
const isNative = !shouldBeUseWeb();
|
|
10
8
|
export function measure(animatedRef) {
|
|
11
9
|
'worklet';
|
|
12
10
|
|
|
13
|
-
if (!_WORKLET ||
|
|
14
|
-
console.warn('[
|
|
15
|
-
return
|
|
16
|
-
x: NaN,
|
|
17
|
-
y: NaN,
|
|
18
|
-
width: NaN,
|
|
19
|
-
height: NaN,
|
|
20
|
-
pageX: NaN,
|
|
21
|
-
pageY: NaN
|
|
22
|
-
};
|
|
11
|
+
if (!_WORKLET || !isNative) {
|
|
12
|
+
console.warn('[Reanimated] measure() cannot be used for web or Chrome Debugger');
|
|
13
|
+
return null;
|
|
23
14
|
}
|
|
24
15
|
|
|
25
16
|
const viewTag = animatedRef();
|
|
26
17
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
throw new Error(`The view with tag ${viewTag} could not be measured`);
|
|
18
|
+
if (viewTag === -1) {
|
|
19
|
+
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).`);
|
|
20
|
+
return null;
|
|
31
21
|
}
|
|
32
22
|
|
|
33
|
-
|
|
34
|
-
console.warn('Trying to measure a component which gets view-flattened on Android. To disable view-flattening, set `collapsable={false}` on this component.');
|
|
35
|
-
}
|
|
23
|
+
const measured = _measure(viewTag);
|
|
36
24
|
|
|
37
|
-
|
|
25
|
+
if (measured.x === -1234567) {
|
|
26
|
+
console.warn(`[Reanimated] The view with tag ${viewTag} returned an invalid measurement response`);
|
|
27
|
+
return null;
|
|
28
|
+
} else if (isNaN(measured.x)) {
|
|
29
|
+
console.warn(`[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \`collapsable={false}\` on this component.`);
|
|
30
|
+
return null;
|
|
31
|
+
} else {
|
|
32
|
+
return measured;
|
|
33
|
+
}
|
|
38
34
|
}
|
|
39
35
|
export function dispatchCommand(animatedRef, commandName, args) {
|
|
40
36
|
'worklet';
|
|
41
37
|
|
|
42
|
-
if (!_WORKLET ||
|
|
38
|
+
if (!_WORKLET || !isNative) {
|
|
43
39
|
return;
|
|
44
40
|
}
|
|
45
41
|
|
|
@@ -59,7 +55,7 @@ if (global._IS_FABRIC) {
|
|
|
59
55
|
scrollTo = (animatedRef, x, y, animated) => {
|
|
60
56
|
'worklet';
|
|
61
57
|
|
|
62
|
-
if (!_WORKLET ||
|
|
58
|
+
if (!_WORKLET || !isNative) {
|
|
63
59
|
return;
|
|
64
60
|
}
|
|
65
61
|
|
|
@@ -72,7 +68,7 @@ if (global._IS_FABRIC) {
|
|
|
72
68
|
export function setGestureState(handlerTag, newState) {
|
|
73
69
|
'worklet';
|
|
74
70
|
|
|
75
|
-
if (!_WORKLET ||
|
|
71
|
+
if (!_WORKLET || !isNative) {
|
|
76
72
|
console.warn('[Reanimated] You can not use setGestureState in non-worklet function.');
|
|
77
73
|
return;
|
|
78
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findNodeHandle","shouldBeUseWeb","getTag","view","
|
|
1
|
+
{"version":3,"names":["findNodeHandle","shouldBeUseWeb","getTag","view","isNative","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":"AAAA;AAEA,SAASA,cAAT,QAA+B,cAA/B;AAGA,SAASC,cAAT,QAA+B,mBAA/B;AAEA,OAAO,SAASC,MAAT,CACLC,IADK,EAEU;EACf,OAAOH,cAAc,CAACG,IAAD,CAArB;AACD;AAED,MAAMC,QAAQ,GAAG,CAACH,cAAc,EAAhC;AAEA,OAAO,SAASI,OAAT,CACLC,WADK,EAEsB;EAC3B;;EACA,IAAI,CAACC,QAAD,IAAa,CAACH,QAAlB,EAA4B;IAC1BI,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;AAED,OAAO,SAASI,eAAT,CACLT,WADK,EAELU,WAFK,EAGLC,IAHK,EAIC;EACN;;EACA,IAAI,CAACV,QAAD,IAAa,CAACH,QAAlB,EAA4B;IAC1B;EACD;;EACD,MAAMc,iBAAiB,GAAGZ,WAAW,EAArC;;EACAa,gBAAgB,CAACD,iBAAD,EAAoBF,WAApB,EAAiCC,IAAjC,CAAhB;AACD;AAED,OAAO,IAAIG,QAAJ;;AAOP,IAAIC,MAAM,CAACC,UAAX,EAAuB;EACrBF,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;EACLJ,QAAQ,GAAG,CACTd,WADS,EAETO,CAFS,EAGTU,CAHS,EAITC,QAJS,KAKN;IACH;;IACA,IAAI,CAACjB,QAAD,IAAa,CAACH,QAAlB,EAA4B;MAC1B;IACD;;IACD,MAAMM,OAAO,GAAGJ,WAAW,EAA3B;;IACAmB,SAAS,CAACf,OAAD,EAAUG,CAAV,EAAaU,CAAb,EAAgBC,QAAhB,CAAT;EACD,CAZD;AAaD;;AAED,OAAO,SAASE,eAAT,CAAyBC,UAAzB,EAA6CC,QAA7C,EAAqE;EAC1E;;EACA,IAAI,CAACrB,QAAD,IAAa,CAACH,QAAlB,EAA4B;IAC1BI,OAAO,CAACC,IAAR,CACE,uEADF;IAGA;EACD;;EACDoB,gBAAgB,CAACF,UAAD,EAAaC,QAAb,CAAhB;AACD"}
|
|
@@ -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"
|
|
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"
|
|
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"
|
|
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(
|
|
27
|
+
unregisterFrameCallback(callbackId) {
|
|
28
28
|
runOnUI(() => {
|
|
29
29
|
'worklet';
|
|
30
30
|
|
|
31
|
-
global._frameCallbackRegistry.unregisterFrameCallback(
|
|
31
|
+
global._frameCallbackRegistry.unregisterFrameCallback(callbackId);
|
|
32
32
|
})();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
manageStateFrameCallback(
|
|
35
|
+
manageStateFrameCallback(callbackId, state) {
|
|
36
36
|
runOnUI(() => {
|
|
37
37
|
'worklet';
|
|
38
38
|
|
|
39
|
-
global._frameCallbackRegistry.manageStateFrameCallback(
|
|
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","
|
|
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"}
|