@tamagui/react-native-web-lite 1.129.13 → 1.129.15

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 (984) hide show
  1. package/dist/cjs/InteractionManager/index.cjs +3 -2
  2. package/dist/cjs/InteractionManager/index.js +2 -2
  3. package/dist/cjs/InteractionManager/index.js.map +2 -2
  4. package/dist/cjs/InteractionManager/index.native.js +2 -2
  5. package/dist/cjs/InteractionManager/index.native.js.map +1 -1
  6. package/dist/cjs/ScrollView/index.cjs +172 -4
  7. package/dist/cjs/ScrollView/index.js +153 -5
  8. package/dist/cjs/ScrollView/index.js.map +2 -2
  9. package/dist/cjs/ScrollView/index.native.js +155 -7
  10. package/dist/cjs/ScrollView/index.native.js.map +2 -2
  11. package/dist/cjs/SectionList.cjs +38 -0
  12. package/dist/cjs/SectionList.js +29 -0
  13. package/dist/cjs/SectionList.js.map +6 -0
  14. package/dist/cjs/SectionList.native.js +30 -0
  15. package/dist/cjs/SectionList.native.js.map +6 -0
  16. package/dist/cjs/TextInput/index.cjs +18 -2
  17. package/dist/cjs/TextInput/index.js +20 -3
  18. package/dist/cjs/TextInput/index.js.map +1 -1
  19. package/dist/cjs/TextInput/index.native.js +19 -4
  20. package/dist/cjs/TextInput/index.native.js.map +2 -2
  21. package/dist/cjs/TouchableNativeFeedback.cjs +38 -0
  22. package/dist/cjs/TouchableNativeFeedback.js +29 -0
  23. package/dist/cjs/TouchableNativeFeedback.js.map +6 -0
  24. package/dist/cjs/TouchableNativeFeedback.native.js +30 -0
  25. package/dist/cjs/TouchableNativeFeedback.native.js.map +6 -0
  26. package/dist/cjs/VirtualizedList.cjs +38 -0
  27. package/dist/cjs/VirtualizedList.js +29 -0
  28. package/dist/cjs/VirtualizedList.js.map +6 -0
  29. package/dist/cjs/VirtualizedList.native.js +30 -0
  30. package/dist/cjs/VirtualizedList.native.js.map +6 -0
  31. package/dist/cjs/createElement/index.cjs +3 -3
  32. package/dist/cjs/createElement/index.js +3 -3
  33. package/dist/cjs/createElement/index.js.map +1 -1
  34. package/dist/cjs/createElement/index.native.js +3 -3
  35. package/dist/cjs/createElement/index.native.js.map +1 -1
  36. package/dist/cjs/index.cjs +6 -4
  37. package/dist/cjs/index.js +3 -3
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/index.native.js +3 -3
  40. package/dist/cjs/index.native.js.map +1 -1
  41. package/dist/cjs/modules/requestIdleCallback.cjs +44 -0
  42. package/dist/cjs/modules/requestIdleCallback.js +35 -0
  43. package/dist/cjs/modules/requestIdleCallback.js.map +6 -0
  44. package/dist/cjs/modules/requestIdleCallback.native.js +39 -0
  45. package/dist/cjs/modules/requestIdleCallback.native.js.map +6 -0
  46. package/dist/cjs/vendor/react-native/Animated/Animated.cjs +15 -12
  47. package/dist/cjs/vendor/react-native/Animated/Animated.js +6 -2
  48. package/dist/cjs/vendor/react-native/Animated/Animated.js.map +2 -2
  49. package/dist/cjs/vendor/react-native/Animated/Animated.native.js +4 -2
  50. package/dist/cjs/vendor/react-native/Animated/Animated.native.js.map +2 -2
  51. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.cjs +26 -27
  52. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js +24 -28
  53. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js.map +2 -2
  54. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.native.js +23 -20
  55. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.native.js.map +2 -2
  56. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.cjs +236 -234
  57. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js +59 -79
  58. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js.map +2 -2
  59. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.native.js +34 -29
  60. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.native.js.map +2 -2
  61. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.cjs +39 -40
  62. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.js +13 -18
  63. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.js.map +1 -1
  64. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.native.js +6 -4
  65. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.native.js.map +2 -2
  66. package/dist/cjs/vendor/react-native/Animated/Easing.cjs +11 -12
  67. package/dist/cjs/vendor/react-native/Animated/Easing.js +11 -11
  68. package/dist/cjs/vendor/react-native/Animated/Easing.js.map +2 -2
  69. package/dist/cjs/vendor/react-native/Animated/Easing.native.js +11 -11
  70. package/dist/cjs/vendor/react-native/Animated/Easing.native.js.map +2 -2
  71. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.cjs +28 -36
  72. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js +26 -33
  73. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js.map +2 -2
  74. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.native.js +48 -48
  75. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.native.js.map +2 -2
  76. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.cjs +40 -2
  77. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js +61 -1
  78. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js.map +1 -1
  79. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.native.js +67 -1
  80. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.native.js.map +2 -2
  81. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.cjs +37 -2
  82. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js +56 -1
  83. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js.map +1 -1
  84. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.native.js +62 -1
  85. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.native.js.map +2 -2
  86. package/dist/cjs/vendor/react-native/Animated/SpringConfig.cjs +5 -7
  87. package/dist/cjs/vendor/react-native/Animated/SpringConfig.js +5 -6
  88. package/dist/cjs/vendor/react-native/Animated/SpringConfig.js.map +1 -1
  89. package/dist/cjs/vendor/react-native/Animated/SpringConfig.native.js.map +2 -2
  90. package/dist/cjs/vendor/react-native/Animated/animations/Animation.cjs +10 -5
  91. package/dist/cjs/vendor/react-native/Animated/animations/Animation.js +16 -6
  92. package/dist/cjs/vendor/react-native/Animated/animations/Animation.js.map +1 -1
  93. package/dist/cjs/vendor/react-native/Animated/animations/Animation.native.js +10 -2
  94. package/dist/cjs/vendor/react-native/Animated/animations/Animation.native.js.map +2 -2
  95. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.cjs +12 -5
  96. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js +13 -10
  97. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js.map +1 -1
  98. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.native.js +17 -3
  99. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.native.js.map +2 -2
  100. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.cjs +53 -42
  101. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js +55 -39
  102. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js.map +1 -1
  103. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.native.js +41 -13
  104. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.native.js.map +2 -2
  105. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.cjs +20 -9
  106. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js +21 -16
  107. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js.map +1 -1
  108. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.native.js +22 -3
  109. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.native.js.map +2 -2
  110. package/dist/cjs/vendor/react-native/Animated/bezier.cjs +16 -18
  111. package/dist/cjs/vendor/react-native/Animated/bezier.js +22 -13
  112. package/dist/cjs/vendor/react-native/Animated/bezier.js.map +1 -1
  113. package/dist/cjs/vendor/react-native/Animated/bezier.native.js.map +1 -1
  114. package/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.cjs +46 -0
  115. package/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js +31 -0
  116. package/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js.map +6 -0
  117. package/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.native.js +36 -0
  118. package/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.native.js.map +6 -0
  119. package/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js +1 -1
  120. package/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js.map +1 -1
  121. package/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.native.js +1 -1
  122. package/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.native.js.map +1 -1
  123. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.cjs +7 -6
  124. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js +3 -10
  125. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js.map +2 -2
  126. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.native.js +2 -2
  127. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.native.js.map +3 -3
  128. package/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.cjs +46 -0
  129. package/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js +31 -0
  130. package/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js.map +6 -0
  131. package/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.native.js +36 -0
  132. package/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.native.js.map +6 -0
  133. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.cjs +1 -2
  134. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js +1 -1
  135. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js.map +1 -1
  136. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.native.js +1 -1
  137. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.native.js.map +1 -1
  138. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.cjs +1 -2
  139. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js +1 -1
  140. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js.map +1 -1
  141. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.native.js +1 -1
  142. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.native.js.map +1 -1
  143. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.cjs +17 -18
  144. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js +14 -11
  145. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js.map +3 -3
  146. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.native.js +3 -3
  147. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.native.js.map +3 -3
  148. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.cjs +2 -0
  149. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js +2 -0
  150. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js.map +1 -1
  151. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.native.js +9 -1
  152. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.native.js.map +2 -2
  153. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.cjs +35 -49
  154. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js +32 -51
  155. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js.map +2 -2
  156. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.native.js +23 -32
  157. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.native.js.map +2 -2
  158. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.cjs +6 -3
  159. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +6 -2
  160. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js.map +1 -1
  161. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.native.js +10 -1
  162. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.native.js.map +1 -1
  163. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.cjs +5 -2
  164. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js +5 -2
  165. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js.map +1 -1
  166. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.native.js +9 -1
  167. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.native.js.map +2 -2
  168. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.cjs +26 -31
  169. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js +24 -25
  170. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js.map +3 -3
  171. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.native.js +13 -13
  172. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.native.js.map +2 -2
  173. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.cjs +2 -2
  174. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js +2 -1
  175. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js.map +1 -1
  176. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.native.js +10 -1
  177. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.native.js.map +1 -1
  178. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.cjs +2 -0
  179. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +2 -0
  180. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js.map +1 -1
  181. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.native.js +9 -1
  182. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.native.js.map +2 -2
  183. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.cjs +14 -9
  184. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js +14 -9
  185. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js.map +1 -1
  186. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.native.js +13 -6
  187. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.native.js.map +2 -2
  188. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.cjs +21 -23
  189. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js +22 -20
  190. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js.map +1 -1
  191. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.native.js +2 -1
  192. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.native.js.map +1 -1
  193. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.cjs +25 -25
  194. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js +23 -21
  195. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js.map +1 -1
  196. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.native.js +12 -3
  197. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.native.js.map +2 -2
  198. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.cjs +2 -0
  199. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +2 -0
  200. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js.map +1 -1
  201. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.native.js +9 -1
  202. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.native.js.map +2 -2
  203. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.cjs +14 -9
  204. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js +12 -12
  205. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js.map +1 -1
  206. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.native.js +14 -4
  207. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.native.js.map +2 -2
  208. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.cjs +20 -19
  209. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js +18 -17
  210. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js.map +1 -1
  211. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.native.js +10 -2
  212. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.native.js.map +1 -1
  213. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.cjs +12 -7
  214. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js +10 -4
  215. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js.map +1 -1
  216. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.native.js +10 -2
  217. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.native.js.map +2 -2
  218. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.cjs +8 -76
  219. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js +5 -83
  220. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js.map +1 -1
  221. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.native.js +4 -70
  222. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.native.js.map +2 -2
  223. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.cjs +5 -11
  224. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +17 -11
  225. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js.map +2 -2
  226. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.native.js +42 -9
  227. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.native.js.map +2 -2
  228. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.cjs +16 -25
  229. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js +14 -22
  230. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js.map +2 -2
  231. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.native.js +24 -16
  232. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.native.js.map +2 -2
  233. package/dist/cjs/{Batchinator → vendor/react-native/Batchinator}/index.cjs +9 -18
  234. package/dist/cjs/{Batchinator → vendor/react-native/Batchinator}/index.js +6 -13
  235. package/dist/cjs/vendor/react-native/Batchinator/index.js.map +6 -0
  236. package/dist/cjs/{Batchinator → vendor/react-native/Batchinator}/index.native.js +5 -14
  237. package/dist/cjs/vendor/react-native/Batchinator/index.native.js.map +6 -0
  238. package/dist/cjs/vendor/react-native/{NativeEventEmitter/index.cjs → EventEmitter/NativeEventEmitter.cjs} +8 -15
  239. package/dist/cjs/vendor/react-native/{NativeEventEmitter/index.js → EventEmitter/NativeEventEmitter.js} +10 -17
  240. package/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.js.map +6 -0
  241. package/dist/cjs/vendor/react-native/{NativeEventEmitter/index.native.js → EventEmitter/NativeEventEmitter.native.js} +19 -11
  242. package/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.native.js.map +6 -0
  243. package/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js.map +6 -0
  244. package/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.native.js.map +6 -0
  245. package/dist/cjs/vendor/react-native/FillRateHelper/index.cjs +3 -3
  246. package/dist/cjs/vendor/react-native/FillRateHelper/index.js +3 -3
  247. package/dist/cjs/vendor/react-native/FillRateHelper/index.js.map +2 -2
  248. package/dist/cjs/vendor/react-native/FillRateHelper/index.native.js +5 -4
  249. package/dist/cjs/vendor/react-native/FillRateHelper/index.native.js.map +3 -3
  250. package/dist/cjs/vendor/react-native/FlatList/index.cjs +262 -0
  251. package/dist/cjs/vendor/react-native/FlatList/index.js +270 -0
  252. package/dist/cjs/vendor/react-native/FlatList/index.js.map +6 -0
  253. package/dist/cjs/vendor/react-native/FlatList/index.native.js +352 -0
  254. package/dist/cjs/vendor/react-native/FlatList/index.native.js.map +6 -0
  255. package/dist/cjs/vendor/react-native/JSEventLoopWatchdog/index.cjs +88 -0
  256. package/dist/cjs/vendor/react-native/JSEventLoopWatchdog/index.js +64 -0
  257. package/dist/cjs/vendor/react-native/JSEventLoopWatchdog/index.js.map +6 -0
  258. package/dist/cjs/vendor/react-native/JSEventLoopWatchdog/index.native.js +69 -0
  259. package/dist/cjs/vendor/react-native/JSEventLoopWatchdog/index.native.js.map +6 -0
  260. package/dist/cjs/vendor/react-native/LayoutAnimation/index.cjs +121 -0
  261. package/dist/cjs/vendor/react-native/LayoutAnimation/index.js +108 -0
  262. package/dist/cjs/vendor/react-native/LayoutAnimation/index.js.map +6 -0
  263. package/dist/cjs/vendor/react-native/LayoutAnimation/index.native.js +112 -0
  264. package/dist/cjs/vendor/react-native/LayoutAnimation/index.native.js.map +6 -0
  265. package/dist/cjs/vendor/react-native/PanResponder/index.cjs +22 -209
  266. package/dist/cjs/vendor/react-native/PanResponder/index.js +16 -212
  267. package/dist/cjs/vendor/react-native/PanResponder/index.js.map +3 -3
  268. package/dist/cjs/vendor/react-native/PanResponder/index.native.js +29 -200
  269. package/dist/cjs/vendor/react-native/PanResponder/index.native.js.map +3 -3
  270. package/dist/cjs/vendor/react-native/PooledClass/index.cjs +47 -0
  271. package/dist/cjs/vendor/react-native/PooledClass/index.js +37 -0
  272. package/dist/cjs/vendor/react-native/PooledClass/index.js.map +6 -0
  273. package/dist/cjs/vendor/react-native/PooledClass/index.native.js +38 -0
  274. package/dist/cjs/vendor/react-native/PooledClass/index.native.js.map +6 -0
  275. package/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.cjs +33 -0
  276. package/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js +28 -0
  277. package/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js.map +6 -0
  278. package/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.native.js +38 -0
  279. package/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.native.js.map +6 -0
  280. package/dist/cjs/vendor/react-native/SectionList/index.cjs +102 -0
  281. package/dist/cjs/vendor/react-native/SectionList/index.js +85 -0
  282. package/dist/cjs/vendor/react-native/SectionList/index.js.map +6 -0
  283. package/dist/cjs/vendor/react-native/SectionList/index.native.js +190 -0
  284. package/dist/cjs/vendor/react-native/SectionList/index.native.js.map +6 -0
  285. package/dist/cjs/vendor/react-native/StaticContainer/index.cjs +49 -0
  286. package/dist/cjs/vendor/react-native/StaticContainer/index.js +40 -0
  287. package/dist/cjs/vendor/react-native/StaticContainer/index.js.map +6 -0
  288. package/dist/cjs/vendor/react-native/StaticContainer/index.native.js +110 -0
  289. package/dist/cjs/vendor/react-native/StaticContainer/index.native.js.map +6 -0
  290. package/dist/cjs/vendor/react-native/StaticRenderer/index.cjs +48 -0
  291. package/dist/cjs/vendor/react-native/StaticRenderer/index.js +39 -0
  292. package/dist/cjs/vendor/react-native/StaticRenderer/index.js.map +6 -0
  293. package/dist/cjs/vendor/react-native/StaticRenderer/index.native.js +109 -0
  294. package/dist/cjs/vendor/react-native/StaticRenderer/index.native.js.map +6 -0
  295. package/dist/cjs/vendor/react-native/TouchHistoryMath/index.js.map +2 -2
  296. package/dist/cjs/vendor/react-native/TouchHistoryMath/index.native.js.map +2 -2
  297. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.cjs +34 -1
  298. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.js +25 -0
  299. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.js.map +2 -2
  300. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.native.js +32 -0
  301. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.native.js.map +3 -3
  302. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.cjs +3 -1
  303. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js +6 -1
  304. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js.map +2 -2
  305. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.native.js +3 -1
  306. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.native.js.map +2 -2
  307. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.cjs +158 -8
  308. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.js +123 -1
  309. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.js.map +2 -2
  310. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.native.js +159 -1
  311. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.native.js.map +3 -3
  312. package/dist/cjs/vendor/react-native/Utilities/Platform.cjs +27 -0
  313. package/dist/cjs/vendor/react-native/Utilities/Platform.js +21 -0
  314. package/dist/cjs/vendor/react-native/Utilities/Platform.js.map +6 -0
  315. package/dist/cjs/vendor/react-native/Utilities/Platform.native.js +22 -0
  316. package/dist/cjs/vendor/react-native/Utilities/Platform.native.js.map +6 -0
  317. package/dist/cjs/vendor/react-native/Utilities/clamp.cjs +2 -0
  318. package/dist/cjs/vendor/react-native/Utilities/clamp.js +1 -0
  319. package/dist/cjs/vendor/react-native/Utilities/clamp.js.map +2 -2
  320. package/dist/cjs/vendor/react-native/Utilities/clamp.native.js.map +2 -2
  321. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.cjs +5 -4
  322. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.js +5 -3
  323. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.js.map +1 -1
  324. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.native.js +2 -2
  325. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.native.js.map +2 -2
  326. package/dist/cjs/vendor/react-native/Utilities/useMergeRefs.cjs +33 -0
  327. package/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js +31 -0
  328. package/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js.map +6 -0
  329. package/dist/cjs/vendor/react-native/Utilities/useMergeRefs.native.js +46 -0
  330. package/dist/cjs/vendor/react-native/Utilities/useMergeRefs.native.js.map +6 -0
  331. package/dist/cjs/vendor/react-native/Utilities/useRefEffect.cjs +32 -0
  332. package/dist/cjs/vendor/react-native/Utilities/useRefEffect.js +30 -0
  333. package/dist/cjs/vendor/react-native/Utilities/useRefEffect.js.map +6 -0
  334. package/dist/cjs/vendor/react-native/Utilities/useRefEffect.native.js +30 -0
  335. package/dist/cjs/vendor/react-native/Utilities/useRefEffect.native.js.map +6 -0
  336. package/dist/cjs/vendor/react-native/ViewabilityHelper/index.cjs +142 -0
  337. package/dist/cjs/vendor/react-native/ViewabilityHelper/index.js +152 -0
  338. package/dist/cjs/vendor/react-native/ViewabilityHelper/index.js.map +6 -0
  339. package/dist/cjs/vendor/react-native/ViewabilityHelper/index.native.js +205 -0
  340. package/dist/cjs/vendor/react-native/ViewabilityHelper/index.native.js.map +6 -0
  341. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.js.map +2 -2
  342. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.native.js.map +2 -2
  343. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.cjs +1 -3
  344. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js +2 -8
  345. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js.map +2 -2
  346. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.native.js +1 -9
  347. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.native.js.map +3 -3
  348. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js.map +2 -2
  349. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.native.js.map +2 -2
  350. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.cjs +3 -3
  351. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js +3 -3
  352. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js.map +3 -3
  353. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js +3 -3
  354. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js.map +2 -2
  355. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.cjs +16 -9
  356. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +16 -7
  357. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js.map +3 -3
  358. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js +19 -11
  359. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js.map +2 -2
  360. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.cjs +4 -3
  361. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js +6 -13
  362. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js.map +2 -2
  363. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js +2 -1
  364. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js.map +3 -3
  365. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.cjs +56 -8
  366. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.js +46 -1
  367. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.js.map +2 -2
  368. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js +49 -1
  369. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js.map +3 -3
  370. package/dist/cjs/vendor/react-native/VirtualizedList/index.cjs +136 -865
  371. package/dist/cjs/vendor/react-native/VirtualizedList/index.js +126 -894
  372. package/dist/cjs/vendor/react-native/VirtualizedList/index.js.map +3 -3
  373. package/dist/cjs/vendor/react-native/VirtualizedList/index.native.js +92 -853
  374. package/dist/cjs/vendor/react-native/VirtualizedList/index.native.js.map +3 -3
  375. package/dist/cjs/vendor/react-native/VirtualizedSectionList/index.cjs +129 -0
  376. package/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js +118 -0
  377. package/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js.map +6 -0
  378. package/dist/cjs/vendor/react-native/VirtualizedSectionList/index.native.js +219 -0
  379. package/dist/cjs/vendor/react-native/VirtualizedSectionList/index.native.js.map +6 -0
  380. package/dist/cjs/vendor/react-native/deepDiffer/index.cjs +5 -3
  381. package/dist/cjs/vendor/react-native/deepDiffer/index.js +4 -3
  382. package/dist/cjs/vendor/react-native/deepDiffer/index.js.map +3 -3
  383. package/dist/cjs/vendor/react-native/deepDiffer/index.native.js +3 -3
  384. package/dist/cjs/vendor/react-native/deepDiffer/index.native.js.map +2 -2
  385. package/dist/cjs/vendor/react-native/infoLog/index.js.map +2 -2
  386. package/dist/cjs/vendor/react-native/infoLog/index.native.js.map +2 -2
  387. package/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.cjs +86 -0
  388. package/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js +85 -0
  389. package/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js.map +6 -0
  390. package/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.native.js +163 -0
  391. package/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.native.js.map +6 -0
  392. package/dist/cjs/without-animated.cjs +1 -1
  393. package/dist/cjs/without-animated.js +1 -1
  394. package/dist/cjs/without-animated.js.map +1 -1
  395. package/dist/cjs/without-animated.native.js +1 -1
  396. package/dist/cjs/without-animated.native.js.map +1 -1
  397. package/dist/esm/InteractionManager/index.js +1 -0
  398. package/dist/esm/InteractionManager/index.js.map +1 -1
  399. package/dist/esm/InteractionManager/index.mjs +1 -0
  400. package/dist/esm/InteractionManager/index.mjs.map +1 -1
  401. package/dist/esm/InteractionManager/index.native.js +1 -0
  402. package/dist/esm/InteractionManager/index.native.js.map +1 -1
  403. package/dist/esm/ScrollView/index.js +155 -4
  404. package/dist/esm/ScrollView/index.js.map +1 -1
  405. package/dist/esm/ScrollView/index.mjs +173 -5
  406. package/dist/esm/ScrollView/index.mjs.map +1 -1
  407. package/dist/esm/ScrollView/index.native.js +176 -7
  408. package/dist/esm/ScrollView/index.native.js.map +1 -1
  409. package/dist/esm/SectionList.js +6 -0
  410. package/dist/esm/SectionList.js.map +6 -0
  411. package/dist/esm/SectionList.mjs +4 -0
  412. package/dist/esm/SectionList.mjs.map +1 -0
  413. package/dist/esm/SectionList.native.js +4 -0
  414. package/dist/esm/SectionList.native.js.map +1 -0
  415. package/dist/esm/TextInput/index.js +20 -3
  416. package/dist/esm/TextInput/index.js.map +1 -1
  417. package/dist/esm/TextInput/index.mjs +18 -2
  418. package/dist/esm/TextInput/index.mjs.map +1 -1
  419. package/dist/esm/TextInput/index.native.js +18 -2
  420. package/dist/esm/TextInput/index.native.js.map +1 -1
  421. package/dist/esm/TouchableNativeFeedback.js +6 -0
  422. package/dist/esm/TouchableNativeFeedback.js.map +6 -0
  423. package/dist/esm/TouchableNativeFeedback.mjs +4 -0
  424. package/dist/esm/TouchableNativeFeedback.mjs.map +1 -0
  425. package/dist/esm/TouchableNativeFeedback.native.js +4 -0
  426. package/dist/esm/TouchableNativeFeedback.native.js.map +1 -0
  427. package/dist/esm/VirtualizedList.js +6 -0
  428. package/dist/esm/VirtualizedList.js.map +6 -0
  429. package/dist/esm/VirtualizedList.mjs +4 -0
  430. package/dist/esm/VirtualizedList.mjs.map +1 -0
  431. package/dist/esm/VirtualizedList.native.js +4 -0
  432. package/dist/esm/VirtualizedList.native.js.map +1 -0
  433. package/dist/esm/createElement/index.js +3 -3
  434. package/dist/esm/createElement/index.js.map +1 -1
  435. package/dist/esm/createElement/index.mjs +3 -3
  436. package/dist/esm/createElement/index.mjs.map +1 -1
  437. package/dist/esm/createElement/index.native.js +3 -3
  438. package/dist/esm/createElement/index.native.js.map +1 -1
  439. package/dist/esm/index.js +12 -12
  440. package/dist/esm/index.js.map +1 -1
  441. package/dist/esm/index.mjs +6 -4
  442. package/dist/esm/index.mjs.map +1 -1
  443. package/dist/esm/index.native.js +6 -4
  444. package/dist/esm/index.native.js.map +1 -1
  445. package/dist/esm/modules/requestIdleCallback.js +19 -0
  446. package/dist/esm/modules/requestIdleCallback.js.map +6 -0
  447. package/dist/esm/modules/requestIdleCallback.mjs +20 -0
  448. package/dist/esm/modules/requestIdleCallback.mjs.map +1 -0
  449. package/dist/esm/modules/requestIdleCallback.native.js +20 -0
  450. package/dist/esm/modules/requestIdleCallback.native.js.map +1 -0
  451. package/dist/esm/vendor/react-native/Animated/Animated.js +9 -5
  452. package/dist/esm/vendor/react-native/Animated/Animated.js.map +1 -1
  453. package/dist/esm/vendor/react-native/Animated/Animated.mjs +14 -11
  454. package/dist/esm/vendor/react-native/Animated/Animated.mjs.map +1 -1
  455. package/dist/esm/vendor/react-native/Animated/Animated.native.js +7 -4
  456. package/dist/esm/vendor/react-native/Animated/Animated.native.js.map +1 -1
  457. package/dist/esm/vendor/react-native/Animated/AnimatedEvent.js +25 -30
  458. package/dist/esm/vendor/react-native/Animated/AnimatedEvent.js.map +2 -2
  459. package/dist/esm/vendor/react-native/Animated/AnimatedEvent.mjs +25 -26
  460. package/dist/esm/vendor/react-native/Animated/AnimatedEvent.mjs.map +1 -1
  461. package/dist/esm/vendor/react-native/Animated/AnimatedEvent.native.js +21 -14
  462. package/dist/esm/vendor/react-native/Animated/AnimatedEvent.native.js.map +1 -1
  463. package/dist/esm/vendor/react-native/Animated/AnimatedImplementation.js +65 -84
  464. package/dist/esm/vendor/react-native/Animated/AnimatedImplementation.js.map +2 -2
  465. package/dist/esm/vendor/react-native/Animated/AnimatedImplementation.mjs +236 -234
  466. package/dist/esm/vendor/react-native/Animated/AnimatedImplementation.mjs.map +1 -1
  467. package/dist/esm/vendor/react-native/Animated/AnimatedImplementation.native.js +49 -43
  468. package/dist/esm/vendor/react-native/Animated/AnimatedImplementation.native.js.map +1 -1
  469. package/dist/esm/vendor/react-native/Animated/AnimatedMock.js +14 -20
  470. package/dist/esm/vendor/react-native/Animated/AnimatedMock.js.map +1 -1
  471. package/dist/esm/vendor/react-native/Animated/AnimatedMock.mjs +38 -39
  472. package/dist/esm/vendor/react-native/Animated/AnimatedMock.mjs.map +1 -1
  473. package/dist/esm/vendor/react-native/Animated/AnimatedMock.native.js +8 -7
  474. package/dist/esm/vendor/react-native/Animated/AnimatedMock.native.js.map +1 -1
  475. package/dist/esm/vendor/react-native/Animated/Easing.js +10 -11
  476. package/dist/esm/vendor/react-native/Animated/Easing.js.map +2 -2
  477. package/dist/esm/vendor/react-native/Animated/Easing.mjs +10 -11
  478. package/dist/esm/vendor/react-native/Animated/Easing.mjs.map +1 -1
  479. package/dist/esm/vendor/react-native/Animated/Easing.native.js +12 -11
  480. package/dist/esm/vendor/react-native/Animated/Easing.native.js.map +1 -1
  481. package/dist/esm/vendor/react-native/Animated/NativeAnimatedHelper.js +27 -34
  482. package/dist/esm/vendor/react-native/Animated/NativeAnimatedHelper.js.map +1 -1
  483. package/dist/esm/vendor/react-native/Animated/NativeAnimatedHelper.mjs +24 -32
  484. package/dist/esm/vendor/react-native/Animated/NativeAnimatedHelper.mjs.map +1 -1
  485. package/dist/esm/vendor/react-native/Animated/NativeAnimatedHelper.native.js +45 -44
  486. package/dist/esm/vendor/react-native/Animated/NativeAnimatedHelper.native.js.map +1 -1
  487. package/dist/esm/vendor/react-native/Animated/NativeAnimatedModule.js +60 -1
  488. package/dist/esm/vendor/react-native/Animated/NativeAnimatedModule.js.map +1 -1
  489. package/dist/esm/vendor/react-native/Animated/NativeAnimatedModule.mjs +35 -2
  490. package/dist/esm/vendor/react-native/Animated/NativeAnimatedModule.mjs.map +1 -1
  491. package/dist/esm/vendor/react-native/Animated/NativeAnimatedModule.native.js +35 -2
  492. package/dist/esm/vendor/react-native/Animated/NativeAnimatedModule.native.js.map +1 -1
  493. package/dist/esm/vendor/react-native/Animated/NativeAnimatedTurboModule.js +55 -1
  494. package/dist/esm/vendor/react-native/Animated/NativeAnimatedTurboModule.js.map +1 -1
  495. package/dist/esm/vendor/react-native/Animated/NativeAnimatedTurboModule.mjs +32 -2
  496. package/dist/esm/vendor/react-native/Animated/NativeAnimatedTurboModule.mjs.map +1 -1
  497. package/dist/esm/vendor/react-native/Animated/NativeAnimatedTurboModule.native.js +32 -2
  498. package/dist/esm/vendor/react-native/Animated/NativeAnimatedTurboModule.native.js.map +1 -1
  499. package/dist/esm/vendor/react-native/Animated/SpringConfig.js +5 -5
  500. package/dist/esm/vendor/react-native/Animated/SpringConfig.js.map +1 -1
  501. package/dist/esm/vendor/react-native/Animated/SpringConfig.mjs +5 -5
  502. package/dist/esm/vendor/react-native/Animated/SpringConfig.mjs.map +1 -1
  503. package/dist/esm/vendor/react-native/Animated/SpringConfig.native.js.map +1 -1
  504. package/dist/esm/vendor/react-native/Animated/animations/Animation.js +15 -6
  505. package/dist/esm/vendor/react-native/Animated/animations/Animation.js.map +1 -1
  506. package/dist/esm/vendor/react-native/Animated/animations/Animation.mjs +9 -4
  507. package/dist/esm/vendor/react-native/Animated/animations/Animation.mjs.map +1 -1
  508. package/dist/esm/vendor/react-native/Animated/animations/Animation.native.js +10 -2
  509. package/dist/esm/vendor/react-native/Animated/animations/Animation.native.js.map +1 -1
  510. package/dist/esm/vendor/react-native/Animated/animations/DecayAnimation.js +13 -10
  511. package/dist/esm/vendor/react-native/Animated/animations/DecayAnimation.js.map +1 -1
  512. package/dist/esm/vendor/react-native/Animated/animations/DecayAnimation.mjs +11 -4
  513. package/dist/esm/vendor/react-native/Animated/animations/DecayAnimation.mjs.map +1 -1
  514. package/dist/esm/vendor/react-native/Animated/animations/DecayAnimation.native.js +17 -3
  515. package/dist/esm/vendor/react-native/Animated/animations/DecayAnimation.native.js.map +1 -1
  516. package/dist/esm/vendor/react-native/Animated/animations/SpringAnimation.js +56 -40
  517. package/dist/esm/vendor/react-native/Animated/animations/SpringAnimation.js.map +1 -1
  518. package/dist/esm/vendor/react-native/Animated/animations/SpringAnimation.mjs +52 -41
  519. package/dist/esm/vendor/react-native/Animated/animations/SpringAnimation.mjs.map +1 -1
  520. package/dist/esm/vendor/react-native/Animated/animations/SpringAnimation.native.js +46 -16
  521. package/dist/esm/vendor/react-native/Animated/animations/SpringAnimation.native.js.map +1 -1
  522. package/dist/esm/vendor/react-native/Animated/animations/TimingAnimation.js +21 -16
  523. package/dist/esm/vendor/react-native/Animated/animations/TimingAnimation.js.map +1 -1
  524. package/dist/esm/vendor/react-native/Animated/animations/TimingAnimation.mjs +20 -7
  525. package/dist/esm/vendor/react-native/Animated/animations/TimingAnimation.mjs.map +1 -1
  526. package/dist/esm/vendor/react-native/Animated/animations/TimingAnimation.native.js +23 -3
  527. package/dist/esm/vendor/react-native/Animated/animations/TimingAnimation.native.js.map +1 -1
  528. package/dist/esm/vendor/react-native/Animated/bezier.js +22 -13
  529. package/dist/esm/vendor/react-native/Animated/bezier.js.map +1 -1
  530. package/dist/esm/vendor/react-native/Animated/bezier.mjs +16 -18
  531. package/dist/esm/vendor/react-native/Animated/bezier.mjs.map +1 -1
  532. package/dist/esm/vendor/react-native/Animated/bezier.native.js.map +1 -1
  533. package/dist/esm/vendor/react-native/Animated/components/AnimatedFlatList.js +10 -0
  534. package/dist/esm/vendor/react-native/Animated/components/AnimatedFlatList.js.map +6 -0
  535. package/dist/esm/vendor/react-native/Animated/components/AnimatedFlatList.mjs +12 -0
  536. package/dist/esm/vendor/react-native/Animated/components/AnimatedFlatList.mjs.map +1 -0
  537. package/dist/esm/vendor/react-native/Animated/components/AnimatedFlatList.native.js +14 -0
  538. package/dist/esm/vendor/react-native/Animated/components/AnimatedFlatList.native.js.map +1 -0
  539. package/dist/esm/vendor/react-native/Animated/components/AnimatedImage.js +1 -1
  540. package/dist/esm/vendor/react-native/Animated/components/AnimatedImage.mjs +1 -1
  541. package/dist/esm/vendor/react-native/Animated/components/AnimatedImage.native.js +1 -1
  542. package/dist/esm/vendor/react-native/Animated/components/AnimatedScrollView.js +4 -11
  543. package/dist/esm/vendor/react-native/Animated/components/AnimatedScrollView.js.map +2 -2
  544. package/dist/esm/vendor/react-native/Animated/components/AnimatedScrollView.mjs +8 -7
  545. package/dist/esm/vendor/react-native/Animated/components/AnimatedScrollView.mjs.map +1 -1
  546. package/dist/esm/vendor/react-native/Animated/components/AnimatedScrollView.native.js +3 -2
  547. package/dist/esm/vendor/react-native/Animated/components/AnimatedScrollView.native.js.map +1 -1
  548. package/dist/esm/vendor/react-native/Animated/components/AnimatedSectionList.js +10 -0
  549. package/dist/esm/vendor/react-native/Animated/components/AnimatedSectionList.js.map +6 -0
  550. package/dist/esm/vendor/react-native/Animated/components/AnimatedSectionList.mjs +12 -0
  551. package/dist/esm/vendor/react-native/Animated/components/AnimatedSectionList.mjs.map +1 -0
  552. package/dist/esm/vendor/react-native/Animated/components/AnimatedSectionList.native.js +14 -0
  553. package/dist/esm/vendor/react-native/Animated/components/AnimatedSectionList.native.js.map +1 -0
  554. package/dist/esm/vendor/react-native/Animated/components/AnimatedText.js +1 -2
  555. package/dist/esm/vendor/react-native/Animated/components/AnimatedText.js.map +1 -1
  556. package/dist/esm/vendor/react-native/Animated/components/AnimatedText.mjs +1 -2
  557. package/dist/esm/vendor/react-native/Animated/components/AnimatedText.mjs.map +1 -1
  558. package/dist/esm/vendor/react-native/Animated/components/AnimatedText.native.js +1 -2
  559. package/dist/esm/vendor/react-native/Animated/components/AnimatedText.native.js.map +1 -1
  560. package/dist/esm/vendor/react-native/Animated/components/AnimatedView.js +1 -2
  561. package/dist/esm/vendor/react-native/Animated/components/AnimatedView.js.map +1 -1
  562. package/dist/esm/vendor/react-native/Animated/components/AnimatedView.mjs +1 -2
  563. package/dist/esm/vendor/react-native/Animated/components/AnimatedView.mjs.map +1 -1
  564. package/dist/esm/vendor/react-native/Animated/components/AnimatedView.native.js +1 -2
  565. package/dist/esm/vendor/react-native/Animated/components/AnimatedView.native.js.map +1 -1
  566. package/dist/esm/vendor/react-native/Animated/createAnimatedComponent.js +16 -12
  567. package/dist/esm/vendor/react-native/Animated/createAnimatedComponent.js.map +2 -2
  568. package/dist/esm/vendor/react-native/Animated/createAnimatedComponent.mjs +15 -16
  569. package/dist/esm/vendor/react-native/Animated/createAnimatedComponent.mjs.map +1 -1
  570. package/dist/esm/vendor/react-native/Animated/createAnimatedComponent.native.js +11 -11
  571. package/dist/esm/vendor/react-native/Animated/createAnimatedComponent.native.js.map +1 -1
  572. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedAddition.js +2 -0
  573. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedAddition.js.map +1 -1
  574. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedAddition.mjs +2 -0
  575. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedAddition.mjs.map +1 -1
  576. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedAddition.native.js +9 -1
  577. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedAddition.native.js.map +1 -1
  578. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedColor.js +33 -52
  579. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedColor.js.map +1 -1
  580. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedColor.mjs +34 -46
  581. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedColor.mjs.map +1 -1
  582. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedColor.native.js +27 -32
  583. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedColor.native.js.map +1 -1
  584. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +6 -1
  585. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js.map +1 -1
  586. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDiffClamp.mjs +6 -1
  587. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDiffClamp.mjs.map +1 -1
  588. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDiffClamp.native.js +11 -1
  589. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDiffClamp.native.js.map +1 -1
  590. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDivision.js +5 -2
  591. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDivision.js.map +1 -1
  592. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDivision.mjs +5 -2
  593. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDivision.mjs.map +1 -1
  594. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDivision.native.js +9 -1
  595. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedDivision.native.js.map +1 -1
  596. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedInterpolation.js +25 -28
  597. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedInterpolation.js.map +2 -2
  598. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedInterpolation.mjs +26 -31
  599. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedInterpolation.mjs.map +1 -1
  600. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedInterpolation.native.js +13 -12
  601. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedInterpolation.native.js.map +1 -1
  602. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedModulo.js +2 -0
  603. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedModulo.js.map +1 -1
  604. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedModulo.mjs +2 -0
  605. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedModulo.mjs.map +1 -1
  606. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedModulo.native.js +11 -1
  607. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedModulo.native.js.map +1 -1
  608. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +2 -0
  609. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedMultiplication.js.map +1 -1
  610. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedMultiplication.mjs +2 -0
  611. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedMultiplication.mjs.map +1 -1
  612. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedMultiplication.native.js +9 -1
  613. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedMultiplication.native.js.map +1 -1
  614. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedNode.js +14 -10
  615. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedNode.js.map +1 -1
  616. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedNode.mjs +13 -8
  617. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedNode.mjs.map +1 -1
  618. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedNode.native.js +13 -5
  619. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedNode.native.js.map +1 -1
  620. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedProps.js +23 -20
  621. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedProps.js.map +1 -1
  622. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedProps.mjs +19 -19
  623. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedProps.mjs.map +1 -1
  624. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedProps.native.js +4 -2
  625. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedProps.native.js.map +1 -1
  626. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedStyle.js +24 -22
  627. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedStyle.js.map +1 -1
  628. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedStyle.mjs +24 -22
  629. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedStyle.mjs.map +1 -1
  630. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedStyle.native.js +14 -4
  631. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedStyle.native.js.map +1 -1
  632. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +2 -0
  633. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedSubtraction.js.map +1 -1
  634. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedSubtraction.mjs +2 -0
  635. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedSubtraction.mjs.map +1 -1
  636. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedSubtraction.native.js +9 -1
  637. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedSubtraction.native.js.map +1 -1
  638. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTracking.js +13 -11
  639. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTracking.js.map +1 -1
  640. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTracking.mjs +13 -6
  641. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTracking.mjs.map +1 -1
  642. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTracking.native.js +16 -4
  643. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTracking.native.js.map +1 -1
  644. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTransform.js +18 -17
  645. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTransform.js.map +1 -1
  646. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTransform.mjs +18 -17
  647. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTransform.mjs.map +1 -1
  648. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTransform.native.js +10 -2
  649. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedTransform.native.js.map +1 -1
  650. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValue.js +11 -6
  651. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValue.js.map +1 -1
  652. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValue.mjs +11 -6
  653. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValue.mjs.map +1 -1
  654. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValue.native.js +11 -3
  655. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValue.native.js.map +1 -1
  656. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValueXY.js +5 -83
  657. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValueXY.js.map +1 -1
  658. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValueXY.mjs +7 -73
  659. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValueXY.mjs.map +1 -1
  660. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValueXY.native.js +7 -70
  661. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedValueXY.native.js.map +1 -1
  662. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +16 -11
  663. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedWithChildren.js.map +1 -1
  664. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedWithChildren.mjs +4 -10
  665. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedWithChildren.mjs.map +1 -1
  666. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedWithChildren.native.js +43 -8
  667. package/dist/esm/vendor/react-native/Animated/nodes/AnimatedWithChildren.native.js.map +1 -1
  668. package/dist/esm/vendor/react-native/Animated/useAnimatedProps.js +15 -31
  669. package/dist/esm/vendor/react-native/Animated/useAnimatedProps.js.map +1 -1
  670. package/dist/esm/vendor/react-native/Animated/useAnimatedProps.mjs +14 -23
  671. package/dist/esm/vendor/react-native/Animated/useAnimatedProps.mjs.map +1 -1
  672. package/dist/esm/vendor/react-native/Animated/useAnimatedProps.native.js +25 -19
  673. package/dist/esm/vendor/react-native/Animated/useAnimatedProps.native.js.map +1 -1
  674. package/dist/esm/{Batchinator → vendor/react-native/Batchinator}/index.js +2 -2
  675. package/dist/esm/vendor/react-native/Batchinator/index.js.map +6 -0
  676. package/dist/esm/{Batchinator → vendor/react-native/Batchinator}/index.mjs +2 -2
  677. package/dist/esm/vendor/react-native/Batchinator/index.mjs.map +1 -0
  678. package/dist/esm/{Batchinator → vendor/react-native/Batchinator}/index.native.js +2 -4
  679. package/dist/esm/vendor/react-native/Batchinator/index.native.js.map +1 -0
  680. package/dist/esm/vendor/react-native/EventEmitter/NativeEventEmitter.js +42 -0
  681. package/dist/esm/vendor/react-native/EventEmitter/NativeEventEmitter.js.map +6 -0
  682. package/dist/esm/vendor/react-native/EventEmitter/NativeEventEmitter.mjs +34 -0
  683. package/dist/esm/vendor/react-native/EventEmitter/NativeEventEmitter.mjs.map +1 -0
  684. package/dist/esm/vendor/react-native/{NativeEventEmitter/index.native.js → EventEmitter/NativeEventEmitter.native.js} +19 -12
  685. package/dist/esm/vendor/react-native/EventEmitter/NativeEventEmitter.native.js.map +1 -0
  686. package/dist/esm/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js.map +6 -0
  687. package/dist/esm/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.mjs.map +1 -0
  688. package/dist/esm/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.native.js.map +1 -0
  689. package/dist/esm/vendor/react-native/FillRateHelper/index.js +3 -3
  690. package/dist/esm/vendor/react-native/FillRateHelper/index.js.map +2 -2
  691. package/dist/esm/vendor/react-native/FillRateHelper/index.mjs +3 -3
  692. package/dist/esm/vendor/react-native/FillRateHelper/index.mjs.map +1 -1
  693. package/dist/esm/vendor/react-native/FillRateHelper/index.native.js +7 -7
  694. package/dist/esm/vendor/react-native/FillRateHelper/index.native.js.map +1 -1
  695. package/dist/esm/vendor/react-native/FlatList/index.js +254 -0
  696. package/dist/esm/vendor/react-native/FlatList/index.js.map +6 -0
  697. package/dist/esm/vendor/react-native/FlatList/index.mjs +228 -0
  698. package/dist/esm/vendor/react-native/FlatList/index.mjs.map +1 -0
  699. package/dist/esm/vendor/react-native/FlatList/index.native.js +330 -0
  700. package/dist/esm/vendor/react-native/FlatList/index.native.js.map +1 -0
  701. package/dist/esm/vendor/react-native/JSEventLoopWatchdog/index.js +39 -0
  702. package/dist/esm/vendor/react-native/JSEventLoopWatchdog/index.js.map +6 -0
  703. package/dist/esm/vendor/react-native/JSEventLoopWatchdog/index.mjs +52 -0
  704. package/dist/esm/vendor/react-native/JSEventLoopWatchdog/index.mjs.map +1 -0
  705. package/dist/esm/vendor/react-native/JSEventLoopWatchdog/index.native.js +53 -0
  706. package/dist/esm/vendor/react-native/JSEventLoopWatchdog/index.native.js.map +1 -0
  707. package/dist/esm/vendor/react-native/LayoutAnimation/index.js +84 -0
  708. package/dist/esm/vendor/react-native/LayoutAnimation/index.js.map +6 -0
  709. package/dist/esm/vendor/react-native/LayoutAnimation/index.mjs +85 -0
  710. package/dist/esm/vendor/react-native/LayoutAnimation/index.mjs.map +1 -0
  711. package/dist/esm/vendor/react-native/LayoutAnimation/index.native.js +86 -0
  712. package/dist/esm/vendor/react-native/LayoutAnimation/index.native.js.map +1 -0
  713. package/dist/esm/vendor/react-native/PanResponder/index.js +14 -202
  714. package/dist/esm/vendor/react-native/PanResponder/index.js.map +2 -2
  715. package/dist/esm/vendor/react-native/PanResponder/index.mjs +18 -192
  716. package/dist/esm/vendor/react-native/PanResponder/index.mjs.map +1 -1
  717. package/dist/esm/vendor/react-native/PanResponder/index.native.js +33 -192
  718. package/dist/esm/vendor/react-native/PanResponder/index.native.js.map +1 -1
  719. package/dist/esm/vendor/react-native/PooledClass/index.js +21 -0
  720. package/dist/esm/vendor/react-native/PooledClass/index.js.map +6 -0
  721. package/dist/esm/vendor/react-native/PooledClass/index.mjs +24 -0
  722. package/dist/esm/vendor/react-native/PooledClass/index.mjs.map +1 -0
  723. package/dist/esm/vendor/react-native/PooledClass/index.native.js +24 -0
  724. package/dist/esm/vendor/react-native/PooledClass/index.native.js.map +1 -0
  725. package/dist/esm/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js +12 -0
  726. package/dist/esm/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js.map +6 -0
  727. package/dist/esm/vendor/react-native/ReactNative/ReactNativeFeatureFlags.mjs +10 -0
  728. package/dist/esm/vendor/react-native/ReactNative/ReactNativeFeatureFlags.mjs.map +1 -0
  729. package/dist/esm/vendor/react-native/ReactNative/ReactNativeFeatureFlags.native.js +20 -0
  730. package/dist/esm/vendor/react-native/ReactNative/ReactNativeFeatureFlags.native.js.map +1 -0
  731. package/dist/esm/vendor/react-native/SectionList/index.js +63 -0
  732. package/dist/esm/vendor/react-native/SectionList/index.js.map +6 -0
  733. package/dist/esm/vendor/react-native/SectionList/index.mjs +68 -0
  734. package/dist/esm/vendor/react-native/SectionList/index.mjs.map +1 -0
  735. package/dist/esm/vendor/react-native/SectionList/index.native.js +161 -0
  736. package/dist/esm/vendor/react-native/SectionList/index.native.js.map +1 -0
  737. package/dist/esm/vendor/react-native/StaticContainer/index.js +15 -0
  738. package/dist/esm/vendor/react-native/StaticContainer/index.js.map +6 -0
  739. package/dist/esm/vendor/react-native/StaticContainer/index.mjs +13 -0
  740. package/dist/esm/vendor/react-native/StaticContainer/index.mjs.map +1 -0
  741. package/dist/esm/vendor/react-native/StaticContainer/index.native.js +77 -0
  742. package/dist/esm/vendor/react-native/StaticContainer/index.native.js.map +1 -0
  743. package/dist/esm/vendor/react-native/StaticRenderer/index.js +14 -0
  744. package/dist/esm/vendor/react-native/StaticRenderer/index.js.map +6 -0
  745. package/dist/esm/vendor/react-native/StaticRenderer/index.mjs +12 -0
  746. package/dist/esm/vendor/react-native/StaticRenderer/index.mjs.map +1 -0
  747. package/dist/esm/vendor/react-native/StaticRenderer/index.native.js +76 -0
  748. package/dist/esm/vendor/react-native/StaticRenderer/index.native.js.map +1 -0
  749. package/dist/esm/vendor/react-native/TouchHistoryMath/index.js.map +2 -2
  750. package/dist/esm/vendor/react-native/TouchHistoryMath/index.mjs.map +1 -1
  751. package/dist/esm/vendor/react-native/TouchHistoryMath/index.native.js.map +1 -1
  752. package/dist/esm/vendor/react-native/TurboModule/RCTExport.js +9 -0
  753. package/dist/esm/vendor/react-native/TurboModule/RCTExport.js.map +2 -2
  754. package/dist/esm/vendor/react-native/TurboModule/RCTExport.mjs +7 -1
  755. package/dist/esm/vendor/react-native/TurboModule/RCTExport.mjs.map +1 -1
  756. package/dist/esm/vendor/react-native/TurboModule/RCTExport.native.js +9 -1
  757. package/dist/esm/vendor/react-native/TurboModule/RCTExport.native.js.map +1 -1
  758. package/dist/esm/vendor/react-native/TurboModule/TurboModuleRegistry.js +6 -1
  759. package/dist/esm/vendor/react-native/TurboModule/TurboModuleRegistry.js.map +1 -1
  760. package/dist/esm/vendor/react-native/TurboModule/TurboModuleRegistry.mjs +3 -1
  761. package/dist/esm/vendor/react-native/TurboModule/TurboModuleRegistry.mjs.map +1 -1
  762. package/dist/esm/vendor/react-native/TurboModule/TurboModuleRegistry.native.js +3 -1
  763. package/dist/esm/vendor/react-native/TurboModule/TurboModuleRegistry.native.js.map +1 -1
  764. package/dist/esm/vendor/react-native/Types/CoreEventTypes.js +119 -0
  765. package/dist/esm/vendor/react-native/Types/CoreEventTypes.js.map +2 -2
  766. package/dist/esm/vendor/react-native/Types/CoreEventTypes.mjs +131 -1
  767. package/dist/esm/vendor/react-native/Types/CoreEventTypes.mjs.map +1 -1
  768. package/dist/esm/vendor/react-native/Types/CoreEventTypes.native.js +135 -1
  769. package/dist/esm/vendor/react-native/Types/CoreEventTypes.native.js.map +1 -1
  770. package/dist/esm/vendor/react-native/Utilities/Platform.js +6 -0
  771. package/dist/esm/vendor/react-native/Utilities/Platform.js.map +6 -0
  772. package/dist/esm/vendor/react-native/Utilities/Platform.mjs +4 -0
  773. package/dist/esm/vendor/react-native/Utilities/Platform.mjs.map +1 -0
  774. package/dist/esm/vendor/react-native/Utilities/Platform.native.js +4 -0
  775. package/dist/esm/vendor/react-native/Utilities/Platform.native.js.map +1 -0
  776. package/dist/esm/vendor/react-native/Utilities/clamp.js.map +2 -2
  777. package/dist/esm/vendor/react-native/Utilities/clamp.mjs.map +1 -1
  778. package/dist/esm/vendor/react-native/Utilities/clamp.native.js.map +1 -1
  779. package/dist/esm/vendor/react-native/Utilities/setAndForwardRef.js +5 -3
  780. package/dist/esm/vendor/react-native/Utilities/setAndForwardRef.js.map +1 -1
  781. package/dist/esm/vendor/react-native/Utilities/setAndForwardRef.mjs +5 -4
  782. package/dist/esm/vendor/react-native/Utilities/setAndForwardRef.mjs.map +1 -1
  783. package/dist/esm/vendor/react-native/Utilities/setAndForwardRef.native.js +5 -3
  784. package/dist/esm/vendor/react-native/Utilities/setAndForwardRef.native.js.map +1 -1
  785. package/dist/esm/vendor/react-native/Utilities/useMergeRefs.js +15 -0
  786. package/dist/esm/vendor/react-native/Utilities/useMergeRefs.js.map +6 -0
  787. package/dist/esm/vendor/react-native/Utilities/useMergeRefs.mjs +10 -0
  788. package/dist/esm/vendor/react-native/Utilities/useMergeRefs.mjs.map +1 -0
  789. package/dist/esm/vendor/react-native/Utilities/useMergeRefs.native.js +25 -0
  790. package/dist/esm/vendor/react-native/Utilities/useMergeRefs.native.js.map +1 -0
  791. package/dist/esm/vendor/react-native/Utilities/useRefEffect.js +14 -0
  792. package/dist/esm/vendor/react-native/Utilities/useRefEffect.js.map +6 -0
  793. package/dist/esm/vendor/react-native/Utilities/useRefEffect.mjs +9 -0
  794. package/dist/esm/vendor/react-native/Utilities/useRefEffect.mjs.map +1 -0
  795. package/dist/esm/vendor/react-native/Utilities/useRefEffect.native.js +9 -0
  796. package/dist/esm/vendor/react-native/Utilities/useRefEffect.native.js.map +1 -0
  797. package/dist/esm/vendor/react-native/ViewabilityHelper/index.js +135 -0
  798. package/dist/esm/vendor/react-native/ViewabilityHelper/index.js.map +6 -0
  799. package/dist/esm/vendor/react-native/ViewabilityHelper/index.mjs +117 -0
  800. package/dist/esm/vendor/react-native/ViewabilityHelper/index.mjs.map +1 -0
  801. package/dist/esm/vendor/react-native/ViewabilityHelper/index.native.js +185 -0
  802. package/dist/esm/vendor/react-native/ViewabilityHelper/index.native.js.map +1 -0
  803. package/dist/esm/vendor/react-native/VirtualizeUtils/index.js.map +2 -2
  804. package/dist/esm/vendor/react-native/VirtualizeUtils/index.mjs.map +1 -1
  805. package/dist/esm/vendor/react-native/VirtualizeUtils/index.native.js.map +1 -1
  806. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.js +2 -8
  807. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.js.map +2 -2
  808. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.mjs +1 -3
  809. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.mjs.map +1 -1
  810. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.native.js +1 -9
  811. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.native.js.map +1 -1
  812. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.js.map +2 -2
  813. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.mjs.map +1 -1
  814. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.native.js.map +1 -1
  815. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.js +2 -2
  816. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.js.map +2 -2
  817. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.mjs +2 -2
  818. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.mjs.map +1 -1
  819. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js +2 -2
  820. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js.map +1 -1
  821. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +16 -10
  822. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js.map +2 -2
  823. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.mjs +14 -7
  824. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.mjs.map +1 -1
  825. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js +16 -9
  826. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js.map +1 -1
  827. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.js +6 -12
  828. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.js.map +2 -2
  829. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.mjs +3 -2
  830. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.mjs.map +1 -1
  831. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js +3 -2
  832. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js.map +1 -1
  833. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.js +42 -0
  834. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.js.map +2 -2
  835. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.mjs +39 -1
  836. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.mjs.map +1 -1
  837. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js +39 -1
  838. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js.map +1 -1
  839. package/dist/esm/vendor/react-native/VirtualizedList/index.js +135 -910
  840. package/dist/esm/vendor/react-native/VirtualizedList/index.js.map +2 -2
  841. package/dist/esm/vendor/react-native/VirtualizedList/index.mjs +138 -867
  842. package/dist/esm/vendor/react-native/VirtualizedList/index.mjs.map +1 -1
  843. package/dist/esm/vendor/react-native/VirtualizedList/index.native.js +128 -912
  844. package/dist/esm/vendor/react-native/VirtualizedList/index.native.js.map +1 -1
  845. package/dist/esm/vendor/react-native/VirtualizedSectionList/index.js +96 -0
  846. package/dist/esm/vendor/react-native/VirtualizedSectionList/index.js.map +6 -0
  847. package/dist/esm/vendor/react-native/VirtualizedSectionList/index.mjs +95 -0
  848. package/dist/esm/vendor/react-native/VirtualizedSectionList/index.mjs.map +1 -0
  849. package/dist/esm/vendor/react-native/VirtualizedSectionList/index.native.js +204 -0
  850. package/dist/esm/vendor/react-native/VirtualizedSectionList/index.native.js.map +1 -0
  851. package/dist/esm/vendor/react-native/deepDiffer/index.js +3 -3
  852. package/dist/esm/vendor/react-native/deepDiffer/index.js.map +3 -3
  853. package/dist/esm/vendor/react-native/deepDiffer/index.mjs +3 -3
  854. package/dist/esm/vendor/react-native/deepDiffer/index.mjs.map +1 -1
  855. package/dist/esm/vendor/react-native/deepDiffer/index.native.js +3 -3
  856. package/dist/esm/vendor/react-native/deepDiffer/index.native.js.map +1 -1
  857. package/dist/esm/vendor/react-native/infoLog/index.js.map +2 -2
  858. package/dist/esm/vendor/react-native/infoLog/index.mjs.map +1 -1
  859. package/dist/esm/vendor/react-native/infoLog/index.native.js.map +1 -1
  860. package/dist/esm/vendor/react-native/vendor/emitter/EventEmitter.js +69 -0
  861. package/dist/esm/vendor/react-native/vendor/emitter/EventEmitter.js.map +6 -0
  862. package/dist/esm/vendor/react-native/vendor/emitter/EventEmitter.mjs +61 -0
  863. package/dist/esm/vendor/react-native/vendor/emitter/EventEmitter.mjs.map +1 -0
  864. package/dist/esm/vendor/react-native/vendor/emitter/EventEmitter.native.js +122 -0
  865. package/dist/esm/vendor/react-native/vendor/emitter/EventEmitter.native.js.map +1 -0
  866. package/dist/esm/without-animated.js +1 -1
  867. package/dist/esm/without-animated.mjs +1 -1
  868. package/dist/esm/without-animated.native.js +1 -1
  869. package/package.json +6 -6
  870. package/src/InteractionManager/index.tsx +1 -0
  871. package/src/ScrollView/index.tsx +238 -1
  872. package/src/SectionList.tsx +9 -0
  873. package/src/TextInput/index.tsx +20 -1
  874. package/src/TextInput/types.tsx +2 -0
  875. package/src/TouchableNativeFeedback.tsx +9 -0
  876. package/src/VirtualizedList.tsx +9 -0
  877. package/src/createElement/index.tsx +4 -4
  878. package/src/index.tsx +7 -5
  879. package/src/modules/requestIdleCallback.ts +34 -0
  880. package/src/vendor/react-native/Animated/Animated.js +17 -13
  881. package/src/vendor/react-native/Animated/AnimatedEvent.js +40 -65
  882. package/src/vendor/react-native/Animated/AnimatedImplementation.js +151 -190
  883. package/src/vendor/react-native/Animated/AnimatedMock.js +30 -44
  884. package/src/vendor/react-native/Animated/AnimatedPlatformConfig.js +4 -2
  885. package/src/vendor/react-native/Animated/Easing.js +60 -65
  886. package/src/vendor/react-native/Animated/NativeAnimatedHelper.js +87 -123
  887. package/src/vendor/react-native/Animated/NativeAnimatedModule.js +59 -3
  888. package/src/vendor/react-native/Animated/NativeAnimatedTurboModule.js +55 -3
  889. package/src/vendor/react-native/Animated/SpringConfig.js +14 -9
  890. package/src/vendor/react-native/Animated/animations/Animation.js +44 -31
  891. package/src/vendor/react-native/Animated/animations/DecayAnimation.js +52 -54
  892. package/src/vendor/react-native/Animated/animations/SpringAnimation.js +84 -140
  893. package/src/vendor/react-native/Animated/animations/TimingAnimation.js +29 -57
  894. package/src/vendor/react-native/Animated/bezier.js +80 -71
  895. package/src/vendor/react-native/Animated/components/AnimatedFlatList.jsx +23 -0
  896. package/src/vendor/react-native/Animated/components/AnimatedImage.js +2 -2
  897. package/src/vendor/react-native/Animated/components/{AnimatedScrollView.js → AnimatedScrollView.jsx} +9 -15
  898. package/src/vendor/react-native/Animated/components/AnimatedSectionList.jsx +23 -0
  899. package/src/vendor/react-native/Animated/components/AnimatedText.js +1 -3
  900. package/src/vendor/react-native/Animated/components/AnimatedView.js +1 -3
  901. package/src/vendor/react-native/Animated/createAnimatedComponent.jsx +46 -0
  902. package/src/vendor/react-native/Animated/nodes/AnimatedAddition.js +28 -26
  903. package/src/vendor/react-native/Animated/nodes/AnimatedColor.js +56 -122
  904. package/src/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +10 -7
  905. package/src/vendor/react-native/Animated/nodes/AnimatedDivision.js +36 -41
  906. package/src/vendor/react-native/Animated/nodes/{AnimatedInterpolation.js → AnimatedInterpolation.jsx} +55 -70
  907. package/src/vendor/react-native/Animated/nodes/AnimatedModulo.js +4 -4
  908. package/src/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +28 -27
  909. package/src/vendor/react-native/Animated/nodes/AnimatedNode.js +23 -40
  910. package/src/vendor/react-native/Animated/nodes/AnimatedProps.js +25 -45
  911. package/src/vendor/react-native/Animated/nodes/AnimatedStyle.js +32 -46
  912. package/src/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +27 -26
  913. package/src/vendor/react-native/Animated/nodes/AnimatedTracking.js +16 -22
  914. package/src/vendor/react-native/Animated/nodes/AnimatedTransform.js +53 -62
  915. package/src/vendor/react-native/Animated/nodes/AnimatedValue.js +33 -59
  916. package/src/vendor/react-native/Animated/nodes/AnimatedValueXY.js +8 -101
  917. package/src/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +21 -25
  918. package/src/vendor/react-native/Animated/useAnimatedProps.js +45 -93
  919. package/src/{Batchinator/index.tsx → vendor/react-native/Batchinator/index.js} +10 -12
  920. package/src/vendor/react-native/{NativeEventEmitter/index.js → EventEmitter/NativeEventEmitter.js} +14 -34
  921. package/src/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.js +4 -2
  922. package/src/vendor/react-native/FillRateHelper/{index.tsx → index.js} +41 -47
  923. package/src/vendor/react-native/FlatList/index.jsx +529 -0
  924. package/src/vendor/react-native/JSEventLoopWatchdog/index.js +84 -0
  925. package/src/vendor/react-native/LayoutAnimation/index.js +121 -0
  926. package/src/vendor/react-native/PanResponder/index.js +131 -0
  927. package/src/vendor/react-native/PooledClass/index.js +61 -0
  928. package/src/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js +19 -0
  929. package/src/vendor/react-native/SectionList/index.jsx +97 -0
  930. package/src/vendor/react-native/StaticContainer/index.js +45 -0
  931. package/src/vendor/react-native/StaticRenderer/index.js +26 -0
  932. package/src/vendor/react-native/TouchHistoryMath/{index.tsx → index.js} +53 -36
  933. package/src/vendor/react-native/TurboModule/RCTExport.js +13 -2
  934. package/src/vendor/react-native/TurboModule/TurboModuleRegistry.js +12 -2
  935. package/src/vendor/react-native/Types/CoreEventTypes.js +153 -0
  936. package/src/vendor/react-native/Utilities/Platform.js +2 -0
  937. package/src/vendor/react-native/Utilities/{clamp.ts → clamp.js} +8 -6
  938. package/src/vendor/react-native/Utilities/setAndForwardRef.js +18 -11
  939. package/src/vendor/react-native/Utilities/useMergeRefs.js +41 -0
  940. package/src/vendor/react-native/Utilities/useRefEffect.js +44 -0
  941. package/src/vendor/react-native/ViewabilityHelper/index.js +250 -0
  942. package/src/vendor/react-native/ViewabilityHelper.ts +1 -1
  943. package/src/vendor/react-native/VirtualizeUtils/{index.tsx → index.js} +40 -48
  944. package/src/vendor/react-native/VirtualizedList/{CellRenderMask.ts → CellRenderMask.js} +14 -26
  945. package/src/vendor/react-native/VirtualizedList/{ChildListCollection.tsx → ChildListCollection.js} +10 -11
  946. package/src/vendor/react-native/VirtualizedList/{StateSafePureComponent.tsx → StateSafePureComponent.js} +19 -19
  947. package/src/vendor/react-native/VirtualizedList/{VirtualizedListCellRenderer.tsx → VirtualizedListCellRenderer.jsx} +43 -70
  948. package/src/vendor/react-native/VirtualizedList/{VirtualizedListContext.tsx → VirtualizedListContext.jsx} +24 -44
  949. package/src/vendor/react-native/VirtualizedList/VirtualizedListProps.js +46 -0
  950. package/src/vendor/react-native/VirtualizedList/index.jsx +395 -0
  951. package/src/vendor/react-native/VirtualizedSectionList/index.jsx +148 -0
  952. package/src/vendor/react-native/deepDiffer/{index.tsx → index.js} +32 -16
  953. package/src/vendor/react-native/infoLog/{index.tsx → index.js} +7 -3
  954. package/src/vendor/react-native/useRefEffect.js +1 -1
  955. package/src/vendor/react-native/vendor/emitter/EventEmitter.js +118 -0
  956. package/src/without-animated.tsx +1 -1
  957. package/dist/cjs/Batchinator/index.js.map +0 -6
  958. package/dist/cjs/Batchinator/index.native.js.map +0 -6
  959. package/dist/cjs/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js.map +0 -6
  960. package/dist/cjs/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.native.js.map +0 -6
  961. package/dist/cjs/vendor/react-native/NativeEventEmitter/index.js.map +0 -6
  962. package/dist/cjs/vendor/react-native/NativeEventEmitter/index.native.js.map +0 -6
  963. package/dist/esm/Batchinator/index.js.map +0 -6
  964. package/dist/esm/Batchinator/index.mjs.map +0 -1
  965. package/dist/esm/Batchinator/index.native.js.map +0 -1
  966. package/dist/esm/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js.map +0 -6
  967. package/dist/esm/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.mjs.map +0 -1
  968. package/dist/esm/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.native.js.map +0 -1
  969. package/dist/esm/vendor/react-native/NativeEventEmitter/index.js +0 -50
  970. package/dist/esm/vendor/react-native/NativeEventEmitter/index.js.map +0 -6
  971. package/dist/esm/vendor/react-native/NativeEventEmitter/index.mjs +0 -41
  972. package/dist/esm/vendor/react-native/NativeEventEmitter/index.mjs.map +0 -1
  973. package/dist/esm/vendor/react-native/NativeEventEmitter/index.native.js.map +0 -1
  974. package/src/vendor/react-native/Animated/createAnimatedComponent.js +0 -51
  975. package/src/vendor/react-native/PanResponder/index.tsx +0 -594
  976. package/src/vendor/react-native/Types/CoreEventTypes.tsx +0 -88
  977. package/src/vendor/react-native/VirtualizedList/VirtualizedListProps.ts +0 -130
  978. package/src/vendor/react-native/VirtualizedList/index.tsx +0 -1797
  979. /package/dist/cjs/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.cjs +0 -0
  980. /package/dist/cjs/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.js +0 -0
  981. /package/dist/cjs/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.native.js +0 -0
  982. /package/dist/esm/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.js +0 -0
  983. /package/dist/esm/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.mjs +0 -0
  984. /package/dist/esm/vendor/react-native/{NativeEventEmitter → EventEmitter}/RCTDeviceEventEmitter.native.js +0 -0
