@tamagui/react-native-web-lite 1.116.1 → 1.116.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/cjs/AccessibilityInfo/index.js +96 -0
  2. package/dist/cjs/ActivityIndicator/__tests__/index-test.js +116 -0
  3. package/dist/cjs/ActivityIndicator/index.js +108 -0
  4. package/dist/cjs/Alert/index.js +25 -0
  5. package/dist/cjs/AppRegistry/AppContainer.js +41 -0
  6. package/dist/cjs/AppRegistry/__tests__/index-test.js +77 -0
  7. package/dist/cjs/AppRegistry/__tests__/index-test.node.js +131 -0
  8. package/dist/cjs/AppRegistry/index.js +98 -0
  9. package/dist/cjs/AppRegistry/renderApplication.js +51 -0
  10. package/dist/cjs/AppState/__tests__/index-test.js +33 -0
  11. package/dist/cjs/AppState/index.js +71 -0
  12. package/dist/cjs/Appearance/index.js +41 -0
  13. package/dist/cjs/BackHandler/index.js +32 -0
  14. package/dist/cjs/Batchinator/index.cjs +68 -0
  15. package/dist/cjs/Batchinator/index.js +57 -0
  16. package/dist/cjs/Batchinator/index.js.map +6 -0
  17. package/dist/cjs/Batchinator/index.native.js +92 -0
  18. package/dist/cjs/Batchinator/index.native.js.map +6 -0
  19. package/dist/cjs/Clipboard/index.js +47 -0
  20. package/dist/cjs/DeviceEmitter.js +29 -0
  21. package/dist/cjs/DeviceInfo/index.js +62 -0
  22. package/dist/cjs/Dimensions/__tests__/index-test.js +51 -0
  23. package/dist/cjs/Dimensions/index.js +74 -0
  24. package/dist/cjs/FlatList.cjs +196 -0
  25. package/dist/cjs/FlatList.js +193 -0
  26. package/dist/cjs/FlatList.js.map +6 -0
  27. package/dist/cjs/FlatList.native.js +256 -0
  28. package/dist/cjs/FlatList.native.js.map +6 -0
  29. package/dist/cjs/I18nManager/index.js +30 -0
  30. package/dist/cjs/Image/index.js +253 -0
  31. package/dist/cjs/Image/types.js +14 -0
  32. package/dist/cjs/ImageBackground/__tests__/index-test.js +48 -0
  33. package/dist/cjs/ImageBackground/index.js +62 -0
  34. package/dist/cjs/InteractionManager/TaskQueue.cjs +88 -0
  35. package/dist/cjs/InteractionManager/TaskQueue.js +76 -0
  36. package/dist/cjs/InteractionManager/TaskQueue.js.map +6 -0
  37. package/dist/cjs/InteractionManager/TaskQueue.native.js +134 -0
  38. package/dist/cjs/InteractionManager/TaskQueue.native.js.map +6 -0
  39. package/dist/cjs/InteractionManager/index.cjs +114 -0
  40. package/dist/cjs/InteractionManager/index.js +95 -0
  41. package/dist/cjs/InteractionManager/index.js.map +6 -0
  42. package/dist/cjs/InteractionManager/index.native.js +99 -0
  43. package/dist/cjs/InteractionManager/index.native.js.map +6 -0
  44. package/dist/cjs/Keyboard/index.js +35 -0
  45. package/dist/cjs/KeyboardAvoidingView/index.js +56 -0
  46. package/dist/cjs/Linking/__tests__/index-test.js +38 -0
  47. package/dist/cjs/Linking/index.js +86 -0
  48. package/dist/cjs/LogBox/index.js +31 -0
  49. package/dist/cjs/Modal/ModalAnimation.js +137 -0
  50. package/dist/cjs/Modal/ModalContent.js +75 -0
  51. package/dist/cjs/Modal/ModalFocusTrap.js +105 -0
  52. package/dist/cjs/Modal/ModalPortal.js +43 -0
  53. package/dist/cjs/Modal/index.js +92 -0
  54. package/dist/cjs/NativeModules/index.js +25 -0
  55. package/dist/cjs/PanResponder/index.js +29 -0
  56. package/dist/cjs/PixelRatio/index.js +60 -0
  57. package/dist/cjs/Pressable/index.js +140 -0
  58. package/dist/cjs/RefreshControl/index.js +48 -0
  59. package/dist/cjs/SafeAreaView/index.js +43 -0
  60. package/dist/cjs/ScrollView/ScrollViewBase.js +124 -0
  61. package/dist/cjs/ScrollView/index.js +374 -0
  62. package/dist/cjs/Share/index.js +56 -0
  63. package/dist/cjs/StatusBar/index.js +31 -0
  64. package/dist/cjs/Text/index.js +152 -0
  65. package/dist/cjs/Text/types.js +14 -0
  66. package/dist/cjs/TextInput/__tests__/index-test.js +422 -0
  67. package/dist/cjs/TextInput/index.js +260 -0
  68. package/dist/cjs/TextInput/types.js +14 -0
  69. package/dist/cjs/TouchableOpacity.js +123 -0
  70. package/dist/cjs/TouchableWithoutFeedback.js +90 -0
  71. package/dist/cjs/UnimplementedView.js +36 -0
  72. package/dist/cjs/Vibration/index.js +31 -0
  73. package/dist/cjs/View/index.js +101 -0
  74. package/dist/cjs/View/types.js +14 -0
  75. package/dist/cjs/createElement/__tests__/index-test.js +536 -0
  76. package/dist/cjs/createElement/index.js +37 -0
  77. package/dist/cjs/createReactDOMStyle.js +21 -0
  78. package/dist/cjs/findNodeHandle.js +29 -0
  79. package/dist/cjs/index.cjs +7 -7
  80. package/dist/cjs/index.js +110 -0
  81. package/dist/cjs/{index.cjs.map → index.js.map} +1 -1
  82. package/dist/cjs/index.native.js +6 -6
  83. package/dist/cjs/index.native.js.map +1 -1
  84. package/dist/cjs/render/index.js +45 -0
  85. package/dist/cjs/styleTypes.js +14 -0
  86. package/dist/cjs/types.js +14 -0
  87. package/dist/cjs/useColorScheme/index.js +39 -0
  88. package/dist/cjs/useLocaleContext/index.js +21 -0
  89. package/dist/cjs/useWindowDimensions/index.js +41 -0
  90. package/dist/cjs/vendor/react-native/Animated/Animated.js +35 -0
  91. package/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js +143 -0
  92. package/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js +458 -0
  93. package/dist/cjs/vendor/react-native/Animated/AnimatedMock.js +126 -0
  94. package/dist/cjs/vendor/react-native/Animated/AnimatedPlatformConfig.js +2 -0
  95. package/dist/cjs/vendor/react-native/Animated/Easing.js +189 -0
  96. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js +335 -0
  97. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js +29 -0
  98. package/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js +29 -0
  99. package/dist/cjs/vendor/react-native/Animated/SpringConfig.js +70 -0
  100. package/dist/cjs/vendor/react-native/Animated/animations/Animation.js +64 -0
  101. package/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js +63 -0
  102. package/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js +146 -0
  103. package/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js +82 -0
  104. package/dist/cjs/vendor/react-native/Animated/bezier.js +72 -0
  105. package/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js +29 -0
  106. package/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js +38 -0
  107. package/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js +29 -0
  108. package/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js +29 -0
  109. package/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js +42 -0
  110. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js +57 -0
  111. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js +197 -0
  112. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js +60 -0
  113. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js +58 -0
  114. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js +175 -0
  115. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js +58 -0
  116. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js +57 -0
  117. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js +136 -0
  118. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js +112 -0
  119. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js +100 -0
  120. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js +57 -0
  121. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js +76 -0
  122. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js +100 -0
  123. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js +182 -0
  124. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js +167 -0
  125. package/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js +67 -0
  126. package/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js +89 -0
  127. package/dist/cjs/vendor/react-native/FeatureFlags.js +28 -0
  128. package/dist/cjs/vendor/react-native/FillRateHelper/index.cjs +138 -0
  129. package/dist/cjs/vendor/react-native/FillRateHelper/index.js +124 -0
  130. package/dist/cjs/vendor/react-native/FillRateHelper/index.js.map +6 -0
  131. package/dist/cjs/vendor/react-native/FillRateHelper/index.native.js +158 -0
  132. package/dist/cjs/vendor/react-native/FillRateHelper/index.native.js.map +6 -0
  133. package/dist/cjs/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js +29 -0
  134. package/dist/cjs/vendor/react-native/NativeEventEmitter/index.js +73 -0
  135. package/dist/cjs/vendor/react-native/PanResponder/index.js +272 -0
  136. package/dist/cjs/vendor/react-native/TouchHistoryMath/index.js +118 -0
  137. package/dist/cjs/vendor/react-native/TurboModule/RCTExport.js +2 -0
  138. package/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js +28 -0
  139. package/dist/cjs/vendor/react-native/Types/CoreEventTypes.js +15 -0
  140. package/dist/cjs/vendor/react-native/Utilities/clamp.cjs +29 -0
  141. package/dist/cjs/vendor/react-native/Utilities/clamp.js +24 -0
  142. package/dist/cjs/vendor/react-native/Utilities/clamp.js.map +6 -0
  143. package/dist/cjs/vendor/react-native/Utilities/clamp.native.js +25 -0
  144. package/dist/cjs/vendor/react-native/Utilities/clamp.native.js.map +6 -0
  145. package/dist/cjs/vendor/react-native/Utilities/setAndForwardRef.js +29 -0
  146. package/dist/cjs/vendor/react-native/ViewabilityHelper.cjs +133 -0
  147. package/dist/cjs/vendor/react-native/ViewabilityHelper.js +144 -0
  148. package/dist/cjs/vendor/react-native/ViewabilityHelper.js.map +6 -0
  149. package/dist/cjs/vendor/react-native/ViewabilityHelper.native.js +199 -0
  150. package/dist/cjs/vendor/react-native/ViewabilityHelper.native.js.map +6 -0
  151. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.cjs +106 -0
  152. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.js +86 -0
  153. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.js.map +6 -0
  154. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.native.js +95 -0
  155. package/dist/cjs/vendor/react-native/VirtualizeUtils/index.native.js.map +6 -0
  156. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.cjs +81 -0
  157. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js +84 -0
  158. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js.map +6 -0
  159. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.native.js +125 -0
  160. package/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.native.js.map +6 -0
  161. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.cjs +56 -0
  162. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js +59 -0
  163. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js.map +6 -0
  164. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.native.js +153 -0
  165. package/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.native.js.map +6 -0
  166. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.cjs +80 -0
  167. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js +74 -0
  168. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js.map +6 -0
  169. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js +163 -0
  170. package/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js.map +6 -0
  171. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.cjs +164 -0
  172. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +149 -0
  173. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js.map +6 -0
  174. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js +245 -0
  175. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js.map +6 -0
  176. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.cjs +84 -0
  177. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js +72 -0
  178. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js.map +6 -0
  179. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js +85 -0
  180. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js.map +6 -0
  181. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.cjs +16 -0
  182. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.js +14 -0
  183. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.js.map +6 -0
  184. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js +15 -0
  185. package/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js.map +6 -0
  186. package/dist/cjs/vendor/react-native/VirtualizedList/index.cjs +1003 -0
  187. package/dist/cjs/vendor/react-native/VirtualizedList/index.js +1021 -0
  188. package/dist/cjs/vendor/react-native/VirtualizedList/index.js.map +6 -0
  189. package/dist/cjs/vendor/react-native/VirtualizedList/index.native.js +1075 -0
  190. package/dist/cjs/vendor/react-native/VirtualizedList/index.native.js.map +6 -0
  191. package/dist/cjs/vendor/react-native/deepDiffer/index.cjs +41 -0
  192. package/dist/cjs/vendor/react-native/deepDiffer/index.js +47 -0
  193. package/dist/cjs/vendor/react-native/deepDiffer/index.js.map +6 -0
  194. package/dist/cjs/vendor/react-native/deepDiffer/index.native.js +48 -0
  195. package/dist/cjs/vendor/react-native/deepDiffer/index.native.js.map +6 -0
  196. package/dist/cjs/vendor/react-native/emitter/EventEmitter.js +30 -0
  197. package/dist/cjs/vendor/react-native/emitter/EventSubscription.js +2 -0
  198. package/dist/cjs/vendor/react-native/emitter/_EmitterSubscription.js +55 -0
  199. package/dist/cjs/vendor/react-native/emitter/_EventEmitter.js +135 -0
  200. package/dist/cjs/vendor/react-native/emitter/_EventSubscription.js +37 -0
  201. package/dist/cjs/vendor/react-native/emitter/_EventSubscriptionVendor.js +76 -0
  202. package/dist/cjs/vendor/react-native/infoLog/index.js +25 -0
  203. package/dist/cjs/vendor/react-native/useRefEffect.js +30 -0
  204. package/dist/cjs/without-animated.js +95 -0
  205. package/dist/esm/Batchinator/index.js +33 -0
  206. package/dist/esm/Batchinator/index.js.map +6 -0
  207. package/dist/esm/Batchinator/index.mjs +34 -0
  208. package/dist/esm/Batchinator/index.mjs.map +1 -0
  209. package/dist/esm/Batchinator/index.native.js +67 -0
  210. package/dist/esm/Batchinator/index.native.js.map +6 -0
  211. package/dist/esm/FlatList.js +176 -0
  212. package/dist/esm/FlatList.js.map +6 -0
  213. package/dist/esm/FlatList.mjs +162 -0
  214. package/dist/esm/FlatList.mjs.map +1 -0
  215. package/dist/esm/FlatList.native.js +238 -0
  216. package/dist/esm/FlatList.native.js.map +6 -0
  217. package/dist/esm/InteractionManager/TaskQueue.js +60 -0
  218. package/dist/esm/InteractionManager/TaskQueue.js.map +6 -0
  219. package/dist/esm/InteractionManager/TaskQueue.mjs +65 -0
  220. package/dist/esm/InteractionManager/TaskQueue.mjs.map +1 -0
  221. package/dist/esm/InteractionManager/TaskQueue.native.js +117 -0
  222. package/dist/esm/InteractionManager/TaskQueue.native.js.map +6 -0
  223. package/dist/esm/InteractionManager/index.js +73 -0
  224. package/dist/esm/InteractionManager/index.js.map +6 -0
  225. package/dist/esm/InteractionManager/index.mjs +80 -0
  226. package/dist/esm/InteractionManager/index.mjs.map +1 -0
  227. package/dist/esm/InteractionManager/index.native.js +77 -0
  228. package/dist/esm/InteractionManager/index.native.js.map +6 -0
  229. package/dist/esm/index.js +2 -2
  230. package/dist/esm/index.mjs +2 -2
  231. package/dist/esm/index.native.js +2 -2
  232. package/dist/esm/vendor/react-native/FillRateHelper/index.js +108 -0
  233. package/dist/esm/vendor/react-native/FillRateHelper/index.js.map +6 -0
  234. package/dist/esm/vendor/react-native/FillRateHelper/index.mjs +115 -0
  235. package/dist/esm/vendor/react-native/FillRateHelper/index.mjs.map +1 -0
  236. package/dist/esm/vendor/react-native/FillRateHelper/index.native.js +141 -0
  237. package/dist/esm/vendor/react-native/FillRateHelper/index.native.js.map +6 -0
  238. package/dist/esm/vendor/react-native/Utilities/clamp.js +8 -0
  239. package/dist/esm/vendor/react-native/Utilities/clamp.js.map +6 -0
  240. package/dist/esm/vendor/react-native/Utilities/clamp.mjs +6 -0
  241. package/dist/esm/vendor/react-native/Utilities/clamp.mjs.map +1 -0
  242. package/dist/esm/vendor/react-native/Utilities/clamp.native.js +8 -0
  243. package/dist/esm/vendor/react-native/Utilities/clamp.native.js.map +6 -0
  244. package/dist/esm/vendor/react-native/ViewabilityHelper.js +128 -0
  245. package/dist/esm/vendor/react-native/ViewabilityHelper.js.map +6 -0
  246. package/dist/esm/vendor/react-native/ViewabilityHelper.mjs +110 -0
  247. package/dist/esm/vendor/react-native/ViewabilityHelper.mjs.map +1 -0
  248. package/dist/esm/vendor/react-native/ViewabilityHelper.native.js +182 -0
  249. package/dist/esm/vendor/react-native/ViewabilityHelper.native.js.map +6 -0
  250. package/dist/esm/vendor/react-native/VirtualizeUtils/index.js +70 -0
  251. package/dist/esm/vendor/react-native/VirtualizeUtils/index.js.map +6 -0
  252. package/dist/esm/vendor/react-native/VirtualizeUtils/index.mjs +80 -0
  253. package/dist/esm/vendor/react-native/VirtualizeUtils/index.mjs.map +1 -0
  254. package/dist/esm/vendor/react-native/VirtualizeUtils/index.native.js +71 -0
  255. package/dist/esm/vendor/react-native/VirtualizeUtils/index.native.js.map +6 -0
  256. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.js +68 -0
  257. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.js.map +6 -0
  258. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.mjs +58 -0
  259. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.mjs.map +1 -0
  260. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.native.js +104 -0
  261. package/dist/esm/vendor/react-native/VirtualizedList/CellRenderMask.native.js.map +6 -0
  262. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.js +43 -0
  263. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.js.map +6 -0
  264. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.mjs +33 -0
  265. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.mjs.map +1 -0
  266. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.native.js +136 -0
  267. package/dist/esm/vendor/react-native/VirtualizedList/ChildListCollection.native.js.map +6 -0
  268. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.js +51 -0
  269. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.js.map +6 -0
  270. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.mjs +46 -0
  271. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.mjs.map +1 -0
  272. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js +139 -0
  273. package/dist/esm/vendor/react-native/VirtualizedList/StateSafePureComponent.native.js.map +6 -0
  274. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js +132 -0
  275. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js.map +6 -0
  276. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.mjs +130 -0
  277. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.mjs.map +1 -0
  278. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js +224 -0
  279. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.native.js.map +6 -0
  280. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.js +50 -0
  281. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.js.map +6 -0
  282. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.mjs +47 -0
  283. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.mjs.map +1 -0
  284. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js +56 -0
  285. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListContext.native.js.map +6 -0
  286. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.js +1 -0
  287. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.js.map +6 -0
  288. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.mjs +2 -0
  289. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.mjs.map +1 -0
  290. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js +1 -0
  291. package/dist/esm/vendor/react-native/VirtualizedList/VirtualizedListProps.native.js.map +6 -0
  292. package/dist/esm/vendor/react-native/VirtualizedList/index.js +1016 -0
  293. package/dist/esm/vendor/react-native/VirtualizedList/index.js.map +6 -0
  294. package/dist/esm/vendor/react-native/VirtualizedList/index.mjs +969 -0
  295. package/dist/esm/vendor/react-native/VirtualizedList/index.mjs.map +1 -0
  296. package/dist/esm/vendor/react-native/VirtualizedList/index.native.js +1065 -0
  297. package/dist/esm/vendor/react-native/VirtualizedList/index.native.js.map +6 -0
  298. package/dist/esm/vendor/react-native/deepDiffer/index.js +31 -0
  299. package/dist/esm/vendor/react-native/deepDiffer/index.js.map +6 -0
  300. package/dist/esm/vendor/react-native/deepDiffer/index.mjs +18 -0
  301. package/dist/esm/vendor/react-native/deepDiffer/index.mjs.map +1 -0
  302. package/dist/esm/vendor/react-native/deepDiffer/index.native.js +31 -0
  303. package/dist/esm/vendor/react-native/deepDiffer/index.native.js.map +6 -0
  304. package/package.json +6 -6
  305. package/src/Batchinator/index.tsx +78 -0
  306. package/src/FlatList.tsx +330 -0
  307. package/src/InteractionManager/TaskQueue.tsx +114 -0
  308. package/src/InteractionManager/index.tsx +139 -0
  309. package/src/index.tsx +2 -2
  310. package/src/vendor/react-native/FillRateHelper/index.tsx +218 -0
  311. package/src/vendor/react-native/Utilities/clamp.ts +21 -0
  312. package/src/vendor/react-native/ViewabilityHelper.ts +291 -0
  313. package/src/vendor/react-native/VirtualizeUtils/index.tsx +212 -0
  314. package/src/vendor/react-native/VirtualizedList/CellRenderMask.ts +147 -0
  315. package/src/vendor/react-native/VirtualizedList/ChildListCollection.tsx +73 -0
  316. package/src/vendor/react-native/VirtualizedList/StateSafePureComponent.tsx +79 -0
  317. package/src/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.tsx +210 -0
  318. package/src/vendor/react-native/VirtualizedList/VirtualizedListContext.tsx +116 -0
  319. package/src/vendor/react-native/VirtualizedList/VirtualizedListProps.ts +130 -0
  320. package/src/vendor/react-native/VirtualizedList/index.tsx +1797 -0
  321. package/src/vendor/react-native/deepDiffer/index.tsx +56 -0
  322. package/dist/cjs/PanResponder/Alternative.cjs +0 -198
  323. package/dist/cjs/PanResponder/Alternative.cjs.map +0 -6
  324. /package/dist/cjs/AccessibilityInfo/{index.cjs.map → index.js.map} +0 -0
  325. /package/dist/cjs/ActivityIndicator/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  326. /package/dist/cjs/ActivityIndicator/{index.cjs.map → index.js.map} +0 -0
  327. /package/dist/cjs/Alert/{index.cjs.map → index.js.map} +0 -0
  328. /package/dist/cjs/AppRegistry/{AppContainer.cjs.map → AppContainer.js.map} +0 -0
  329. /package/dist/cjs/AppRegistry/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  330. /package/dist/cjs/AppRegistry/__tests__/{index-test.node.cjs.map → index-test.node.js.map} +0 -0
  331. /package/dist/cjs/AppRegistry/{index.cjs.map → index.js.map} +0 -0
  332. /package/dist/cjs/AppRegistry/{renderApplication.cjs.map → renderApplication.js.map} +0 -0
  333. /package/dist/cjs/AppState/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  334. /package/dist/cjs/AppState/{index.cjs.map → index.js.map} +0 -0
  335. /package/dist/cjs/Appearance/{index.cjs.map → index.js.map} +0 -0
  336. /package/dist/cjs/BackHandler/{index.cjs.map → index.js.map} +0 -0
  337. /package/dist/cjs/Clipboard/{index.cjs.map → index.js.map} +0 -0
  338. /package/dist/cjs/{DeviceEmitter.cjs.map → DeviceEmitter.js.map} +0 -0
  339. /package/dist/cjs/DeviceInfo/{index.cjs.map → index.js.map} +0 -0
  340. /package/dist/cjs/Dimensions/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  341. /package/dist/cjs/Dimensions/{index.cjs.map → index.js.map} +0 -0
  342. /package/dist/cjs/I18nManager/{index.cjs.map → index.js.map} +0 -0
  343. /package/dist/cjs/Image/{index.cjs.map → index.js.map} +0 -0
  344. /package/dist/cjs/Image/{types.cjs.map → types.js.map} +0 -0
  345. /package/dist/cjs/ImageBackground/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  346. /package/dist/cjs/ImageBackground/{index.cjs.map → index.js.map} +0 -0
  347. /package/dist/cjs/Keyboard/{index.cjs.map → index.js.map} +0 -0
  348. /package/dist/cjs/KeyboardAvoidingView/{index.cjs.map → index.js.map} +0 -0
  349. /package/dist/cjs/Linking/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  350. /package/dist/cjs/Linking/{index.cjs.map → index.js.map} +0 -0
  351. /package/dist/cjs/LogBox/{index.cjs.map → index.js.map} +0 -0
  352. /package/dist/cjs/Modal/{ModalAnimation.cjs.map → ModalAnimation.js.map} +0 -0
  353. /package/dist/cjs/Modal/{ModalContent.cjs.map → ModalContent.js.map} +0 -0
  354. /package/dist/cjs/Modal/{ModalFocusTrap.cjs.map → ModalFocusTrap.js.map} +0 -0
  355. /package/dist/cjs/Modal/{ModalPortal.cjs.map → ModalPortal.js.map} +0 -0
  356. /package/dist/cjs/Modal/{index.cjs.map → index.js.map} +0 -0
  357. /package/dist/cjs/NativeModules/{index.cjs.map → index.js.map} +0 -0
  358. /package/dist/cjs/PanResponder/{index.cjs.map → index.js.map} +0 -0
  359. /package/dist/cjs/PixelRatio/{index.cjs.map → index.js.map} +0 -0
  360. /package/dist/cjs/Pressable/{index.cjs.map → index.js.map} +0 -0
  361. /package/dist/cjs/RefreshControl/{index.cjs.map → index.js.map} +0 -0
  362. /package/dist/cjs/SafeAreaView/{index.cjs.map → index.js.map} +0 -0
  363. /package/dist/cjs/ScrollView/{ScrollViewBase.cjs.map → ScrollViewBase.js.map} +0 -0
  364. /package/dist/cjs/ScrollView/{index.cjs.map → index.js.map} +0 -0
  365. /package/dist/cjs/Share/{index.cjs.map → index.js.map} +0 -0
  366. /package/dist/cjs/StatusBar/{index.cjs.map → index.js.map} +0 -0
  367. /package/dist/cjs/Text/{index.cjs.map → index.js.map} +0 -0
  368. /package/dist/cjs/Text/{types.cjs.map → types.js.map} +0 -0
  369. /package/dist/cjs/TextInput/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  370. /package/dist/cjs/TextInput/{index.cjs.map → index.js.map} +0 -0
  371. /package/dist/cjs/TextInput/{types.cjs.map → types.js.map} +0 -0
  372. /package/dist/cjs/{TouchableOpacity.cjs.map → TouchableOpacity.js.map} +0 -0
  373. /package/dist/cjs/{TouchableWithoutFeedback.cjs.map → TouchableWithoutFeedback.js.map} +0 -0
  374. /package/dist/cjs/{UnimplementedView.cjs.map → UnimplementedView.js.map} +0 -0
  375. /package/dist/cjs/Vibration/{index.cjs.map → index.js.map} +0 -0
  376. /package/dist/cjs/View/{index.cjs.map → index.js.map} +0 -0
  377. /package/dist/cjs/View/{types.cjs.map → types.js.map} +0 -0
  378. /package/dist/cjs/createElement/__tests__/{index-test.cjs.map → index-test.js.map} +0 -0
  379. /package/dist/cjs/createElement/{index.cjs.map → index.js.map} +0 -0
  380. /package/dist/cjs/{createReactDOMStyle.cjs.map → createReactDOMStyle.js.map} +0 -0
  381. /package/dist/cjs/{findNodeHandle.cjs.map → findNodeHandle.js.map} +0 -0
  382. /package/dist/cjs/render/{index.cjs.map → index.js.map} +0 -0
  383. /package/dist/cjs/{styleTypes.cjs.map → styleTypes.js.map} +0 -0
  384. /package/dist/cjs/{types.cjs.map → types.js.map} +0 -0
  385. /package/dist/cjs/useColorScheme/{index.cjs.map → index.js.map} +0 -0
  386. /package/dist/cjs/useLocaleContext/{index.cjs.map → index.js.map} +0 -0
  387. /package/dist/cjs/useWindowDimensions/{index.cjs.map → index.js.map} +0 -0
  388. /package/dist/cjs/vendor/react-native/Animated/{Animated.cjs.map → Animated.js.map} +0 -0
  389. /package/dist/cjs/vendor/react-native/Animated/{AnimatedEvent.cjs.map → AnimatedEvent.js.map} +0 -0
  390. /package/dist/cjs/vendor/react-native/Animated/{AnimatedImplementation.cjs.map → AnimatedImplementation.js.map} +0 -0
  391. /package/dist/cjs/vendor/react-native/Animated/{AnimatedMock.cjs.map → AnimatedMock.js.map} +0 -0
  392. /package/dist/cjs/vendor/react-native/Animated/{AnimatedPlatformConfig.cjs.map → AnimatedPlatformConfig.js.map} +0 -0
  393. /package/dist/cjs/vendor/react-native/Animated/{Easing.cjs.map → Easing.js.map} +0 -0
  394. /package/dist/cjs/vendor/react-native/Animated/{NativeAnimatedHelper.cjs.map → NativeAnimatedHelper.js.map} +0 -0
  395. /package/dist/cjs/vendor/react-native/Animated/{NativeAnimatedModule.cjs.map → NativeAnimatedModule.js.map} +0 -0
  396. /package/dist/cjs/vendor/react-native/Animated/{NativeAnimatedTurboModule.cjs.map → NativeAnimatedTurboModule.js.map} +0 -0
  397. /package/dist/cjs/vendor/react-native/Animated/{SpringConfig.cjs.map → SpringConfig.js.map} +0 -0
  398. /package/dist/cjs/vendor/react-native/Animated/animations/{Animation.cjs.map → Animation.js.map} +0 -0
  399. /package/dist/cjs/vendor/react-native/Animated/animations/{DecayAnimation.cjs.map → DecayAnimation.js.map} +0 -0
  400. /package/dist/cjs/vendor/react-native/Animated/animations/{SpringAnimation.cjs.map → SpringAnimation.js.map} +0 -0
  401. /package/dist/cjs/vendor/react-native/Animated/animations/{TimingAnimation.cjs.map → TimingAnimation.js.map} +0 -0
  402. /package/dist/cjs/vendor/react-native/Animated/{bezier.cjs.map → bezier.js.map} +0 -0
  403. /package/dist/cjs/vendor/react-native/Animated/components/{AnimatedImage.cjs.map → AnimatedImage.js.map} +0 -0
  404. /package/dist/cjs/vendor/react-native/Animated/components/{AnimatedScrollView.cjs.map → AnimatedScrollView.js.map} +0 -0
  405. /package/dist/cjs/vendor/react-native/Animated/components/{AnimatedText.cjs.map → AnimatedText.js.map} +0 -0
  406. /package/dist/cjs/vendor/react-native/Animated/components/{AnimatedView.cjs.map → AnimatedView.js.map} +0 -0
  407. /package/dist/cjs/vendor/react-native/Animated/{createAnimatedComponent.cjs.map → createAnimatedComponent.js.map} +0 -0
  408. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedAddition.cjs.map → AnimatedAddition.js.map} +0 -0
  409. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedColor.cjs.map → AnimatedColor.js.map} +0 -0
  410. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedDiffClamp.cjs.map → AnimatedDiffClamp.js.map} +0 -0
  411. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedDivision.cjs.map → AnimatedDivision.js.map} +0 -0
  412. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedInterpolation.cjs.map → AnimatedInterpolation.js.map} +0 -0
  413. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedModulo.cjs.map → AnimatedModulo.js.map} +0 -0
  414. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedMultiplication.cjs.map → AnimatedMultiplication.js.map} +0 -0
  415. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedNode.cjs.map → AnimatedNode.js.map} +0 -0
  416. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedProps.cjs.map → AnimatedProps.js.map} +0 -0
  417. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedStyle.cjs.map → AnimatedStyle.js.map} +0 -0
  418. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedSubtraction.cjs.map → AnimatedSubtraction.js.map} +0 -0
  419. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedTracking.cjs.map → AnimatedTracking.js.map} +0 -0
  420. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedTransform.cjs.map → AnimatedTransform.js.map} +0 -0
  421. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedValue.cjs.map → AnimatedValue.js.map} +0 -0
  422. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedValueXY.cjs.map → AnimatedValueXY.js.map} +0 -0
  423. /package/dist/cjs/vendor/react-native/Animated/nodes/{AnimatedWithChildren.cjs.map → AnimatedWithChildren.js.map} +0 -0
  424. /package/dist/cjs/vendor/react-native/Animated/{useAnimatedProps.cjs.map → useAnimatedProps.js.map} +0 -0
  425. /package/dist/cjs/vendor/react-native/{FeatureFlags.cjs.map → FeatureFlags.js.map} +0 -0
  426. /package/dist/cjs/vendor/react-native/NativeEventEmitter/{RCTDeviceEventEmitter.cjs.map → RCTDeviceEventEmitter.js.map} +0 -0
  427. /package/dist/cjs/vendor/react-native/NativeEventEmitter/{index.cjs.map → index.js.map} +0 -0
  428. /package/dist/cjs/vendor/react-native/PanResponder/{index.cjs.map → index.js.map} +0 -0
  429. /package/dist/cjs/vendor/react-native/TouchHistoryMath/{index.cjs.map → index.js.map} +0 -0
  430. /package/dist/cjs/vendor/react-native/TurboModule/{RCTExport.cjs.map → RCTExport.js.map} +0 -0
  431. /package/dist/cjs/vendor/react-native/TurboModule/{TurboModuleRegistry.cjs.map → TurboModuleRegistry.js.map} +0 -0
  432. /package/dist/cjs/vendor/react-native/Types/{CoreEventTypes.cjs.map → CoreEventTypes.js.map} +0 -0
  433. /package/dist/cjs/vendor/react-native/Utilities/{setAndForwardRef.cjs.map → setAndForwardRef.js.map} +0 -0
  434. /package/dist/cjs/vendor/react-native/emitter/{EventEmitter.cjs.map → EventEmitter.js.map} +0 -0
  435. /package/dist/cjs/vendor/react-native/emitter/{EventSubscription.cjs.map → EventSubscription.js.map} +0 -0
  436. /package/dist/cjs/vendor/react-native/emitter/{_EmitterSubscription.cjs.map → _EmitterSubscription.js.map} +0 -0
  437. /package/dist/cjs/vendor/react-native/emitter/{_EventEmitter.cjs.map → _EventEmitter.js.map} +0 -0
  438. /package/dist/cjs/vendor/react-native/emitter/{_EventSubscription.cjs.map → _EventSubscription.js.map} +0 -0
  439. /package/dist/cjs/vendor/react-native/emitter/{_EventSubscriptionVendor.cjs.map → _EventSubscriptionVendor.js.map} +0 -0
  440. /package/dist/cjs/vendor/react-native/infoLog/{index.cjs.map → index.js.map} +0 -0
  441. /package/dist/cjs/vendor/react-native/{useRefEffect.cjs.map → useRefEffect.js.map} +0 -0
  442. /package/dist/cjs/{without-animated.cjs.map → without-animated.js.map} +0 -0
