@react-native-ohos/flash-list 1.8.3 → 2.1.1-rc.1

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 (455) hide show
  1. package/LICENSE +1 -1
  2. package/README.OpenSource +1 -1
  3. package/dist/AnimatedFlashList.d.ts +4 -28
  4. package/dist/AnimatedFlashList.d.ts.map +1 -1
  5. package/dist/AnimatedFlashList.js +5 -30
  6. package/dist/AnimatedFlashList.js.map +1 -1
  7. package/dist/FlashList.d.ts +1 -179
  8. package/dist/FlashList.d.ts.map +1 -1
  9. package/dist/FlashList.js +1 -599
  10. package/dist/FlashList.js.map +1 -1
  11. package/dist/FlashListProps.d.ts +285 -278
  12. package/dist/FlashListProps.d.ts.map +1 -1
  13. package/dist/FlashListProps.js +5 -31
  14. package/dist/FlashListProps.js.map +1 -1
  15. package/dist/FlashListRef.d.ts +305 -0
  16. package/dist/FlashListRef.d.ts.map +1 -0
  17. package/dist/FlashListRef.js +2 -0
  18. package/dist/FlashListRef.js.map +1 -0
  19. package/dist/benchmark/AutoScrollHelper.d.ts +17 -40
  20. package/dist/benchmark/AutoScrollHelper.d.ts.map +1 -1
  21. package/dist/benchmark/AutoScrollHelper.js +59 -90
  22. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  23. package/dist/benchmark/JSFPSMonitor.d.ts +22 -45
  24. package/dist/benchmark/JSFPSMonitor.d.ts.map +1 -1
  25. package/dist/benchmark/JSFPSMonitor.js +59 -87
  26. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  27. package/dist/benchmark/roundToDecimalPlaces.d.ts +1 -24
  28. package/dist/benchmark/roundToDecimalPlaces.d.ts.map +1 -1
  29. package/dist/benchmark/roundToDecimalPlaces.js +4 -31
  30. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  31. package/dist/benchmark/useBenchmark.d.ts +40 -57
  32. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  33. package/dist/benchmark/useBenchmark.js +119 -189
  34. package/dist/benchmark/useBenchmark.js.map +1 -1
  35. package/dist/benchmark/useDataMultiplier.d.ts +8 -31
  36. package/dist/benchmark/useDataMultiplier.d.ts.map +1 -1
  37. package/dist/benchmark/useDataMultiplier.js +19 -47
  38. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  39. package/dist/benchmark/useFlatListBenchmark.d.ts +14 -35
  40. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  41. package/dist/benchmark/useFlatListBenchmark.js +92 -122
  42. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  43. package/dist/errors/ErrorMessages.d.ts +16 -0
  44. package/dist/errors/ErrorMessages.d.ts.map +1 -0
  45. package/dist/errors/ErrorMessages.js +16 -0
  46. package/dist/errors/ErrorMessages.js.map +1 -0
  47. package/dist/errors/WarningMessages.d.ts +6 -0
  48. package/dist/errors/WarningMessages.d.ts.map +1 -0
  49. package/dist/errors/WarningMessages.js +7 -0
  50. package/dist/errors/WarningMessages.js.map +1 -0
  51. package/dist/index.d.ts +15 -36
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +19 -54
  54. package/dist/index.js.map +1 -1
  55. package/dist/isNewArch.d.ts +2 -0
  56. package/dist/isNewArch.d.ts.map +1 -0
  57. package/dist/isNewArch.js +22 -0
  58. package/dist/isNewArch.js.map +1 -0
  59. package/dist/native/config/PlatformHelper.android.d.ts +6 -48
  60. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  61. package/dist/native/config/PlatformHelper.android.js +6 -45
  62. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  63. package/dist/native/config/PlatformHelper.d.ts +6 -48
  64. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  65. package/dist/native/config/PlatformHelper.harmony.d.ts +29 -48
  66. package/dist/native/config/PlatformHelper.harmony.d.ts.map +1 -1
  67. package/dist/native/config/PlatformHelper.harmony.js +29 -44
  68. package/dist/native/config/PlatformHelper.harmony.js.map +1 -1
  69. package/dist/native/config/PlatformHelper.ios.d.ts +6 -48
  70. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  71. package/dist/native/config/PlatformHelper.ios.js +6 -44
  72. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  73. package/dist/native/config/PlatformHelper.js +6 -45
  74. package/dist/native/config/PlatformHelper.js.map +1 -1
  75. package/dist/native/config/PlatformHelper.web.d.ts +6 -49
  76. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  77. package/dist/native/config/PlatformHelper.web.js +6 -47
  78. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  79. package/dist/recyclerview/LayoutCommitObserver.d.ts +12 -0
  80. package/dist/recyclerview/LayoutCommitObserver.d.ts.map +1 -0
  81. package/dist/recyclerview/LayoutCommitObserver.js +58 -0
  82. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -0
  83. package/dist/recyclerview/RecyclerView.d.ts +13 -0
  84. package/dist/recyclerview/RecyclerView.d.ts.map +1 -0
  85. package/dist/recyclerview/RecyclerView.js +368 -0
  86. package/dist/recyclerview/RecyclerView.js.map +1 -0
  87. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +46 -0
  88. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -0
  89. package/dist/recyclerview/RecyclerViewContextProvider.js +10 -0
  90. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -0
  91. package/dist/recyclerview/RecyclerViewManager.d.ts +78 -0
  92. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -0
  93. package/dist/recyclerview/RecyclerViewManager.js +343 -0
  94. package/dist/recyclerview/RecyclerViewManager.js.map +1 -0
  95. package/dist/recyclerview/RecyclerViewProps.d.ts +2 -0
  96. package/dist/recyclerview/RecyclerViewProps.d.ts.map +1 -0
  97. package/dist/recyclerview/RecyclerViewProps.js +2 -0
  98. package/dist/recyclerview/RecyclerViewProps.js.map +1 -0
  99. package/dist/recyclerview/RenderStackManager.d.ts +86 -0
  100. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  101. package/dist/recyclerview/RenderStackManager.js +252 -0
  102. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  103. package/dist/recyclerview/ViewHolder.d.ts +45 -0
  104. package/dist/recyclerview/ViewHolder.d.ts.map +1 -0
  105. package/dist/recyclerview/ViewHolder.js +94 -0
  106. package/dist/recyclerview/ViewHolder.js.map +1 -0
  107. package/dist/recyclerview/ViewHolderCollection.d.ts +63 -0
  108. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -0
  109. package/dist/recyclerview/ViewHolderCollection.js +87 -0
  110. package/dist/recyclerview/ViewHolderCollection.js.map +1 -0
  111. package/dist/recyclerview/components/CompatScroller.d.ts +7 -0
  112. package/dist/recyclerview/components/CompatScroller.d.ts.map +1 -0
  113. package/dist/recyclerview/components/CompatScroller.js +7 -0
  114. package/dist/recyclerview/components/CompatScroller.js.map +1 -0
  115. package/dist/recyclerview/components/CompatView.d.ts +7 -0
  116. package/dist/recyclerview/components/CompatView.d.ts.map +1 -0
  117. package/dist/recyclerview/components/CompatView.js +7 -0
  118. package/dist/recyclerview/components/CompatView.js.map +1 -0
  119. package/dist/recyclerview/components/ScrollAnchor.d.ts +29 -0
  120. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -0
  121. package/dist/recyclerview/components/ScrollAnchor.js +33 -0
  122. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -0
  123. package/dist/recyclerview/components/StickyHeaders.d.ts +38 -0
  124. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -0
  125. package/dist/recyclerview/components/StickyHeaders.js +112 -0
  126. package/dist/recyclerview/components/StickyHeaders.js.map +1 -0
  127. package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts +51 -0
  128. package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts.map +1 -0
  129. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +95 -0
  130. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -0
  131. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +105 -0
  132. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -0
  133. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +202 -0
  134. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -0
  135. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +14 -0
  136. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
  137. package/dist/recyclerview/helpers/RenderTimeTracker.js +44 -0
  138. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
  139. package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
  140. package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
  141. package/dist/recyclerview/helpers/VelocityTracker.js +64 -0
  142. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
  143. package/dist/recyclerview/hooks/useBoundDetection.d.ts +17 -0
  144. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -0
  145. package/dist/recyclerview/hooks/useBoundDetection.js +132 -0
  146. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -0
  147. package/dist/recyclerview/hooks/useLayoutState.d.ts +14 -0
  148. package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -0
  149. package/dist/recyclerview/hooks/useLayoutState.js +38 -0
  150. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -0
  151. package/dist/recyclerview/hooks/useMappingHelper.d.ts +9 -0
  152. package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -0
  153. package/dist/recyclerview/hooks/useMappingHelper.js +15 -0
  154. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -0
  155. package/dist/recyclerview/hooks/useOnLoad.d.ts +25 -0
  156. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -0
  157. package/dist/recyclerview/hooks/useOnLoad.js +67 -0
  158. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -0
  159. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +28 -0
  160. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -0
  161. package/dist/recyclerview/hooks/useRecyclerViewController.js +507 -0
  162. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -0
  163. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +8 -0
  164. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -0
  165. package/dist/recyclerview/hooks/useRecyclerViewManager.js +32 -0
  166. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -0
  167. package/dist/recyclerview/hooks/useRecyclingState.d.ts +18 -0
  168. package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -0
  169. package/dist/recyclerview/hooks/useRecyclingState.js +49 -0
  170. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -0
  171. package/dist/recyclerview/hooks/useSecondaryProps.d.ts +27 -0
  172. package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -0
  173. package/dist/recyclerview/hooks/useSecondaryProps.js +90 -0
  174. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -0
  175. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +15 -0
  176. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -0
  177. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +58 -0
  178. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -0
  179. package/dist/recyclerview/hooks/useUnmountFlag.d.ts +10 -0
  180. package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -0
  181. package/dist/recyclerview/hooks/useUnmountFlag.js +25 -0
  182. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -0
  183. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +79 -0
  184. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -0
  185. package/dist/recyclerview/layout-managers/GridLayoutManager.js +221 -0
  186. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -0
  187. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +296 -0
  188. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -0
  189. package/dist/recyclerview/layout-managers/LayoutManager.js +279 -0
  190. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -0
  191. package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts +51 -0
  192. package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts.map +1 -0
  193. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +151 -0
  194. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -0
  195. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +81 -0
  196. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -0
  197. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +269 -0
  198. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -0
  199. package/dist/recyclerview/utils/adjustOffsetForRTL.d.ts +12 -0
  200. package/dist/recyclerview/utils/adjustOffsetForRTL.d.ts.map +1 -0
  201. package/dist/recyclerview/utils/adjustOffsetForRTL.js +14 -0
  202. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -0
  203. package/dist/recyclerview/utils/componentUtils.d.ts +19 -0
  204. package/dist/recyclerview/utils/componentUtils.d.ts.map +1 -0
  205. package/dist/recyclerview/utils/componentUtils.js +27 -0
  206. package/dist/recyclerview/utils/componentUtils.js.map +1 -0
  207. package/dist/recyclerview/utils/findVisibleIndex.d.ts +24 -0
  208. package/dist/recyclerview/utils/findVisibleIndex.d.ts.map +1 -0
  209. package/dist/recyclerview/utils/findVisibleIndex.js +76 -0
  210. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -0
  211. package/dist/recyclerview/utils/measureLayout.d.ts +52 -0
  212. package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -0
  213. package/dist/recyclerview/utils/measureLayout.js +99 -0
  214. package/dist/recyclerview/utils/measureLayout.js.map +1 -0
  215. package/dist/recyclerview/utils/measureLayout.web.d.ts +29 -0
  216. package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -0
  217. package/dist/recyclerview/utils/measureLayout.web.js +79 -0
  218. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -0
  219. package/dist/recyclerview/viewability/ViewToken.d.ts +8 -0
  220. package/dist/recyclerview/viewability/ViewToken.d.ts.map +1 -0
  221. package/dist/recyclerview/viewability/ViewToken.js +2 -0
  222. package/dist/recyclerview/viewability/ViewToken.js.map +1 -0
  223. package/dist/recyclerview/viewability/ViewabilityHelper.d.ts +26 -0
  224. package/dist/recyclerview/viewability/ViewabilityHelper.d.ts.map +1 -0
  225. package/dist/recyclerview/viewability/ViewabilityHelper.js +98 -0
  226. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -0
  227. package/dist/recyclerview/viewability/ViewabilityManager.d.ts +25 -0
  228. package/dist/recyclerview/viewability/ViewabilityManager.d.ts.map +1 -0
  229. package/dist/recyclerview/viewability/ViewabilityManager.js +94 -0
  230. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -0
  231. package/dist/tsconfig.tsbuildinfo +1 -1
  232. package/dist/utils/AverageWindow.d.ts +33 -43
  233. package/dist/utils/AverageWindow.d.ts.map +1 -1
  234. package/dist/utils/AverageWindow.js +66 -71
  235. package/dist/utils/AverageWindow.js.map +1 -1
  236. package/jestSetup.js +23 -37
  237. package/package.json +15 -24
  238. package/src/AnimatedFlashList.ts +2 -25
  239. package/src/FlashList.ts +1 -0
  240. package/src/FlashListProps.ts +109 -100
  241. package/src/FlashListRef.ts +320 -0
  242. package/src/benchmark/AutoScrollHelper.ts +0 -24
  243. package/src/benchmark/JSFPSMonitor.ts +2 -26
  244. package/src/benchmark/roundToDecimalPlaces.ts +0 -24
  245. package/src/benchmark/useBenchmark.ts +59 -105
  246. package/src/benchmark/useDataMultiplier.ts +0 -24
  247. package/src/benchmark/useFlatListBenchmark.ts +43 -32
  248. package/src/errors/ErrorMessages.ts +26 -0
  249. package/src/errors/WarningMessages.ts +9 -0
  250. package/src/index.ts +18 -46
  251. package/src/isNewArch.ts +25 -0
  252. package/src/native/config/PlatformHelper.android.ts +3 -49
  253. package/src/native/config/PlatformHelper.harmony.ts +3 -24
  254. package/src/native/config/PlatformHelper.ios.ts +3 -48
  255. package/src/native/config/PlatformHelper.ts +3 -49
  256. package/src/native/config/PlatformHelper.web.ts +4 -55
  257. package/src/recyclerview/LayoutCommitObserver.tsx +74 -0
  258. package/src/recyclerview/RecyclerView.tsx +616 -0
  259. package/src/recyclerview/RecyclerViewContextProvider.ts +65 -0
  260. package/src/recyclerview/RecyclerViewManager.ts +461 -0
  261. package/src/recyclerview/RecyclerViewProps.ts +1 -0
  262. package/src/recyclerview/RenderStackManager.ts +317 -0
  263. package/src/recyclerview/ViewHolder.tsx +180 -0
  264. package/src/recyclerview/ViewHolderCollection.tsx +193 -0
  265. package/src/recyclerview/components/CompatScroller.ts +9 -0
  266. package/src/recyclerview/components/CompatView.ts +9 -0
  267. package/src/recyclerview/components/ScrollAnchor.tsx +66 -0
  268. package/src/recyclerview/components/StickyHeaders.tsx +222 -0
  269. package/src/recyclerview/helpers/ConsecutiveNumbers.ts +120 -0
  270. package/src/recyclerview/helpers/EngagedIndicesTracker.ts +301 -0
  271. package/src/recyclerview/helpers/RenderTimeTracker.ts +50 -0
  272. package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
  273. package/src/recyclerview/hooks/useBoundDetection.ts +176 -0
  274. package/src/recyclerview/hooks/useLayoutState.ts +55 -0
  275. package/src/recyclerview/hooks/useMappingHelper.ts +20 -0
  276. package/src/recyclerview/hooks/useOnLoad.ts +80 -0
  277. package/src/recyclerview/hooks/useRecyclerViewController.tsx +633 -0
  278. package/src/recyclerview/hooks/useRecyclerViewManager.ts +42 -0
  279. package/src/recyclerview/hooks/useRecyclingState.ts +67 -0
  280. package/src/recyclerview/hooks/useSecondaryProps.tsx +124 -0
  281. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +73 -0
  282. package/src/recyclerview/hooks/useUnmountFlag.ts +27 -0
  283. package/src/recyclerview/layout-managers/GridLayoutManager.ts +256 -0
  284. package/src/recyclerview/layout-managers/LayoutManager.ts +568 -0
  285. package/src/recyclerview/layout-managers/LinearLayoutManager.ts +171 -0
  286. package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +323 -0
  287. package/src/recyclerview/utils/adjustOffsetForRTL.ts +17 -0
  288. package/src/recyclerview/utils/componentUtils.ts +28 -0
  289. package/src/recyclerview/utils/findVisibleIndex.ts +93 -0
  290. package/src/recyclerview/utils/measureLayout.ts +128 -0
  291. package/src/recyclerview/utils/measureLayout.web.ts +102 -0
  292. package/src/recyclerview/viewability/ViewToken.ts +7 -0
  293. package/src/{viewability → recyclerview/viewability}/ViewabilityHelper.ts +8 -33
  294. package/src/{viewability → recyclerview/viewability}/ViewabilityManager.ts +23 -46
  295. package/src/utils/AverageWindow.ts +33 -24
  296. package/dist/GridLayoutProviderWithProps.d.ts +0 -65
  297. package/dist/GridLayoutProviderWithProps.d.ts.map +0 -1
  298. package/dist/GridLayoutProviderWithProps.js +0 -138
  299. package/dist/GridLayoutProviderWithProps.js.map +0 -1
  300. package/dist/MasonryFlashList.d.ts +0 -74
  301. package/dist/MasonryFlashList.d.ts.map +0 -1
  302. package/dist/MasonryFlashList.js +0 -275
  303. package/dist/MasonryFlashList.js.map +0 -1
  304. package/dist/PureComponentWrapper.d.ts +0 -45
  305. package/dist/PureComponentWrapper.d.ts.map +0 -1
  306. package/dist/PureComponentWrapper.js +0 -60
  307. package/dist/PureComponentWrapper.js.map +0 -1
  308. package/dist/benchmark/useBlankAreaTracker.d.ts +0 -57
  309. package/dist/benchmark/useBlankAreaTracker.d.ts.map +0 -1
  310. package/dist/benchmark/useBlankAreaTracker.js +0 -90
  311. package/dist/benchmark/useBlankAreaTracker.js.map +0 -1
  312. package/dist/errors/CustomError.d.ts +0 -31
  313. package/dist/errors/CustomError.d.ts.map +0 -1
  314. package/dist/errors/CustomError.js +0 -37
  315. package/dist/errors/CustomError.js.map +0 -1
  316. package/dist/errors/ExceptionList.d.ts +0 -47
  317. package/dist/errors/ExceptionList.d.ts.map +0 -1
  318. package/dist/errors/ExceptionList.js +0 -49
  319. package/dist/errors/ExceptionList.js.map +0 -1
  320. package/dist/errors/Warnings.d.ts +0 -32
  321. package/dist/errors/Warnings.d.ts.map +0 -1
  322. package/dist/errors/Warnings.js +0 -36
  323. package/dist/errors/Warnings.js.map +0 -1
  324. package/dist/fabric/AutoLayoutNativeComponent.d.ts +0 -42
  325. package/dist/fabric/AutoLayoutNativeComponent.d.ts.map +0 -1
  326. package/dist/fabric/AutoLayoutNativeComponent.js +0 -29
  327. package/dist/fabric/AutoLayoutNativeComponent.js.map +0 -1
  328. package/dist/fabric/CellContainerNativeComponent.d.ts +0 -31
  329. package/dist/fabric/CellContainerNativeComponent.d.ts.map +0 -1
  330. package/dist/fabric/CellContainerNativeComponent.js +0 -29
  331. package/dist/fabric/CellContainerNativeComponent.js.map +0 -1
  332. package/dist/native/auto-layout/AutoLayoutView.d.ts +0 -45
  333. package/dist/native/auto-layout/AutoLayoutView.d.ts.map +0 -1
  334. package/dist/native/auto-layout/AutoLayoutView.js +0 -71
  335. package/dist/native/auto-layout/AutoLayoutView.js.map +0 -1
  336. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts +0 -27
  337. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts.map +0 -1
  338. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js +0 -29
  339. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js.map +0 -1
  340. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts +0 -28
  341. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts.map +0 -1
  342. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.d.ts +0 -27
  343. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.d.ts.map +0 -1
  344. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.js +0 -29
  345. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.js.map +0 -1
  346. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts +0 -27
  347. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts.map +0 -1
  348. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js +0 -29
  349. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js.map +0 -1
  350. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js +0 -29
  351. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js.map +0 -1
  352. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +0 -39
  353. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +0 -1
  354. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js +0 -26
  355. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js.map +0 -1
  356. package/dist/native/cell-container/CellContainer.android.d.ts +0 -29
  357. package/dist/native/cell-container/CellContainer.android.d.ts.map +0 -1
  358. package/dist/native/cell-container/CellContainer.android.js +0 -32
  359. package/dist/native/cell-container/CellContainer.android.js.map +0 -1
  360. package/dist/native/cell-container/CellContainer.d.ts +0 -31
  361. package/dist/native/cell-container/CellContainer.d.ts.map +0 -1
  362. package/dist/native/cell-container/CellContainer.harmony.d.ts +0 -29
  363. package/dist/native/cell-container/CellContainer.harmony.d.ts.map +0 -1
  364. package/dist/native/cell-container/CellContainer.harmony.js +0 -32
  365. package/dist/native/cell-container/CellContainer.harmony.js.map +0 -1
  366. package/dist/native/cell-container/CellContainer.ios.d.ts +0 -29
  367. package/dist/native/cell-container/CellContainer.ios.d.ts.map +0 -1
  368. package/dist/native/cell-container/CellContainer.ios.js +0 -32
  369. package/dist/native/cell-container/CellContainer.ios.js.map +0 -1
  370. package/dist/native/cell-container/CellContainer.js +0 -34
  371. package/dist/native/cell-container/CellContainer.js.map +0 -1
  372. package/dist/native/cell-container/CellContainer.web.d.ts +0 -30
  373. package/dist/native/cell-container/CellContainer.web.d.ts.map +0 -1
  374. package/dist/native/cell-container/CellContainer.web.js +0 -36
  375. package/dist/native/cell-container/CellContainer.web.js.map +0 -1
  376. package/dist/utils/ContentContainerUtils.d.ts +0 -50
  377. package/dist/utils/ContentContainerUtils.d.ts.map +0 -1
  378. package/dist/utils/ContentContainerUtils.js +0 -71
  379. package/dist/utils/ContentContainerUtils.js.map +0 -1
  380. package/dist/viewability/ViewToken.d.ts +0 -31
  381. package/dist/viewability/ViewToken.d.ts.map +0 -1
  382. package/dist/viewability/ViewToken.js +0 -26
  383. package/dist/viewability/ViewToken.js.map +0 -1
  384. package/dist/viewability/ViewabilityHelper.d.ts +0 -49
  385. package/dist/viewability/ViewabilityHelper.d.ts.map +0 -1
  386. package/dist/viewability/ViewabilityHelper.js +0 -130
  387. package/dist/viewability/ViewabilityHelper.js.map +0 -1
  388. package/dist/viewability/ViewabilityManager.d.ts +0 -48
  389. package/dist/viewability/ViewabilityManager.d.ts.map +0 -1
  390. package/dist/viewability/ViewabilityManager.js +0 -131
  391. package/dist/viewability/ViewabilityManager.js.map +0 -1
  392. package/harmony/flash_list/BuildProfile.ets +0 -17
  393. package/harmony/flash_list/LICENSE +0 -7
  394. package/harmony/flash_list/build-profile.json5 +0 -8
  395. package/harmony/flash_list/hvigorfile.ts +0 -1
  396. package/harmony/flash_list/index.ets +0 -27
  397. package/harmony/flash_list/obfuscation-rules.txt +0 -18
  398. package/harmony/flash_list/oh-package.json5 +0 -24
  399. package/harmony/flash_list/src/main/cpp/AutoLayoutNode.cpp +0 -63
  400. package/harmony/flash_list/src/main/cpp/AutoLayoutNode.h +0 -54
  401. package/harmony/flash_list/src/main/cpp/AutoLayoutShadow.cpp +0 -140
  402. package/harmony/flash_list/src/main/cpp/AutoLayoutShadow.h +0 -66
  403. package/harmony/flash_list/src/main/cpp/AutoLayoutViewComponentInstance.cpp +0 -208
  404. package/harmony/flash_list/src/main/cpp/AutoLayoutViewComponentInstance.h +0 -78
  405. package/harmony/flash_list/src/main/cpp/AutoLayoutViewEventEmitRequestHandler.h +0 -53
  406. package/harmony/flash_list/src/main/cpp/AutoLayoutViewJSIBinder.h +0 -50
  407. package/harmony/flash_list/src/main/cpp/CMakeLists.txt +0 -12
  408. package/harmony/flash_list/src/main/cpp/CellContainerComponentInstance.cpp +0 -80
  409. package/harmony/flash_list/src/main/cpp/CellContainerComponentInstance.h +0 -64
  410. package/harmony/flash_list/src/main/cpp/CellContainerJSIBinder.h +0 -39
  411. package/harmony/flash_list/src/main/cpp/ComponentDescriptors.h +0 -40
  412. package/harmony/flash_list/src/main/cpp/EventEmitters.cpp +0 -40
  413. package/harmony/flash_list/src/main/cpp/EventEmitters.h +0 -48
  414. package/harmony/flash_list/src/main/cpp/FlashListPackage.h +0 -85
  415. package/harmony/flash_list/src/main/cpp/FlashListStackNode.cpp +0 -87
  416. package/harmony/flash_list/src/main/cpp/FlashListStackNode.h +0 -57
  417. package/harmony/flash_list/src/main/cpp/Props.cpp +0 -52
  418. package/harmony/flash_list/src/main/cpp/Props.h +0 -64
  419. package/harmony/flash_list/src/main/cpp/ShadowNodes.cpp +0 -34
  420. package/harmony/flash_list/src/main/cpp/ShadowNodes.h +0 -48
  421. package/harmony/flash_list/src/main/ets/Logger.ets +0 -64
  422. package/harmony/flash_list/src/main/ets/RNAutoLayoutShadow.ets +0 -154
  423. package/harmony/flash_list/src/main/ets/RNAutoLayoutView.ets +0 -277
  424. package/harmony/flash_list/src/main/ets/RNCellContainer.ets +0 -113
  425. package/harmony/flash_list/src/main/module.json5 +0 -9
  426. package/harmony/flash_list/src/main/resources/base/element/color.json +0 -8
  427. package/harmony/flash_list/src/main/resources/base/element/string.json +0 -16
  428. package/harmony/flash_list/src/main/resources/base/media/icon.png +0 -0
  429. package/harmony/flash_list/src/main/resources/base/profile/main_pages.json +0 -5
  430. package/harmony/flash_list/src/main/resources/en_US/element/string.json +0 -16
  431. package/harmony/flash_list/src/main/resources/zh_CN/element/string.json +0 -16
  432. package/harmony/flash_list.har +0 -0
  433. package/src/FlashList.tsx +0 -949
  434. package/src/GridLayoutProviderWithProps.ts +0 -204
  435. package/src/MasonryFlashList.tsx +0 -499
  436. package/src/PureComponentWrapper.tsx +0 -65
  437. package/src/benchmark/useBlankAreaTracker.ts +0 -141
  438. package/src/errors/CustomError.ts +0 -34
  439. package/src/errors/ExceptionList.ts +0 -52
  440. package/src/errors/Warnings.ts +0 -39
  441. package/src/fabric/AutoLayoutNativeComponent.ts +0 -52
  442. package/src/fabric/CellContainerNativeComponent.ts +0 -35
  443. package/src/native/auto-layout/AutoLayoutView.tsx +0 -97
  444. package/src/native/auto-layout/AutoLayoutViewNativeComponent.android.ts +0 -31
  445. package/src/native/auto-layout/AutoLayoutViewNativeComponent.harmony.ts +0 -31
  446. package/src/native/auto-layout/AutoLayoutViewNativeComponent.ios.ts +0 -31
  447. package/src/native/auto-layout/AutoLayoutViewNativeComponent.ts +0 -31
  448. package/src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts +0 -41
  449. package/src/native/cell-container/CellContainer.android.ts +0 -31
  450. package/src/native/cell-container/CellContainer.harmony.ts +0 -31
  451. package/src/native/cell-container/CellContainer.ios.ts +0 -31
  452. package/src/native/cell-container/CellContainer.tsx +0 -38
  453. package/src/native/cell-container/CellContainer.web.tsx +0 -33
  454. package/src/utils/ContentContainerUtils.ts +0 -116
  455. package/src/viewability/ViewToken.ts +0 -31
