react-native-reanimated 1.13.0 → 1.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/RNReanimated.podspec +1 -1
  2. package/android/build.gradle +11 -39
  3. package/lib/commonjs/core/AnimatedCode.js +1 -1
  4. package/lib/commonjs/core/AnimatedCode.js.map +1 -1
  5. package/lib/commonjs/core/AnimatedDebug.js +8 -2
  6. package/lib/commonjs/core/AnimatedDebug.js.map +1 -1
  7. package/lib/commonjs/core/AnimatedNode.js +3 -1
  8. package/lib/commonjs/core/AnimatedNode.js.map +1 -1
  9. package/lib/commonjs/derived/interpolate.js +2 -0
  10. package/lib/commonjs/derived/interpolate.js.map +1 -1
  11. package/lib/module/core/AnimatedCode.js +1 -1
  12. package/lib/module/core/AnimatedCode.js.map +1 -1
  13. package/lib/module/core/AnimatedDebug.js +7 -2
  14. package/lib/module/core/AnimatedDebug.js.map +1 -1
  15. package/lib/module/core/AnimatedNode.js +2 -1
  16. package/lib/module/core/AnimatedNode.js.map +1 -1
  17. package/lib/module/derived/interpolate.js +2 -0
  18. package/lib/module/derived/interpolate.js.map +1 -1
  19. package/mock.js +1 -0
  20. package/package.json +5 -2
  21. package/react-native-reanimated.d.ts +6 -5
  22. package/src/core/AnimatedCode.js +1 -1
  23. package/src/core/AnimatedDebug.js +6 -2
  24. package/src/core/AnimatedNode.js +4 -1
  25. package/src/derived/interpolate.js +2 -0
  26. package/android/README.md +0 -15
  27. package/lib/typescript/Animated.test.d.ts +0 -1
  28. package/lib/typescript/ConfigHelper.d.ts +0 -6
  29. package/lib/typescript/Easing.d.ts +0 -151
  30. package/lib/typescript/ReanimatedEventEmitter.d.ts +0 -2
  31. package/lib/typescript/ReanimatedModule.d.ts +0 -2
  32. package/lib/typescript/ReanimatedModule.macos.d.ts +0 -2
  33. package/lib/typescript/ReanimatedModule.native.d.ts +0 -2
  34. package/lib/typescript/ReanimatedModule.windows.d.ts +0 -2
  35. package/lib/typescript/ReanimatedModuleCompat.d.ts +0 -19
  36. package/lib/typescript/SpringConfig.d.ts +0 -8
  37. package/lib/typescript/__mocks__/ReanimatedEventEmitter.d.ts +0 -5
  38. package/lib/typescript/__mocks__/ReanimatedModule.native.d.ts +0 -8
  39. package/lib/typescript/animations/Animation.d.ts +0 -22
  40. package/lib/typescript/animations/SpringUtils.d.ts +0 -29
  41. package/lib/typescript/animations/backwardCompatibleAnimWrapper.d.ts +0 -5
  42. package/lib/typescript/animations/decay.d.ts +0 -9
  43. package/lib/typescript/animations/spring.d.ts +0 -18
  44. package/lib/typescript/animations/timing.d.ts +0 -1
  45. package/lib/typescript/base.d.ts +0 -13
  46. package/lib/typescript/core/AnimatedAlways.d.ts +0 -8
  47. package/lib/typescript/core/AnimatedBezier.d.ts +0 -6
  48. package/lib/typescript/core/AnimatedBlock.d.ts +0 -4
  49. package/lib/typescript/core/AnimatedCall.d.ts +0 -3
  50. package/lib/typescript/core/AnimatedCallFunc.d.ts +0 -12
  51. package/lib/typescript/core/AnimatedClock.d.ts +0 -14
  52. package/lib/typescript/core/AnimatedClockTest.d.ts +0 -7
  53. package/lib/typescript/core/AnimatedCode.d.ts +0 -6
  54. package/lib/typescript/core/AnimatedConcat.d.ts +0 -3
  55. package/lib/typescript/core/AnimatedCond.d.ts +0 -3
  56. package/lib/typescript/core/AnimatedDebug.d.ts +0 -2
  57. package/lib/typescript/core/AnimatedFunction.d.ts +0 -3
  58. package/lib/typescript/core/AnimatedNode.d.ts +0 -38
  59. package/lib/typescript/core/AnimatedOperator.d.ts +0 -12
  60. package/lib/typescript/core/AnimatedParam.d.ts +0 -16
  61. package/lib/typescript/core/AnimatedProps.d.ts +0 -1
  62. package/lib/typescript/core/AnimatedSet.d.ts +0 -4
  63. package/lib/typescript/core/AnimatedStartClock.d.ts +0 -7
  64. package/lib/typescript/core/AnimatedStopClock.d.ts +0 -7
  65. package/lib/typescript/core/AnimatedStyle.d.ts +0 -12
  66. package/lib/typescript/core/AnimatedTransform.d.ts +0 -1
  67. package/lib/typescript/core/AnimatedValue.d.ts +0 -10
  68. package/lib/typescript/core/Core.test.d.ts +0 -1
  69. package/lib/typescript/core/InternalAnimatedValue.d.ts +0 -23
  70. package/lib/typescript/core/__mocks__/AnimatedProps.d.ts +0 -1
  71. package/lib/typescript/core/createEventObjectProxyPolyfill.d.ts +0 -45
  72. package/lib/typescript/derived/__mocks__/evaluateOnce.d.ts +0 -1
  73. package/lib/typescript/derived/acc.d.ts +0 -1
  74. package/lib/typescript/derived/color.d.ts +0 -2
  75. package/lib/typescript/derived/diff.d.ts +0 -1
  76. package/lib/typescript/derived/diffClamp.d.ts +0 -1
  77. package/lib/typescript/derived/evaluateOnce.d.ts +0 -9
  78. package/lib/typescript/derived/index.d.ts +0 -8
  79. package/lib/typescript/derived/interpolate.d.ts +0 -14
  80. package/lib/typescript/derived/interpolate.test.d.ts +0 -1
  81. package/lib/typescript/derived/interpolateColors.d.ts +0 -12
  82. package/lib/typescript/derived/onChange.d.ts +0 -3
  83. package/lib/typescript/derived/useCode.d.ts +0 -15
  84. package/lib/typescript/types.d.ts +0 -3
  85. package/lib/typescript/useValue.d.ts +0 -3
  86. package/lib/typescript/val.d.ts +0 -1