@@ -0,0 +1,1003 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var VirtualizedList_exports = {};
33
+ __export(VirtualizedList_exports, {
34
+ default: () => VirtualizedList_default
35
+ });
36
+ module.exports = __toCommonJS(VirtualizedList_exports);
37
+ var import_react_native_web_internals = require("@tamagui/react-native-web-internals"),
38
+ import_ViewabilityHelper = __toESM(require("../ViewabilityHelper.cjs")),
39
+ import_CellRenderMask = require("./CellRenderMask.cjs"),
40
+ import_StateSafePureComponent = __toESM(require("./StateSafePureComponent.cjs")),
41
+ import_VirtualizedListContext = require("./VirtualizedListContext.cjs"),
42
+ import_ScrollViewBase = __toESM(require("../../../ScrollView/ScrollViewBase.cjs")),
43
+ import_View = __toESM(require("../../../View/index.cjs")),
44
+ import_VirtualizedListCellRenderer = __toESM(require("./VirtualizedListCellRenderer.cjs")),
45
+ import_FillRateHelper = __toESM(require("../FillRateHelper/index.cjs")),
46
+ import_ChildListCollection = __toESM(require("./ChildListCollection.cjs")),
47
+ import_react = __toESM(require("react")),
48
+ import_clamp = __toESM(require("../Utilities/clamp.cjs")),
49
+ import_VirtualizeUtils = require("../VirtualizeUtils/index.cjs"),
50
+ import_Batchinator = __toESM(require("../../../Batchinator/index.cjs")),
51
+ import_RefreshControl = __toESM(require("../../../RefreshControl/index.cjs")),
52
+ import_jsx_runtime = require("react/jsx-runtime");
53
+ const __DEV__ = process.env.NODE_ENV !== "production",
54
+ ON_EDGE_REACHED_EPSILON = 1e-3;
55
+ let _usedIndexForKey = !1,
56
+ _keylessItemComponentName = "";
57
+ function horizontalOrDefault(horizontal) {
58
+ return horizontal ?? !1;
59
+ }
60
+ function initialNumToRenderOrDefault(initialNumToRender) {
61
+ return initialNumToRender ?? 10;
62
+ }
63
+ function maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {
64
+ return maxToRenderPerBatch ?? 10;
65
+ }
66
+ function onStartReachedThresholdOrDefault(onStartReachedThreshold) {
67
+ return onStartReachedThreshold ?? 2;
68
+ }
69
+ function onEndReachedThresholdOrDefault(onEndReachedThreshold) {
70
+ return onEndReachedThreshold ?? 2;
71
+ }
72
+ function getScrollingThreshold(threshold, visibleLength) {
73
+ return threshold * visibleLength / 2;
74
+ }
75
+ function scrollEventThrottleOrDefault(scrollEventThrottle) {
76
+ return scrollEventThrottle ?? 50;
77
+ }
78
+ function windowSizeOrDefault(windowSize) {
79
+ return windowSize ?? 21;
80
+ }
81
+ function findLastWhere(arr, predicate) {
82
+ for (let i = arr.length - 1; i >= 0; i--) if (predicate(arr[i])) return arr[i];
83
+ return null;
84
+ }
85
+ class VirtualizedList extends import_StateSafePureComponent.default {
86
+ static contextType = import_VirtualizedListContext.VirtualizedListContext;
87
+ // scrollToEnd may be janky without getItemLayout prop
88
+ scrollToEnd(params) {
89
+ const animated = params ? params.animated : !0,
90
+ veryLast = this.props.getItemCount(this.props.data) - 1;
91
+ if (veryLast < 0) return;
92
+ const frame = this.__getFrameMetricsApprox(veryLast, this.props),
93
+ offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);
94
+ if (this._scrollRef != null) {
95
+ if (this._scrollRef.scrollTo == null) {
96
+ console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");
97
+ return;
98
+ }
99
+ this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {
100
+ x: offset,
101
+ animated
102
+ } : {
103
+ y: offset,
104
+ animated
105
+ });
106
+ }
107
+ }
108
+ // scrollToIndex may be janky without getItemLayout prop
109
+ scrollToIndex(params) {
110
+ const {
111
+ data,
112
+ horizontal,
113
+ getItemCount,
114
+ getItemLayout,
115
+ onScrollToIndexFailed
116
+ } = this.props,
117
+ {
118
+ animated,
119
+ index,
120
+ viewOffset,
121
+ viewPosition
122
+ } = params;
123
+ if ((0, import_react_native_web_internals.invariant)(index >= 0, `scrollToIndex out of range: requested index ${index} but minimum is 0`), (0, import_react_native_web_internals.invariant)(getItemCount(data) >= 1, `scrollToIndex out of range: item length ${getItemCount(data)} but minimum is 1`), (0, import_react_native_web_internals.invariant)(index < getItemCount(data), `scrollToIndex out of range: requested index ${index} is out of 0 to ${getItemCount(data) - 1}`), !getItemLayout && index > this._highestMeasuredFrameIndex) {
124
+ (0, import_react_native_web_internals.invariant)(!!onScrollToIndexFailed, "scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures."), onScrollToIndexFailed({
125
+ averageItemLength: this._averageCellLength,
126
+ highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,
127
+ index
128
+ });
129
+ return;
130
+ }
131
+ const frame = this.__getFrameMetricsApprox(Math.floor(index), this.props),
132
+ offset = Math.max(0,
133
+ // @ts-ignore
134
+ this._getOffsetApprox(index, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);
135
+ if (this._scrollRef != null) {
136
+ if (this._scrollRef.scrollTo == null) {
137
+ console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");
138
+ return;
139
+ }
140
+ this._scrollRef.scrollTo(horizontal ? {
141
+ x: offset,
142
+ animated
143
+ } : {
144
+ y: offset,
145
+ animated
146
+ });
147
+ }
148
+ }
149
+ // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -
150
+ // use scrollToIndex instead if possible.
151
+ scrollToItem(params) {
152
+ const {
153
+ item
154
+ } = params,
155
+ {
156
+ data,
157
+ getItem,
158
+ getItemCount
159
+ } = this.props,
160
+ itemCount = getItemCount(data);
161
+ for (let index = 0; index < itemCount; index++) if (getItem(data, index) === item) {
162
+ this.scrollToIndex({
163
+ ...params,
164
+ index
165
+ });
166
+ break;
167
+ }
168
+ }
169
+ /**
170
+ * Scroll to a specific content pixel offset in the list.
171
+ *
172
+ * Param `offset` expects the offset to scroll to.
173
+ * In case of `horizontal` is true, the offset is the x-value,
174
+ * in any other case the offset is the y-value.
175
+ *
176
+ * Param `animated` (`true` by default) defines whether the list
177
+ * should do an animation while scrolling.
178
+ */
179
+ scrollToOffset(params) {
180
+ const {
181
+ animated,
182
+ offset
183
+ } = params;
184
+ if (this._scrollRef != null) {
185
+ if (this._scrollRef.scrollTo == null) {
186
+ console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");
187
+ return;
188
+ }
189
+ this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {
190
+ x: offset,
191
+ animated
192
+ } : {
193
+ y: offset,
194
+ animated
195
+ });
196
+ }
197
+ }
198
+ recordInteraction() {
199
+ this._nestedChildLists.forEach(childList => {
200
+ childList.recordInteraction();
201
+ }), this._viewabilityTuples.forEach(t => {
202
+ t.viewabilityHelper.recordInteraction();
203
+ }), this._updateViewableItems(this.props, this.state.cellsAroundViewport);
204
+ }
205
+ flashScrollIndicators() {
206
+ this._scrollRef != null && this._scrollRef.flashScrollIndicators();
207
+ }
208
+ /**
209
+ * Provides a handle to the underlying scroll responder.
210
+ * Note that `this._scrollRef` might not be a `ScrollView`, so we
211
+ * need to check that it responds to `getScrollResponder` before calling it.
212
+ */
213
+ getScrollResponder() {
214
+ return this._scrollRef && this._scrollRef.getScrollResponder ? this._scrollRef.getScrollResponder() : null;
215
+ }
216
+ getScrollableNode() {
217
+ return this._scrollRef && this._scrollRef.getScrollableNode ? this._scrollRef.getScrollableNode() : this._scrollRef;
218
+ }
219
+ getScrollRef() {
220
+ return this._scrollRef && this._scrollRef.getScrollRef ? this._scrollRef.getScrollRef() : this._scrollRef;
221
+ }
222
+ _getCellKey() {
223
+ return this.context?.cellKey || "rootList";
224
+ }
225
+ _getScrollMetrics = () => this._scrollMetrics;
226
+ hasMore() {
227
+ return this._hasMore;
228
+ }
229
+ _getOutermostParentListRef = () => this._isNestedWithSameOrientation() ? this.context.getOutermostParentListRef() : this;
230
+ _registerAsNestedChild = childList => {
231
+ this._nestedChildLists.add(childList.ref, childList.cellKey), this._hasInteracted && childList.ref.recordInteraction();
232
+ };
233
+ _unregisterAsNestedChild = childList => {
234
+ this._nestedChildLists.remove(childList.ref);
235
+ };
236
+ invertedWheelEventHandler;
237
+ constructor(props) {
238
+ if (super(props), this._checkProps(props), this._fillRateHelper = new import_FillRateHelper.default(this._getFrameMetrics), this._updateCellsToRenderBatcher = new import_Batchinator.default(this._updateCellsToRender, this.props.updateCellsBatchingPeriod ?? 50), this.props.viewabilityConfigCallbackPairs) this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({
239
+ viewabilityHelper: new import_ViewabilityHelper.default(pair.viewabilityConfig),
240
+ onViewableItemsChanged: pair.onViewableItemsChanged
241
+ }));else {
242
+ const {
243
+ onViewableItemsChanged,
244
+ viewabilityConfig
245
+ } = this.props;
246
+ onViewableItemsChanged && this._viewabilityTuples.push({
247
+ viewabilityHelper: new import_ViewabilityHelper.default(viewabilityConfig),
248
+ onViewableItemsChanged
249
+ });
250
+ }
251
+ const initialRenderRegion = VirtualizedList._initialRenderRegion(props);
252
+ this.state = {
253
+ cellsAroundViewport: initialRenderRegion,
254
+ renderMask: VirtualizedList._createRenderMask(props, initialRenderRegion)
255
+ }, this.invertedWheelEventHandler = ev => {
256
+ const scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop,
257
+ scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight,
258
+ clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight,
259
+ isEventTargetScrollable = scrollLength > clientLength,
260
+ delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;
261
+ let leftoverDelta = delta;
262
+ isEventTargetScrollable && (leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0));
263
+ const targetDelta = delta - leftoverDelta;
264
+ if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {
265
+ const node = this._scrollRef.getScrollableNode();
266
+ if (this.props.horizontal) {
267
+ ev.target.scrollLeft += targetDelta;
268
+ const nextScrollLeft = node.scrollLeft - leftoverDelta;
269
+ node.scrollLeft = this.props.getItemLayout ? nextScrollLeft : Math.min(nextScrollLeft, this._totalCellLength);
270
+ } else {
271
+ ev.target.scrollTop += targetDelta;
272
+ const nextScrollTop = node.scrollTop - leftoverDelta;
273
+ node.scrollTop = this.props.getItemLayout ? nextScrollTop : Math.min(nextScrollTop, this._totalCellLength);
274
+ }
275
+ ev.preventDefault();
276
+ }
277
+ };
278
+ }
279
+ _checkProps(props) {
280
+ const {
281
+ onScroll,
282
+ windowSize,
283
+ getItemCount,
284
+ data,
285
+ initialScrollIndex
286
+ } = props;
287
+ (0, import_react_native_web_internals.invariant)(!(onScroll && onScroll.__isNative), "Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver"), (0, import_react_native_web_internals.invariant)(windowSizeOrDefault(windowSize) > 0, "VirtualizedList: The windowSize prop must be present and set to a value greater than 0."), (0, import_react_native_web_internals.invariant)(getItemCount, 'VirtualizedList: The "getItemCount" prop must be provided');
288
+ const itemCount = getItemCount(data);
289
+ if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex && (console.warn(`initialScrollIndex "${initialScrollIndex}" is not valid (list has ${itemCount} items)`), this._hasWarned.initialScrollIndex = !0), __DEV__ && !this._hasWarned.flexWrap) {
290
+ const flatStyles = import_react_native_web_internals.StyleSheet.flatten(this.props.contentContainerStyle);
291
+ flatStyles != null && flatStyles.flexWrap === "wrap" && (console.warn("`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.Consider using `numColumns` with `FlatList` instead."), this._hasWarned.flexWrap = !0);
292
+ }
293
+ }
294
+ static _createRenderMask(props, cellsAroundViewport, additionalRegions) {
295
+ const itemCount = props.getItemCount(props.data);
296
+ (0, import_react_native_web_internals.invariant)(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, `Invalid cells around viewport "[${cellsAroundViewport.first}, ${cellsAroundViewport.last}]" was passed to VirtualizedList._createRenderMask`);
297
+ const renderMask = new import_CellRenderMask.CellRenderMask(itemCount);
298
+ if (itemCount > 0) {
299
+ const allRegions = [cellsAroundViewport, ...(additionalRegions ?? [])];
300
+ for (const region of allRegions) renderMask.addCells(region);
301
+ if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {
302
+ const initialRegion = VirtualizedList._initialRenderRegion(props);
303
+ renderMask.addCells(initialRegion);
304
+ }
305
+ const stickyIndicesSet = new Set(props.stickyHeaderIndices);
306
+ VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);
307
+ }
308
+ return renderMask;
309
+ }
310
+ static _initialRenderRegion(props) {
311
+ const itemCount = props.getItemCount(props.data),
312
+ firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor(props.initialScrollIndex ?? 0))),
313
+ lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;
314
+ return {
315
+ first: firstCellIndex,
316
+ last: lastCellIndex
317
+ };
318
+ }
319
+ static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {
320
+ const stickyOffset = props.ListHeaderComponent ? 1 : 0;
321
+ for (let itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) if (stickyIndicesSet.has(itemIdx + stickyOffset)) {
322
+ renderMask.addCells({
323
+ first: itemIdx,
324
+ last: itemIdx
325
+ });
326
+ break;
327
+ }
328
+ }
329
+ _adjustCellsAroundViewport(props, cellsAroundViewport) {
330
+ const {
331
+ data,
332
+ getItemCount
333
+ } = props,
334
+ onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold),
335
+ {
336
+ contentLength,
337
+ offset,
338
+ visibleLength
339
+ } = this._scrollMetrics,
340
+ distanceFromEnd = contentLength - visibleLength - offset;
341
+ if (visibleLength <= 0 || contentLength <= 0) return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;
342
+ let newCellsAroundViewport;
343
+ if (props.disableVirtualization) {
344
+ const renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;
345
+ newCellsAroundViewport = {
346
+ first: 0,
347
+ last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)
348
+ };
349
+ } else {
350
+ if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;
351
+ newCellsAroundViewport = computeWindowedRenderLimits(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics), (0, import_react_native_web_internals.invariant)(newCellsAroundViewport.last < getItemCount(data), "computeWindowedRenderLimits() should return range in-bounds");
352
+ }
353
+ if (this._nestedChildLists.size() > 0) {
354
+ const childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);
355
+ newCellsAroundViewport.last = childIdx ?? newCellsAroundViewport.last;
356
+ }
357
+ return newCellsAroundViewport;
358
+ }
359
+ _findFirstChildWithMore(first, last) {
360
+ for (let ii = first; ii <= last; ii++) {
361
+ const cellKeyForIndex = this._indicesToKeys.get(ii);
362
+ if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, childList => childList.hasMore())) return ii;
363
+ }
364
+ return null;
365
+ }
366
+ componentDidMount() {
367
+ this._isNestedWithSameOrientation() && this.context.registerAsNestedChild({
368
+ ref: this,
369
+ cellKey: this.context.cellKey
370
+ }), this.setupWebWheelHandler();
371
+ }
372
+ componentWillUnmount() {
373
+ this._isNestedWithSameOrientation() && this.context.unregisterAsNestedChild({
374
+ ref: this
375
+ }), this._updateCellsToRenderBatcher.dispose({
376
+ abort: !0
377
+ }), this._viewabilityTuples.forEach(tuple => {
378
+ tuple.viewabilityHelper.dispose();
379
+ }), this._fillRateHelper.deactivateAndFlush(), this.teardownWebWheelHandler();
380
+ }
381
+ setupWebWheelHandler() {
382
+ if (this._scrollRef && this._scrollRef.getScrollableNode) this._scrollRef.getScrollableNode().addEventListener("wheel", this.invertedWheelEventHandler);else {
383
+ setTimeout(() => this.setupWebWheelHandler(), 50);
384
+ return;
385
+ }
386
+ }
387
+ teardownWebWheelHandler() {
388
+ this._scrollRef && this._scrollRef.getScrollableNode && this._scrollRef.getScrollableNode().removeEventListener("wheel", this.invertedWheelEventHandler);
389
+ }
390
+ static getDerivedStateFromProps(newProps, prevState) {
391
+ if (newProps.getItemCount(newProps.data) === prevState.renderMask.numCells()) return prevState;
392
+ const constrainedCells = VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);
393
+ return {
394
+ cellsAroundViewport: constrainedCells,
395
+ renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells)
396
+ };
397
+ }
398
+ _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {
399
+ const {
400
+ CellRendererComponent,
401
+ ItemSeparatorComponent,
402
+ ListHeaderComponent,
403
+ ListItemComponent,
404
+ data,
405
+ debug,
406
+ getItem,
407
+ getItemCount,
408
+ getItemLayout,
409
+ horizontal,
410
+ renderItem
411
+ } = this.props,
412
+ stickyOffset = ListHeaderComponent ? 1 : 0,
413
+ end = getItemCount(data) - 1;
414
+ let prevCellKey;
415
+ last = Math.min(end, last);
416
+ for (let ii = first; ii <= last; ii++) {
417
+ const item = getItem(data, ii),
418
+ key = this._keyExtractor(item, ii, this.props);
419
+ this._indicesToKeys.set(ii, key), stickyIndicesFromProps.has(ii + stickyOffset) && stickyHeaderIndices.push(cells.length);
420
+ const shouldListenForLayout = getItemLayout == null || debug || this._fillRateHelper.enabled();
421
+ cells.push(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_VirtualizedListCellRenderer.default, {
422
+ CellRendererComponent,
423
+ ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : void 0,
424
+ ListItemComponent,
425
+ cellKey: key,
426
+ horizontal,
427
+ index: ii,
428
+ inversionStyle,
429
+ item,
430
+ prevCellKey,
431
+ onUpdateSeparators: this._onUpdateSeparators,
432
+ onCellFocusCapture: e => this._onCellFocusCapture(key),
433
+ onUnmount: this._onCellUnmount,
434
+ ref: ref => {
435
+ this._cellRefs[key] = ref;
436
+ },
437
+ renderItem,
438
+ ...(shouldListenForLayout && {
439
+ onCellLayout: this._onCellLayout
440
+ })
441
+ }, key)), prevCellKey = key;
442
+ }
443
+ }
444
+ static _constrainToItemCount(cells, props) {
445
+ const itemCount = props.getItemCount(props.data),
446
+ last = Math.min(itemCount - 1, cells.last),
447
+ maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);
448
+ return {
449
+ first: (0, import_clamp.default)(0, itemCount - 1 - maxToRenderPerBatch, cells.first),
450
+ last
451
+ };
452
+ }
453
+ _onUpdateSeparators = (keys, newProps) => {
454
+ keys.forEach(key => {
455
+ const ref = key != null && this._cellRefs[key];
456
+ ref && ref.updateSeparatorProps(newProps);
457
+ });
458
+ };
459
+ _isNestedWithSameOrientation() {
460
+ const nestedContext = this.context;
461
+ return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));
462
+ }
463
+ _getSpacerKey = isVertical => isVertical ? "height" : "width";
464
+ _keyExtractor(item, index, props) {
465
+ if (props.keyExtractor != null) return props.keyExtractor(item, index);
466
+ const key = (0, import_VirtualizeUtils.keyExtractor)(item, index);
467
+ return key === String(index) && (_usedIndexForKey = !0, item.type && item.type.displayName && (_keylessItemComponentName = item.type.displayName)), key;
468
+ }
469
+ render() {
470
+ this._checkProps(this.props);
471
+ const {
472
+ ListEmptyComponent,
473
+ ListFooterComponent,
474
+ ListHeaderComponent
475
+ } = this.props,
476
+ {
477
+ data,
478
+ horizontal
479
+ } = this.props,
480
+ inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null,
481
+ cells = [],
482
+ stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices),
483
+ stickyHeaderIndices = [];
484
+ if (ListHeaderComponent) {
485
+ stickyIndicesFromProps.has(0) && stickyHeaderIndices.push(0);
486
+ const element = import_react.default.isValidElement(ListHeaderComponent) ? ListHeaderComponent : /* @__PURE__ */(0, import_jsx_runtime.jsx)(ListHeaderComponent, {});
487
+ cells.push(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_VirtualizedListContext.VirtualizedListCellContextProvider, {
488
+ cellKey: this._getCellKey() + "-header",
489
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
490
+ onLayout: this._onLayoutHeader,
491
+ style: [inversionStyle, this.props.ListHeaderComponentStyle],
492
+ children: element
493
+ })
494
+ }, "$header"));
495
+ }
496
+ const itemCount = this.props.getItemCount(data);
497
+ if (itemCount === 0 && ListEmptyComponent) {
498
+ const element = import_react.default.isValidElement(ListEmptyComponent) ? ListEmptyComponent : /* @__PURE__ */(0, import_jsx_runtime.jsx)(ListEmptyComponent, {});
499
+ cells.push(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_VirtualizedListContext.VirtualizedListCellContextProvider, {
500
+ cellKey: this._getCellKey() + "-empty",
501
+ children: import_react.default.cloneElement(element, {
502
+ onLayout: event => {
503
+ this._onLayoutEmpty(event), element.props.onLayout && element.props.onLayout(event);
504
+ },
505
+ style: [inversionStyle, element.props.style]
506
+ })
507
+ }, "$empty"));
508
+ }
509
+ if (itemCount > 0) {
510
+ _usedIndexForKey = !1, _keylessItemComponentName = "";
511
+ const spacerKey = this._getSpacerKey(!horizontal),
512
+ renderRegions = this.state.renderMask.enumerateRegions(),
513
+ lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);
514
+ for (const section of renderRegions) if (section.isSpacer) {
515
+ if (this.props.disableVirtualization) continue;
516
+ const last = section === lastSpacer && !this.props.getItemLayout ? (0, import_clamp.default)(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last,
517
+ firstMetrics = this.__getFrameMetricsApprox(section.first, this.props),
518
+ lastMetrics = this.__getFrameMetricsApprox(last, this.props),
519
+ spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;
520
+ cells.push(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
521
+ style: {
522
+ [spacerKey]: spacerSize
523
+ }
524
+ }, `$spacer-${section.first}`));
525
+ } else this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);
526
+ !this._hasWarned.keys && _usedIndexForKey && (console.warn("VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.", _keylessItemComponentName), this._hasWarned.keys = !0);
527
+ }
528
+ if (ListFooterComponent) {
529
+ const element = import_react.default.isValidElement(ListFooterComponent) ? ListFooterComponent : /* @__PURE__ */(0, import_jsx_runtime.jsx)(ListFooterComponent, {});
530
+ cells.push(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_VirtualizedListContext.VirtualizedListCellContextProvider, {
531
+ cellKey: this._getFooterCellKey(),
532
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
533
+ onLayout: this._onLayoutFooter,
534
+ style: [inversionStyle, this.props.ListFooterComponentStyle],
535
+ children: element
536
+ })
537
+ }, "$footer"));
538
+ }
539
+ const scrollProps = {
540
+ ...this.props,
541
+ onContentSizeChange: this._onContentSizeChange,
542
+ onLayout: this._onLayout,
543
+ onScroll: this._onScroll,
544
+ onScrollBeginDrag: this._onScrollBeginDrag,
545
+ onScrollEndDrag: this._onScrollEndDrag,
546
+ onMomentumScrollBegin: this._onMomentumScrollBegin,
547
+ onMomentumScrollEnd: this._onMomentumScrollEnd,
548
+ scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),
549
+ invertStickyHeaders: this.props.invertStickyHeaders !== void 0 ? this.props.invertStickyHeaders : this.props.inverted,
550
+ stickyHeaderIndices,
551
+ style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style
552
+ };
553
+ return this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_VirtualizedListContext.VirtualizedListContextProvider, {
554
+ value: {
555
+ cellKey: null,
556
+ getScrollMetrics: this._getScrollMetrics,
557
+ horizontal: horizontalOrDefault(this.props.horizontal),
558
+ getOutermostParentListRef: this._getOutermostParentListRef,
559
+ registerAsNestedChild: this._registerAsNestedChild,
560
+ unregisterAsNestedChild: this._unregisterAsNestedChild
561
+ },
562
+ children: import_react.default.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {
563
+ ref: this._captureScrollRef
564
+ }, cells)
565
+ });
566
+ }
567
+ componentDidUpdate(prevProps) {
568
+ const {
569
+ data,
570
+ extraData
571
+ } = this.props;
572
+ (data !== prevProps.data || extraData !== prevProps.extraData) && this._viewabilityTuples.forEach(tuple => {
573
+ tuple.viewabilityHelper.resetViewableIndices();
574
+ });
575
+ const hiPriInProgress = this._hiPriInProgress;
576
+ this._scheduleCellsToRenderUpdate(), hiPriInProgress && (this._hiPriInProgress = !1);
577
+ }
578
+ _averageCellLength = 0;
579
+ _cellRefs = {};
580
+ _fillRateHelper;
581
+ _frames = {};
582
+ _footerLength = 0;
583
+ _hasTriggeredInitialScrollToIndex = !1;
584
+ _hasInteracted = !1;
585
+ _hasMore = !1;
586
+ _hasWarned = {};
587
+ _headerLength = 0;
588
+ _hiPriInProgress = !1;
589
+ _highestMeasuredFrameIndex = 0;
590
+ _indicesToKeys = /* @__PURE__ */new Map();
591
+ _lastFocusedCellKey = null;
592
+ _nestedChildLists = new import_ChildListCollection.default();
593
+ _offsetFromParentVirtualizedList = 0;
594
+ _prevParentOffset = 0;
595
+ _scrollMetrics = {
596
+ contentLength: 0,
597
+ dOffset: 0,
598
+ dt: 10,
599
+ offset: 0,
600
+ timestamp: 0,
601
+ velocity: 0,
602
+ visibleLength: 0,
603
+ zoomScale: 1
604
+ };
605
+ _scrollRef = null;
606
+ _sentStartForContentLength = 0;
607
+ _sentEndForContentLength = 0;
608
+ _totalCellLength = 0;
609
+ _totalCellsMeasured = 0;
610
+ _updateCellsToRenderBatcher;
611
+ _viewabilityTuples = [];
612
+ _captureScrollRef = ref => {
613
+ this._scrollRef = ref;
614
+ };
615
+ _computeBlankness() {
616
+ this._fillRateHelper.computeBlankness(
617
+ // @ts-ignore
618
+ this.props, this.state.cellsAroundViewport, this._scrollMetrics);
619
+ }
620
+ _defaultRenderScrollComponent = props => {
621
+ const onRefresh = props.onRefresh;
622
+ return this._isNestedWithSameOrientation() ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
623
+ ...props
624
+ }) : onRefresh ? ((0, import_react_native_web_internals.invariant)(typeof props.refreshing == "boolean", "`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `" + JSON.stringify(props.refreshing ?? "undefined") + "`"), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ScrollViewBase.default, {
625
+ ...props,
626
+ refreshControl: props.refreshControl == null ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_RefreshControl.default, {
627
+ refreshing: props.refreshing,
628
+ onRefresh,
629
+ progressViewOffset: props.progressViewOffset
630
+ }) : props.refreshControl
631
+ })) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ScrollViewBase.default, {
632
+ ...props
633
+ });
634
+ };
635
+ _onCellLayout = (e, cellKey, index) => {
636
+ const layout = e.nativeEvent.layout,
637
+ next = {
638
+ offset: this._selectOffset(layout),
639
+ length: this._selectLength(layout),
640
+ index,
641
+ inLayout: !0
642
+ },
643
+ curr = this._frames[cellKey];
644
+ !curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index ? (this._totalCellLength += next.length - (curr ? curr.length : 0), this._totalCellsMeasured += curr ? 0 : 1, this._averageCellLength = this._totalCellLength / this._totalCellsMeasured, this._frames[cellKey] = next, this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index), this._scheduleCellsToRenderUpdate()) : this._frames[cellKey].inLayout = !0, this._triggerRemeasureForChildListsInCell(cellKey), this._computeBlankness(), this._updateViewableItems(
645
+ // @ts-ignore
646
+ this.props, this.state.cellsAroundViewport);
647
+ };
648
+ _onCellFocusCapture(cellKey) {
649
+ this._lastFocusedCellKey = cellKey, this._updateCellsToRender();
650
+ }
651
+ _onCellUnmount = cellKey => {
652
+ delete this._cellRefs[cellKey];
653
+ const curr = this._frames[cellKey];
654
+ curr && (this._frames[cellKey] = {
655
+ ...curr,
656
+ inLayout: !1
657
+ });
658
+ };
659
+ _triggerRemeasureForChildListsInCell(cellKey) {
660
+ this._nestedChildLists.forEachInCell(cellKey, childList => {
661
+ childList.measureLayoutRelativeToContainingList();
662
+ });
663
+ }
664
+ measureLayoutRelativeToContainingList() {
665
+ try {
666
+ if (!this._scrollRef) return;
667
+ this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {
668
+ this._offsetFromParentVirtualizedList = this._selectOffset({
669
+ x,
670
+ y
671
+ }), this._scrollMetrics.contentLength = this._selectLength({
672
+ width,
673
+ height
674
+ });
675
+ const scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());
676
+ (this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset) && (this._scrollMetrics.visibleLength = scrollMetrics.visibleLength, this._scrollMetrics.offset = scrollMetrics.offset, this._nestedChildLists.forEach(childList => {
677
+ childList.measureLayoutRelativeToContainingList();
678
+ }));
679
+ }, error => {
680
+ console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList.");
681
+ });
682
+ } catch (error) {
683
+ console.warn("measureLayoutRelativeToContainingList threw an error", error.stack);
684
+ }
685
+ }
686
+ _onLayout = e => {
687
+ this._isNestedWithSameOrientation() ? this.measureLayoutRelativeToContainingList() : this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout), this.props.onLayout && this.props.onLayout(e), this._scheduleCellsToRenderUpdate(), this._maybeCallOnEdgeReached();
688
+ };
689
+ _onLayoutEmpty = e => {
690
+ this.props.onLayout && this.props.onLayout(e);
691
+ };
692
+ _getFooterCellKey() {
693
+ return this._getCellKey() + "-footer";
694
+ }
695
+ _onLayoutFooter = e => {
696
+ this._triggerRemeasureForChildListsInCell(this._getFooterCellKey()), this._footerLength = this._selectLength(e.nativeEvent.layout);
697
+ };
698
+ _onLayoutHeader = e => {
699
+ this._headerLength = this._selectLength(e.nativeEvent.layout);
700
+ };
701
+ _renderDebugOverlay() {
702
+ const normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1),
703
+ framesInLayout = [],
704
+ itemCount = this.props.getItemCount(this.props.data);
705
+ for (let ii = 0; ii < itemCount; ii++) {
706
+ const frame = this.__getFrameMetricsApprox(ii, this.props);
707
+ frame.inLayout && framesInLayout.push(frame);
708
+ }
709
+ const windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset,
710
+ frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props),
711
+ windowLen = frameLast.offset + frameLast.length - windowTop,
712
+ visTop = this._scrollMetrics.offset,
713
+ visLen = this._scrollMetrics.visibleLength;
714
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_View.default, {
715
+ style: [styles.debugOverlayBase, styles.debugOverlay],
716
+ children: [framesInLayout.map((f, ii) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
717
+ style: [styles.debugOverlayBase, styles.debugOverlayFrame, {
718
+ top: f.offset * normalize,
719
+ height: f.length * normalize
720
+ }]
721
+ }, "f" + ii)), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
722
+ style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {
723
+ top: windowTop * normalize,
724
+ height: windowLen * normalize
725
+ }]
726
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_View.default, {
727
+ style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {
728
+ top: visTop * normalize,
729
+ height: visLen * normalize
730
+ }]
731
+ })]
732
+ });
733
+ }
734
+ _selectLength(metrics) {
735
+ return horizontalOrDefault(this.props.horizontal) ? metrics.width : metrics.height;
736
+ }
737
+ _selectOffset(metrics) {
738
+ return horizontalOrDefault(this.props.horizontal) ? metrics.x : metrics.y;
739
+ }
740
+ _maybeCallOnEdgeReached() {
741
+ const {
742
+ data,
743
+ getItemCount,
744
+ onStartReached,
745
+ onStartReachedThreshold,
746
+ onEndReached,
747
+ onEndReachedThreshold,
748
+ initialScrollIndex
749
+ } = this.props,
750
+ {
751
+ contentLength,
752
+ visibleLength,
753
+ offset
754
+ } = this._scrollMetrics;
755
+ let distanceFromStart = offset,
756
+ distanceFromEnd = contentLength - visibleLength - offset;
757
+ distanceFromStart < ON_EDGE_REACHED_EPSILON && (distanceFromStart = 0), distanceFromEnd < ON_EDGE_REACHED_EPSILON && (distanceFromEnd = 0);
758
+ const DEFAULT_THRESHOLD_PX = 2,
759
+ startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX,
760
+ endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX,
761
+ isWithinStartThreshold = distanceFromStart <= startThreshold,
762
+ isWithinEndThreshold = distanceFromEnd <= endThreshold;
763
+ onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength ? (this._sentEndForContentLength = this._scrollMetrics.contentLength, onEndReached({
764
+ distanceFromEnd
765
+ })) : onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength ? (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) && (this._sentStartForContentLength = this._scrollMetrics.contentLength, onStartReached({
766
+ distanceFromStart
767
+ })) : (this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0, this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0);
768
+ }
769
+ _onContentSizeChange = (width, height) => {
770
+ width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex && (this.props.contentOffset == null && (this.props.initialScrollIndex < this.props.getItemCount(this.props.data) ? this.scrollToIndex({
771
+ animated: !1,
772
+ index: nullthrows(this.props.initialScrollIndex)
773
+ }) : this.scrollToEnd({
774
+ animated: !1
775
+ })), this._hasTriggeredInitialScrollToIndex = !0), this.props.onContentSizeChange && this.props.onContentSizeChange(width, height), this._scrollMetrics.contentLength = this._selectLength({
776
+ height,
777
+ width
778
+ }), this._scheduleCellsToRenderUpdate(), this._maybeCallOnEdgeReached();
779
+ };
780
+ _convertParentScrollMetrics = metrics => {
781
+ const offset = metrics.offset - this._offsetFromParentVirtualizedList,
782
+ visibleLength = metrics.visibleLength,
783
+ dOffset = offset - this._scrollMetrics.offset,
784
+ contentLength = this._scrollMetrics.contentLength;
785
+ return {
786
+ visibleLength,
787
+ contentLength,
788
+ offset,
789
+ dOffset
790
+ };
791
+ };
792
+ _onScroll = e => {
793
+ this._nestedChildLists.forEach(childList => {
794
+ childList._onScroll(e);
795
+ }), this.props.onScroll && this.props.onScroll(e);
796
+ const timestamp = e.timeStamp;
797
+ let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement),
798
+ contentLength = this._selectLength(e.nativeEvent.contentSize),
799
+ offset = this._selectOffset(e.nativeEvent.contentOffset),
800
+ dOffset = offset - this._scrollMetrics.offset;
801
+ if (this._isNestedWithSameOrientation()) {
802
+ if (this._scrollMetrics.contentLength === 0) return;
803
+ ({
804
+ visibleLength,
805
+ contentLength,
806
+ offset,
807
+ dOffset
808
+ } = this._convertParentScrollMetrics({
809
+ visibleLength,
810
+ offset
811
+ }));
812
+ }
813
+ const dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1,
814
+ velocity = dOffset / dt;
815
+ dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf && (infoLog("VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.", {
816
+ dt,
817
+ prevDt: this._scrollMetrics.dt,
818
+ contentLength
819
+ }), this._hasWarned.perf = !0);
820
+ const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;
821
+ this._scrollMetrics = {
822
+ contentLength,
823
+ dt,
824
+ dOffset,
825
+ offset,
826
+ timestamp,
827
+ velocity,
828
+ visibleLength,
829
+ zoomScale
830
+ }, this._updateViewableItems(this.props, this.state.cellsAroundViewport), this.props && (this._maybeCallOnEdgeReached(), velocity !== 0 && this._fillRateHelper.activate(), this._computeBlankness(), this._scheduleCellsToRenderUpdate());
831
+ };
832
+ _scheduleCellsToRenderUpdate() {
833
+ const {
834
+ first,
835
+ last
836
+ } = this.state.cellsAroundViewport,
837
+ {
838
+ offset,
839
+ visibleLength,
840
+ velocity
841
+ } = this._scrollMetrics,
842
+ itemCount = this.props.getItemCount(this.props.data);
843
+ let hiPri = !1;
844
+ const onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold),
845
+ onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);
846
+ if (first > 0) {
847
+ const distTop = offset - this.__getFrameMetricsApprox(first, this.props).offset;
848
+ hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);
849
+ }
850
+ if (!hiPri && last >= 0 && last < itemCount - 1) {
851
+ const distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset + visibleLength);
852
+ hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);
853
+ }
854
+ if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {
855
+ this._hiPriInProgress = !0, this._updateCellsToRenderBatcher.dispose({
856
+ abort: !0
857
+ }), this._updateCellsToRender();
858
+ return;
859
+ } else this._updateCellsToRenderBatcher.schedule();
860
+ }
861
+ _onScrollBeginDrag = e => {
862
+ this._nestedChildLists.forEach(childList => {
863
+ childList._onScrollBeginDrag(e);
864
+ }), this._viewabilityTuples.forEach(tuple => {
865
+ tuple.viewabilityHelper.recordInteraction();
866
+ }), this._hasInteracted = !0, this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);
867
+ };
868
+ _onScrollEndDrag = e => {
869
+ this._nestedChildLists.forEach(childList => {
870
+ childList._onScrollEndDrag(e);
871
+ });
872
+ const {
873
+ velocity
874
+ } = e.nativeEvent;
875
+ velocity && (this._scrollMetrics.velocity = this._selectOffset(velocity)), this._computeBlankness(), this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);
876
+ };
877
+ _onMomentumScrollBegin = e => {
878
+ this._nestedChildLists.forEach(childList => {
879
+ childList._onMomentumScrollBegin(e);
880
+ }), this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);
881
+ };
882
+ _onMomentumScrollEnd = e => {
883
+ this._nestedChildLists.forEach(childList => {
884
+ childList._onMomentumScrollEnd(e);
885
+ }), this._scrollMetrics.velocity = 0, this._computeBlankness(), this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);
886
+ };
887
+ _updateCellsToRender = () => {
888
+ this._updateViewableItems(this.props, this.state.cellsAroundViewport), this.setState((state, props) => {
889
+ const cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport),
890
+ renderMask = VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));
891
+ return cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask) ? null : {
892
+ cellsAroundViewport,
893
+ renderMask
894
+ };
895
+ });
896
+ };
897
+ _createViewToken = (index, isViewable, props) => {
898
+ const {
899
+ data,
900
+ getItem
901
+ } = props,
902
+ item = getItem(data, index);
903
+ return {
904
+ index,
905
+ item,
906
+ key: this._keyExtractor(item, index, props),
907
+ isViewable
908
+ };
909
+ };
910
+ _getOffsetApprox = (index, props) => {
911
+ if (Number.isInteger(index)) return this.__getFrameMetricsApprox(index, props).offset;
912
+ {
913
+ const frameMetrics = this.__getFrameMetricsApprox(Math.floor(index), props),
914
+ remainder = index - Math.floor(index);
915
+ return frameMetrics.offset + remainder * frameMetrics.length;
916
+ }
917
+ };
918
+ __getFrameMetricsApprox = (index, props) => {
919
+ const frame = this._getFrameMetrics(index, props);
920
+ if (frame && frame.index === index) return frame;
921
+ {
922
+ const {
923
+ data,
924
+ getItemCount,
925
+ getItemLayout
926
+ } = props;
927
+ return (0, import_react_native_web_internals.invariant)(index >= 0 && index < getItemCount(data), "Tried to get frame for out of range index " + index), (0, import_react_native_web_internals.invariant)(!getItemLayout, "Should not have to estimate frames when a measurement metrics function is provided"), {
928
+ length: this._averageCellLength,
929
+ offset: this._averageCellLength * index
930
+ };
931
+ }
932
+ };
933
+ _getFrameMetrics = (index, props) => {
934
+ const {
935
+ data,
936
+ getItem,
937
+ getItemCount,
938
+ getItemLayout
939
+ } = props;
940
+ (0, import_react_native_web_internals.invariant)(index >= 0 && index < getItemCount(data), "Tried to get frame for out of range index " + index);
941
+ const item = getItem(data, index),
942
+ frame = this._frames[this._keyExtractor(item, index, props)];
943
+ return (!frame || frame.index !== index) && getItemLayout ? getItemLayout(data, index) : frame;
944
+ };
945
+ _getNonViewportRenderRegions = props => {
946
+ if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) return [];
947
+ const focusedCellIndex = this._cellRefs[this._lastFocusedCellKey].props.index,
948
+ itemCount = props.getItemCount(props.data);
949
+ if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) return [];
950
+ let first = focusedCellIndex,
951
+ heightOfCellsBeforeFocused = 0;
952
+ for (let i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) first--, heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;
953
+ let last = focusedCellIndex,
954
+ heightOfCellsAfterFocused = 0;
955
+ for (let i = last + 1; i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; i++) last++, heightOfCellsAfterFocused += this.__getFrameMetricsApprox(i, props).length;
956
+ return [{
957
+ first,
958
+ last
959
+ }];
960
+ };
961
+ _updateViewableItems(props, cellsAroundViewport) {
962
+ this._viewabilityTuples.forEach(tuple => {
963
+ tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);
964
+ });
965
+ }
966
+ }
967
+ const styles = import_react_native_web_internals.StyleSheet.create({
968
+ verticallyInverted: {
969
+ transform: "scaleY(-1)"
970
+ },
971
+ horizontallyInverted: {
972
+ transform: "scaleX(-1)"
973
+ },
974
+ debug: {
975
+ flex: 1
976
+ },
977
+ debugOverlayBase: {
978
+ position: "absolute",
979
+ top: 0,
980
+ right: 0
981
+ },
982
+ debugOverlay: {
983
+ bottom: 0,
984
+ width: 20,
985
+ borderColor: "blue",
986
+ borderWidth: 1
987
+ },
988
+ debugOverlayFrame: {
989
+ left: 0,
990
+ backgroundColor: "orange"
991
+ },
992
+ debugOverlayFrameLast: {
993
+ left: 0,
994
+ borderColor: "green",
995
+ borderWidth: 2
996
+ },
997
+ debugOverlayFrameVis: {
998
+ left: 0,
999
+ borderColor: "red",
1000
+ borderWidth: 2
1001
+ }
1002
+ });
1003
+ var VirtualizedList_default = VirtualizedList;