@shopify/flash-list 2.0.0-alpha.2 → 2.0.0-alpha.21

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 (329) hide show
  1. package/README.md +67 -96
  2. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/BlankAreaEvent.kt +2 -2
  3. package/dist/AnimatedFlashList.d.ts +0 -1
  4. package/dist/AnimatedFlashList.d.ts.map +1 -1
  5. package/dist/AnimatedFlashList.js +3 -3
  6. package/dist/AnimatedFlashList.js.map +1 -1
  7. package/dist/FlashList.d.ts +9 -0
  8. package/dist/FlashList.d.ts.map +1 -1
  9. package/dist/FlashList.js +22 -3
  10. package/dist/FlashList.js.map +1 -1
  11. package/dist/FlashListProps.d.ts +33 -13
  12. package/dist/FlashListProps.d.ts.map +1 -1
  13. package/dist/FlashListProps.js.map +1 -1
  14. package/dist/FlashListRef.d.ts +305 -0
  15. package/dist/FlashListRef.d.ts.map +1 -0
  16. package/dist/FlashListRef.js +3 -0
  17. package/dist/FlashListRef.js.map +1 -0
  18. package/dist/GridLayoutProviderWithProps.js +1 -2
  19. package/dist/GridLayoutProviderWithProps.js.map +1 -1
  20. package/dist/MasonryFlashList.d.ts +2 -2
  21. package/dist/MasonryFlashList.d.ts.map +1 -1
  22. package/dist/MasonryFlashList.js.map +1 -1
  23. package/dist/PureComponentWrapper.js +1 -1
  24. package/dist/PureComponentWrapper.js.map +1 -1
  25. package/dist/__tests__/AverageWindow.test.js.map +1 -1
  26. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +2 -0
  27. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +1 -0
  28. package/dist/__tests__/ConsecutiveNumbers.test.js +224 -0
  29. package/dist/__tests__/ConsecutiveNumbers.test.js.map +1 -0
  30. package/dist/__tests__/FlashList.test.js.map +1 -1
  31. package/dist/__tests__/GridLayoutManager.test.d.ts +2 -0
  32. package/dist/__tests__/GridLayoutManager.test.d.ts.map +1 -0
  33. package/dist/__tests__/GridLayoutManager.test.js +69 -0
  34. package/dist/__tests__/GridLayoutManager.test.js.map +1 -0
  35. package/dist/__tests__/GridLayoutProviderWithProps.test.js.map +1 -1
  36. package/dist/__tests__/LayoutCommitObserver.test.d.ts +2 -0
  37. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +1 -0
  38. package/dist/__tests__/LayoutCommitObserver.test.js +35 -0
  39. package/dist/__tests__/LayoutCommitObserver.test.js.map +1 -0
  40. package/dist/__tests__/LinearLayoutManager.test.d.ts +2 -0
  41. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +1 -0
  42. package/dist/__tests__/LinearLayoutManager.test.js +140 -0
  43. package/dist/__tests__/LinearLayoutManager.test.js.map +1 -0
  44. package/dist/__tests__/MasonryFlashList.test.js.map +1 -1
  45. package/dist/__tests__/MasonryLayoutManager.test.d.ts +2 -0
  46. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +1 -0
  47. package/dist/__tests__/MasonryLayoutManager.test.js +148 -0
  48. package/dist/__tests__/MasonryLayoutManager.test.js.map +1 -0
  49. package/dist/__tests__/RecyclerView.test.d.ts +2 -0
  50. package/dist/__tests__/RecyclerView.test.d.ts.map +1 -0
  51. package/dist/__tests__/RecyclerView.test.js +103 -0
  52. package/dist/__tests__/RecyclerView.test.js.map +1 -0
  53. package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
  54. package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
  55. package/dist/__tests__/RenderStackManager.test.js +485 -0
  56. package/dist/__tests__/RenderStackManager.test.js.map +1 -0
  57. package/dist/__tests__/ViewabilityHelper.test.js.map +1 -1
  58. package/dist/__tests__/findVisibleIndex.test.d.ts +2 -0
  59. package/dist/__tests__/findVisibleIndex.test.d.ts.map +1 -0
  60. package/dist/__tests__/findVisibleIndex.test.js +259 -0
  61. package/dist/__tests__/findVisibleIndex.test.js.map +1 -0
  62. package/dist/__tests__/helpers/createLayoutManager.d.ts +34 -0
  63. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +1 -0
  64. package/dist/__tests__/helpers/createLayoutManager.js +110 -0
  65. package/dist/__tests__/helpers/createLayoutManager.js.map +1 -0
  66. package/dist/__tests__/helpers/mountFlashList.d.ts +2 -2
  67. package/dist/__tests__/helpers/mountFlashList.d.ts.map +1 -1
  68. package/dist/__tests__/helpers/mountFlashList.js +2 -2
  69. package/dist/__tests__/helpers/mountFlashList.js.map +1 -1
  70. package/dist/__tests__/helpers/mountMasonryFlashList.d.ts +2 -2
  71. package/dist/__tests__/helpers/mountMasonryFlashList.d.ts.map +1 -1
  72. package/dist/__tests__/helpers/mountMasonryFlashList.js +2 -2
  73. package/dist/__tests__/helpers/mountMasonryFlashList.js.map +1 -1
  74. package/dist/__tests__/useBlankAreaTracker.test.js.map +1 -1
  75. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +2 -0
  76. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +1 -0
  77. package/dist/__tests__/useUnmountAwareCallbacks.test.js +185 -0
  78. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -0
  79. package/dist/benchmark/AutoScrollHelper.js +2 -2
  80. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  81. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  82. package/dist/benchmark/roundToDecimalPlaces.js +1 -2
  83. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  84. package/dist/benchmark/useBenchmark.js +2 -28
  85. package/dist/benchmark/useBenchmark.js.map +1 -1
  86. package/dist/benchmark/useBlankAreaTracker.js +1 -2
  87. package/dist/benchmark/useBlankAreaTracker.js.map +1 -1
  88. package/dist/benchmark/useDataMultiplier.js +1 -2
  89. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  90. package/dist/benchmark/useFlatListBenchmark.d.ts +0 -1
  91. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  92. package/dist/benchmark/useFlatListBenchmark.js +9 -9
  93. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  94. package/dist/enableNewCore.d.ts.map +1 -1
  95. package/dist/enableNewCore.js +4 -4
  96. package/dist/enableNewCore.js.map +1 -1
  97. package/dist/errors/CustomError.js.map +1 -1
  98. package/dist/index.d.ts +4 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +11 -3
  101. package/dist/index.js.map +1 -1
  102. package/dist/native/auto-layout/AutoLayoutView.d.ts +1 -1
  103. package/dist/native/auto-layout/AutoLayoutView.d.ts.map +1 -1
  104. package/dist/native/auto-layout/AutoLayoutView.js +1 -1
  105. package/dist/native/auto-layout/AutoLayoutView.js.map +1 -1
  106. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts.map +1 -1
  107. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +1 -1
  108. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +1 -1
  109. package/dist/native/config/PlatformHelper.android.d.ts +2 -0
  110. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  111. package/dist/native/config/PlatformHelper.android.js +2 -0
  112. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  113. package/dist/native/config/PlatformHelper.d.ts +2 -0
  114. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  115. package/dist/native/config/PlatformHelper.ios.d.ts +2 -0
  116. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  117. package/dist/native/config/PlatformHelper.ios.js +2 -0
  118. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  119. package/dist/native/config/PlatformHelper.js +2 -0
  120. package/dist/native/config/PlatformHelper.js.map +1 -1
  121. package/dist/native/config/PlatformHelper.web.d.ts +2 -0
  122. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  123. package/dist/native/config/PlatformHelper.web.js +3 -1
  124. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  125. package/dist/recyclerview/LayoutCommitObserver.d.ts +12 -0
  126. package/dist/recyclerview/LayoutCommitObserver.d.ts.map +1 -0
  127. package/dist/recyclerview/LayoutCommitObserver.js +62 -0
  128. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -0
  129. package/dist/recyclerview/RecyclerView.d.ts +3 -2
  130. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  131. package/dist/recyclerview/RecyclerView.js +133 -69
  132. package/dist/recyclerview/RecyclerView.js.map +1 -1
  133. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +41 -7
  134. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  135. package/dist/recyclerview/RecyclerViewContextProvider.js +6 -2
  136. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  137. package/dist/recyclerview/RecyclerViewManager.d.ts +31 -7
  138. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  139. package/dist/recyclerview/RecyclerViewManager.js +154 -117
  140. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  141. package/dist/recyclerview/RecyclerViewProps.d.ts +1 -1
  142. package/dist/recyclerview/RecyclerViewProps.d.ts.map +1 -1
  143. package/dist/recyclerview/RenderStackManager.d.ts +86 -0
  144. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  145. package/dist/recyclerview/RenderStackManager.js +343 -0
  146. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  147. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  148. package/dist/recyclerview/ViewHolder.js +8 -6
  149. package/dist/recyclerview/ViewHolder.js.map +1 -1
  150. package/dist/recyclerview/ViewHolderCollection.d.ts +10 -4
  151. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  152. package/dist/recyclerview/ViewHolderCollection.js +26 -10
  153. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  154. package/dist/recyclerview/components/ScrollAnchor.d.ts +2 -1
  155. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  156. package/dist/recyclerview/components/ScrollAnchor.js +12 -9
  157. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  158. package/dist/recyclerview/components/StickyHeaders.d.ts +2 -2
  159. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  160. package/dist/recyclerview/components/StickyHeaders.js +44 -45
  161. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  162. package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts +1 -1
  163. package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts.map +1 -1
  164. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +2 -2
  165. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  166. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +48 -2
  167. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -1
  168. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +89 -19
  169. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  170. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +11 -0
  171. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
  172. package/dist/recyclerview/helpers/RenderTimeTracker.js +42 -0
  173. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
  174. package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
  175. package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
  176. package/dist/recyclerview/helpers/VelocityTracker.js +70 -0
  177. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
  178. package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -3
  179. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  180. package/dist/recyclerview/hooks/useBoundDetection.js +60 -28
  181. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  182. package/dist/recyclerview/hooks/useLayoutState.d.ts +3 -1
  183. package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -1
  184. package/dist/recyclerview/hooks/useLayoutState.js +6 -5
  185. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  186. package/dist/recyclerview/hooks/useMappingHelper.d.ts +9 -0
  187. package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -0
  188. package/dist/recyclerview/hooks/useMappingHelper.js +19 -0
  189. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -0
  190. package/dist/recyclerview/hooks/useOnLoad.d.ts +2 -2
  191. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  192. package/dist/recyclerview/hooks/useOnLoad.js +9 -10
  193. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  194. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +5 -49
  195. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  196. package/dist/recyclerview/hooks/useRecyclerViewController.js +343 -191
  197. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  198. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +2 -0
  199. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  200. package/dist/recyclerview/hooks/useRecyclerViewManager.js +11 -1
  201. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  202. package/dist/recyclerview/hooks/useRecyclingState.d.ts +4 -2
  203. package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -1
  204. package/dist/recyclerview/hooks/useRecyclingState.js +3 -4
  205. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  206. package/dist/recyclerview/hooks/useSecondaryProps.d.ts +1 -1
  207. package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -1
  208. package/dist/recyclerview/hooks/useSecondaryProps.js +15 -12
  209. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  210. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +15 -0
  211. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -0
  212. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +63 -0
  213. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -0
  214. package/dist/recyclerview/hooks/useUnmountFlag.d.ts +0 -1
  215. package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -1
  216. package/dist/recyclerview/hooks/useUnmountFlag.js +1 -0
  217. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  218. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +18 -4
  219. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  220. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -25
  221. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  222. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +36 -21
  223. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
  224. package/dist/recyclerview/layout-managers/LayoutManager.js +96 -28
  225. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  226. package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts +1 -2
  227. package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts.map +1 -1
  228. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +3 -3
  229. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  230. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +9 -1
  231. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -1
  232. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +30 -16
  233. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  234. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -2
  235. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  236. package/dist/recyclerview/utils/componentUtils.d.ts +1 -1
  237. package/dist/recyclerview/utils/componentUtils.d.ts.map +1 -1
  238. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  239. package/dist/recyclerview/utils/findVisibleIndex.d.ts.map +1 -1
  240. package/dist/recyclerview/utils/findVisibleIndex.js +3 -5
  241. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  242. package/dist/recyclerview/utils/measureLayout.d.ts +24 -28
  243. package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -1
  244. package/dist/recyclerview/utils/measureLayout.js +36 -6
  245. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  246. package/dist/recyclerview/utils/measureLayout.web.d.ts +29 -0
  247. package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -0
  248. package/dist/recyclerview/utils/measureLayout.web.js +87 -0
  249. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -0
  250. package/dist/specs/AutoLayoutNativeComponent.d.ts +1 -2
  251. package/dist/specs/AutoLayoutNativeComponent.d.ts.map +1 -1
  252. package/dist/specs/CellContainerNativeComponent.d.ts +0 -1
  253. package/dist/specs/CellContainerNativeComponent.d.ts.map +1 -1
  254. package/dist/tsconfig.tsbuildinfo +1 -1
  255. package/dist/utils/AverageWindow.js.map +1 -1
  256. package/dist/utils/ContentContainerUtils.d.ts.map +1 -1
  257. package/dist/utils/ContentContainerUtils.js.map +1 -1
  258. package/dist/viewability/ViewToken.d.ts +2 -2
  259. package/dist/viewability/ViewToken.d.ts.map +1 -1
  260. package/dist/viewability/ViewabilityHelper.js +1 -1
  261. package/dist/viewability/ViewabilityHelper.js.map +1 -1
  262. package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
  263. package/dist/viewability/ViewabilityManager.js +11 -5
  264. package/dist/viewability/ViewabilityManager.js.map +1 -1
  265. package/jestSetup.js +30 -11
  266. package/package.json +4 -3
  267. package/src/AnimatedFlashList.ts +3 -2
  268. package/src/FlashList.tsx +25 -1
  269. package/src/FlashListProps.ts +42 -11
  270. package/src/FlashListRef.ts +320 -0
  271. package/src/MasonryFlashList.tsx +2 -2
  272. package/src/__tests__/ConsecutiveNumbers.test.ts +232 -0
  273. package/src/__tests__/GridLayoutManager.test.ts +113 -0
  274. package/src/__tests__/LayoutCommitObserver.test.tsx +60 -0
  275. package/src/__tests__/LinearLayoutManager.test.ts +227 -0
  276. package/src/__tests__/MasonryLayoutManager.test.ts +202 -0
  277. package/src/__tests__/RecyclerView.test.tsx +144 -0
  278. package/src/__tests__/RenderStackManager.test.ts +574 -0
  279. package/src/__tests__/findVisibleIndex.test.ts +369 -0
  280. package/src/__tests__/helpers/createLayoutManager.ts +141 -0
  281. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +285 -0
  282. package/src/benchmark/useBenchmark.ts +0 -37
  283. package/src/benchmark/useFlatListBenchmark.ts +2 -2
  284. package/src/enableNewCore.ts +3 -1
  285. package/src/index.ts +14 -3
  286. package/src/native/config/PlatformHelper.android.ts +2 -0
  287. package/src/native/config/PlatformHelper.ios.ts +2 -0
  288. package/src/native/config/PlatformHelper.ts +2 -0
  289. package/src/native/config/PlatformHelper.web.ts +3 -1
  290. package/src/recyclerview/LayoutCommitObserver.tsx +74 -0
  291. package/src/recyclerview/RecyclerView.tsx +178 -89
  292. package/src/recyclerview/RecyclerViewContextProvider.ts +53 -7
  293. package/src/recyclerview/RecyclerViewManager.ts +176 -97
  294. package/src/recyclerview/RecyclerViewProps.ts +2 -1
  295. package/src/recyclerview/RenderStackManager.ts +317 -0
  296. package/src/recyclerview/ViewHolder.tsx +13 -6
  297. package/src/recyclerview/ViewHolderCollection.tsx +45 -16
  298. package/src/recyclerview/components/ScrollAnchor.tsx +24 -11
  299. package/src/recyclerview/components/StickyHeaders.tsx +70 -58
  300. package/src/recyclerview/helpers/ConsecutiveNumbers.ts +2 -2
  301. package/src/recyclerview/helpers/EngagedIndicesTracker.ts +135 -25
  302. package/src/recyclerview/helpers/RenderTimeTracker.ts +42 -0
  303. package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
  304. package/src/recyclerview/hooks/useBoundDetection.ts +74 -25
  305. package/src/recyclerview/hooks/useLayoutState.ts +15 -6
  306. package/src/recyclerview/hooks/useMappingHelper.ts +20 -0
  307. package/src/recyclerview/hooks/useOnLoad.ts +11 -10
  308. package/src/recyclerview/hooks/useRecyclerViewController.tsx +380 -241
  309. package/src/recyclerview/hooks/useRecyclerViewManager.ts +13 -1
  310. package/src/recyclerview/hooks/useRecyclingState.ts +11 -7
  311. package/src/recyclerview/hooks/useSecondaryProps.tsx +12 -7
  312. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +73 -0
  313. package/src/recyclerview/hooks/useUnmountFlag.ts +1 -0
  314. package/src/recyclerview/layout-managers/GridLayoutManager.ts +68 -27
  315. package/src/recyclerview/layout-managers/LayoutManager.ts +116 -42
  316. package/src/recyclerview/layout-managers/LinearLayoutManager.ts +12 -8
  317. package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +34 -13
  318. package/src/recyclerview/utils/componentUtils.ts +1 -1
  319. package/src/recyclerview/utils/findVisibleIndex.ts +1 -2
  320. package/src/recyclerview/utils/measureLayout.ts +41 -2
  321. package/src/recyclerview/utils/measureLayout.web.ts +102 -0
  322. package/src/viewability/ViewToken.ts +2 -2
  323. package/src/viewability/ViewabilityHelper.ts +1 -1
  324. package/src/viewability/ViewabilityManager.ts +16 -9
  325. package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
  326. package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
  327. package/dist/recyclerview/RecycleKeyManager.js +0 -135
  328. package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
  329. package/src/recyclerview/RecycleKeyManager.ts +0 -185