@@ -1,1797 +0,0 @@
1
- // @ts-nocheck
2
-
3
- /**
4
- * Copyright (c) Meta Platforms, Inc. and affiliates.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- *
9
- * @format
10
- */
11
-
12
- import { invariant, StyleSheet } from '@tamagui/react-native-web-internals'
13
- import type { ViewProps } from '../../../View'
14
- import ViewabilityHelper, { type ViewToken } from '../ViewabilityHelper'
15
- import { CellRenderMask } from './CellRenderMask'
16
- import StateSafePureComponent from './StateSafePureComponent'
17
- import {
18
- VirtualizedListCellContextProvider,
19
- VirtualizedListContext,
20
- VirtualizedListContextProvider,
21
- } from './VirtualizedListContext'
22
- import type { FrameMetricProps, Item, Props } from './VirtualizedListProps'
23
- import ScrollView from '../../../ScrollView/ScrollViewBase'
24
- import View from '../../../View'
25
- import type { ScrollEvent } from '../Types/CoreEventTypes'
26
- import CellRenderer from './VirtualizedListCellRenderer'
27
- import FillRateHelper from '../FillRateHelper'
28
- import ChildListCollection from './ChildListCollection'
29
- import React from 'react'
30
- import clamp from '../Utilities/clamp'
31
- import { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils'
32
- import Batchinator from '../../../Batchinator'
33
- import RefreshControl from '../../../RefreshControl'
34
-
35
- export type { RenderItemProps, RenderItemType, Separators } from './VirtualizedListProps'
36
-
37
- const __DEV__ = process.env.NODE_ENV !== 'production'
38
-
39
- const ON_EDGE_REACHED_EPSILON = 0.001
40
-
41
- let _usedIndexForKey = false
42
- let _keylessItemComponentName = ''
43
-
44
- type ScrollResponderType = any
45
- type ViewStyleProp = ViewProps['style']
46
-
47
- interface ViewabilityHelperCallbackTuple {
48
- viewabilityHelper: ViewabilityHelper
49
- onViewableItemsChanged: (info: {
50
- viewableItems: Array<ViewToken>
51
- changed: Array<ViewToken>
52
- }) => void
53
- }
54
-
55
- interface State {
56
- renderMask: CellRenderMask
57
- cellsAroundViewport: { first: number; last: number }
58
- }
59
-
60
- /**
61
- * Default Props Helper Functions
62
- * Use the following helper functions for default values
63
- */
64
-
65
- function horizontalOrDefault(horizontal?: boolean) {
66
- return horizontal ?? false
67
- }
68
-
69
- function initialNumToRenderOrDefault(initialNumToRender?: number) {
70
- return initialNumToRender ?? 10
71
- }
72
-
73
- function maxToRenderPerBatchOrDefault(maxToRenderPerBatch?: number) {
74
- return maxToRenderPerBatch ?? 10
75
- }
76
-
77
- function onStartReachedThresholdOrDefault(onStartReachedThreshold?: number) {
78
- return onStartReachedThreshold ?? 2
79
- }
80
-
81
- function onEndReachedThresholdOrDefault(onEndReachedThreshold?: number) {
82
- return onEndReachedThreshold ?? 2
83
- }
84
-
85
- function getScrollingThreshold(threshold: number, visibleLength: number) {
86
- return (threshold * visibleLength) / 2
87
- }
88
-
89
- function scrollEventThrottleOrDefault(scrollEventThrottle?: number) {
90
- return scrollEventThrottle ?? 50
91
- }
92
-
93
- function windowSizeOrDefault(windowSize?: number) {
94
- return windowSize ?? 21
95
- }
96
-
97
- function findLastWhere<T>(
98
- arr: ReadonlyArray<T>,
99
- predicate: (element: T) => boolean
100
- ): T | null {
101
- for (let i = arr.length - 1; i >= 0; i--) {
102
- if (predicate(arr[i])) {
103
- return arr[i]
104
- }
105
- }
106
- return null
107
- }
108
-
109
- /**
110
- * Base implementation for the more convenient [`<FlatList>`](https://reactnative.dev/docs/flatlist)
111
- * and [`<SectionList>`](https://reactnative.dev/docs/sectionlist) components, which are also better
112
- * documented. In general, this should only really be used if you need more flexibility than
113
- * `FlatList` provides, e.g., for use with immutable data instead of plain arrays.
114
- *
115
- * Virtualization massively improves memory consumption and performance of large lists by
116
- * maintaining a finite render window of active items and replacing all items outside of the render
117
- * window with appropriately sized blank space. The window adapts to scrolling behavior, and items
118
- * are rendered incrementally with low-pri (after any running interactions) if they are far from the
119
- * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.
120
- *
121
- * Some caveats:
122
- *
123
- * - Internal state is not preserved when content scrolls out of the render window. Make sure all
124
- * your data is captured in the item data or external stores like Flux, Redux, or Relay.
125
- * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-
126
- * equal. Make sure that everything your `renderItem` function depends on is passed as a prop
127
- * (e.g., `extraData`) that is not `===` after updates, otherwise your UI may not update on
128
- * changes. This includes the `data` prop and parent component state.
129
- * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously
130
- * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see
131
- * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,
132
- * and we are working on improving it behind the scenes.
133
- * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.
134
- * Alternatively, you can provide a custom `keyExtractor` prop.
135
- * - As an effort to remove defaultProps, use helper functions when referencing certain props
136
- */
137
-
138
- class VirtualizedList extends StateSafePureComponent<any, State> {
139
- static contextType: typeof VirtualizedListContext = VirtualizedListContext
140
-
141
- // scrollToEnd may be janky without getItemLayout prop
142
- scrollToEnd(params?: { animated?: boolean }) {
143
- const animated = params ? params.animated : true
144
- const veryLast = this.props.getItemCount(this.props.data) - 1
145
- if (veryLast < 0) {
146
- return
147
- }
148
- // @ts-ignore
149
- const frame = this.__getFrameMetricsApprox(veryLast, this.props)
150
- const offset = Math.max(
151
- 0,
152
- frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength
153
- )
154
-
155
- if (this._scrollRef == null) {
156
- return
157
- }
158
-
159
- // @ts-ignore
160
- if (this._scrollRef.scrollTo == null) {
161
- console.warn(
162
- 'No scrollTo method provided. This may be because you have two nested ' +
163
- 'VirtualizedLists with the same orientation, or because you are ' +
164
- 'using a custom component that does not implement scrollTo.'
165
- )
166
- return
167
- }
168
-
169
- // @ts-ignore
170
- this._scrollRef.scrollTo(
171
- horizontalOrDefault(this.props.horizontal)
172
- ? { x: offset, animated }
173
- : { y: offset, animated }
174
- )
175
- }
176
-
177
- // scrollToIndex may be janky without getItemLayout prop
178
- scrollToIndex(params: {
179
- animated?: boolean
180
- index: number
181
- viewOffset?: number
182
- viewPosition?: number
183
- }) {
184
- const { data, horizontal, getItemCount, getItemLayout, onScrollToIndexFailed } =
185
- this.props
186
- const { animated, index, viewOffset, viewPosition } = params
187
- invariant(
188
- index >= 0,
189
- `scrollToIndex out of range: requested index ${index} but minimum is 0`
190
- )
191
- invariant(
192
- getItemCount(data) >= 1,
193
- `scrollToIndex out of range: item length ${getItemCount(data)} but minimum is 1`
194
- )
195
- invariant(
196
- index < getItemCount(data),
197
- `scrollToIndex out of range: requested index ${index} is out of 0 to ${
198
- getItemCount(data) - 1
199
- }`
200
- )
201
- if (!getItemLayout && index > this._highestMeasuredFrameIndex) {
202
- invariant(
203
- !!onScrollToIndexFailed,
204
- 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' +
205
- 'otherwise there is no way to know the location of offscreen indices or handle failures.'
206
- )
207
- onScrollToIndexFailed({
208
- averageItemLength: this._averageCellLength,
209
- highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,
210
- index,
211
- })
212
- return
213
- }
214
- // @ts-ignore
215
- const frame = this.__getFrameMetricsApprox(Math.floor(index), this.props)
216
- const offset =
217
- Math.max(
218
- 0,
219
- // @ts-ignore
220
- this._getOffsetApprox(index, this.props) -
221
- (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)
222
- ) - (viewOffset || 0)
223
-
224
- if (this._scrollRef == null) {
225
- return
226
- }
227
-
228
- // @ts-ignore
229
- if (this._scrollRef.scrollTo == null) {
230
- console.warn(
231
- 'No scrollTo method provided. This may be because you have two nested ' +
232
- 'VirtualizedLists with the same orientation, or because you are ' +
233
- 'using a custom component that does not implement scrollTo.'
234
- )
235
- return
236
- }
237
-
238
- // @ts-ignore
239
- this._scrollRef.scrollTo(
240
- horizontal ? { x: offset, animated } : { y: offset, animated }
241
- )
242
- }
243
-
244
- // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -
245
- // use scrollToIndex instead if possible.
246
- scrollToItem(params: {
247
- animated?: boolean
248
- item: Item
249
- viewOffset?: number
250
- viewPosition?: number
251
- }) {
252
- const { item } = params
253
- const { data, getItem, getItemCount } = this.props
254
- const itemCount = getItemCount(data)
255
- for (let index = 0; index < itemCount; index++) {
256
- if (getItem(data, index) === item) {
257
- this.scrollToIndex({ ...params, index })
258
- break
259
- }
260
- }
261
- }
262
-
263
- /**
264
- * Scroll to a specific content pixel offset in the list.
265
- *
266
- * Param `offset` expects the offset to scroll to.
267
- * In case of `horizontal` is true, the offset is the x-value,
268
- * in any other case the offset is the y-value.
269
- *
270
- * Param `animated` (`true` by default) defines whether the list
271
- * should do an animation while scrolling.
272
- */
273
- scrollToOffset(params: { animated?: boolean; offset: number }) {
274
- const { animated, offset } = params
275
-
276
- if (this._scrollRef == null) {
277
- return
278
- }
279
-
280
- // @ts-ignore
281
- if (this._scrollRef.scrollTo == null) {
282
- console.warn(
283
- 'No scrollTo method provided. This may be because you have two nested ' +
284
- 'VirtualizedLists with the same orientation, or because you are ' +
285
- 'using a custom component that does not implement scrollTo.'
286
- )
287
- return
288
- }
289
-
290
- // @ts-ignore
291
- this._scrollRef.scrollTo(
292
- horizontalOrDefault(this.props.horizontal)
293
- ? { x: offset, animated }
294
- : { y: offset, animated }
295
- )
296
- }
297
-
298
- recordInteraction() {
299
- this._nestedChildLists.forEach((childList) => {
300
- childList.recordInteraction()
301
- })
302
- this._viewabilityTuples.forEach((t) => {
303
- t.viewabilityHelper.recordInteraction()
304
- })
305
- // @ts-ignore
306
- this._updateViewableItems(this.props, this.state.cellsAroundViewport)
307
- }
308
-
309
- flashScrollIndicators() {
310
- if (this._scrollRef == null) {
311
- return
312
- }
313
-
314
- // @ts-ignore
315
- this._scrollRef.flashScrollIndicators()
316
- }
317
-
318
- /**
319
- * Provides a handle to the underlying scroll responder.
320
- * Note that `this._scrollRef` might not be a `ScrollView`, so we
321
- * need to check that it responds to `getScrollResponder` before calling it.
322
- */
323
- getScrollResponder(): ScrollResponderType | null {
324
- // @ts-ignore
325
- if (this._scrollRef && this._scrollRef.getScrollResponder) {
326
- // @ts-ignore
327
- return this._scrollRef.getScrollResponder()
328
- }
329
- return null
330
- }
331
-
332
- getScrollableNode(): number | null {
333
- if (this._scrollRef && this._scrollRef.getScrollableNode) {
334
- return this._scrollRef.getScrollableNode()
335
- } else {
336
- return this._scrollRef
337
- }
338
- }
339
-
340
- getScrollRef():
341
- | React.ElementRef<typeof ScrollView>
342
- | React.ElementRef<typeof View>
343
- | null {
344
- if (this._scrollRef && this._scrollRef.getScrollRef) {
345
- return this._scrollRef.getScrollRef()
346
- } else {
347
- return this._scrollRef
348
- }
349
- }
350
-
351
- _getCellKey(): string {
352
- return this.context?.cellKey || 'rootList'
353
- }
354
-
355
- _getScrollMetrics = () => {
356
- return this._scrollMetrics
357
- }
358
-
359
- hasMore(): boolean {
360
- return this._hasMore
361
- }
362
-
363
- _getOutermostParentListRef = () => {
364
- if (this._isNestedWithSameOrientation()) {
365
- return this.context.getOutermostParentListRef()
366
- } else {
367
- return this
368
- }
369
- }
370
-
371
- _registerAsNestedChild = (childList: {
372
- cellKey: string
373
- ref: React.ElementRef<typeof VirtualizedList>
374
- }): void => {
375
- this._nestedChildLists.add(childList.ref, childList.cellKey)
376
- if (this._hasInteracted) {
377
- childList.ref.recordInteraction()
378
- }
379
- }
380
-
381
- _unregisterAsNestedChild = (childList: {
382
- ref: React.ElementRef<typeof VirtualizedList>
383
- }): void => {
384
- this._nestedChildLists.remove(childList.ref)
385
- }
386
-
387
- invertedWheelEventHandler?: (ev: any) => void
388
-
389
- constructor(props: Props) {
390
- super(props)
391
- this._checkProps(props)
392
-
393
- this._fillRateHelper = new FillRateHelper(this._getFrameMetrics)
394
- this._updateCellsToRenderBatcher = new Batchinator(
395
- this._updateCellsToRender,
396
- this.props.updateCellsBatchingPeriod ?? 50
397
- )
398
-
399
- if (this.props.viewabilityConfigCallbackPairs) {
400
- this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map((pair) => ({
401
- viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),
402
- onViewableItemsChanged: pair.onViewableItemsChanged,
403
- }))
404
- } else {
405
- const { onViewableItemsChanged, viewabilityConfig } = this.props
406
- if (onViewableItemsChanged) {
407
- this._viewabilityTuples.push({
408
- viewabilityHelper: new ViewabilityHelper(viewabilityConfig),
409
- onViewableItemsChanged: onViewableItemsChanged,
410
- })
411
- }
412
- }
413
-
414
- const initialRenderRegion = VirtualizedList._initialRenderRegion(props)
415
-
416
- this.state = {
417
- cellsAroundViewport: initialRenderRegion,
418
- renderMask: VirtualizedList._createRenderMask(props, initialRenderRegion),
419
- }
420
-
421
- this.invertedWheelEventHandler = (ev: any) => {
422
- const scrollOffset = this.props.horizontal
423
- ? ev.target.scrollLeft
424
- : ev.target.scrollTop
425
- const scrollLength = this.props.horizontal
426
- ? ev.target.scrollWidth
427
- : ev.target.scrollHeight
428
- const clientLength = this.props.horizontal
429
- ? ev.target.clientWidth
430
- : ev.target.clientHeight
431
- const isEventTargetScrollable = scrollLength > clientLength
432
- const delta = this.props.horizontal
433
- ? ev.deltaX || ev.wheelDeltaX
434
- : ev.deltaY || ev.wheelDeltaY
435
- let leftoverDelta = delta
436
- if (isEventTargetScrollable) {
437
- leftoverDelta =
438
- delta < 0
439
- ? Math.min(delta + scrollOffset, 0)
440
- : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0)
441
- }
442
- const targetDelta = delta - leftoverDelta
443
-
444
- if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {
445
- const node = this._scrollRef.getScrollableNode()
446
- if (this.props.horizontal) {
447
- ev.target.scrollLeft += targetDelta
448
- const nextScrollLeft = node.scrollLeft - leftoverDelta
449
- node.scrollLeft = !this.props.getItemLayout
450
- ? Math.min(nextScrollLeft, this._totalCellLength)
451
- : nextScrollLeft
452
- } else {
453
- ev.target.scrollTop += targetDelta
454
- const nextScrollTop = node.scrollTop - leftoverDelta
455
- node.scrollTop = !this.props.getItemLayout
456
- ? Math.min(nextScrollTop, this._totalCellLength)
457
- : nextScrollTop
458
- }
459
- ev.preventDefault()
460
- }
461
- }
462
- }
463
-
464
- _checkProps(props: Props) {
465
- const { onScroll, windowSize, getItemCount, data, initialScrollIndex } = props
466
-
467
- invariant(
468
- !(onScroll && (onScroll as any).__isNative),
469
- 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' +
470
- 'to support native onScroll events with useNativeDriver'
471
- )
472
- invariant(
473
- windowSizeOrDefault(windowSize) > 0,
474
- 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.'
475
- )
476
-
477
- invariant(getItemCount, 'VirtualizedList: The "getItemCount" prop must be provided')
478
-
479
- const itemCount = getItemCount(data)
480
-
481
- if (
482
- initialScrollIndex != null &&
483
- !this._hasTriggeredInitialScrollToIndex &&
484
- (initialScrollIndex < 0 || (itemCount > 0 && initialScrollIndex >= itemCount)) &&
485
- !this._hasWarned.initialScrollIndex
486
- ) {
487
- console.warn(
488
- `initialScrollIndex "${initialScrollIndex}" is not valid (list has ${itemCount} items)`
489
- )
490
- this._hasWarned.initialScrollIndex = true
491
- }
492
-
493
- if (__DEV__ && !this._hasWarned.flexWrap) {
494
- const flatStyles = StyleSheet.flatten(this.props.contentContainerStyle)
495
- if (flatStyles != null && flatStyles.flexWrap === 'wrap') {
496
- console.warn(
497
- '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' +
498
- 'Consider using `numColumns` with `FlatList` instead.'
499
- )
500
- this._hasWarned.flexWrap = true
501
- }
502
- }
503
- }
504
-
505
- static _createRenderMask(
506
- props: Props,
507
- cellsAroundViewport: { first: number; last: number },
508
- additionalRegions?: Array<{ first: number; last: number }>
509
- ): CellRenderMask {
510
- const itemCount = props.getItemCount(props.data)
511
-
512
- invariant(
513
- cellsAroundViewport.first >= 0 &&
514
- cellsAroundViewport.last >= cellsAroundViewport.first - 1 &&
515
- cellsAroundViewport.last < itemCount,
516
- `Invalid cells around viewport "[${cellsAroundViewport.first}, ${cellsAroundViewport.last}]" was passed to VirtualizedList._createRenderMask`
517
- )
518
-
519
- const renderMask = new CellRenderMask(itemCount)
520
-
521
- if (itemCount > 0) {
522
- const allRegions = [cellsAroundViewport, ...(additionalRegions ?? [])]
523
- for (const region of allRegions) {
524
- renderMask.addCells(region)
525
- }
526
-
527
- // The initially rendered cells are retained as part of the
528
- // "scroll-to-top" optimization
529
- if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {
530
- const initialRegion = VirtualizedList._initialRenderRegion(props)
531
- renderMask.addCells(initialRegion)
532
- }
533
-
534
- // The layout coordinates of sticker headers may be off-screen while the
535
- // actual header is on-screen. Keep the most recent before the viewport
536
- // rendered, even if its layout coordinates are not in viewport.
537
- const stickyIndicesSet = new Set(props.stickyHeaderIndices)
538
- VirtualizedList._ensureClosestStickyHeader(
539
- props,
540
- stickyIndicesSet,
541
- renderMask,
542
- cellsAroundViewport.first
543
- )
544
- }
545
-
546
- return renderMask
547
- }
548
-
549
- static _initialRenderRegion(props: Props): { first: number; last: number } {
550
- const itemCount = props.getItemCount(props.data)
551
-
552
- const firstCellIndex = Math.max(
553
- 0,
554
- Math.min(itemCount - 1, Math.floor(props.initialScrollIndex ?? 0))
555
- )
556
-
557
- const lastCellIndex =
558
- Math.min(
559
- itemCount,
560
- firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)
561
- ) - 1
562
-
563
- return {
564
- first: firstCellIndex,
565
- last: lastCellIndex,
566
- }
567
- }
568
-
569
- static _ensureClosestStickyHeader(
570
- props: Props,
571
- stickyIndicesSet: Set<number>,
572
- renderMask: CellRenderMask,
573
- cellIdx: number
574
- ) {
575
- const stickyOffset = props.ListHeaderComponent ? 1 : 0
576
-
577
- for (let itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {
578
- if (stickyIndicesSet.has(itemIdx + stickyOffset)) {
579
- renderMask.addCells({ first: itemIdx, last: itemIdx })
580
- break
581
- }
582
- }
583
- }
584
-
585
- _adjustCellsAroundViewport(
586
- props: Props,
587
- cellsAroundViewport: { first: number; last: number }
588
- ): { first: number; last: number } {
589
- const { data, getItemCount } = props
590
- const onEndReachedThreshold = onEndReachedThresholdOrDefault(
591
- props.onEndReachedThreshold
592
- )
593
- const { contentLength, offset, visibleLength } = this._scrollMetrics
594
- const distanceFromEnd = contentLength - visibleLength - offset
595
-
596
- // Wait until the scroll view metrics have been set up. And until then,
597
- // we will trust the initialNumToRender suggestion
598
- if (visibleLength <= 0 || contentLength <= 0) {
599
- return cellsAroundViewport.last >= getItemCount(data)
600
- ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)
601
- : cellsAroundViewport
602
- }
603
-
604
- let newCellsAroundViewport: { first: number; last: number }
605
- if (props.disableVirtualization) {
606
- const renderAhead =
607
- distanceFromEnd < onEndReachedThreshold * visibleLength
608
- ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch)
609
- : 0
610
-
611
- newCellsAroundViewport = {
612
- first: 0,
613
- last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1),
614
- }
615
- } else {
616
- // If we have a non-zero initialScrollIndex and run this before we've scrolled,
617
- // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.
618
- // So let's wait until we've scrolled the view to the right place. And until then,
619
- // we will trust the initialScrollIndex suggestion.
620
-
621
- // Thus, we want to recalculate the windowed render limits if any of the following hold:
622
- // - initialScrollIndex is undefined or is 0
623
- // - initialScrollIndex > 0 AND scrolling is complete
624
- // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case
625
- // where the list is shorter than the visible area)
626
- if (
627
- props.initialScrollIndex &&
628
- !this._scrollMetrics.offset &&
629
- Math.abs(distanceFromEnd) >= Number.EPSILON
630
- ) {
631
- return cellsAroundViewport.last >= getItemCount(data)
632
- ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)
633
- : cellsAroundViewport
634
- }
635
-
636
- newCellsAroundViewport = computeWindowedRenderLimits(
637
- props,
638
- maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch),
639
- windowSizeOrDefault(props.windowSize),
640
- cellsAroundViewport,
641
- this.__getFrameMetricsApprox,
642
- this._scrollMetrics
643
- )
644
- invariant(
645
- newCellsAroundViewport.last < getItemCount(data),
646
- 'computeWindowedRenderLimits() should return range in-bounds'
647
- )
648
- }
649
-
650
- if (this._nestedChildLists.size() > 0) {
651
- // If some cell in the new state has a child list in it, we should only render
652
- // up through that item, so that we give that list a chance to render.
653
- // Otherwise there's churn from multiple child lists mounting and un-mounting
654
- // their items.
655
-
656
- // Will this prevent rendering if the nested list doesn't realize the end?
657
- const childIdx = this._findFirstChildWithMore(
658
- newCellsAroundViewport.first,
659
- newCellsAroundViewport.last
660
- )
661
-
662
- newCellsAroundViewport.last = childIdx ?? newCellsAroundViewport.last
663
- }
664
-
665
- return newCellsAroundViewport
666
- }
667
-
668
- _findFirstChildWithMore(first: number, last: number): number | null {
669
- for (let ii = first; ii <= last; ii++) {
670
- const cellKeyForIndex = this._indicesToKeys.get(ii)
671
- if (
672
- cellKeyForIndex != null &&
673
- this._nestedChildLists.anyInCell(cellKeyForIndex, (childList) =>
674
- childList.hasMore()
675
- )
676
- ) {
677
- return ii
678
- }
679
- }
680
-
681
- return null
682
- }
683
-
684
- componentDidMount() {
685
- if (this._isNestedWithSameOrientation()) {
686
- this.context.registerAsNestedChild({
687
- ref: this,
688
- cellKey: this.context.cellKey,
689
- })
690
- }
691
-
692
- // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.
693
- this.setupWebWheelHandler()
694
- }
695
-
696
- componentWillUnmount() {
697
- if (this._isNestedWithSameOrientation()) {
698
- this.context.unregisterAsNestedChild({ ref: this })
699
- }
700
- this._updateCellsToRenderBatcher.dispose({ abort: true })
701
- this._viewabilityTuples.forEach((tuple) => {
702
- tuple.viewabilityHelper.dispose()
703
- })
704
- this._fillRateHelper.deactivateAndFlush()
705
-
706
- // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.
707
- this.teardownWebWheelHandler()
708
- }
709
-
710
- setupWebWheelHandler() {
711
- if (this._scrollRef && this._scrollRef.getScrollableNode) {
712
- this._scrollRef
713
- .getScrollableNode()
714
- .addEventListener('wheel', this.invertedWheelEventHandler)
715
- } else {
716
- setTimeout(() => this.setupWebWheelHandler(), 50)
717
- return
718
- }
719
- }
720
-
721
- teardownWebWheelHandler() {
722
- if (this._scrollRef && this._scrollRef.getScrollableNode) {
723
- this._scrollRef
724
- .getScrollableNode()
725
- .removeEventListener('wheel', this.invertedWheelEventHandler)
726
- }
727
- }
728
-
729
- static getDerivedStateFromProps(newProps: Props, prevState: State): State {
730
- const itemCount = newProps.getItemCount(newProps.data)
731
- if (itemCount === prevState.renderMask.numCells()) {
732
- return prevState
733
- }
734
-
735
- const constrainedCells = VirtualizedList._constrainToItemCount(
736
- prevState.cellsAroundViewport,
737
- newProps
738
- )
739
-
740
- return {
741
- cellsAroundViewport: constrainedCells,
742
- renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells),
743
- }
744
- }
745
-
746
- _pushCells(
747
- cells: Array<Object>,
748
- stickyHeaderIndices: Array<number>,
749
- stickyIndicesFromProps: Set<number>,
750
- first: number,
751
- last: number,
752
- inversionStyle: ViewStyleProp
753
- ) {
754
- const {
755
- CellRendererComponent,
756
- ItemSeparatorComponent,
757
- ListHeaderComponent,
758
- ListItemComponent,
759
- data,
760
- debug,
761
- getItem,
762
- getItemCount,
763
- getItemLayout,
764
- horizontal,
765
- renderItem,
766
- } = this.props
767
- const stickyOffset = ListHeaderComponent ? 1 : 0
768
- const end = getItemCount(data) - 1
769
- let prevCellKey
770
- last = Math.min(end, last)
771
-
772
- for (let ii = first; ii <= last; ii++) {
773
- const item = getItem(data, ii)
774
- const key = this._keyExtractor(item, ii, this.props)
775
-
776
- this._indicesToKeys.set(ii, key)
777
- if (stickyIndicesFromProps.has(ii + stickyOffset)) {
778
- stickyHeaderIndices.push(cells.length)
779
- }
780
-
781
- const shouldListenForLayout =
782
- getItemLayout == null || debug || this._fillRateHelper.enabled()
783
-
784
- cells.push(
785
- <CellRenderer
786
- CellRendererComponent={CellRendererComponent}
787
- ItemSeparatorComponent={ii < end ? ItemSeparatorComponent : undefined}
788
- ListItemComponent={ListItemComponent}
789
- cellKey={key}
790
- horizontal={horizontal}
791
- index={ii}
792
- inversionStyle={inversionStyle}
793
- item={item}
794
- key={key}
795
- prevCellKey={prevCellKey}
796
- onUpdateSeparators={this._onUpdateSeparators}
797
- onCellFocusCapture={(e) => this._onCellFocusCapture(key)}
798
- onUnmount={this._onCellUnmount}
799
- ref={(ref) => {
800
- this._cellRefs[key] = ref
801
- }}
802
- renderItem={renderItem}
803
- {...(shouldListenForLayout && {
804
- onCellLayout: this._onCellLayout,
805
- })}
806
- />
807
- )
808
- prevCellKey = key
809
- }
810
- }
811
-
812
- static _constrainToItemCount(
813
- cells: { first: number; last: number },
814
- props: Props
815
- ): { first: number; last: number } {
816
- const itemCount = props.getItemCount(props.data)
817
- const last = Math.min(itemCount - 1, cells.last)
818
-
819
- const maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch)
820
-
821
- return {
822
- first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),
823
- last,
824
- }
825
- }
826
-
827
- _onUpdateSeparators = (keys: Array<string | null>, newProps: Object) => {
828
- keys.forEach((key) => {
829
- const ref = key != null && this._cellRefs[key]
830
- ref && ref.updateSeparatorProps(newProps)
831
- })
832
- }
833
-
834
- _isNestedWithSameOrientation(): boolean {
835
- const nestedContext = this.context
836
- return !!(
837
- nestedContext &&
838
- !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal)
839
- )
840
- }
841
-
842
- _getSpacerKey = (isVertical: boolean): string => (isVertical ? 'height' : 'width')
843
-
844
- _keyExtractor(
845
- item: Item,
846
- index: number,
847
- props: {
848
- keyExtractor?: (item: Item, index: number) => string
849
- }
850
- ): string {
851
- if (props.keyExtractor != null) {
852
- return props.keyExtractor(item, index)
853
- }
854
-
855
- const key = defaultKeyExtractor(item, index)
856
- if (key === String(index)) {
857
- _usedIndexForKey = true
858
- if (item.type && item.type.displayName) {
859
- _keylessItemComponentName = item.type.displayName
860
- }
861
- }
862
- return key
863
- }
864
-
865
- render(): React.ReactNode {
866
- this._checkProps(this.props)
867
- const { ListEmptyComponent, ListFooterComponent, ListHeaderComponent } = this.props
868
- const { data, horizontal } = this.props
869
- const inversionStyle = this.props.inverted
870
- ? horizontalOrDefault(this.props.horizontal)
871
- ? styles.horizontallyInverted
872
- : styles.verticallyInverted
873
- : null
874
- const cells: Array<any | React.ReactNode> = []
875
- const stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices)
876
- const stickyHeaderIndices = []
877
-
878
- // 1. Add cell for ListHeaderComponent
879
- if (ListHeaderComponent) {
880
- if (stickyIndicesFromProps.has(0)) {
881
- stickyHeaderIndices.push(0)
882
- }
883
- const element = React.isValidElement(ListHeaderComponent) ? (
884
- ListHeaderComponent
885
- ) : (
886
- <ListHeaderComponent />
887
- )
888
- cells.push(
889
- <VirtualizedListCellContextProvider
890
- cellKey={this._getCellKey() + '-header'}
891
- key="$header"
892
- >
893
- <View
894
- onLayout={this._onLayoutHeader}
895
- style={[inversionStyle, this.props.ListHeaderComponentStyle]}
896
- >
897
- {element}
898
- </View>
899
- </VirtualizedListCellContextProvider>
900
- )
901
- }
902
-
903
- // 2a. Add a cell for ListEmptyComponent if applicable
904
- const itemCount = this.props.getItemCount(data)
905
- if (itemCount === 0 && ListEmptyComponent) {
906
- const element: React.ReactElement<any> = React.isValidElement(
907
- ListEmptyComponent
908
- ) ? (
909
- ListEmptyComponent
910
- ) : (
911
- <ListEmptyComponent />
912
- )
913
- cells.push(
914
- <VirtualizedListCellContextProvider
915
- cellKey={this._getCellKey() + '-empty'}
916
- key="$empty"
917
- >
918
- {React.cloneElement(element, {
919
- onLayout: (event: LayoutChangeEvent) => {
920
- this._onLayoutEmpty(event)
921
- if (element.props.onLayout) {
922
- element.props.onLayout(event)
923
- }
924
- },
925
- style: [inversionStyle, element.props.style],
926
- })}
927
- </VirtualizedListCellContextProvider>
928
- )
929
- }
930
-
931
- // 2b. Add cells and spacers for each item
932
- if (itemCount > 0) {
933
- _usedIndexForKey = false
934
- _keylessItemComponentName = ''
935
- const spacerKey = this._getSpacerKey(!horizontal)
936
-
937
- const renderRegions = this.state.renderMask.enumerateRegions()
938
- const lastSpacer = findLastWhere(renderRegions, (r) => r.isSpacer)
939
-
940
- for (const section of renderRegions) {
941
- if (section.isSpacer) {
942
- // Legacy behavior is to avoid spacers when virtualization is
943
- // disabled (including head spacers on initial render).
944
- if (this.props.disableVirtualization) {
945
- continue
946
- }
947
-
948
- // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to
949
- // prevent the user for hyperscrolling into un-measured area because otherwise content will
950
- // likely jump around as it renders in above the viewport.
951
- const isLastSpacer = section === lastSpacer
952
- const constrainToMeasured = isLastSpacer && !this.props.getItemLayout
953
- const last = constrainToMeasured
954
- ? clamp(section.first - 1, section.last, this._highestMeasuredFrameIndex)
955
- : section.last
956
-
957
- const firstMetrics = this.__getFrameMetricsApprox(section.first, this.props)
958
- const lastMetrics = this.__getFrameMetricsApprox(last, this.props)
959
- const spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset
960
- cells.push(
961
- <View key={`$spacer-${section.first}`} style={{ [spacerKey]: spacerSize }} />
962
- )
963
- } else {
964
- this._pushCells(
965
- cells,
966
- stickyHeaderIndices,
967
- stickyIndicesFromProps,
968
- section.first,
969
- section.last,
970
- inversionStyle
971
- )
972
- }
973
- }
974
-
975
- if (!this._hasWarned.keys && _usedIndexForKey) {
976
- console.warn(
977
- 'VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' +
978
- 'item or provide a custom keyExtractor.',
979
- _keylessItemComponentName
980
- )
981
- this._hasWarned.keys = true
982
- }
983
- }
984
-
985
- // 3. Add cell for ListFooterComponent
986
- if (ListFooterComponent) {
987
- const element = React.isValidElement(ListFooterComponent) ? (
988
- ListFooterComponent
989
- ) : (
990
- <ListFooterComponent />
991
- )
992
- cells.push(
993
- <VirtualizedListCellContextProvider
994
- cellKey={this._getFooterCellKey()}
995
- key="$footer"
996
- >
997
- <View
998
- onLayout={this._onLayoutFooter}
999
- style={[inversionStyle, this.props.ListFooterComponentStyle]}
1000
- >
1001
- {element}
1002
- </View>
1003
- </VirtualizedListCellContextProvider>
1004
- )
1005
- }
1006
-
1007
- // 4. Render the ScrollView
1008
- const scrollProps = {
1009
- ...this.props,
1010
- onContentSizeChange: this._onContentSizeChange,
1011
- onLayout: this._onLayout,
1012
- onScroll: this._onScroll,
1013
- onScrollBeginDrag: this._onScrollBeginDrag,
1014
- onScrollEndDrag: this._onScrollEndDrag,
1015
- onMomentumScrollBegin: this._onMomentumScrollBegin,
1016
- onMomentumScrollEnd: this._onMomentumScrollEnd,
1017
- scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),
1018
- invertStickyHeaders:
1019
- this.props.invertStickyHeaders !== undefined
1020
- ? this.props.invertStickyHeaders
1021
- : this.props.inverted,
1022
- stickyHeaderIndices,
1023
- style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style,
1024
- }
1025
-
1026
- this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1
1027
-
1028
- const innerRet = (
1029
- <VirtualizedListContextProvider
1030
- value={{
1031
- cellKey: null,
1032
- getScrollMetrics: this._getScrollMetrics,
1033
- horizontal: horizontalOrDefault(this.props.horizontal),
1034
- getOutermostParentListRef: this._getOutermostParentListRef,
1035
- registerAsNestedChild: this._registerAsNestedChild,
1036
- unregisterAsNestedChild: this._unregisterAsNestedChild,
1037
- }}
1038
- >
1039
- {React.cloneElement(
1040
- (this.props.renderScrollComponent || this._defaultRenderScrollComponent)(
1041
- scrollProps
1042
- ),
1043
- {
1044
- ref: this._captureScrollRef,
1045
- },
1046
- cells
1047
- )}
1048
- </VirtualizedListContextProvider>
1049
- )
1050
- let ret: React.ReactNode = innerRet
1051
- return ret
1052
- }
1053
-
1054
- componentDidUpdate(prevProps: Props) {
1055
- const { data, extraData } = this.props
1056
- if (data !== prevProps.data || extraData !== prevProps.extraData) {
1057
- this._viewabilityTuples.forEach((tuple) => {
1058
- tuple.viewabilityHelper.resetViewableIndices()
1059
- })
1060
- }
1061
- const hiPriInProgress = this._hiPriInProgress
1062
- this._scheduleCellsToRenderUpdate()
1063
- if (hiPriInProgress) {
1064
- this._hiPriInProgress = false
1065
- }
1066
- }
1067
-
1068
- _averageCellLength = 0
1069
- _cellRefs: { [key: string]: CellRenderer<any> | null } = {}
1070
- _fillRateHelper: FillRateHelper
1071
- _frames: {
1072
- [key: string]: {
1073
- inLayout?: boolean
1074
- index: number
1075
- length: number
1076
- offset: number
1077
- }
1078
- } = {}
1079
- _footerLength = 0
1080
- _hasTriggeredInitialScrollToIndex = false
1081
- _hasInteracted = false
1082
- _hasMore = false
1083
- _hasWarned: { [key: string]: boolean } = {}
1084
- _headerLength = 0
1085
- _hiPriInProgress = false
1086
- _highestMeasuredFrameIndex = 0
1087
- _indicesToKeys: Map<number, string> = new Map()
1088
- _lastFocusedCellKey: string | null = null
1089
- _nestedChildLists: ChildListCollection<VirtualizedList> = new ChildListCollection()
1090
- _offsetFromParentVirtualizedList = 0
1091
- _prevParentOffset = 0
1092
- _scrollMetrics = {
1093
- contentLength: 0,
1094
- dOffset: 0,
1095
- dt: 10,
1096
- offset: 0,
1097
- timestamp: 0,
1098
- velocity: 0,
1099
- visibleLength: 0,
1100
- zoomScale: 1,
1101
- }
1102
- _scrollRef: any = null
1103
- _sentStartForContentLength = 0
1104
- _sentEndForContentLength = 0
1105
- _totalCellLength = 0
1106
- _totalCellsMeasured = 0
1107
- _updateCellsToRenderBatcher: Batchinator
1108
- _viewabilityTuples: Array<ViewabilityHelperCallbackTuple> = []
1109
-
1110
- _captureScrollRef = (ref: any) => {
1111
- this._scrollRef = ref
1112
- }
1113
-
1114
- _computeBlankness() {
1115
- this._fillRateHelper.computeBlankness(
1116
- // @ts-ignore
1117
- this.props,
1118
- this.state.cellsAroundViewport,
1119
- this._scrollMetrics
1120
- )
1121
- }
1122
-
1123
- _defaultRenderScrollComponent = (props: any) => {
1124
- const onRefresh = props.onRefresh
1125
- if (this._isNestedWithSameOrientation()) {
1126
- return <View {...props} />
1127
- } else if (onRefresh) {
1128
- invariant(
1129
- typeof props.refreshing === 'boolean',
1130
- '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +
1131
- JSON.stringify(props.refreshing ?? 'undefined') +
1132
- '`'
1133
- )
1134
- return (
1135
- <ScrollView
1136
- {...props}
1137
- refreshControl={
1138
- props.refreshControl == null ? (
1139
- <RefreshControl
1140
- refreshing={props.refreshing}
1141
- onRefresh={onRefresh}
1142
- progressViewOffset={props.progressViewOffset}
1143
- />
1144
- ) : (
1145
- props.refreshControl
1146
- )
1147
- }
1148
- />
1149
- )
1150
- } else {
1151
- return <ScrollView {...props} />
1152
- }
1153
- }
1154
-
1155
- _onCellLayout = (e: any, cellKey: string, index: number): void => {
1156
- const layout = e.nativeEvent.layout
1157
- const next = {
1158
- offset: this._selectOffset(layout),
1159
- length: this._selectLength(layout),
1160
- index,
1161
- inLayout: true,
1162
- }
1163
- const curr = this._frames[cellKey]
1164
- if (
1165
- !curr ||
1166
- next.offset !== curr.offset ||
1167
- next.length !== curr.length ||
1168
- index !== curr.index
1169
- ) {
1170
- this._totalCellLength += next.length - (curr ? curr.length : 0)
1171
- this._totalCellsMeasured += curr ? 0 : 1
1172
- this._averageCellLength = this._totalCellLength / this._totalCellsMeasured
1173
- this._frames[cellKey] = next
1174
- this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index)
1175
- this._scheduleCellsToRenderUpdate()
1176
- } else {
1177
- this._frames[cellKey].inLayout = true
1178
- }
1179
-
1180
- this._triggerRemeasureForChildListsInCell(cellKey)
1181
-
1182
- this._computeBlankness()
1183
- this._updateViewableItems(
1184
- // @ts-ignore
1185
- this.props,
1186
- this.state.cellsAroundViewport
1187
- )
1188
- }
1189
-
1190
- _onCellFocusCapture(cellKey: string) {
1191
- this._lastFocusedCellKey = cellKey
1192
- this._updateCellsToRender()
1193
- }
1194
-
1195
- _onCellUnmount = (cellKey: string) => {
1196
- delete this._cellRefs[cellKey]
1197
- const curr = this._frames[cellKey]
1198
- if (curr) {
1199
- this._frames[cellKey] = { ...curr, inLayout: false }
1200
- }
1201
- }
1202
-
1203
- _triggerRemeasureForChildListsInCell(cellKey: string): void {
1204
- this._nestedChildLists.forEachInCell(cellKey, (childList) => {
1205
- childList.measureLayoutRelativeToContainingList()
1206
- })
1207
- }
1208
-
1209
- measureLayoutRelativeToContainingList(): void {
1210
- try {
1211
- if (!this._scrollRef) {
1212
- return
1213
- }
1214
- this._scrollRef.measureLayout(
1215
- this.context.getOutermostParentListRef().getScrollRef(),
1216
- (x, y, width, height) => {
1217
- this._offsetFromParentVirtualizedList = this._selectOffset({ x, y })
1218
- this._scrollMetrics.contentLength = this._selectLength({
1219
- width,
1220
- height,
1221
- })
1222
- const scrollMetrics = this._convertParentScrollMetrics(
1223
- this.context.getScrollMetrics()
1224
- )
1225
-
1226
- const metricsChanged =
1227
- this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength ||
1228
- this._scrollMetrics.offset !== scrollMetrics.offset
1229
-
1230
- if (metricsChanged) {
1231
- this._scrollMetrics.visibleLength = scrollMetrics.visibleLength
1232
- this._scrollMetrics.offset = scrollMetrics.offset
1233
-
1234
- this._nestedChildLists.forEach((childList) => {
1235
- childList.measureLayoutRelativeToContainingList()
1236
- })
1237
- }
1238
- },
1239
- (error) => {
1240
- console.warn(
1241
- "VirtualizedList: Encountered an error while measuring a list's" +
1242
- ' offset from its containing VirtualizedList.'
1243
- )
1244
- }
1245
- )
1246
- } catch (error) {
1247
- console.warn('measureLayoutRelativeToContainingList threw an error', error.stack)
1248
- }
1249
- }
1250
-
1251
- _onLayout = (e: LayoutChangeEvent) => {
1252
- if (this._isNestedWithSameOrientation()) {
1253
- this.measureLayoutRelativeToContainingList()
1254
- } else {
1255
- this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout)
1256
- }
1257
- this.props.onLayout && this.props.onLayout(e)
1258
- this._scheduleCellsToRenderUpdate()
1259
- this._maybeCallOnEdgeReached()
1260
- }
1261
-
1262
- _onLayoutEmpty = (e: LayoutChangeEvent) => {
1263
- this.props.onLayout && this.props.onLayout(e)
1264
- }
1265
-
1266
- _getFooterCellKey(): string {
1267
- return this._getCellKey() + '-footer'
1268
- }
1269
-
1270
- _onLayoutFooter = (e: LayoutChangeEvent) => {
1271
- this._triggerRemeasureForChildListsInCell(this._getFooterCellKey())
1272
- this._footerLength = this._selectLength(e.nativeEvent.layout)
1273
- }
1274
-
1275
- _onLayoutHeader = (e: LayoutChangeEvent) => {
1276
- this._headerLength = this._selectLength(e.nativeEvent.layout)
1277
- }
1278
-
1279
- _renderDebugOverlay() {
1280
- const normalize =
1281
- this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1)
1282
- const framesInLayout = []
1283
- const itemCount = this.props.getItemCount(this.props.data)
1284
- for (let ii = 0; ii < itemCount; ii++) {
1285
- const frame = this.__getFrameMetricsApprox(ii, this.props)
1286
- if (frame.inLayout) {
1287
- framesInLayout.push(frame)
1288
- }
1289
- }
1290
- const windowTop = this.__getFrameMetricsApprox(
1291
- this.state.cellsAroundViewport.first,
1292
- this.props
1293
- ).offset
1294
- const frameLast = this.__getFrameMetricsApprox(
1295
- this.state.cellsAroundViewport.last,
1296
- this.props
1297
- )
1298
- const windowLen = frameLast.offset + frameLast.length - windowTop
1299
- const visTop = this._scrollMetrics.offset
1300
- const visLen = this._scrollMetrics.visibleLength
1301
-
1302
- return (
1303
- <View style={[styles.debugOverlayBase, styles.debugOverlay]}>
1304
- {framesInLayout.map((f, ii) => (
1305
- <View
1306
- key={'f' + ii}
1307
- style={[
1308
- styles.debugOverlayBase,
1309
- styles.debugOverlayFrame,
1310
- {
1311
- top: f.offset * normalize,
1312
- height: f.length * normalize,
1313
- },
1314
- ]}
1315
- />
1316
- ))}
1317
- <View
1318
- style={[
1319
- styles.debugOverlayBase,
1320
- styles.debugOverlayFrameLast,
1321
- {
1322
- top: windowTop * normalize,
1323
- height: windowLen * normalize,
1324
- },
1325
- ]}
1326
- />
1327
- <View
1328
- style={[
1329
- styles.debugOverlayBase,
1330
- styles.debugOverlayFrameVis,
1331
- {
1332
- top: visTop * normalize,
1333
- height: visLen * normalize,
1334
- },
1335
- ]}
1336
- />
1337
- </View>
1338
- )
1339
- }
1340
-
1341
- _selectLength(metrics: { height: number; width: number }): number {
1342
- return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width
1343
- }
1344
-
1345
- _selectOffset(metrics: { x: number; y: number }): number {
1346
- return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x
1347
- }
1348
-
1349
- _maybeCallOnEdgeReached() {
1350
- const {
1351
- data,
1352
- getItemCount,
1353
- onStartReached,
1354
- onStartReachedThreshold,
1355
- onEndReached,
1356
- onEndReachedThreshold,
1357
- initialScrollIndex,
1358
- } = this.props
1359
- const { contentLength, visibleLength, offset } = this._scrollMetrics
1360
- let distanceFromStart = offset
1361
- let distanceFromEnd = contentLength - visibleLength - offset
1362
-
1363
- if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {
1364
- distanceFromStart = 0
1365
- }
1366
- if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {
1367
- distanceFromEnd = 0
1368
- }
1369
-
1370
- const DEFAULT_THRESHOLD_PX = 2
1371
-
1372
- const startThreshold =
1373
- onStartReachedThreshold != null
1374
- ? onStartReachedThreshold * visibleLength
1375
- : DEFAULT_THRESHOLD_PX
1376
- const endThreshold =
1377
- onEndReachedThreshold != null
1378
- ? onEndReachedThreshold * visibleLength
1379
- : DEFAULT_THRESHOLD_PX
1380
- const isWithinStartThreshold = distanceFromStart <= startThreshold
1381
- const isWithinEndThreshold = distanceFromEnd <= endThreshold
1382
-
1383
- if (
1384
- onEndReached &&
1385
- this.state.cellsAroundViewport.last === getItemCount(data) - 1 &&
1386
- isWithinEndThreshold &&
1387
- this._scrollMetrics.contentLength !== this._sentEndForContentLength
1388
- ) {
1389
- this._sentEndForContentLength = this._scrollMetrics.contentLength
1390
- onEndReached({ distanceFromEnd })
1391
- } else if (
1392
- onStartReached != null &&
1393
- this.state.cellsAroundViewport.first === 0 &&
1394
- isWithinStartThreshold &&
1395
- this._scrollMetrics.contentLength !== this._sentStartForContentLength
1396
- ) {
1397
- if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {
1398
- this._sentStartForContentLength = this._scrollMetrics.contentLength
1399
- onStartReached({ distanceFromStart })
1400
- }
1401
- } else {
1402
- this._sentStartForContentLength = isWithinStartThreshold
1403
- ? this._sentStartForContentLength
1404
- : 0
1405
- this._sentEndForContentLength = isWithinEndThreshold
1406
- ? this._sentEndForContentLength
1407
- : 0
1408
- }
1409
- }
1410
-
1411
- _onContentSizeChange = (width: number, height: number) => {
1412
- if (
1413
- width > 0 &&
1414
- height > 0 &&
1415
- this.props.initialScrollIndex != null &&
1416
- this.props.initialScrollIndex > 0 &&
1417
- !this._hasTriggeredInitialScrollToIndex
1418
- ) {
1419
- if (this.props.contentOffset == null) {
1420
- if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {
1421
- this.scrollToIndex({
1422
- animated: false,
1423
- index: nullthrows(this.props.initialScrollIndex),
1424
- })
1425
- } else {
1426
- this.scrollToEnd({ animated: false })
1427
- }
1428
- }
1429
- this._hasTriggeredInitialScrollToIndex = true
1430
- }
1431
- if (this.props.onContentSizeChange) {
1432
- this.props.onContentSizeChange(width, height)
1433
- }
1434
- this._scrollMetrics.contentLength = this._selectLength({ height, width })
1435
- this._scheduleCellsToRenderUpdate()
1436
- this._maybeCallOnEdgeReached()
1437
- }
1438
-
1439
- _convertParentScrollMetrics = (metrics: {
1440
- visibleLength: number
1441
- offset: number
1442
- }) => {
1443
- const offset = metrics.offset - this._offsetFromParentVirtualizedList
1444
- const visibleLength = metrics.visibleLength
1445
- const dOffset = offset - this._scrollMetrics.offset
1446
- const contentLength = this._scrollMetrics.contentLength
1447
-
1448
- return {
1449
- visibleLength,
1450
- contentLength,
1451
- offset,
1452
- dOffset,
1453
- }
1454
- }
1455
-
1456
- _onScroll = (e: ScrollEvent) => {
1457
- this._nestedChildLists.forEach((childList) => {
1458
- childList._onScroll(e)
1459
- })
1460
- if (this.props.onScroll) {
1461
- this.props.onScroll(e)
1462
- }
1463
- const timestamp = e.timeStamp
1464
- let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement)
1465
- let contentLength = this._selectLength(e.nativeEvent.contentSize)
1466
- let offset = this._selectOffset(e.nativeEvent.contentOffset)
1467
- let dOffset = offset - this._scrollMetrics.offset
1468
-
1469
- if (this._isNestedWithSameOrientation()) {
1470
- if (this._scrollMetrics.contentLength === 0) {
1471
- return
1472
- }
1473
- ;({ visibleLength, contentLength, offset, dOffset } =
1474
- this._convertParentScrollMetrics({
1475
- visibleLength,
1476
- offset,
1477
- }))
1478
- }
1479
-
1480
- const dt = this._scrollMetrics.timestamp
1481
- ? Math.max(1, timestamp - this._scrollMetrics.timestamp)
1482
- : 1
1483
- const velocity = dOffset / dt
1484
-
1485
- if (
1486
- dt > 500 &&
1487
- this._scrollMetrics.dt > 500 &&
1488
- contentLength > 5 * visibleLength &&
1489
- !this._hasWarned.perf
1490
- ) {
1491
- infoLog(
1492
- 'VirtualizedList: You have a large list that is slow to update - make sure your ' +
1493
- 'renderItem function renders components that follow React performance best practices ' +
1494
- 'like PureComponent, shouldComponentUpdate, etc.',
1495
- { dt, prevDt: this._scrollMetrics.dt, contentLength }
1496
- )
1497
- this._hasWarned.perf = true
1498
- }
1499
-
1500
- const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale
1501
- this._scrollMetrics = {
1502
- contentLength,
1503
- dt,
1504
- dOffset,
1505
- offset,
1506
- timestamp,
1507
- velocity,
1508
- visibleLength,
1509
- zoomScale,
1510
- }
1511
- this._updateViewableItems(this.props, this.state.cellsAroundViewport)
1512
- if (!this.props) {
1513
- return
1514
- }
1515
- this._maybeCallOnEdgeReached()
1516
- if (velocity !== 0) {
1517
- this._fillRateHelper.activate()
1518
- }
1519
- this._computeBlankness()
1520
- this._scheduleCellsToRenderUpdate()
1521
- }
1522
-
1523
- _scheduleCellsToRenderUpdate() {
1524
- const { first, last } = this.state.cellsAroundViewport
1525
- const { offset, visibleLength, velocity } = this._scrollMetrics
1526
- const itemCount = this.props.getItemCount(this.props.data)
1527
- let hiPri = false
1528
- const onStartReachedThreshold = onStartReachedThresholdOrDefault(
1529
- this.props.onStartReachedThreshold
1530
- )
1531
- const onEndReachedThreshold = onEndReachedThresholdOrDefault(
1532
- this.props.onEndReachedThreshold
1533
- )
1534
- if (first > 0) {
1535
- const distTop = offset - this.__getFrameMetricsApprox(first, this.props).offset
1536
- hiPri =
1537
- distTop < 0 ||
1538
- (velocity < -2 &&
1539
- distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength))
1540
- }
1541
- if (!hiPri && last >= 0 && last < itemCount - 1) {
1542
- const distBottom =
1543
- this.__getFrameMetricsApprox(last, this.props).offset - (offset + visibleLength)
1544
- hiPri =
1545
- distBottom < 0 ||
1546
- (velocity > 2 &&
1547
- distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength))
1548
- }
1549
- if (
1550
- hiPri &&
1551
- (this._averageCellLength || this.props.getItemLayout) &&
1552
- !this._hiPriInProgress
1553
- ) {
1554
- this._hiPriInProgress = true
1555
- this._updateCellsToRenderBatcher.dispose({ abort: true })
1556
- this._updateCellsToRender()
1557
- return
1558
- } else {
1559
- this._updateCellsToRenderBatcher.schedule()
1560
- }
1561
- }
1562
-
1563
- _onScrollBeginDrag = (e: ScrollEvent): void => {
1564
- this._nestedChildLists.forEach((childList) => {
1565
- childList._onScrollBeginDrag(e)
1566
- })
1567
- this._viewabilityTuples.forEach((tuple) => {
1568
- tuple.viewabilityHelper.recordInteraction()
1569
- })
1570
- this._hasInteracted = true
1571
- this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e)
1572
- }
1573
-
1574
- _onScrollEndDrag = (e: ScrollEvent): void => {
1575
- this._nestedChildLists.forEach((childList) => {
1576
- childList._onScrollEndDrag(e)
1577
- })
1578
- // @ts-ignore
1579
- const { velocity } = e.nativeEvent
1580
- if (velocity) {
1581
- this._scrollMetrics.velocity = this._selectOffset(velocity)
1582
- }
1583
- this._computeBlankness()
1584
- this.props.onScrollEndDrag && this.props.onScrollEndDrag(e)
1585
- }
1586
-
1587
- _onMomentumScrollBegin = (e: ScrollEvent): void => {
1588
- this._nestedChildLists.forEach((childList) => {
1589
- childList._onMomentumScrollBegin(e)
1590
- })
1591
- this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e)
1592
- }
1593
-
1594
- _onMomentumScrollEnd = (e: ScrollEvent): void => {
1595
- this._nestedChildLists.forEach((childList) => {
1596
- childList._onMomentumScrollEnd(e)
1597
- })
1598
- this._scrollMetrics.velocity = 0
1599
- this._computeBlankness()
1600
- this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e)
1601
- }
1602
-
1603
- _updateCellsToRender = () => {
1604
- this._updateViewableItems(this.props, this.state.cellsAroundViewport)
1605
-
1606
- this.setState((state, props) => {
1607
- const cellsAroundViewport = this._adjustCellsAroundViewport(
1608
- props,
1609
- state.cellsAroundViewport
1610
- )
1611
- const renderMask = VirtualizedList._createRenderMask(
1612
- props,
1613
- cellsAroundViewport,
1614
- this._getNonViewportRenderRegions(props)
1615
- )
1616
-
1617
- if (
1618
- cellsAroundViewport.first === state.cellsAroundViewport.first &&
1619
- cellsAroundViewport.last === state.cellsAroundViewport.last &&
1620
- renderMask.equals(state.renderMask)
1621
- ) {
1622
- return null
1623
- }
1624
-
1625
- return { cellsAroundViewport, renderMask }
1626
- })
1627
- }
1628
-
1629
- _createViewToken = (index: number, isViewable: boolean, props: FrameMetricProps) => {
1630
- const { data, getItem } = props
1631
- const item = getItem(data, index)
1632
- return {
1633
- index,
1634
- item,
1635
- key: this._keyExtractor(item, index, props),
1636
- isViewable,
1637
- }
1638
- }
1639
-
1640
- _getOffsetApprox = (index: number, props: FrameMetricProps): number => {
1641
- if (Number.isInteger(index)) {
1642
- return this.__getFrameMetricsApprox(index, props).offset
1643
- } else {
1644
- const frameMetrics = this.__getFrameMetricsApprox(Math.floor(index), props)
1645
- const remainder = index - Math.floor(index)
1646
- return frameMetrics.offset + remainder * frameMetrics.length
1647
- }
1648
- }
1649
-
1650
- __getFrameMetricsApprox = (index: number, props: FrameMetricProps) => {
1651
- const frame = this._getFrameMetrics(index, props)
1652
- if (frame && frame.index === index) {
1653
- return frame
1654
- } else {
1655
- const { data, getItemCount, getItemLayout } = props
1656
- invariant(
1657
- index >= 0 && index < getItemCount(data),
1658
- 'Tried to get frame for out of range index ' + index
1659
- )
1660
- invariant(
1661
- !getItemLayout,
1662
- 'Should not have to estimate frames when a measurement metrics function is provided'
1663
- )
1664
- return {
1665
- length: this._averageCellLength,
1666
- offset: this._averageCellLength * index,
1667
- }
1668
- }
1669
- }
1670
-
1671
- _getFrameMetrics = (
1672
- index: number,
1673
- props: FrameMetricProps
1674
- ): {
1675
- length: number
1676
- offset: number
1677
- index: number
1678
- inLayout?: boolean
1679
- } | null => {
1680
- const { data, getItem, getItemCount, getItemLayout } = props
1681
- invariant(
1682
- index >= 0 && index < getItemCount(data),
1683
- 'Tried to get frame for out of range index ' + index
1684
- )
1685
- const item = getItem(data, index)
1686
- const frame = this._frames[this._keyExtractor(item, index, props)]
1687
- if (!frame || frame.index !== index) {
1688
- if (getItemLayout) {
1689
- return getItemLayout(data, index)
1690
- }
1691
- }
1692
- return frame
1693
- }
1694
-
1695
- _getNonViewportRenderRegions = (
1696
- props: FrameMetricProps
1697
- ): Array<{ first: number; last: number }> => {
1698
- if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {
1699
- return []
1700
- }
1701
-
1702
- const lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey]
1703
- const focusedCellIndex = lastFocusedCellRenderer!.props.index
1704
- const itemCount = props.getItemCount(props.data)
1705
-
1706
- if (
1707
- focusedCellIndex >= itemCount ||
1708
- this._keyExtractor(
1709
- props.getItem(props.data, focusedCellIndex),
1710
- focusedCellIndex,
1711
- props
1712
- ) !== this._lastFocusedCellKey
1713
- ) {
1714
- return []
1715
- }
1716
-
1717
- let first = focusedCellIndex
1718
- let heightOfCellsBeforeFocused = 0
1719
- for (
1720
- let i = first - 1;
1721
- i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength;
1722
- i--
1723
- ) {
1724
- first--
1725
- heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length
1726
- }
1727
-
1728
- let last = focusedCellIndex
1729
- let heightOfCellsAfterFocused = 0
1730
- for (
1731
- let i = last + 1;
1732
- i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength;
1733
- i++
1734
- ) {
1735
- last++
1736
- heightOfCellsAfterFocused += this.__getFrameMetricsApprox(i, props).length
1737
- }
1738
-
1739
- return [{ first, last }]
1740
- }
1741
-
1742
- _updateViewableItems(
1743
- props: FrameMetricProps,
1744
- cellsAroundViewport: { first: number; last: number }
1745
- ) {
1746
- this._viewabilityTuples.forEach((tuple) => {
1747
- tuple.viewabilityHelper.onUpdate(
1748
- props,
1749
- this._scrollMetrics.offset,
1750
- this._scrollMetrics.visibleLength,
1751
- this._getFrameMetrics,
1752
- this._createViewToken,
1753
- tuple.onViewableItemsChanged,
1754
- cellsAroundViewport
1755
- )
1756
- })
1757
- }
1758
- }
1759
-
1760
- const styles = StyleSheet.create({
1761
- verticallyInverted: {
1762
- transform: 'scaleY(-1)',
1763
- },
1764
- horizontallyInverted: {
1765
- transform: 'scaleX(-1)',
1766
- },
1767
- debug: {
1768
- flex: 1,
1769
- },
1770
- debugOverlayBase: {
1771
- position: 'absolute',
1772
- top: 0,
1773
- right: 0,
1774
- },
1775
- debugOverlay: {
1776
- bottom: 0,
1777
- width: 20,
1778
- borderColor: 'blue',
1779
- borderWidth: 1,
1780
- },
1781
- debugOverlayFrame: {
1782
- left: 0,
1783
- backgroundColor: 'orange',
1784
- },
1785
- debugOverlayFrameLast: {
1786
- left: 0,
1787
- borderColor: 'green',
1788
- borderWidth: 2,
1789
- },
1790
- debugOverlayFrameVis: {
1791
- left: 0,
1792
- borderColor: 'red',
1793
- borderWidth: 2,
1794
- },
1795
- })
1796
-
1797
- export default VirtualizedList