@@ -1,32 +1,6 @@
1
- "use strict";
2
- /**
3
- * MIT License
4
- *
5
- * Copyright (C) 2024 Huawei Device Co., Ltd.
6
- *
7
- * Permission is hereby granted, free of charge, to any person obtaining a copy
8
- * of this software and associated documentation files (the "Software"), to deal
9
- * in the Software without restriction, including without limitation the rights
10
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- * copies of the Software, and to permit persons to whom the Software is
12
- * furnished to do so, subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be included in all
15
- * copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- * SOFTWARE.
24
- */
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.RenderTargetOptions = void 0;
27
- exports.RenderTargetOptions = {
28
- Cell: "Cell",
29
- StickyHeader: "StickyHeader",
30
- Measurement: "Measurement",
31
- };
1
+ export const RenderTargetOptions = {
2
+ Cell: "Cell",
3
+ StickyHeader: "StickyHeader",
4
+ Measurement: "Measurement",
5
+ };
32
6
  //# sourceMappingURL=FlashListProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlashListProps.js","sourceRoot":"","sources":["../src/FlashListProps.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;AA6BU,QAAA,mBAAmB,GAAiC;IAC/D,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAC3B,CAAC"}
1
+ {"version":3,"file":"FlashListProps.js","sourceRoot":"","sources":["../src/FlashListProps.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,mBAAmB,GAAiC;IAC/D,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAC3B,CAAC"}
@@ -0,0 +1,305 @@
1
+ import type { RVLayout } from "./recyclerview/layout-managers/LayoutManager";
2
+ import { RecyclerViewProps } from "./recyclerview/RecyclerViewProps";
3
+ import { CompatScroller } from "./recyclerview/components/CompatScroller";
4
+ /**
5
+ * Base parameters for scrolling to the edges of the list.
6
+ */
7
+ export interface ScrollToEdgeParams {
8
+ /** Whether the scroll should be animated */
9
+ animated?: boolean;
10
+ }
11
+ /**
12
+ * Parameters for scrolling to a specific position in the list.
13
+ * Extends ScrollToEdgeParams to include view positioning options.
14
+ */
15
+ export interface ScrollToParams extends ScrollToEdgeParams {
16
+ /** Position of the target item relative to the viewport (0 = top, 0.5 = center, 1 = bottom) */
17
+ viewPosition?: number;
18
+ /** Additional offset to apply after viewPosition calculation */
19
+ viewOffset?: number;
20
+ }
21
+ /**
22
+ * Parameters for scrolling to a specific offset in the list.
23
+ * Used when you want to scroll to an exact pixel position.
24
+ */
25
+ export interface ScrollToOffsetParams extends ScrollToParams {
26
+ /** The pixel offset to scroll to */
27
+ offset: number;
28
+ /**
29
+ * If true, the first item offset will not be added to the offset calculation.
30
+ * First offset represents header size or top padding.
31
+ */
32
+ skipFirstItemOffset?: boolean;
33
+ }
34
+ /**
35
+ * Parameters for scrolling to a specific index in the list.
36
+ * Used when you want to scroll to a specific item by its position in the data array.
37
+ */
38
+ export interface ScrollToIndexParams extends ScrollToParams {
39
+ /** The index of the item to scroll to */
40
+ index: number;
41
+ }
42
+ /**
43
+ * Parameters for scrolling to a specific item in the list.
44
+ * Used when you want to scroll to a specific item by its data value.
45
+ */
46
+ export interface ScrollToItemParams<T> extends ScrollToParams {
47
+ /** The item to scroll to */
48
+ item: T;
49
+ }
50
+ /**
51
+ * Interface for FlashList's ref object that provides imperative methods
52
+ * for controlling list behavior.
53
+ *
54
+ * Usage example:
55
+ * ```tsx
56
+ * const listRef = useRef<FlashListRef<ItemType>>(null);
57
+ *
58
+ * // Later in your component
59
+ * <FlashList
60
+ * ref={listRef}
61
+ * data={data}
62
+ * renderItem={renderItem}
63
+ * />
64
+ *
65
+ * // Somewhere else in your component
66
+ * listRef.current?.scrollToIndex({ index: 5, animated: true });
67
+ * ```
68
+ */
69
+ export interface FlashListRef<T> {
70
+ /**
71
+ * Get access to current props
72
+ */
73
+ props: RecyclerViewProps<T>;
74
+ /**
75
+ * Scrolls the list to a specific offset position.
76
+ *
77
+ * Use this method when you want precise control over the scroll position in pixels
78
+ * rather than by item index.
79
+ *
80
+ * @param params - Parameters for scrolling to offset
81
+ * @param params.offset - The pixel offset to scroll to
82
+ * @param params.animated - Whether the scroll should be animated (default: false)
83
+ * @param params.skipFirstItemOffset - If true, the first item offset (headers/padding)
84
+ * will not be included in calculation (default: true)
85
+ *
86
+ * @example
87
+ * // Scroll to 200px from the top/left
88
+ * listRef.current?.scrollToOffset({ offset: 200, animated: true });
89
+ */
90
+ scrollToOffset: (params: ScrollToOffsetParams) => void;
91
+ /**
92
+ * Makes the scroll indicators flash momentarily.
93
+ *
94
+ * Useful to indicate to users that there is more content to scroll.
95
+ *
96
+ * @example
97
+ * listRef.current?.flashScrollIndicators();
98
+ */
99
+ flashScrollIndicators: () => void;
100
+ /**
101
+ * Returns the underlying native scroll view reference.
102
+ *
103
+ * Use this when you need direct access to the native scroll component.
104
+ * This is generally not recommended for regular use.
105
+ *
106
+ * @returns The native scroll view reference
107
+ */
108
+ getNativeScrollRef: () => CompatScroller | null;
109
+ /**
110
+ * Returns a reference to the scroll responder.
111
+ *
112
+ * Useful for more advanced scroll handling and integrations.
113
+ *
114
+ * @returns The scroll responder
115
+ */
116
+ getScrollResponder: CompatScroller["getScrollResponder"];
117
+ /**
118
+ * Returns the underlying scrollable node.
119
+ *
120
+ * Primarily used for platform-specific integrations.
121
+ *
122
+ * @returns The scrollable node
123
+ */
124
+ getScrollableNode: () => any;
125
+ /**
126
+ * Scrolls to the end of the list.
127
+ *
128
+ * @param params - Optional parameters for scrolling
129
+ * @param params.animated - Whether the scroll should be animated (default: false)
130
+ *
131
+ * @example
132
+ * // Animate scroll to the end of the list
133
+ * listRef.current?.scrollToEnd({ animated: true });
134
+ */
135
+ scrollToEnd: (params?: ScrollToEdgeParams) => void;
136
+ /**
137
+ * Scrolls to the top (or start) of the list.
138
+ *
139
+ * @param params - Optional parameters for scrolling
140
+ * @param params.animated - Whether the scroll should be animated (default: false)
141
+ *
142
+ * @example
143
+ * // Smoothly scroll to the top
144
+ * listRef.current?.scrollToTop({ animated: true });
145
+ */
146
+ scrollToTop: (params?: ScrollToEdgeParams) => void;
147
+ /**
148
+ * Scrolls to a specific index in the list.
149
+ *
150
+ * This is the most common method to scroll to a particular item.
151
+ *
152
+ * @param params - Parameters for scrolling to index
153
+ * @param params.index - The index of the item to scroll to
154
+ * @param params.animated - Whether the scroll should be animated (default: false)
155
+ * @param params.viewPosition - Position of the item within the visible area:
156
+ * 0 = top/left, 0.5 = center, 1 = bottom/right (default: 0)
157
+ * @param params.viewOffset - Additional offset to apply after viewPosition calculation
158
+ *
159
+ * @returns A Promise that resolves when the scroll operation is complete
160
+ *
161
+ * @example
162
+ * // Scroll to the 5th item (index 4) and center it
163
+ * listRef.current?.scrollToIndex({
164
+ * index: 4,
165
+ * animated: true,
166
+ * viewPosition: 0.5
167
+ * });
168
+ */
169
+ scrollToIndex: (params: ScrollToIndexParams) => Promise<void>;
170
+ /**
171
+ * Scrolls to a specific item in the list.
172
+ *
173
+ * Similar to scrollToIndex, but works with the item reference instead of its index.
174
+ * Useful when you have a reference to an item but don't know its index.
175
+ *
176
+ * @param params - Parameters for scrolling to item
177
+ * @param params.item - The item object to scroll to
178
+ * @param params.animated - Whether the scroll should be animated (default: false)
179
+ * @param params.viewPosition - Position of the item within the visible area:
180
+ * 0 = top/left, 0.5 = center, 1 = bottom/right (default: 0)
181
+ * @param params.viewOffset - Additional offset to apply after viewPosition calculation
182
+ *
183
+ * @example
184
+ * // Scroll to a specific item
185
+ * const targetItem = data[10];
186
+ * listRef.current?.scrollToItem({
187
+ * item: targetItem,
188
+ * animated: true
189
+ * });
190
+ */
191
+ scrollToItem: (params: ScrollToItemParams<T>) => void;
192
+ /**
193
+ * Returns the offset of the first item (accounts for header/padding).
194
+ *
195
+ * Useful when implementing custom scroll behavior or calculating positions.
196
+ *
197
+ * @returns The pixel offset of the first item
198
+ */
199
+ getFirstItemOffset: () => number;
200
+ /**
201
+ * Returns the current viewport dimensions.
202
+ *
203
+ * @returns An object with width and height properties representing viewport size
204
+ */
205
+ getWindowSize: () => {
206
+ width: number;
207
+ height: number;
208
+ };
209
+ /**
210
+ * Returns the layout information for a specific item.
211
+ *
212
+ * Use this to get position and size information for an item at a given index.
213
+ *
214
+ * @param index - The index of the item to get layout information for
215
+ * @returns Layout information including x, y, width, and height
216
+ *
217
+ * @example
218
+ * const itemLayout = listRef.current?.getLayout(5);
219
+ * console.log(`Item 5 position: (${itemLayout.x}, ${itemLayout.y})`);
220
+ */
221
+ getLayout: (index: number) => RVLayout | undefined;
222
+ /**
223
+ * Returns the absolute last scroll offset.
224
+ *
225
+ * Useful for implementing custom scroll tracking functionality.
226
+ *
227
+ * @returns The last scroll offset in pixels
228
+ */
229
+ getAbsoluteLastScrollOffset: () => number;
230
+ /**
231
+ * Returns the dimensions of the child container.
232
+ *
233
+ * @returns An object with width and height properties
234
+ */
235
+ getChildContainerDimensions: () => {
236
+ width: number;
237
+ height: number;
238
+ };
239
+ /**
240
+ * Marks the list as having been interacted with.
241
+ *
242
+ * Call this method when you want to manually trigger the onViewableItemsChanged
243
+ * callback without an actual scroll event.
244
+ */
245
+ recordInteraction: () => void;
246
+ /**
247
+ * Returns the currently visible item indices.
248
+ *
249
+ * Use this to determine which items are currently visible to the user.
250
+ *
251
+ * @returns An object with startIndex and endIndex properties
252
+ *
253
+ * @example
254
+ * const { startIndex, endIndex } = listRef.current?.getVisibleIndices();
255
+ * console.log(`Visible items: ${startIndex} to ${endIndex}`);
256
+ */
257
+ computeVisibleIndices: () => {
258
+ startIndex: number;
259
+ endIndex: number;
260
+ };
261
+ /**
262
+ * Returns the index of the first visible item.
263
+ *
264
+ * Convenience method when you only need the first visible item.
265
+ *
266
+ * @returns The index of the first visible item
267
+ *
268
+ * @example
269
+ * const firstVisibleIndex = listRef.current?.getFirstVisibleIndex();
270
+ */
271
+ getFirstVisibleIndex: () => number;
272
+ /**
273
+ * Forces recalculation of viewable items (vieability callbacks).
274
+ *
275
+ * Call this after any operation that might affect item visibility but
276
+ * doesn't trigger a scroll event.
277
+ *
278
+ * @example
279
+ * // After manually changing item sizes
280
+ * listRef.current?.recomputeViewableItems();
281
+ */
282
+ recomputeViewableItems: () => void;
283
+ /**
284
+ * Disables item recycling in preparation for layout animations.
285
+ *
286
+ * Call this before performing layout animations to prevent visual glitches.
287
+ * Remember to reset disableRecycling after animations complete.
288
+ *
289
+ * @example
290
+ * // Before starting layout animations
291
+ * listRef.current?.prepareForLayoutAnimationRender();
292
+ */
293
+ prepareForLayoutAnimationRender: () => void;
294
+ /**
295
+ * Clears the layout cache on update.
296
+ * Call this when you want to clear the layout cache on update.
297
+ * Can be useful for carousals when orientation changes.
298
+ * This should be called before the render and not in an effect.
299
+ *
300
+ * @example
301
+ * listRef.current?.clearLayoutCacheOnUpdate();
302
+ */
303
+ clearLayoutCacheOnUpdate: () => void;
304
+ }
305
+ //# sourceMappingURL=FlashListRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListRef.d.ts","sourceRoot":"","sources":["../src/FlashListRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc;IAC3D,4BAA4B;IAC5B,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAEvD;;;;;;;OAOG;IACH,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAElC;;;;;;;OAOG;IACH,kBAAkB,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAEhD;;;;;;OAMG;IACH,kBAAkB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IAEzD;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,GAAG,CAAC;IAE7B;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEnD;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAEtD;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,MAAM,CAAC;IAEjC;;;;OAIG;IACH,aAAa,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvD;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,2BAA2B,EAAE,MAAM,MAAM,CAAC;IAE1C;;;;OAIG;IACH,2BAA2B,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAErE;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAE9B;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,MAAM;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtE;;;;;;;;;OASG;IACH,oBAAoB,EAAE,MAAM,MAAM,CAAC;IAEnC;;;;;;;;;OASG;IACH,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAEnC;;;;;;;;;OASG;IACH,+BAA+B,EAAE,MAAM,IAAI,CAAC;IAE5C;;;;;;;;OAQG;IACH,wBAAwB,EAAE,MAAM,IAAI,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FlashListRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListRef.js","sourceRoot":"","sources":["../src/FlashListRef.ts"],"names":[],"mappings":""}
@@ -1,41 +1,18 @@
1
- /**
2
- * MIT License
3
- *
4
- * Copyright (C) 2024 Huawei Device Co., Ltd.
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining a copy
7
- * of this software and associated documentation files (the "Software"), to deal
8
- * in the Software without restriction, including without limitation the rights
9
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- * copies of the Software, and to permit persons to whom the Software is
11
- * furnished to do so, subject to the following conditions:
12
- *
13
- * The above copyright notice and this permission notice shall be included in all
14
- * copies or substantial portions of the Software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- * SOFTWARE.
23
- */
24
- /**
25
- * This method can be used to trigger scroll events that can be forwarded to an element. Anything that implements scrollable can leverage this.
26
- * @param scroll The scrollable element
27
- * @param fromX The x offset to start from
28
- * @param fromY The y offset to start from
29
- * @param toX the x offset to end scroll at
30
- * @param toY the y offset to end scroll at
31
- * @param speedMultiplier the speed multiplier to use
32
- * @param cancellable can be used to cancel the scroll
33
- * @returns Promise that resolves when the scroll is complete
34
- */
35
- export declare function autoScroll(scroll: (x: number, y: number, animated: boolean) => void, fromX: number, fromY: number, toX: number, toY: number, speedMultiplier?: number, cancellable?: Cancellable): Promise<boolean>;
36
- export declare class Cancellable {
37
- cancel(): void;
38
- isCancelled(): boolean;
39
- _isCancelled: boolean;
40
- }
1
+ /**
2
+ * This method can be used to trigger scroll events that can be forwarded to an element. Anything that implements scrollable can leverage this.
3
+ * @param scroll The scrollable element
4
+ * @param fromX The x offset to start from
5
+ * @param fromY The y offset to start from
6
+ * @param toX the x offset to end scroll at
7
+ * @param toY the y offset to end scroll at
8
+ * @param speedMultiplier the speed multiplier to use
9
+ * @param cancellable can be used to cancel the scroll
10
+ * @returns Promise that resolves when the scroll is complete
11
+ */
12
+ export declare function autoScroll(scroll: (x: number, y: number, animated: boolean) => void, fromX: number, fromY: number, toX: number, toY: number, speedMultiplier?: number, cancellable?: Cancellable): Promise<boolean>;
13
+ export declare class Cancellable {
14
+ cancel(): void;
15
+ isCancelled(): boolean;
16
+ _isCancelled: boolean;
17
+ }
41
18
  //# sourceMappingURL=AutoScrollHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoScrollHelper.d.ts","sourceRoot":"","sources":["../../src/benchmark/AutoScrollHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,EACzD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,eAAe,SAAI,EACnB,WAAW,GAAE,WAA+B,GAC3C,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED,qBAAa,WAAW;IACf,MAAM;IAIN,WAAW,IAAI,OAAO;IAItB,YAAY,UAAS;CAC7B"}
1
+ {"version":3,"file":"AutoScrollHelper.d.ts","sourceRoot":"","sources":["../../src/benchmark/AutoScrollHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,EACzD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,eAAe,SAAI,EACnB,WAAW,GAAE,WAA+B,GAC3C,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED,qBAAa,WAAW;IACf,MAAM;IAIN,WAAW,IAAI,OAAO;IAItB,YAAY,UAAS;CAC7B"}
@@ -1,91 +1,60 @@
1
- "use strict";
2
- /**
3
- * MIT License
4
- *
5
- * Copyright (C) 2024 Huawei Device Co., Ltd.
6
- *
7
- * Permission is hereby granted, free of charge, to any person obtaining a copy
8
- * of this software and associated documentation files (the "Software"), to deal
9
- * in the Software without restriction, including without limitation the rights
10
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- * copies of the Software, and to permit persons to whom the Software is
12
- * furnished to do so, subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be included in all
15
- * copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- * SOFTWARE.
24
- */
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Cancellable = exports.autoScroll = void 0;
27
- /**
28
- * This method can be used to trigger scroll events that can be forwarded to an element. Anything that implements scrollable can leverage this.
29
- * @param scroll The scrollable element
30
- * @param fromX The x offset to start from
31
- * @param fromY The y offset to start from
32
- * @param toX the x offset to end scroll at
33
- * @param toY the y offset to end scroll at
34
- * @param speedMultiplier the speed multiplier to use
35
- * @param cancellable can be used to cancel the scroll
36
- * @returns Promise that resolves when the scroll is complete
37
- */
38
- function autoScroll(scroll, fromX, fromY, toX, toY, speedMultiplier, cancellable) {
39
- if (speedMultiplier === void 0) { speedMultiplier = 1; }
40
- if (cancellable === void 0) { cancellable = new Cancellable(); }
41
- return new Promise(function (resolve) {
42
- scroll(fromX, fromY, false);
43
- // Very fast scrolls on Android/iOS typically move content 7px every millisecond.
44
- var incrementPerMs = 7 * speedMultiplier;
45
- var directionMultiplierX = toX > fromX ? 1 : -1;
46
- var directionMultiplierY = toY > fromY ? 1 : -1;
47
- var comparatorX = toX > fromX ? Math.min : Math.max;
48
- var comparatorY = toY > fromY ? Math.min : Math.max;
49
- var startTime = Date.now();
50
- var startX = fromX;
51
- var startY = fromY;
52
- // Computes the number of pixels to scroll in the given time
53
- // Also invokes the scrollable to update the scroll position
54
- var animationLoop = function () {
55
- requestAnimationFrame(function () {
56
- if (cancellable.isCancelled()) {
57
- resolve(false);
58
- return;
59
- }
60
- var currentTime = Date.now();
61
- var timeElapsed = currentTime - startTime;
62
- var distanceToCover = incrementPerMs * timeElapsed;
63
- startX += distanceToCover * directionMultiplierX;
64
- startY += distanceToCover * directionMultiplierY;
65
- scroll(comparatorX(toX, startX), comparatorY(toY, startY), false);
66
- startTime = currentTime;
67
- if (comparatorX(toX, startX) !== toX ||
68
- comparatorY(toY, startY) !== toY) {
69
- return animationLoop();
70
- }
71
- resolve(true);
72
- });
73
- };
74
- animationLoop();
75
- });
76
- }
77
- exports.autoScroll = autoScroll;
78
- var Cancellable = /** @class */ (function () {
79
- function Cancellable() {
80
- this._isCancelled = false;
81
- }
82
- Cancellable.prototype.cancel = function () {
83
- this._isCancelled = true;
84
- };
85
- Cancellable.prototype.isCancelled = function () {
86
- return this._isCancelled;
87
- };
88
- return Cancellable;
89
- }());
90
- exports.Cancellable = Cancellable;
1
+ /**
2
+ * This method can be used to trigger scroll events that can be forwarded to an element. Anything that implements scrollable can leverage this.
3
+ * @param scroll The scrollable element
4
+ * @param fromX The x offset to start from
5
+ * @param fromY The y offset to start from
6
+ * @param toX the x offset to end scroll at
7
+ * @param toY the y offset to end scroll at
8
+ * @param speedMultiplier the speed multiplier to use
9
+ * @param cancellable can be used to cancel the scroll
10
+ * @returns Promise that resolves when the scroll is complete
11
+ */
12
+ export function autoScroll(scroll, fromX, fromY, toX, toY, speedMultiplier = 1, cancellable = new Cancellable()) {
13
+ return new Promise((resolve) => {
14
+ scroll(fromX, fromY, false);
15
+ // Very fast scrolls on Android/iOS typically move content 7px every millisecond.
16
+ const incrementPerMs = 7 * speedMultiplier;
17
+ const directionMultiplierX = toX > fromX ? 1 : -1;
18
+ const directionMultiplierY = toY > fromY ? 1 : -1;
19
+ const comparatorX = toX > fromX ? Math.min : Math.max;
20
+ const comparatorY = toY > fromY ? Math.min : Math.max;
21
+ let startTime = Date.now();
22
+ let startX = fromX;
23
+ let startY = fromY;
24
+ // Computes the number of pixels to scroll in the given time
25
+ // Also invokes the scrollable to update the scroll position
26
+ const animationLoop = () => {
27
+ requestAnimationFrame(() => {
28
+ if (cancellable.isCancelled()) {
29
+ resolve(false);
30
+ return;
31
+ }
32
+ const currentTime = Date.now();
33
+ const timeElapsed = currentTime - startTime;
34
+ const distanceToCover = incrementPerMs * timeElapsed;
35
+ startX += distanceToCover * directionMultiplierX;
36
+ startY += distanceToCover * directionMultiplierY;
37
+ scroll(comparatorX(toX, startX), comparatorY(toY, startY), false);
38
+ startTime = currentTime;
39
+ if (comparatorX(toX, startX) !== toX ||
40
+ comparatorY(toY, startY) !== toY) {
41
+ return animationLoop();
42
+ }
43
+ resolve(true);
44
+ });
45
+ };
46
+ animationLoop();
47
+ });
48
+ }
49
+ export class Cancellable {
50
+ constructor() {
51
+ this._isCancelled = false;
52
+ }
53
+ cancel() {
54
+ this._isCancelled = true;
55
+ }
56
+ isCancelled() {
57
+ return this._isCancelled;
58
+ }
59
+ }
91
60
  //# sourceMappingURL=AutoScrollHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoScrollHelper.js","sourceRoot":"","sources":["../../src/benchmark/AutoScrollHelper.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;AAEH;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CACxB,MAAyD,EACzD,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,eAAmB,EACnB,WAA4C;IAD5C,gCAAA,EAAA,mBAAmB;IACnB,4BAAA,EAAA,kBAA+B,WAAW,EAAE;IAE5C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,iFAAiF;QACjF,IAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC;QAC3C,IAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,IAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,4DAA4D;QAC5D,4DAA4D;QAC5D,IAAM,aAAa,GAAG;YACpB,qBAAqB,CAAC;gBACpB,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE;oBAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;iBACR;gBACD,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;gBAC5C,IAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;gBACrD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClE,SAAS,GAAG,WAAW,CAAC;gBACxB,IACE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG;oBAChC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,EAChC;oBACA,OAAO,aAAa,EAAE,CAAC;iBACxB;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AA9CD,gCA8CC;AAED;IAAA;QASS,iBAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IATQ,4BAAM,GAAb;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,iCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAGH,kBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,kCAAW"}
1
+ {"version":3,"file":"AutoScrollHelper.js","sourceRoot":"","sources":["../../src/benchmark/AutoScrollHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,MAAyD,EACzD,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,eAAe,GAAG,CAAC,EACnB,cAA2B,IAAI,WAAW,EAAE;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,iFAAiF;QACjF,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC;QAC3C,MAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,MAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,4DAA4D;QAC5D,4DAA4D;QAC5D,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,qBAAqB,CAAC,GAAG,EAAE;gBACzB,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;gBAC5C,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;gBACrD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClE,SAAS,GAAG,WAAW,CAAC;gBACxB,IACE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG;oBAChC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,EAChC,CAAC;oBACD,OAAO,aAAa,EAAE,CAAC;gBACzB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,WAAW;IAAxB;QASS,iBAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IATQ,MAAM;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CAGF"}