@@ -19,6 +19,6 @@ Pod::Spec.new do |s|
19
19
  s.source_files = "ios/**/*.{h,m}"
20
20
  s.requires_arc = true
21
21
 
22
- s.dependency "React"
22
+ s.dependency "React-Core"
23
23
  end
24
24
 
@@ -17,8 +17,10 @@ buildscript {
17
17
  }
18
18
  }
19
19
 
20
- apply plugin: 'com.android.library'
21
- apply plugin: 'maven'
20
+ plugins {
21
+ id('com.android.library')
22
+ id('maven-publish')
23
+ }
22
24
 
23
25
  android {
24
26
  compileSdkVersion safeExtGet('compileSdkVersion', 28)
@@ -54,34 +56,6 @@ dependencies {
54
56
  implementation "androidx.transition:transition:1.1.0"
55
57
  }
56
58
 
57
- def configureReactNativePom(def pom) {
58
- def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
59
-
60
- pom.project {
61
- name packageJson.title
62
- artifactId packageJson.name
63
- version = packageJson.version
64
- group = "com.swmansion.reanimated"
65
- description packageJson.description
66
- url packageJson.repository.baseUrl
67
-
68
- licenses {
69
- license {
70
- name packageJson.license
71
- url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
72
- distribution 'repo'
73
- }
74
- }
75
-
76
- developers {
77
- developer {
78
- id packageJson.author.username
79
- name packageJson.author.name
80
- }
81
- }
82
- }
83
- }
84
-
85
59
  afterEvaluate { project ->
86
60
 
87
61
  task androidJavadoc(type: Javadoc) {
@@ -92,12 +66,12 @@ afterEvaluate { project ->
92
66
  }
93
67
 
94
68
  task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
95
- classifier = 'javadoc'
69
+ archiveClassifier = 'javadoc'
96
70
  from androidJavadoc.destinationDir
97
71
  }
98
72
 
99
73
  task androidSourcesJar(type: Jar) {
100
- classifier = 'sources'
74
+ archiveClassifier = 'sources'
101
75
  from android.sourceSets.main.java.srcDirs
102
76
  include '**/*.java'
103
77
  }
@@ -121,13 +95,11 @@ afterEvaluate { project ->
121
95
  archives androidJavadocJar
122
96
  }
123
97
 
124
- task installArchives(type: Upload) {
125
- configuration = configurations.archives
126
- repositories.mavenDeployer {
127
- // Deploy to react-native-event-bridge/maven, ready to publish to npm
128
- repository url: "file://${projectDir}/../android/maven"
129
-
130
- configureReactNativePom pom
98
+ publishing {
99
+ publications {
100
+ maven(MavenPublication) {
101
+ artifact androidSourcesJar
102
+ }
131
103
  }
132
104
  }
133
105
  }
@@ -21,7 +21,7 @@ function assertNodesNotNull(code, children, exec) {
21
21
  function Code({
22
22
  exec,
23
23
  children,
24
- dependencies = []
24
+ dependencies
25
25
  }) {
26
26
  const nodes = children || exec;
27
27
  let code = null;
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedCode.js"],"names":["assertNodesNotNull","code","children","exec","error","Error","Code","dependencies","nodes","AnimatedNode"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,SAASA,kBAAT,CAA4BC,IAA5B,EAAkCC,QAAlC,EAA4CC,IAA5C,EAAkD;AAChD,MAAI,CAACF,IAAL,EAAW;AACT,UAAMG,KAAK,GAAG,CAACF,QAAD,mBACF,OAAOA,QADL,kDAEF,OAAOC,IAFL,2BAAd;AAIA,UAAM,IAAIE,KAAJ,kIACsHD,KADtH,EAAN;AAGD;AACF;;AAED,SAASE,IAAT,CAAc;AAAEH,EAAAA,IAAF;AAAQD,EAAAA,QAAR;AAAkBK,EAAAA,YAAY,GAAG;AAAjC,CAAd,EAAqD;AACnD,QAAMC,KAAK,GAAGN,QAAQ,IAAIC,IAA1B;AAEA,MAAIF,IAAI,GAAG,IAAX;;AACA,MAAIO,KAAK,YAAYC,qBAArB,EAAmC;AACjCR,IAAAA,IAAI,GAAG,MAAMO,KAAb;AACD,GAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,UAArB,EAAiC;AACtCP,IAAAA,IAAI,GAAGO,KAAP;AACD;;AAEDR,EAAAA,kBAAkB,CAACC,IAAD,EAAOC,QAAP,EAAiBC,IAAjB,CAAlB;AAEA,wBAAQF,IAAR,EAAcM,YAAd;AACA,SAAO,IAAP;AACD;;eAEcD,I","sourcesContent":["import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n `<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies = [] }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n"]}
1
+ {"version":3,"sources":["AnimatedCode.js"],"names":["assertNodesNotNull","code","children","exec","error","Error","Code","dependencies","nodes","AnimatedNode"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,SAASA,kBAAT,CAA4BC,IAA5B,EAAkCC,QAAlC,EAA4CC,IAA5C,EAAkD;AAChD,MAAI,CAACF,IAAL,EAAW;AACT,UAAMG,KAAK,GAAG,CAACF,QAAD,mBACF,OAAOA,QADL,kDAEF,OAAOC,IAFL,2BAAd;AAIA,UAAM,IAAIE,KAAJ,kIACsHD,KADtH,EAAN;AAGD;AACF;;AAED,SAASE,IAAT,CAAc;AAAEH,EAAAA,IAAF;AAAQD,EAAAA,QAAR;AAAkBK,EAAAA;AAAlB,CAAd,EAAgD;AAC9C,QAAMC,KAAK,GAAGN,QAAQ,IAAIC,IAA1B;AAEA,MAAIF,IAAI,GAAG,IAAX;;AACA,MAAIO,KAAK,YAAYC,qBAArB,EAAmC;AACjCR,IAAAA,IAAI,GAAG,MAAMO,KAAb;AACD,GAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,UAArB,EAAiC;AACtCP,IAAAA,IAAI,GAAGO,KAAP;AACD;;AAEDR,EAAAA,kBAAkB,CAACC,IAAD,EAAOC,QAAP,EAAiBC,IAAjB,CAAlB;AAEA,wBAAQF,IAAR,EAAcM,YAAd;AACA,SAAO,IAAP;AACD;;eAEcD,I","sourcesContent":["import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n `<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n"]}
@@ -7,6 +7,8 @@ exports.createAnimatedDebug = createAnimatedDebug;
7
7
 
8
8
  var _invariant = _interopRequireDefault(require("fbjs/lib/invariant"));
9
9
 
10
+ var _reactNative = require("react-native");
11
+
10
12
  var _val = require("../val");
11
13
 
12
14
  var _AnimatedBlock = require("./AnimatedBlock");
@@ -51,10 +53,14 @@ class AnimatedDebug extends _AnimatedNode.default {
51
53
 
52
54
  function createAnimatedDebug(message, value) {
53
55
  if (__DEV__) {
54
- const runningInRemoteDebugger = typeof atob !== 'undefined'; // hack to detect if app is running in remote debugger
56
+ var _NativeModules$Native, _NativeModules$Native2, _NativeModules$Native3;
57
+
58
+ // hack to detect if app is running in remote debugger
55
59
  // https://stackoverflow.com/questions/39022216
60
+ const runningInRemoteDebugger = typeof atob !== 'undefined'; // read the executionEnvironment off of expo-constants without explicitly
61
+ // depending on the package
56
62
 
57
- const runningInExpoShell = global.Expo && global.Expo.Constants.appOwnership !== 'standalone';
63
+ const runningInExpoShell = ((_NativeModules$Native = _reactNative.NativeModules.NativeUnimoduleProxy) === null || _NativeModules$Native === void 0 ? void 0 : (_NativeModules$Native2 = _NativeModules$Native.modulesConstants) === null || _NativeModules$Native2 === void 0 ? void 0 : (_NativeModules$Native3 = _NativeModules$Native2.ExponentConstants) === null || _NativeModules$Native3 === void 0 ? void 0 : _NativeModules$Native3.executionEnvironment) === 'storeClient';
58
64
 
59
65
  if (runningInRemoteDebugger || runningInExpoShell) {
60
66
  // When running in expo or remote debugger we use JS console.log to output variables
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedDebug.js"],"names":["AnimatedDebug","AnimatedNode","constructor","message","value","type","_message","_value","toString","__nodeID","__onEvaluate","console","log","createAnimatedDebug","__DEV__","runningInRemoteDebugger","atob","runningInExpoShell","global","Expo","Constants","appOwnership","a"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,aAAN,SAA4BC,qBAA5B,CAAyC;AAIvCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,KAAV,EAAiB;AAC1B,4BACE,OAAOD,OAAP,KAAmB,QADrB,4FAEqFA,OAFrF;AAIA,4BACEC,KAAK,YAAYH,qBADnB,mGAE4FG,KAF5F;AAIA,UAAM;AAAEC,MAAAA,IAAI,EAAE,OAAR;AAAiBF,MAAAA,OAAjB;AAA0BC,MAAAA;AAA1B,KAAN,EAAyC,CAACA,KAAD,CAAzC;;AAT0B;;AAAA;;AAU1B,SAAKE,QAAL,GAAgBH,OAAhB;AACA,SAAKI,MAAL,GAAcH,KAAd;AACD;;AAEDI,EAAAA,QAAQ,GAAG;AACT,wCAA6B,KAAKC,QAAlC;AACD;;AAEDC,EAAAA,YAAY,GAAG;AACb,UAAMN,KAAK,GAAG,cAAI,KAAKG,MAAT,CAAd;AACAI,IAAAA,OAAO,CAACC,GAAR,CAAY,KAAKN,QAAjB,EAA2BF,KAA3B;AACA,WAAOA,KAAP;AACD;;AA1BsC;;AA6BlC,SAASS,mBAAT,CAA6BV,OAA7B,EAAsCC,KAAtC,EAA6C;AAClD,MAAIU,OAAJ,EAAa;AACX,UAAMC,uBAAuB,GAAG,OAAOC,IAAP,KAAgB,WAAhD,CADW,CAEX;AACA;;AAEA,UAAMC,kBAAkB,GACtBC,MAAM,CAACC,IAAP,IAAeD,MAAM,CAACC,IAAP,CAAYC,SAAZ,CAAsBC,YAAtB,KAAuC,YADxD;;AAGA,QAAIN,uBAAuB,IAAIE,kBAA/B,EAAmD;AACjD;AACA;AACA,aAAO,wCAAM,CACX,sCAAK,CAACb,KAAD,CAAL,EAAc,CAAC,CAACkB,CAAD,CAAD,KAASX,OAAO,CAACC,GAAR,WAAeT,OAAf,cAA0BmB,CAA1B,EAAvB,CADW,EAEXlB,KAFW,CAAN,CAAP;AAID,KAPD,MAOO;AACL,aAAO,IAAIJ,aAAJ,CAAkBG,OAAlB,EAA2B,0BAAMC,KAAN,CAA3B,CAAP;AACD;AACF,GAnBiD,CAoBlD;;;AACA,SAAOA,KAAP;AACD","sourcesContent":["import invariant from 'fbjs/lib/invariant';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n\n const runningInExpoShell =\n global.Expo && global.Expo.Constants.appOwnership !== 'standalone';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n"]}
1
+ {"version":3,"sources":["AnimatedDebug.js"],"names":["AnimatedDebug","AnimatedNode","constructor","message","value","type","_message","_value","toString","__nodeID","__onEvaluate","console","log","createAnimatedDebug","__DEV__","runningInRemoteDebugger","atob","runningInExpoShell","NativeUnimoduleProxy","modulesConstants","ExponentConstants","executionEnvironment","a"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,aAAN,SAA4BC,qBAA5B,CAAyC;AAIvCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,KAAV,EAAiB;AAC1B,4BACE,OAAOD,OAAP,KAAmB,QADrB,4FAEqFA,OAFrF;AAIA,4BACEC,KAAK,YAAYH,qBADnB,mGAE4FG,KAF5F;AAIA,UAAM;AAAEC,MAAAA,IAAI,EAAE,OAAR;AAAiBF,MAAAA,OAAjB;AAA0BC,MAAAA;AAA1B,KAAN,EAAyC,CAACA,KAAD,CAAzC;;AAT0B;;AAAA;;AAU1B,SAAKE,QAAL,GAAgBH,OAAhB;AACA,SAAKI,MAAL,GAAcH,KAAd;AACD;;AAEDI,EAAAA,QAAQ,GAAG;AACT,wCAA6B,KAAKC,QAAlC;AACD;;AAEDC,EAAAA,YAAY,GAAG;AACb,UAAMN,KAAK,GAAG,cAAI,KAAKG,MAAT,CAAd;AACAI,IAAAA,OAAO,CAACC,GAAR,CAAY,KAAKN,QAAjB,EAA2BF,KAA3B;AACA,WAAOA,KAAP;AACD;;AA1BsC;;AA6BlC,SAASS,mBAAT,CAA6BV,OAA7B,EAAsCC,KAAtC,EAA6C;AAClD,MAAIU,OAAJ,EAAa;AAAA;;AACX;AACA;AACA,UAAMC,uBAAuB,GAAG,OAAOC,IAAP,KAAgB,WAAhD,CAHW,CAKX;AACA;;AACA,UAAMC,kBAAkB,GACtB,qDAAcC,oBAAd,0GAAoCC,gBAApC,4GAAsDC,iBAAtD,kFACIC,oBADJ,MAC6B,aAF/B;;AAIA,QAAIN,uBAAuB,IAAIE,kBAA/B,EAAmD;AACjD;AACA;AACA,aAAO,wCAAM,CACX,sCAAK,CAACb,KAAD,CAAL,EAAc,CAAC,CAACkB,CAAD,CAAD,KAASX,OAAO,CAACC,GAAR,WAAeT,OAAf,cAA0BmB,CAA1B,EAAvB,CADW,EAEXlB,KAFW,CAAN,CAAP;AAID,KAPD,MAOO;AACL,aAAO,IAAIJ,aAAJ,CAAkBG,OAAlB,EAA2B,0BAAMC,KAAN,CAA3B,CAAP;AACD;AACF,GAtBiD,CAuBlD;;;AACA,SAAOA,KAAP;AACD","sourcesContent":["import invariant from 'fbjs/lib/invariant';\nimport { NativeModules } from 'react-native';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n\n // read the executionEnvironment off of expo-constants without explicitly\n // depending on the package\n const runningInExpoShell =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants\n ?.executionEnvironment === 'storeClient';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n"]}
@@ -95,6 +95,8 @@ function runPropUpdates() {
95
95
  loopID += 1;
96
96
  }
97
97
 
98
+ const scheduleUpdates = _reactNative.Platform.OS === 'web' ? requestAnimationFrame : setImmediate;
99
+
98
100
  class AnimatedNode {
99
101
  constructor(nodeConfig, inputNodes) {
100
102
  _defineProperty(this, "__nodeID", void 0);
@@ -172,7 +174,7 @@ class AnimatedNode {
172
174
  UPDATED_NODES.push(this);
173
175
 
174
176
  if (!propUpdatesEnqueued) {
175
- propUpdatesEnqueued = setImmediate(runPropUpdates);
177
+ propUpdatesEnqueued = scheduleUpdates(runPropUpdates);
176
178
  }
177
179
  }
178
180
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedNode.js"],"names":["UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","config","Platform","OS","includes","Array","isArray","map","AnimatedNode","__nodeID","output","property","runPropUpdates","visitedNodes","Set","findAndUpdateNodes","node","console","warn","has","add","update","nodes","__getChildren","i","l","length","constructor","nodeConfig","inputNodes","__nodeConfig","__initialized","__inputNodes","filter","toString","__attach","__nativeInitialize","__addChild","__detach","__removeChild","__nativeTearDown","__getValue","__lastLoopID","result","__onEvaluate","__memoizedValue","__forceUpdateCache","newValue","__markUpdated","__dangerouslyRescheduleEvaluate","push","setImmediate","ReanimatedModule","createNode","dropNode","isNativelyInitialized","Error","__getProps","__children","child","connectNodes","index","indexOf","disconnectNodes","splice","_connectAnimatedView","nativeViewTag","connectNodeToView","_disconnectAnimatedView","disconnectNodeFromView"],"mappings":"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","sourcesContent":["import ReanimatedModule from '../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = \"\";\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (Platform.OS === 'web' || Platform.OS === 'windows' || Platform.OS === 'macos' || ['undefined', 'string', 'function', 'boolean', 'number'].includes(typeof config)) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = node => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nexport default class AnimatedNode {\n\n __nodeID;\n __lastLoopID = { \"\": -1 };\n __memoizedValue = { \"\": null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter(node => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = setImmediate(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\n }\n}\n"]}
1
+ {"version":3,"sources":["AnimatedNode.js"],"names":["UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","config","Platform","OS","includes","Array","isArray","map","AnimatedNode","__nodeID","output","property","runPropUpdates","visitedNodes","Set","findAndUpdateNodes","node","console","warn","has","add","update","nodes","__getChildren","i","l","length","scheduleUpdates","requestAnimationFrame","setImmediate","constructor","nodeConfig","inputNodes","__nodeConfig","__initialized","__inputNodes","filter","toString","__attach","__nativeInitialize","__addChild","__detach","__removeChild","__nativeTearDown","__getValue","__lastLoopID","result","__onEvaluate","__memoizedValue","__forceUpdateCache","newValue","__markUpdated","__dangerouslyRescheduleEvaluate","push","ReanimatedModule","createNode","dropNode","isNativelyInitialized","Error","__getProps","__children","child","connectNodes","index","indexOf","disconnectNodes","splice","_connectAnimatedView","nativeViewTag","connectNodeToView","_disconnectAnimatedView","disconnectNodeFromView"],"mappings":"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","sourcesContent":["import ReanimatedModule from '../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = \"\";\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (Platform.OS === 'web' || Platform.OS === 'windows' || Platform.OS === 'macos' || ['undefined', 'string', 'function', 'boolean', 'number'].includes(typeof config)) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = node => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nconst scheduleUpdates =\n Platform.OS === 'web' ? requestAnimationFrame : setImmediate;\n\nexport default class AnimatedNode {\n\n __nodeID;\n __lastLoopID = { \"\": -1 };\n __memoizedValue = { \"\": null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter(node => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = scheduleUpdates(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\n }\n}\n"]}
@@ -73,6 +73,8 @@ function convertToRadians(outputRange) {
73
73
  for (const [i, value] of outputRange.entries()) {
74
74
  if (typeof value === 'string' && value.endsWith('deg')) {
75
75
  outputRange[i] = parseFloat(value) * (Math.PI / 180);
76
+ } else if (typeof value === 'string' && value.endsWith('rad')) {
77
+ outputRange[i] = parseFloat(value);
76
78
  }
77
79
  }
78
80
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["interpolate.js"],"names":["interpolateInternalSingleProc","value","inS","inE","outS","outE","progress","resultForNonZeroRange","result","interpolateInternalSingle","inputRange","outputRange","offset","interpolateInternal","length","Extrapolate","EXTEND","CLAMP","IDENTITY","checkNonDecreasing","name","arr","i","AnimatedNode","checkMinElements","checkValidNumbers","Number","isFinite","convertToRadians","entries","endsWith","parseFloat","Math","PI","interpolate","config","extrapolate","extrapolateLeft","extrapolateRight","left","right","output"],"mappings":"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","sourcesContent":["import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'fbjs/lib/invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function(\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.EXTEND) {\n } else if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.EXTEND) {\n } else if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n"]}
1
+ {"version":3,"sources":["interpolate.js"],"names":["interpolateInternalSingleProc","value","inS","inE","outS","outE","progress","resultForNonZeroRange","result","interpolateInternalSingle","inputRange","outputRange","offset","interpolateInternal","length","Extrapolate","EXTEND","CLAMP","IDENTITY","checkNonDecreasing","name","arr","i","AnimatedNode","checkMinElements","checkValidNumbers","Number","isFinite","convertToRadians","entries","endsWith","parseFloat","Math","PI","interpolate","config","extrapolate","extrapolateLeft","extrapolateRight","left","right","output"],"mappings":"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","sourcesContent":["import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'fbjs/lib/invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function(\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n } else if (typeof value === 'string' && value.endsWith('rad')) {\n outputRange[i] = parseFloat(value);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.EXTEND) {\n } else if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.EXTEND) {\n } else if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n"]}
@@ -11,7 +11,7 @@ function assertNodesNotNull(code, children, exec) {
11
11
  function Code({
12
12
  exec,
13
13
  children,
14
- dependencies = []
14
+ dependencies
15
15
  }) {
16
16
  const nodes = children || exec;
17
17
  let code = null;
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedCode.js"],"names":["useCode","AnimatedNode","assertNodesNotNull","code","children","exec","error","Error","Code","dependencies","nodes"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,oBAApB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;;AAEA,SAASC,kBAAT,CAA4BC,IAA5B,EAAkCC,QAAlC,EAA4CC,IAA5C,EAAkD;AAChD,MAAI,CAACF,IAAL,EAAW;AACT,UAAMG,KAAK,GAAG,CAACF,QAAD,mBACF,OAAOA,QADL,kDAEF,OAAOC,IAFL,2BAAd;AAIA,UAAM,IAAIE,KAAJ,kIACsHD,KADtH,EAAN;AAGD;AACF;;AAED,SAASE,IAAT,CAAc;AAAEH,EAAAA,IAAF;AAAQD,EAAAA,QAAR;AAAkBK,EAAAA,YAAY,GAAG;AAAjC,CAAd,EAAqD;AACnD,QAAMC,KAAK,GAAGN,QAAQ,IAAIC,IAA1B;AAEA,MAAIF,IAAI,GAAG,IAAX;;AACA,MAAIO,KAAK,YAAYT,YAArB,EAAmC;AACjCE,IAAAA,IAAI,GAAG,MAAMO,KAAb;AACD,GAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,UAArB,EAAiC;AACtCP,IAAAA,IAAI,GAAGO,KAAP;AACD;;AAEDR,EAAAA,kBAAkB,CAACC,IAAD,EAAOC,QAAP,EAAiBC,IAAjB,CAAlB;AAEAL,EAAAA,OAAO,CAACG,IAAD,EAAOM,YAAP,CAAP;AACA,SAAO,IAAP;AACD;;AAED,eAAeD,IAAf","sourcesContent":["import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n `<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies = [] }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n"]}
1
+ {"version":3,"sources":["AnimatedCode.js"],"names":["useCode","AnimatedNode","assertNodesNotNull","code","children","exec","error","Error","Code","dependencies","nodes"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,oBAApB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;;AAEA,SAASC,kBAAT,CAA4BC,IAA5B,EAAkCC,QAAlC,EAA4CC,IAA5C,EAAkD;AAChD,MAAI,CAACF,IAAL,EAAW;AACT,UAAMG,KAAK,GAAG,CAACF,QAAD,mBACF,OAAOA,QADL,kDAEF,OAAOC,IAFL,2BAAd;AAIA,UAAM,IAAIE,KAAJ,kIACsHD,KADtH,EAAN;AAGD;AACF;;AAED,SAASE,IAAT,CAAc;AAAEH,EAAAA,IAAF;AAAQD,EAAAA,QAAR;AAAkBK,EAAAA;AAAlB,CAAd,EAAgD;AAC9C,QAAMC,KAAK,GAAGN,QAAQ,IAAIC,IAA1B;AAEA,MAAIF,IAAI,GAAG,IAAX;;AACA,MAAIO,KAAK,YAAYT,YAArB,EAAmC;AACjCE,IAAAA,IAAI,GAAG,MAAMO,KAAb;AACD,GAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,UAArB,EAAiC;AACtCP,IAAAA,IAAI,GAAGO,KAAP;AACD;;AAEDR,EAAAA,kBAAkB,CAACC,IAAD,EAAOC,QAAP,EAAiBC,IAAjB,CAAlB;AAEAL,EAAAA,OAAO,CAACG,IAAD,EAAOM,YAAP,CAAP;AACA,SAAO,IAAP;AACD;;AAED,eAAeD,IAAf","sourcesContent":["import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n `<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n"]}
@@ -1,6 +1,7 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
3
  import invariant from 'fbjs/lib/invariant';
4
+ import { NativeModules } from 'react-native';
4
5
  import { val } from '../val';
5
6
  import { adapt, createAnimatedBlock as block } from './AnimatedBlock';
6
7
  import { createAnimatedCall as call } from './AnimatedCall';
@@ -38,10 +39,14 @@ class AnimatedDebug extends AnimatedNode {
38
39
 
39
40
  export function createAnimatedDebug(message, value) {
40
41
  if (__DEV__) {
41
- const runningInRemoteDebugger = typeof atob !== 'undefined'; // hack to detect if app is running in remote debugger
42
+ var _NativeModules$Native, _NativeModules$Native2, _NativeModules$Native3;
43
+
44
+ // hack to detect if app is running in remote debugger
42
45
  // https://stackoverflow.com/questions/39022216
46
+ const runningInRemoteDebugger = typeof atob !== 'undefined'; // read the executionEnvironment off of expo-constants without explicitly
47
+ // depending on the package
43
48
 
44
- const runningInExpoShell = global.Expo && global.Expo.Constants.appOwnership !== 'standalone';
49
+ const runningInExpoShell = ((_NativeModules$Native = NativeModules.NativeUnimoduleProxy) === null || _NativeModules$Native === void 0 ? void 0 : (_NativeModules$Native2 = _NativeModules$Native.modulesConstants) === null || _NativeModules$Native2 === void 0 ? void 0 : (_NativeModules$Native3 = _NativeModules$Native2.ExponentConstants) === null || _NativeModules$Native3 === void 0 ? void 0 : _NativeModules$Native3.executionEnvironment) === 'storeClient';
45
50
 
46
51
  if (runningInRemoteDebugger || runningInExpoShell) {
47
52
  // When running in expo or remote debugger we use JS console.log to output variables
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedDebug.js"],"names":["invariant","val","adapt","createAnimatedBlock","block","createAnimatedCall","call","AnimatedNode","AnimatedDebug","constructor","message","value","type","_message","_value","toString","__nodeID","__onEvaluate","console","log","createAnimatedDebug","__DEV__","runningInRemoteDebugger","atob","runningInExpoShell","global","Expo","Constants","appOwnership","a"],"mappings":";;AAAA,OAAOA,SAAP,MAAsB,oBAAtB;AACA,SAASC,GAAT,QAAoB,QAApB;AACA,SAASC,KAAT,EAAgBC,mBAAmB,IAAIC,KAAvC,QAAoD,iBAApD;AACA,SAASC,kBAAkB,IAAIC,IAA/B,QAA2C,gBAA3C;AACA,OAAOC,YAAP,MAAyB,gBAAzB;;AAEA,MAAMC,aAAN,SAA4BD,YAA5B,CAAyC;AAIvCE,EAAAA,WAAW,CAACC,OAAD,EAAUC,KAAV,EAAiB;AAC1BX,IAAAA,SAAS,CACP,OAAOU,OAAP,KAAmB,QADZ,4FAE4EA,OAF5E,EAAT;AAIAV,IAAAA,SAAS,CACPW,KAAK,YAAYJ,YADV,mGAEmFI,KAFnF,EAAT;AAIA,UAAM;AAAEC,MAAAA,IAAI,EAAE,OAAR;AAAiBF,MAAAA,OAAjB;AAA0BC,MAAAA;AAA1B,KAAN,EAAyC,CAACA,KAAD,CAAzC;;AAT0B;;AAAA;;AAU1B,SAAKE,QAAL,GAAgBH,OAAhB;AACA,SAAKI,MAAL,GAAcH,KAAd;AACD;;AAEDI,EAAAA,QAAQ,GAAG;AACT,wCAA6B,KAAKC,QAAlC;AACD;;AAEDC,EAAAA,YAAY,GAAG;AACb,UAAMN,KAAK,GAAGV,GAAG,CAAC,KAAKa,MAAN,CAAjB;AACAI,IAAAA,OAAO,CAACC,GAAR,CAAY,KAAKN,QAAjB,EAA2BF,KAA3B;AACA,WAAOA,KAAP;AACD;;AA1BsC;;AA6BzC,OAAO,SAASS,mBAAT,CAA6BV,OAA7B,EAAsCC,KAAtC,EAA6C;AAClD,MAAIU,OAAJ,EAAa;AACX,UAAMC,uBAAuB,GAAG,OAAOC,IAAP,KAAgB,WAAhD,CADW,CAEX;AACA;;AAEA,UAAMC,kBAAkB,GACtBC,MAAM,CAACC,IAAP,IAAeD,MAAM,CAACC,IAAP,CAAYC,SAAZ,CAAsBC,YAAtB,KAAuC,YADxD;;AAGA,QAAIN,uBAAuB,IAAIE,kBAA/B,EAAmD;AACjD;AACA;AACA,aAAOpB,KAAK,CAAC,CACXE,IAAI,CAAC,CAACK,KAAD,CAAD,EAAU,CAAC,CAACkB,CAAD,CAAD,KAASX,OAAO,CAACC,GAAR,WAAeT,OAAf,cAA0BmB,CAA1B,EAAnB,CADO,EAEXlB,KAFW,CAAD,CAAZ;AAID,KAPD,MAOO;AACL,aAAO,IAAIH,aAAJ,CAAkBE,OAAlB,EAA2BR,KAAK,CAACS,KAAD,CAAhC,CAAP;AACD;AACF,GAnBiD,CAoBlD;;;AACA,SAAOA,KAAP;AACD","sourcesContent":["import invariant from 'fbjs/lib/invariant';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n\n const runningInExpoShell =\n global.Expo && global.Expo.Constants.appOwnership !== 'standalone';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n"]}
1
+ {"version":3,"sources":["AnimatedDebug.js"],"names":["invariant","NativeModules","val","adapt","createAnimatedBlock","block","createAnimatedCall","call","AnimatedNode","AnimatedDebug","constructor","message","value","type","_message","_value","toString","__nodeID","__onEvaluate","console","log","createAnimatedDebug","__DEV__","runningInRemoteDebugger","atob","runningInExpoShell","NativeUnimoduleProxy","modulesConstants","ExponentConstants","executionEnvironment","a"],"mappings":";;AAAA,OAAOA,SAAP,MAAsB,oBAAtB;AACA,SAASC,aAAT,QAA8B,cAA9B;AACA,SAASC,GAAT,QAAoB,QAApB;AACA,SAASC,KAAT,EAAgBC,mBAAmB,IAAIC,KAAvC,QAAoD,iBAApD;AACA,SAASC,kBAAkB,IAAIC,IAA/B,QAA2C,gBAA3C;AACA,OAAOC,YAAP,MAAyB,gBAAzB;;AAEA,MAAMC,aAAN,SAA4BD,YAA5B,CAAyC;AAIvCE,EAAAA,WAAW,CAACC,OAAD,EAAUC,KAAV,EAAiB;AAC1BZ,IAAAA,SAAS,CACP,OAAOW,OAAP,KAAmB,QADZ,4FAE4EA,OAF5E,EAAT;AAIAX,IAAAA,SAAS,CACPY,KAAK,YAAYJ,YADV,mGAEmFI,KAFnF,EAAT;AAIA,UAAM;AAAEC,MAAAA,IAAI,EAAE,OAAR;AAAiBF,MAAAA,OAAjB;AAA0BC,MAAAA;AAA1B,KAAN,EAAyC,CAACA,KAAD,CAAzC;;AAT0B;;AAAA;;AAU1B,SAAKE,QAAL,GAAgBH,OAAhB;AACA,SAAKI,MAAL,GAAcH,KAAd;AACD;;AAEDI,EAAAA,QAAQ,GAAG;AACT,wCAA6B,KAAKC,QAAlC;AACD;;AAEDC,EAAAA,YAAY,GAAG;AACb,UAAMN,KAAK,GAAGV,GAAG,CAAC,KAAKa,MAAN,CAAjB;AACAI,IAAAA,OAAO,CAACC,GAAR,CAAY,KAAKN,QAAjB,EAA2BF,KAA3B;AACA,WAAOA,KAAP;AACD;;AA1BsC;;AA6BzC,OAAO,SAASS,mBAAT,CAA6BV,OAA7B,EAAsCC,KAAtC,EAA6C;AAClD,MAAIU,OAAJ,EAAa;AAAA;;AACX;AACA;AACA,UAAMC,uBAAuB,GAAG,OAAOC,IAAP,KAAgB,WAAhD,CAHW,CAKX;AACA;;AACA,UAAMC,kBAAkB,GACtB,0BAAAxB,aAAa,CAACyB,oBAAd,0GAAoCC,gBAApC,4GAAsDC,iBAAtD,kFACIC,oBADJ,MAC6B,aAF/B;;AAIA,QAAIN,uBAAuB,IAAIE,kBAA/B,EAAmD;AACjD;AACA;AACA,aAAOpB,KAAK,CAAC,CACXE,IAAI,CAAC,CAACK,KAAD,CAAD,EAAU,CAAC,CAACkB,CAAD,CAAD,KAASX,OAAO,CAACC,GAAR,WAAeT,OAAf,cAA0BmB,CAA1B,EAAnB,CADO,EAEXlB,KAFW,CAAD,CAAZ;AAID,KAPD,MAOO;AACL,aAAO,IAAIH,aAAJ,CAAkBE,OAAlB,EAA2BR,KAAK,CAACS,KAAD,CAAhC,CAAP;AACD;AACF,GAtBiD,CAuBlD;;;AACA,SAAOA,KAAP;AACD","sourcesContent":["import invariant from 'fbjs/lib/invariant';\nimport { NativeModules } from 'react-native';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n\n // read the executionEnvironment off of expo-constants without explicitly\n // depending on the package\n const runningInExpoShell =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants\n ?.executionEnvironment === 'storeClient';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n"]}
@@ -80,6 +80,7 @@ function runPropUpdates() {
80
80
  loopID += 1;
81
81
  }
82
82
 
83
+ const scheduleUpdates = Platform.OS === 'web' ? requestAnimationFrame : setImmediate;
83
84
  export default class AnimatedNode {
84
85
  constructor(nodeConfig, inputNodes) {
85
86
  _defineProperty(this, "__nodeID", void 0);
@@ -157,7 +158,7 @@ export default class AnimatedNode {
157
158
  UPDATED_NODES.push(this);
158
159
 
159
160
  if (!propUpdatesEnqueued) {
160
- propUpdatesEnqueued = setImmediate(runPropUpdates);
161
+ propUpdatesEnqueued = scheduleUpdates(runPropUpdates);
161
162
  }
162
163
  }
163
164
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedNode.js"],"names":["ReanimatedModule","Platform","UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","config","OS","includes","Array","isArray","map","AnimatedNode","__nodeID","output","property","runPropUpdates","visitedNodes","Set","findAndUpdateNodes","node","console","warn","has","add","update","nodes","__getChildren","i","l","length","constructor","nodeConfig","inputNodes","__nodeConfig","__initialized","__inputNodes","filter","toString","__attach","__nativeInitialize","__addChild","__detach","__removeChild","__nativeTearDown","__getValue","__lastLoopID","result","__onEvaluate","__memoizedValue","__forceUpdateCache","newValue","__markUpdated","__dangerouslyRescheduleEvaluate","push","setImmediate","createNode","dropNode","isNativelyInitialized","Error","__getProps","__children","child","connectNodes","index","indexOf","disconnectNodes","splice","_connectAnimatedView","nativeViewTag","connectNodeToView","_disconnectAnimatedView","disconnectNodeFromView"],"mappings":"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","sourcesContent":["import ReanimatedModule from '../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = \"\";\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (Platform.OS === 'web' || Platform.OS === 'windows' || Platform.OS === 'macos' || ['undefined', 'string', 'function', 'boolean', 'number'].includes(typeof config)) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = node => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nexport default class AnimatedNode {\n\n __nodeID;\n __lastLoopID = { \"\": -1 };\n __memoizedValue = { \"\": null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter(node => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = setImmediate(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\n }\n}\n"]}
1
+ {"version":3,"sources":["AnimatedNode.js"],"names":["ReanimatedModule","Platform","UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","config","OS","includes","Array","isArray","map","AnimatedNode","__nodeID","output","property","runPropUpdates","visitedNodes","Set","findAndUpdateNodes","node","console","warn","has","add","update","nodes","__getChildren","i","l","length","scheduleUpdates","requestAnimationFrame","setImmediate","constructor","nodeConfig","inputNodes","__nodeConfig","__initialized","__inputNodes","filter","toString","__attach","__nativeInitialize","__addChild","__detach","__removeChild","__nativeTearDown","__getValue","__lastLoopID","result","__onEvaluate","__memoizedValue","__forceUpdateCache","newValue","__markUpdated","__dangerouslyRescheduleEvaluate","push","createNode","dropNode","isNativelyInitialized","Error","__getProps","__children","child","connectNodes","index","indexOf","disconnectNodes","splice","_connectAnimatedView","nativeViewTag","connectNodeToView","_disconnectAnimatedView","disconnectNodeFromView"],"mappings":"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","sourcesContent":["import ReanimatedModule from '../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = \"\";\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (Platform.OS === 'web' || Platform.OS === 'windows' || Platform.OS === 'macos' || ['undefined', 'string', 'function', 'boolean', 'number'].includes(typeof config)) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = node => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nconst scheduleUpdates =\n Platform.OS === 'web' ? requestAnimationFrame : setImmediate;\n\nexport default class AnimatedNode {\n\n __nodeID;\n __lastLoopID = { \"\": -1 };\n __memoizedValue = { \"\": null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter(node => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = scheduleUpdates(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\n }\n}\n"]}
@@ -57,6 +57,8 @@ function convertToRadians(outputRange) {
57
57
  for (const [i, value] of outputRange.entries()) {
58
58
  if (typeof value === 'string' && value.endsWith('deg')) {
59
59
  outputRange[i] = parseFloat(value) * (Math.PI / 180);
60
+ } else if (typeof value === 'string' && value.endsWith('rad')) {
61
+ outputRange[i] = parseFloat(value);
60
62
  }
61
63
  }
62
64
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["interpolate.js"],"names":["lessThan","multiply","sub","add","divide","greaterThan","lessOrEq","eq","invariant","AnimatedNode","createAnimatedCond","cond","createAnimatedFunction","proc","interpolateInternalSingleProc","value","inS","inE","outS","outE","progress","resultForNonZeroRange","result","interpolateInternalSingle","inputRange","outputRange","offset","interpolateInternal","length","Extrapolate","EXTEND","CLAMP","IDENTITY","checkNonDecreasing","name","arr","i","checkMinElements","checkValidNumbers","Number","isFinite","convertToRadians","entries","endsWith","parseFloat","Math","PI","interpolate","config","extrapolate","extrapolateLeft","extrapolateRight","left","right","output"],"mappings":"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","sourcesContent":["import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'fbjs/lib/invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function(\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.EXTEND) {\n } else if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.EXTEND) {\n } else if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n"]}
1
+ {"version":3,"sources":["interpolate.js"],"names":["lessThan","multiply","sub","add","divide","greaterThan","lessOrEq","eq","invariant","AnimatedNode","createAnimatedCond","cond","createAnimatedFunction","proc","interpolateInternalSingleProc","value","inS","inE","outS","outE","progress","resultForNonZeroRange","result","interpolateInternalSingle","inputRange","outputRange","offset","interpolateInternal","length","Extrapolate","EXTEND","CLAMP","IDENTITY","checkNonDecreasing","name","arr","i","checkMinElements","checkValidNumbers","Number","isFinite","convertToRadians","entries","endsWith","parseFloat","Math","PI","interpolate","config","extrapolate","extrapolateLeft","extrapolateRight","left","right","output"],"mappings":"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","sourcesContent":["import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'fbjs/lib/invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function(\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n } else if (typeof value === 'string' && value.endsWith('rad')) {\n outputRange[i] = parseFloat(value);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.EXTEND) {\n } else if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.EXTEND) {\n } else if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n"]}
package/mock.js CHANGED
@@ -166,6 +166,7 @@ const Reanimated = {
166
166
  diff: NOOP,
167
167
  diffClamp: NOOP,
168
168
  interpolate: NOOP,
169
+ interpolateColors: NOOP,
169
170
  max: (a, b) => Math.max(getValue(a), getValue(b)),
170
171
  min: (a, b) => Math.min(getValue(a), getValue(b)),
171
172
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-reanimated",
3
- "version": "1.13.0",
3
+ "version": "1.13.4",
4
4
  "description": "More powerful alternative to Animated library for React Native.",
5
5
  "scripts": {
6
6
  "start": "node node_modules/react-native/local-cli/cli.js start",
@@ -27,7 +27,10 @@
27
27
  "RNReanimated.podspec",
28
28
  "README.md",
29
29
  "react-native-reanimated.d.ts",
30
- "mock.js"
30
+ "mock.js",
31
+ "!__snapshots__",
32
+ "!*.test.js",
33
+ "!*.test.js.map"
31
34
  ],
32
35
  "repository": {
33
36
  "type": "git",
@@ -47,7 +47,7 @@ declare module 'react-native-reanimated' {
47
47
 
48
48
  interface InterpolationConfig {
49
49
  inputRange: ReadonlyArray<Adaptable<number>>;
50
- outputRange: ReadonlyArray<Adaptable<number>>;
50
+ outputRange: ReadonlyArray<Adaptable<number | string>>;
51
51
  extrapolate?: Extrapolate;
52
52
  extrapolateLeft?: Extrapolate;
53
53
  extrapolateRight?: Extrapolate;
@@ -178,6 +178,7 @@ declare module 'react-native-reanimated' {
178
178
  type CodeProps = {
179
179
  exec?: AnimatedNode<number>
180
180
  children?: () => AnimatedNode<number>
181
+ dependencies?: Array<any>
181
182
  };
182
183
 
183
184
  // components
@@ -286,8 +287,8 @@ declare module 'react-native-reanimated' {
286
287
  r: Adaptable<number>,
287
288
  g: Adaptable<number>,
288
289
  b: Adaptable<number>,
289
- a?: Adaptable<number>,
290
- ): AnimatedNode<number>;
290
+ a?: Adaptable<number>
291
+ ): AnimatedNode<number | string>;
291
292
  export function diff(value: Adaptable<number>): AnimatedNode<number>;
292
293
  export function diffClamp(
293
294
  value: Adaptable<number>,
@@ -305,9 +306,9 @@ declare module 'react-native-reanimated' {
305
306
  outputColorRange
306
307
  }: {
307
308
  inputRange: ReadonlyArray<Adaptable<number>>;
308
- outputColorRange: (string | number)[];
309
+ outputColorRange: ReadonlyArray<Adaptable<number | string>>;
309
310
  }
310
- ): AnimatedNode<number>;
311
+ ): AnimatedNode<number | string>;
311
312
  export const max: BinaryOperator;
312
313
  export const min: BinaryOperator;
313
314
 
@@ -13,7 +13,7 @@ function assertNodesNotNull(code, children, exec) {
13
13
  }
14
14
  }
15
15
 
16
- function Code({ exec, children, dependencies = [] }) {
16
+ function Code({ exec, children, dependencies }) {
17
17
  const nodes = children || exec;
18
18
 
19
19
  let code = null;