@@ -1,5 +1,4 @@
1
- import { LayoutParams, RVDimension, RVLayoutInfo } from "./LayoutManager";
2
- import { RVLayoutManager } from "./LayoutManager";
1
+ import { LayoutParams, RVDimension, RVLayoutInfo, RVLayoutManager } from "./LayoutManager";
3
2
  /**
4
3
  * LinearLayoutManager implementation that arranges items in a single row or column.
5
4
  * Supports both horizontal and vertical layouts with dynamic item sizing.
@@ -1 +1 @@
1
- {"version":3,"file":"LinearLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LinearLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAS;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,OAAO,CAAkB;IAEjC,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,iCAAiC;IACjC,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAQzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAmB9C;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAgB/D;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAU5B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAa5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAsB7D"}
1
+ {"version":3,"file":"LinearLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LinearLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EAEZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAS;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,OAAO,CAAS;IAExB,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,iCAAiC;IACjC,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAQzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAmB9C;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAgB/D;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAU5B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAa5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAsB7D"}
@@ -35,7 +35,7 @@ var RVLinearLayoutManagerImpl = /** @class */ (function (_super) {
35
35
  if (oldBoundedSize !== this.boundedSize ||
36
36
  prevHorizontal !== this.horizontal) {
37
37
  if (this.layouts.length > 0) {
38
- //console.log("-----> recomputeLayouts", this.horizontal);
38
+ // console.log("-----> recomputeLayouts", this.horizontal);
39
39
  this.recomputeLayouts(0, this.layouts.length - 1);
40
40
  this.requiresRepaint = true;
41
41
  }
@@ -99,7 +99,7 @@ var RVLinearLayoutManagerImpl = /** @class */ (function (_super) {
99
99
  ? lastLayout.x + lastLayout.width
100
100
  : this.boundedSize,
101
101
  height: this.horizontal
102
- ? (_b = (_a = this.tallestItem) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0
102
+ ? (_b = (_a = this.tallestItem) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : this.boundedSize
103
103
  : lastLayout.y + lastLayout.height,
104
104
  };
105
105
  };
@@ -136,7 +136,7 @@ var RVLinearLayoutManagerImpl = /** @class */ (function (_super) {
136
136
  targetMinHeight = 0;
137
137
  }
138
138
  try {
139
- //set minHeight for all layouts
139
+ // set minHeight for all layouts
140
140
  for (var _e = tslib_1.__values(this.layouts), _f = _e.next(); !_f.done; _f = _e.next()) {
141
141
  var layout = _f.value;
142
142
  if (targetMinHeight > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"LinearLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LinearLayoutManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinearLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LinearLayoutManager.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
11
11
  private columnHeights;
12
12
  /** Current column index for sequential placement */
13
13
  private currentColumn;
14
+ /** If there's a span change for masonry layout, we need to recompute all the widths */
15
+ private fullRelayoutRequired;
14
16
  constructor(params: LayoutParams, previousLayoutManager?: RVLayoutManager);
15
17
  /**
16
18
  * Updates layout parameters and triggers recomputation if necessary.
@@ -22,13 +24,18 @@ export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
22
24
  * @param layoutInfo Array of layout information for items (real measurements)
23
25
  * @param itemCount Total number of items in the list
24
26
  */
25
- processLayoutInfo(layoutInfo: RVLayoutInfo[], itemCount: number): void;
27
+ processLayoutInfo(layoutInfo: RVLayoutInfo[], itemCount: number): 0 | undefined;
26
28
  /**
27
29
  * Estimates layout dimensions for an item at the given index.
28
30
  * Can be called by base class if estimate is required.
29
31
  * @param index Index of the item to estimate layout for
30
32
  */
31
33
  estimateLayout(index: number): void;
34
+ /**
35
+ * Handles span change for an item.
36
+ * @param index Index of the item
37
+ */
38
+ handleSpanChange(index: number): void;
32
39
  /**
33
40
  * Returns the total size of the layout area.
34
41
  * @returns RVDimension containing width and height of the layout
@@ -47,6 +54,7 @@ export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
47
54
  * @returns Width of the item
48
55
  */
49
56
  private getWidth;
57
+ private updateAllWidths;
50
58
  /**
51
59
  * Places an item sequentially in the next available position.
52
60
  * @param layout Layout information for the item
@@ -1 +1 @@
1
- {"version":3,"file":"MasonryLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAW;IAChC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAa;gBAEtB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAOzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY;IAyBvC;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAY/D;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAW5B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAY5B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgC5D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAKhB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA0CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CA8BnC"}
1
+ {"version":3,"file":"MasonryLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAW;IAChC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAK;IAE1B,uFAAuF;IACvF,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAOzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY;IAqBvC;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAmB/D;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAW5B;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAI9B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAY5B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiC5D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA0CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CA8BnC"}
@@ -11,14 +11,15 @@ var LayoutManager_1 = require("./LayoutManager");
11
11
  var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
12
12
  tslib_1.__extends(RVMasonryLayoutManagerImpl, _super);
13
13
  function RVMasonryLayoutManagerImpl(params, previousLayoutManager) {
14
- var _this = this;
15
14
  var _a;
16
- _this = _super.call(this, params, previousLayoutManager) || this;
15
+ var _this = _super.call(this, params, previousLayoutManager) || this;
17
16
  /** Current column index for sequential placement */
18
17
  _this.currentColumn = 0;
18
+ /** If there's a span change for masonry layout, we need to recompute all the widths */
19
+ _this.fullRelayoutRequired = false;
19
20
  _this.boundedSize = params.windowSize.width;
20
- _this.optimizeItemArrangement = (_a = params.optimizeItemArrangement) !== null && _a !== void 0 ? _a : false;
21
- _this.columnHeights = Array(_this.maxColumns).fill(0);
21
+ _this.optimizeItemArrangement = params.optimizeItemArrangement;
22
+ _this.columnHeights = (_a = _this.columnHeights) !== null && _a !== void 0 ? _a : Array(_this.maxColumns).fill(0);
22
23
  return _this;
23
24
  }
24
25
  /**
@@ -34,13 +35,9 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
34
35
  prevOptimizeItemArrangement !== params.optimizeItemArrangement) {
35
36
  this.boundedSize = params.windowSize.width;
36
37
  if (this.layouts.length > 0) {
37
- //console.log("-----> recomputeLayouts");
38
- //update all widths
39
- for (var i = 0; i < this.layouts.length; i++) {
40
- this.layouts[i].width = this.getWidth(i);
41
- this.layouts[i].minHeight = undefined;
42
- }
43
- //TODO: Optimize masonry in general
38
+ // console.log("-----> recomputeLayouts");
39
+ // update all widths
40
+ this.updateAllWidths();
44
41
  this.recomputeLayouts(0, this.layouts.length - 1);
45
42
  this.requiresRepaint = true;
46
43
  }
@@ -72,6 +69,12 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
72
69
  }
73
70
  finally { if (e_1) throw e_1.error; }
74
71
  }
72
+ // TODO: Can be optimized
73
+ if (this.fullRelayoutRequired) {
74
+ this.updateAllWidths();
75
+ this.fullRelayoutRequired = false;
76
+ return 0;
77
+ }
75
78
  };
76
79
  /**
77
80
  * Estimates layout dimensions for an item at the given index.
@@ -86,6 +89,13 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
86
89
  layout.isWidthMeasured = true;
87
90
  layout.enforcedWidth = true;
88
91
  };
92
+ /**
93
+ * Handles span change for an item.
94
+ * @param index Index of the item
95
+ */
96
+ RVMasonryLayoutManagerImpl.prototype.handleSpanChange = function (index) {
97
+ this.fullRelayoutRequired = true;
98
+ };
89
99
  /**
90
100
  * Returns the total size of the layout area.
91
101
  * @returns RVDimension containing width and height of the layout
@@ -107,7 +117,6 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
107
117
  * @param endIndex Ending index of items to recompute
108
118
  */
109
119
  RVMasonryLayoutManagerImpl.prototype.recomputeLayouts = function (startIndex, endIndex) {
110
- var _a;
111
120
  // Reset column heights if starting from the beginning
112
121
  if (startIndex === 0) {
113
122
  this.columnHeights = Array(this.maxColumns).fill(0);
@@ -121,7 +130,8 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
121
130
  var itemCount = this.layouts.length;
122
131
  for (var i = startIndex; i < itemCount; i++) {
123
132
  var layout = this.getLayout(i);
124
- var span = (_a = this.getSpanSizeInfo(i).span) !== null && _a !== void 0 ? _a : 1;
133
+ // Skip tracking span because we're not changing widths
134
+ var span = this.getSpan(i, true);
125
135
  if (this.optimizeItemArrangement) {
126
136
  if (span === 1) {
127
137
  // For single column items, place in the shortest column
@@ -144,9 +154,13 @@ var RVMasonryLayoutManagerImpl = /** @class */ (function (_super) {
144
154
  * @returns Width of the item
145
155
  */
146
156
  RVMasonryLayoutManagerImpl.prototype.getWidth = function (index) {
147
- var _a;
148
- var span = (_a = this.getSpanSizeInfo(index).span) !== null && _a !== void 0 ? _a : 1;
149
- return (this.boundedSize / this.maxColumns) * span;
157
+ return (this.boundedSize / this.maxColumns) * this.getSpan(index);
158
+ };
159
+ RVMasonryLayoutManagerImpl.prototype.updateAllWidths = function () {
160
+ for (var i = 0; i < this.layouts.length; i++) {
161
+ this.layouts[i].width = this.getWidth(i);
162
+ this.layouts[i].minHeight = undefined;
163
+ }
150
164
  };
151
165
  /**
152
166
  * Places an item sequentially in the next available position.
@@ -1 +1 @@
1
- {"version":3,"file":"MasonryLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MasonryLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.adjustOffsetForRTL = void 0;
3
+ exports.adjustOffsetForRTL = adjustOffsetForRTL;
4
4
  /**
5
5
  * Adjusts the scroll offset for Right-to-Left (RTL) layouts.
6
6
  * offset it flipped when RTL is enabled.
@@ -14,5 +14,4 @@ exports.adjustOffsetForRTL = void 0;
14
14
  function adjustOffsetForRTL(offset, contentSize, windowSize) {
15
15
  return contentSize - offset - windowSize;
16
16
  }
17
- exports.adjustOffsetForRTL = adjustOffsetForRTL;
18
17
  //# sourceMappingURL=adjustOffsetForRTL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adjustOffsetForRTL.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/adjustOffsetForRTL.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAChC,MAAc,EACd,WAAmB,EACnB,UAAkB;IAElB,OAAO,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAC3C,CAAC;AAND,gDAMC"}
1
+ {"version":3,"file":"adjustOffsetForRTL.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/adjustOffsetForRTL.ts"],"names":[],"mappings":";;AAUA,gDAMC;AAhBD;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAChC,MAAc,EACd,WAAmB,EACnB,UAAkB;IAElB,OAAO,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAC3C,CAAC"}
@@ -15,5 +15,5 @@ import React from "react";
15
15
  * // With a pre-rendered element
16
16
  * getValidComponent(<MyComponent />)
17
17
  */
18
- export declare const getValidComponent: (component: React.ComponentType<any> | React.ReactElement | null | undefined) => React.ReactElement | null;
18
+ export declare const getValidComponent: (component: React.ComponentType | React.ReactElement | null | undefined) => React.ReactElement | null;
19
19
  //# sourceMappingURL=componentUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentUtils.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,YAAY,GAAG,IAAI,GAAG,SAAS,KAC1E,MAAM,YAAY,GAAG,IAOvB,CAAC"}
1
+ {"version":3,"file":"componentUtils.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,KACrE,KAAK,CAAC,YAAY,GAAG,IAOvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/componentUtils.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAE1B;;;;;;;;;;;;;;;GAeG;AACI,IAAM,iBAAiB,GAAG,UAC/B,SAA2E;IAE3E,IAAI,eAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;QACnC,OAAO,SAAS,CAAC;KAClB;SAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QAC1C,OAAO,eAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KACvC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
1
+ {"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/componentUtils.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAE1B;;;;;;;;;;;;;;;GAeG;AACI,IAAM,iBAAiB,GAAG,UAC/B,SAAsE;IAEtE,IAAI,eAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QAC3C,OAAO,eAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"findVisibleIndex.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/findVisibleIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AA2D5D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER"}
1
+ {"version":3,"file":"findVisibleIndex.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/findVisibleIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AA0D5D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findLastVisibleIndex = exports.findFirstVisibleIndex = void 0;
3
+ exports.findFirstVisibleIndex = findFirstVisibleIndex;
4
+ exports.findLastVisibleIndex = findLastVisibleIndex;
4
5
  /**
5
6
  * A helper function to perform binary search for the first or last visible index.
6
7
  * This function efficiently finds items that are visible within a viewport by using
@@ -26,10 +27,9 @@ function binarySearchVisibleIndex(layouts, threshold, isSortedByX, findFirst) {
26
27
  // Check visibility based on the sorting criteria
27
28
  var position = isSortedByX ? layout.x : layout.y;
28
29
  var size = isSortedByX ? layout.width : layout.height;
29
- //TODO: Will this find item bigger than viewport
30
30
  if (findFirst) {
31
31
  // Logic for finding the first visible index
32
- if (position >= threshold || position + size >= threshold) {
32
+ if (position >= threshold || position + size > threshold) {
33
33
  // Potential visible index found, continue searching left for earlier visible items
34
34
  visibleIndex = mid;
35
35
  right = mid - 1;
@@ -64,7 +64,6 @@ function binarySearchVisibleIndex(layouts, threshold, isSortedByX, findFirst) {
64
64
  function findFirstVisibleIndex(layouts, threshold, isSortedByX) {
65
65
  return binarySearchVisibleIndex(layouts, threshold, isSortedByX, true);
66
66
  }
67
- exports.findFirstVisibleIndex = findFirstVisibleIndex;
68
67
  /**
69
68
  * Finds the last visible index in a sorted array of RVLayout objects.
70
69
  * This is a wrapper around binarySearchVisibleIndex that specifically finds
@@ -78,5 +77,4 @@ exports.findFirstVisibleIndex = findFirstVisibleIndex;
78
77
  function findLastVisibleIndex(layouts, threshold, isSortedByX) {
79
78
  return binarySearchVisibleIndex(layouts, threshold, isSortedByX, false);
80
79
  }
81
- exports.findLastVisibleIndex = findLastVisibleIndex;
82
80
  //# sourceMappingURL=findVisibleIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findVisibleIndex.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/findVisibleIndex.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;GAcG;AACH,SAAS,wBAAwB,CAC/B,OAAmB,EACnB,SAAiB,EACjB,WAAoB,EACpB,SAAkB;IAElB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,OAAO,IAAI,IAAI,KAAK,EAAE;QACpB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5B,iDAAiD;QACjD,IAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,IAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAExD,gDAAgD;QAChD,IAAI,SAAS,EAAE;YACb,4CAA4C;YAC5C,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,GAAG,IAAI,IAAI,SAAS,EAAE;gBACzD,mFAAmF;gBACnF,YAAY,GAAG,GAAG,CAAC;gBACnB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,6CAA6C;gBAC7C,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;aAChB;SACF;aAAM,IAAI,QAAQ,IAAI,SAAS,EAAE;YAChC,kFAAkF;YAClF,YAAY,GAAG,GAAG,CAAC;YACnB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;SAChB;aAAM;YACL,4CAA4C;YAC5C,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;SACjB;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,OAAmB,EACnB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC;AAND,sDAMC;AAED;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAClC,OAAmB,EACnB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AAND,oDAMC"}
1
+ {"version":3,"file":"findVisibleIndex.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/findVisibleIndex.ts"],"names":[],"mappings":";;AAoEA,sDAMC;AAYD,oDAMC;AA1FD;;;;;;;;;;;;;;GAcG;AACH,SAAS,wBAAwB,CAC/B,OAAmB,EACnB,SAAiB,EACjB,WAAoB,EACpB,SAAkB;IAElB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;QACrB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5B,iDAAiD;QACjD,IAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,IAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAExD,IAAI,SAAS,EAAE,CAAC;YACd,4CAA4C;YAC5C,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;gBACzD,mFAAmF;gBACnF,YAAY,GAAG,GAAG,CAAC;gBACnB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,kFAAkF;YAClF,YAAY,GAAG,GAAG,CAAC;YACnB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,OAAmB,EACnB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAClC,OAAmB,EACnB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC"}
@@ -5,34 +5,6 @@ interface Layout {
5
5
  width: number;
6
6
  height: number;
7
7
  }
8
- /**
9
- * Measures the layout of a view relative to itselft.
10
- * Using measure wasn't returing accurate values but this workaround does.
11
- * Returns the x, y coordinates and dimensions of the view.
12
- *
13
- * @param view - The React Native View component to measure
14
- * @returns An object containing x, y, width, and height measurements
15
- */
16
- export declare function measureLayout(view: View, oldLayout: Layout | undefined): {
17
- x: number;
18
- y: number;
19
- width: number;
20
- height: number;
21
- };
22
- /**
23
- * Measures the layout of a view relative to another view.
24
- * Useful for measuring positions relative to a specific reference view.
25
- *
26
- * @param view - The React Native View component to measure
27
- * @param relativeTo - The reference view to measure against
28
- * @returns An object containing x, y, width, and height measurements
29
- */
30
- export declare function measureLayoutRelative(view: View, relativeTo: View, oldLayout: Layout | undefined): {
31
- x: number;
32
- y: number;
33
- width: number;
34
- height: number;
35
- };
36
8
  /**
37
9
  * Checks if two dimension values are not equal, with a small tolerance.
38
10
  * Used to handle floating-point precision issues in layout measurements.
@@ -52,5 +24,29 @@ export declare function areDimensionsNotEqual(value1: number, value2: number): b
52
24
  */
53
25
  export declare function areDimensionsEqual(value1: number, value2: number): boolean;
54
26
  export declare function roundOffPixel(value: number): number;
27
+ /**
28
+ * Specific method for easier mocking
29
+ * Measures the layout of parent of RecyclerView
30
+ * Returns the x, y coordinates and dimensions of the view.
31
+ * @param view - The React Native View component to measure
32
+ * @returns An object containing x, y, width, and height measurements
33
+ */
34
+ export declare function measureParentSize(view: View): Layout;
35
+ /**
36
+ * Specific method for easier mocking
37
+ * Measures the layout of child container of RecyclerView
38
+ * @param childContainerView
39
+ * @param parentView
40
+ * @returns
41
+ */
42
+ export declare function measureFirstChildLayout(childContainerView: View, parentView: View): Layout;
43
+ /**
44
+ * Specific method for easier mocking
45
+ * Measures the layout of items of RecyclerView
46
+ * @param item
47
+ * @param oldLayout
48
+ * @returns
49
+ */
50
+ export declare function measureItemLayout(item: View, oldLayout: Layout | undefined): Layout;
55
51
  export {};
56
52
  //# sourceMappingURL=measureLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"measureLayout.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;;;;;EAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS;;;;;EAmB9B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"measureLayout.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAkDD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,IAAI,EACxB,UAAU,EAAE,IAAI,GACf,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAER"}
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.roundOffPixel = exports.areDimensionsEqual = exports.areDimensionsNotEqual = exports.measureLayoutRelative = exports.measureLayout = void 0;
3
+ exports.areDimensionsNotEqual = areDimensionsNotEqual;
4
+ exports.areDimensionsEqual = areDimensionsEqual;
5
+ exports.roundOffPixel = roundOffPixel;
6
+ exports.measureParentSize = measureParentSize;
7
+ exports.measureFirstChildLayout = measureFirstChildLayout;
8
+ exports.measureItemLayout = measureItemLayout;
4
9
  var react_native_1 = require("react-native");
5
10
  /**
6
11
  * Measures the layout of a view relative to itselft.
@@ -17,7 +22,6 @@ function measureLayout(view, oldLayout) {
17
22
  // return layout;
18
23
  return measureLayoutRelative(view, view, oldLayout);
19
24
  }
20
- exports.measureLayout = measureLayout;
21
25
  /**
22
26
  * Measures the layout of a view relative to another view.
23
27
  * Useful for measuring positions relative to a specific reference view.
@@ -44,7 +48,6 @@ function measureLayoutRelative(view, relativeTo, oldLayout) {
44
48
  }
45
49
  return layout;
46
50
  }
47
- exports.measureLayoutRelative = measureLayoutRelative;
48
51
  /**
49
52
  * Checks if two dimension values are not equal, with a small tolerance.
50
53
  * Used to handle floating-point precision issues in layout measurements.
@@ -56,7 +59,6 @@ exports.measureLayoutRelative = measureLayoutRelative;
56
59
  function areDimensionsNotEqual(value1, value2) {
57
60
  return !areDimensionsEqual(value1, value2);
58
61
  }
59
- exports.areDimensionsNotEqual = areDimensionsNotEqual;
60
62
  /**
61
63
  * Checks if two dimension values are equal, with a small tolerance.
62
64
  * Used to handle floating-point precision issues in layout measurements.
@@ -69,9 +71,37 @@ function areDimensionsEqual(value1, value2) {
69
71
  return (Math.abs(react_native_1.PixelRatio.getPixelSizeForLayoutSize(value1) -
70
72
  react_native_1.PixelRatio.getPixelSizeForLayoutSize(value2)) <= 1);
71
73
  }
72
- exports.areDimensionsEqual = areDimensionsEqual;
73
74
  function roundOffPixel(value) {
74
75
  return react_native_1.PixelRatio.roundToNearestPixel(value);
75
76
  }
76
- exports.roundOffPixel = roundOffPixel;
77
+ /**
78
+ * Specific method for easier mocking
79
+ * Measures the layout of parent of RecyclerView
80
+ * Returns the x, y coordinates and dimensions of the view.
81
+ * @param view - The React Native View component to measure
82
+ * @returns An object containing x, y, width, and height measurements
83
+ */
84
+ function measureParentSize(view) {
85
+ return measureLayout(view, undefined);
86
+ }
87
+ /**
88
+ * Specific method for easier mocking
89
+ * Measures the layout of child container of RecyclerView
90
+ * @param childContainerView
91
+ * @param parentView
92
+ * @returns
93
+ */
94
+ function measureFirstChildLayout(childContainerView, parentView) {
95
+ return measureLayoutRelative(childContainerView, parentView, undefined);
96
+ }
97
+ /**
98
+ * Specific method for easier mocking
99
+ * Measures the layout of items of RecyclerView
100
+ * @param item
101
+ * @param oldLayout
102
+ * @returns
103
+ */
104
+ function measureItemLayout(item, oldLayout) {
105
+ return measureLayout(item, oldLayout);
106
+ }
77
107
  //# sourceMappingURL=measureLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"measureLayout.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAShD;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,IAAU,EAAE,SAA6B;IACrE,wDAAwD;IACxD,8CAA8C;IAC9C,gDAAgD;IAChD,iBAAiB;IACjB,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAND,sCAMC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,IAAU,EACV,UAAgB,EAChB,SAA6B;IAE7B,IAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;QACjD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE;QACb,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;YACrD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;SAChC;QACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;YACvD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;SAClC;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAtBD,sDAsBC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAFD,sDAEC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,CACL,IAAI,CAAC,GAAG,CACN,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;QAC1C,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAC/C,IAAI,CAAC,CACP,CAAC;AACJ,CAAC;AAPD,gDAOC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,yBAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"measureLayout.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":";;AAiEA,sDAEC;AAUD,gDAOC;AAED,sCAEC;AASD,8CAEC;AASD,0DAKC;AASD,8CAKC;AA/HD,6CAAgD;AAShD;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAU,EAAE,SAA6B;IAC9D,wDAAwD;IACxD,8CAA8C;IAC9C,gDAAgD;IAChD,iBAAiB;IACjB,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC5B,IAAU,EACV,UAAgB,EAChB,SAA6B;IAE7B,IAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;QACjD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,CACL,IAAI,CAAC,GAAG,CACN,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;QAC1C,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAC/C,IAAI,CAAC,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,yBAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,kBAAwB,EACxB,UAAgB;IAEhB,OAAO,qBAAqB,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,IAAU,EACV,SAA6B;IAE7B,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,29 @@
1
+ interface Layout {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ }
7
+ /**
8
+ * Checks if two dimension values are not equal, with a small tolerance.
9
+ */
10
+ export declare function areDimensionsNotEqual(value1: number, value2: number): boolean;
11
+ /**
12
+ * Checks if two dimension values are equal, with a small tolerance.
13
+ */
14
+ export declare function areDimensionsEqual(value1: number, value2: number): boolean;
15
+ export declare function roundOffPixel(value: number): number;
16
+ /**
17
+ * Measures the layout of parent of RecyclerView
18
+ */
19
+ export declare function measureParentSize(view: Element): Layout;
20
+ /**
21
+ * Measures the layout of child container of RecyclerView
22
+ */
23
+ export declare function measureFirstChildLayout(childContainerView: Element, parentView: Element): Layout;
24
+ /**
25
+ * Measures the layout of items of RecyclerView
26
+ */
27
+ export declare function measureItemLayout(item: Element, oldLayout: Layout | undefined): Layout;
28
+ export {};
29
+ //# sourceMappingURL=measureLayout.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureLayout.web.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.web.ts"],"names":[],"mappings":"AAAA,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,OAAO,EAC3B,UAAU,EAAE,OAAO,GAClB,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAkBR"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.areDimensionsNotEqual = areDimensionsNotEqual;
4
+ exports.areDimensionsEqual = areDimensionsEqual;
5
+ exports.roundOffPixel = roundOffPixel;
6
+ exports.measureParentSize = measureParentSize;
7
+ exports.measureFirstChildLayout = measureFirstChildLayout;
8
+ exports.measureItemLayout = measureItemLayout;
9
+ /**
10
+ * Gets scroll offsets from up to 3 parent elements
11
+ */
12
+ function getScrollOffsets(element, stopAt) {
13
+ var _a, _b;
14
+ var scrollX = 0;
15
+ var scrollY = 0;
16
+ var currentElement = element;
17
+ // Only check up to 3 parent elements
18
+ while (currentElement && currentElement !== stopAt) {
19
+ var htmlElement = currentElement;
20
+ scrollX += (_a = htmlElement.scrollLeft) !== null && _a !== void 0 ? _a : 0;
21
+ scrollY += (_b = htmlElement.scrollTop) !== null && _b !== void 0 ? _b : 0;
22
+ currentElement = currentElement.parentElement;
23
+ }
24
+ return { scrollX: scrollX, scrollY: scrollY };
25
+ }
26
+ /**
27
+ * Checks if two dimension values are not equal, with a small tolerance.
28
+ */
29
+ function areDimensionsNotEqual(value1, value2) {
30
+ return !areDimensionsEqual(value1, value2);
31
+ }
32
+ /**
33
+ * Checks if two dimension values are equal, with a small tolerance.
34
+ */
35
+ function areDimensionsEqual(value1, value2) {
36
+ return Math.abs(value1 - value2) <= 1;
37
+ }
38
+ function roundOffPixel(value) {
39
+ return value;
40
+ }
41
+ /**
42
+ * Measures the layout of parent of RecyclerView
43
+ */
44
+ function measureParentSize(view) {
45
+ return {
46
+ x: 0,
47
+ y: 0,
48
+ width: view.clientWidth,
49
+ height: view.clientHeight,
50
+ };
51
+ }
52
+ /**
53
+ * Measures the layout of child container of RecyclerView
54
+ */
55
+ function measureFirstChildLayout(childContainerView, parentView) {
56
+ var childRect = childContainerView.getBoundingClientRect();
57
+ var parentRect = parentView.getBoundingClientRect();
58
+ // Get scroll offsets for child container (max 3 parents)
59
+ var scrollOffsets = getScrollOffsets(childContainerView, parentView);
60
+ return {
61
+ x: childRect.left - parentRect.left + scrollOffsets.scrollX,
62
+ y: childRect.top - parentRect.top + scrollOffsets.scrollY,
63
+ width: roundOffPixel(childRect.width),
64
+ height: roundOffPixel(childRect.height),
65
+ };
66
+ }
67
+ /**
68
+ * Measures the layout of items of RecyclerView
69
+ */
70
+ function measureItemLayout(item, oldLayout) {
71
+ var layout = {
72
+ x: 0,
73
+ y: 0,
74
+ width: item.clientWidth,
75
+ height: item.clientHeight,
76
+ };
77
+ if (oldLayout) {
78
+ if (areDimensionsEqual(layout.width, oldLayout.width)) {
79
+ layout.width = oldLayout.width;
80
+ }
81
+ if (areDimensionsEqual(layout.height, oldLayout.height)) {
82
+ layout.height = oldLayout.height;
83
+ }
84
+ }
85
+ return layout;
86
+ }
87
+ //# sourceMappingURL=measureLayout.web.js.map