@react-native-ohos/flash-list 1.8.3-rc.5 → 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 (495) 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/__tests__/AverageWindow.test.d.ts +0 -2
  309. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  310. package/dist/__tests__/AverageWindow.test.js +0 -69
  311. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  312. package/dist/__tests__/ContentContainerUtils.test.d.ts +0 -2
  313. package/dist/__tests__/ContentContainerUtils.test.d.ts.map +0 -1
  314. package/dist/__tests__/ContentContainerUtils.test.js +0 -85
  315. package/dist/__tests__/ContentContainerUtils.test.js.map +0 -1
  316. package/dist/__tests__/FlashList.test.d.ts +0 -2
  317. package/dist/__tests__/FlashList.test.d.ts.map +0 -1
  318. package/dist/__tests__/FlashList.test.js +0 -792
  319. package/dist/__tests__/FlashList.test.js.map +0 -1
  320. package/dist/__tests__/GridLayoutProviderWithProps.test.d.ts +0 -2
  321. package/dist/__tests__/GridLayoutProviderWithProps.test.d.ts.map +0 -1
  322. package/dist/__tests__/GridLayoutProviderWithProps.test.js +0 -143
  323. package/dist/__tests__/GridLayoutProviderWithProps.test.js.map +0 -1
  324. package/dist/__tests__/MasonryFlashList.test.d.ts +0 -2
  325. package/dist/__tests__/MasonryFlashList.test.d.ts.map +0 -1
  326. package/dist/__tests__/MasonryFlashList.test.js +0 -254
  327. package/dist/__tests__/MasonryFlashList.test.js.map +0 -1
  328. package/dist/__tests__/PlatformHelper.web.test.d.ts +0 -2
  329. package/dist/__tests__/PlatformHelper.web.test.d.ts.map +0 -1
  330. package/dist/__tests__/PlatformHelper.web.test.js +0 -33
  331. package/dist/__tests__/PlatformHelper.web.test.js.map +0 -1
  332. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  333. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  334. package/dist/__tests__/ViewabilityHelper.test.js +0 -187
  335. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  336. package/dist/__tests__/helpers/mountFlashList.d.ts +0 -19
  337. package/dist/__tests__/helpers/mountFlashList.d.ts.map +0 -1
  338. package/dist/__tests__/helpers/mountFlashList.js +0 -44
  339. package/dist/__tests__/helpers/mountFlashList.js.map +0 -1
  340. package/dist/__tests__/helpers/mountMasonryFlashList.d.ts +0 -18
  341. package/dist/__tests__/helpers/mountMasonryFlashList.d.ts.map +0 -1
  342. package/dist/__tests__/helpers/mountMasonryFlashList.js +0 -49
  343. package/dist/__tests__/helpers/mountMasonryFlashList.js.map +0 -1
  344. package/dist/__tests__/useBlankAreaTracker.test.d.ts +0 -2
  345. package/dist/__tests__/useBlankAreaTracker.test.d.ts.map +0 -1
  346. package/dist/__tests__/useBlankAreaTracker.test.js +0 -177
  347. package/dist/__tests__/useBlankAreaTracker.test.js.map +0 -1
  348. package/dist/benchmark/useBlankAreaTracker.d.ts +0 -57
  349. package/dist/benchmark/useBlankAreaTracker.d.ts.map +0 -1
  350. package/dist/benchmark/useBlankAreaTracker.js +0 -90
  351. package/dist/benchmark/useBlankAreaTracker.js.map +0 -1
  352. package/dist/errors/CustomError.d.ts +0 -31
  353. package/dist/errors/CustomError.d.ts.map +0 -1
  354. package/dist/errors/CustomError.js +0 -37
  355. package/dist/errors/CustomError.js.map +0 -1
  356. package/dist/errors/ExceptionList.d.ts +0 -47
  357. package/dist/errors/ExceptionList.d.ts.map +0 -1
  358. package/dist/errors/ExceptionList.js +0 -49
  359. package/dist/errors/ExceptionList.js.map +0 -1
  360. package/dist/errors/Warnings.d.ts +0 -32
  361. package/dist/errors/Warnings.d.ts.map +0 -1
  362. package/dist/errors/Warnings.js +0 -36
  363. package/dist/errors/Warnings.js.map +0 -1
  364. package/dist/fabric/AutoLayoutNativeComponent.d.ts +0 -42
  365. package/dist/fabric/AutoLayoutNativeComponent.d.ts.map +0 -1
  366. package/dist/fabric/AutoLayoutNativeComponent.js +0 -29
  367. package/dist/fabric/AutoLayoutNativeComponent.js.map +0 -1
  368. package/dist/fabric/CellContainerNativeComponent.d.ts +0 -31
  369. package/dist/fabric/CellContainerNativeComponent.d.ts.map +0 -1
  370. package/dist/fabric/CellContainerNativeComponent.js +0 -29
  371. package/dist/fabric/CellContainerNativeComponent.js.map +0 -1
  372. package/dist/native/auto-layout/AutoLayoutView.d.ts +0 -45
  373. package/dist/native/auto-layout/AutoLayoutView.d.ts.map +0 -1
  374. package/dist/native/auto-layout/AutoLayoutView.js +0 -71
  375. package/dist/native/auto-layout/AutoLayoutView.js.map +0 -1
  376. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts +0 -27
  377. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts.map +0 -1
  378. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js +0 -29
  379. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js.map +0 -1
  380. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts +0 -28
  381. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts.map +0 -1
  382. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.d.ts +0 -27
  383. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.d.ts.map +0 -1
  384. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.js +0 -29
  385. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.js.map +0 -1
  386. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts +0 -27
  387. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts.map +0 -1
  388. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js +0 -29
  389. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js.map +0 -1
  390. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js +0 -29
  391. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js.map +0 -1
  392. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +0 -39
  393. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +0 -1
  394. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js +0 -26
  395. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js.map +0 -1
  396. package/dist/native/cell-container/CellContainer.android.d.ts +0 -29
  397. package/dist/native/cell-container/CellContainer.android.d.ts.map +0 -1
  398. package/dist/native/cell-container/CellContainer.android.js +0 -32
  399. package/dist/native/cell-container/CellContainer.android.js.map +0 -1
  400. package/dist/native/cell-container/CellContainer.d.ts +0 -31
  401. package/dist/native/cell-container/CellContainer.d.ts.map +0 -1
  402. package/dist/native/cell-container/CellContainer.harmony.d.ts +0 -29
  403. package/dist/native/cell-container/CellContainer.harmony.d.ts.map +0 -1
  404. package/dist/native/cell-container/CellContainer.harmony.js +0 -32
  405. package/dist/native/cell-container/CellContainer.harmony.js.map +0 -1
  406. package/dist/native/cell-container/CellContainer.ios.d.ts +0 -29
  407. package/dist/native/cell-container/CellContainer.ios.d.ts.map +0 -1
  408. package/dist/native/cell-container/CellContainer.ios.js +0 -32
  409. package/dist/native/cell-container/CellContainer.ios.js.map +0 -1
  410. package/dist/native/cell-container/CellContainer.js +0 -34
  411. package/dist/native/cell-container/CellContainer.js.map +0 -1
  412. package/dist/native/cell-container/CellContainer.web.d.ts +0 -30
  413. package/dist/native/cell-container/CellContainer.web.d.ts.map +0 -1
  414. package/dist/native/cell-container/CellContainer.web.js +0 -36
  415. package/dist/native/cell-container/CellContainer.web.js.map +0 -1
  416. package/dist/utils/ContentContainerUtils.d.ts +0 -50
  417. package/dist/utils/ContentContainerUtils.d.ts.map +0 -1
  418. package/dist/utils/ContentContainerUtils.js +0 -71
  419. package/dist/utils/ContentContainerUtils.js.map +0 -1
  420. package/dist/viewability/ViewToken.d.ts +0 -31
  421. package/dist/viewability/ViewToken.d.ts.map +0 -1
  422. package/dist/viewability/ViewToken.js +0 -26
  423. package/dist/viewability/ViewToken.js.map +0 -1
  424. package/dist/viewability/ViewabilityHelper.d.ts +0 -49
  425. package/dist/viewability/ViewabilityHelper.d.ts.map +0 -1
  426. package/dist/viewability/ViewabilityHelper.js +0 -130
  427. package/dist/viewability/ViewabilityHelper.js.map +0 -1
  428. package/dist/viewability/ViewabilityManager.d.ts +0 -48
  429. package/dist/viewability/ViewabilityManager.d.ts.map +0 -1
  430. package/dist/viewability/ViewabilityManager.js +0 -131
  431. package/dist/viewability/ViewabilityManager.js.map +0 -1
  432. package/harmony/flash_list/BuildProfile.ets +0 -17
  433. package/harmony/flash_list/LICENSE +0 -7
  434. package/harmony/flash_list/build-profile.json5 +0 -8
  435. package/harmony/flash_list/hvigorfile.ts +0 -1
  436. package/harmony/flash_list/index.ets +0 -27
  437. package/harmony/flash_list/obfuscation-rules.txt +0 -18
  438. package/harmony/flash_list/oh-package.json5 +0 -24
  439. package/harmony/flash_list/src/main/cpp/AutoLayoutNode.cpp +0 -63
  440. package/harmony/flash_list/src/main/cpp/AutoLayoutNode.h +0 -54
  441. package/harmony/flash_list/src/main/cpp/AutoLayoutShadow.cpp +0 -140
  442. package/harmony/flash_list/src/main/cpp/AutoLayoutShadow.h +0 -66
  443. package/harmony/flash_list/src/main/cpp/AutoLayoutViewComponentInstance.cpp +0 -208
  444. package/harmony/flash_list/src/main/cpp/AutoLayoutViewComponentInstance.h +0 -78
  445. package/harmony/flash_list/src/main/cpp/AutoLayoutViewEventEmitRequestHandler.h +0 -53
  446. package/harmony/flash_list/src/main/cpp/AutoLayoutViewJSIBinder.h +0 -50
  447. package/harmony/flash_list/src/main/cpp/CMakeLists.txt +0 -12
  448. package/harmony/flash_list/src/main/cpp/CellContainerComponentInstance.cpp +0 -80
  449. package/harmony/flash_list/src/main/cpp/CellContainerComponentInstance.h +0 -64
  450. package/harmony/flash_list/src/main/cpp/CellContainerJSIBinder.h +0 -39
  451. package/harmony/flash_list/src/main/cpp/ComponentDescriptors.h +0 -40
  452. package/harmony/flash_list/src/main/cpp/EventEmitters.cpp +0 -40
  453. package/harmony/flash_list/src/main/cpp/EventEmitters.h +0 -48
  454. package/harmony/flash_list/src/main/cpp/FlashListPackage.h +0 -85
  455. package/harmony/flash_list/src/main/cpp/FlashListStackNode.cpp +0 -87
  456. package/harmony/flash_list/src/main/cpp/FlashListStackNode.h +0 -57
  457. package/harmony/flash_list/src/main/cpp/Props.cpp +0 -52
  458. package/harmony/flash_list/src/main/cpp/Props.h +0 -64
  459. package/harmony/flash_list/src/main/cpp/ShadowNodes.cpp +0 -34
  460. package/harmony/flash_list/src/main/cpp/ShadowNodes.h +0 -48
  461. package/harmony/flash_list/src/main/ets/Logger.ets +0 -64
  462. package/harmony/flash_list/src/main/ets/RNAutoLayoutShadow.ets +0 -154
  463. package/harmony/flash_list/src/main/ets/RNAutoLayoutView.ets +0 -277
  464. package/harmony/flash_list/src/main/ets/RNCellContainer.ets +0 -113
  465. package/harmony/flash_list/src/main/module.json5 +0 -9
  466. package/harmony/flash_list/src/main/resources/base/element/color.json +0 -8
  467. package/harmony/flash_list/src/main/resources/base/element/string.json +0 -16
  468. package/harmony/flash_list/src/main/resources/base/media/icon.png +0 -0
  469. package/harmony/flash_list/src/main/resources/base/profile/main_pages.json +0 -5
  470. package/harmony/flash_list/src/main/resources/en_US/element/string.json +0 -16
  471. package/harmony/flash_list/src/main/resources/zh_CN/element/string.json +0 -16
  472. package/harmony/flash_list.har +0 -0
  473. package/src/FlashList.tsx +0 -949
  474. package/src/GridLayoutProviderWithProps.ts +0 -204
  475. package/src/MasonryFlashList.tsx +0 -499
  476. package/src/PureComponentWrapper.tsx +0 -65
  477. package/src/benchmark/useBlankAreaTracker.ts +0 -141
  478. package/src/errors/CustomError.ts +0 -34
  479. package/src/errors/ExceptionList.ts +0 -52
  480. package/src/errors/Warnings.ts +0 -39
  481. package/src/fabric/AutoLayoutNativeComponent.ts +0 -52
  482. package/src/fabric/CellContainerNativeComponent.ts +0 -35
  483. package/src/native/auto-layout/AutoLayoutView.tsx +0 -97
  484. package/src/native/auto-layout/AutoLayoutViewNativeComponent.android.ts +0 -31
  485. package/src/native/auto-layout/AutoLayoutViewNativeComponent.harmony.ts +0 -31
  486. package/src/native/auto-layout/AutoLayoutViewNativeComponent.ios.ts +0 -31
  487. package/src/native/auto-layout/AutoLayoutViewNativeComponent.ts +0 -31
  488. package/src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts +0 -41
  489. package/src/native/cell-container/CellContainer.android.ts +0 -31
  490. package/src/native/cell-container/CellContainer.harmony.ts +0 -31
  491. package/src/native/cell-container/CellContainer.ios.ts +0 -31
  492. package/src/native/cell-container/CellContainer.tsx +0 -38
  493. package/src/native/cell-container/CellContainer.web.tsx +0 -33
  494. package/src/utils/ContentContainerUtils.ts +0 -116
  495. package/src/viewability/ViewToken.ts +0 -31
@@ -1,190 +1,120 @@
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.getFormattedString = exports.useBenchmark = void 0;
27
- var tslib_1 = require("tslib");
28
- var react_1 = require("react");
29
- var AutoScrollHelper_1 = require("./AutoScrollHelper");
30
- var JSFPSMonitor_1 = require("./JSFPSMonitor");
31
- var roundToDecimalPlaces_1 = require("./roundToDecimalPlaces");
32
- var useBlankAreaTracker_1 = require("./useBlankAreaTracker");
33
- /**
34
- * Runs the benchmark on FlashList.
35
- * Response object has a formatted string that can be printed to the console or shown as an alert.
36
- * Result is posted to the callback method passed to the hook.
37
- */
38
- function useBenchmark(flashListRef, callback, params) {
39
- var _this = this;
40
- if (params === void 0) { params = {}; }
41
- var _a = tslib_1.__read((0, useBlankAreaTracker_1.useBlankAreaTracker)(flashListRef, undefined, { sumNegativeValues: params.sumNegativeBlankAreaValues, startDelayInMs: 0 }), 2), blankAreaResult = _a[0], blankAreaTracker = _a[1];
42
- (0, react_1.useEffect)(function () {
43
- var _a;
44
- var cancellable = new AutoScrollHelper_1.Cancellable();
45
- var suggestions = [];
46
- if (flashListRef.current) {
47
- if (!(Number((_a = flashListRef.current.props.data) === null || _a === void 0 ? void 0 : _a.length) > 0)) {
48
- throw new Error("Data is empty, cannot run benchmark");
49
- }
50
- }
51
- var cancelTimeout = setTimeout(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
52
- var jsFPSMonitor, i, jsProfilerResponse, result;
53
- return tslib_1.__generator(this, function (_a) {
54
- switch (_a.label) {
55
- case 0:
56
- jsFPSMonitor = new JSFPSMonitor_1.JSFPSMonitor();
57
- jsFPSMonitor.startTracking();
58
- i = 0;
59
- _a.label = 1;
60
- case 1:
61
- if (!(i < (params.repeatCount || 1))) return [3 /*break*/, 4];
62
- return [4 /*yield*/, runScrollBenchmark(flashListRef, cancellable, params.speedMultiplier || 1)];
63
- case 2:
64
- _a.sent();
65
- _a.label = 3;
66
- case 3:
67
- i++;
68
- return [3 /*break*/, 1];
69
- case 4:
70
- jsProfilerResponse = jsFPSMonitor.stopAndGetData();
71
- if (jsProfilerResponse.averageFPS < 35) {
72
- suggestions.push("Your average JS FPS is low. This can indicate that your components are doing too much work. Try to optimize your components and reduce re-renders if any");
73
- }
74
- computeSuggestions(flashListRef, suggestions);
75
- result = generateResult(jsProfilerResponse, blankAreaResult, suggestions, cancellable);
76
- if (!cancellable.isCancelled()) {
77
- result.formattedString = getFormattedString(result);
78
- }
79
- callback(result);
80
- return [2 /*return*/];
81
- }
82
- });
83
- }); }, params.startDelayInMs || 3000);
84
- return function () {
85
- clearTimeout(cancelTimeout);
86
- cancellable.cancel();
87
- };
88
- // eslint-disable-next-line react-hooks/exhaustive-deps
89
- }, []);
90
- return [blankAreaTracker];
91
- }
92
- exports.useBenchmark = useBenchmark;
93
- function getFormattedString(res) {
94
- var _a, _b, _c, _d, _e;
95
- return ("Results:\n\n" +
96
- "JS FPS: Avg: ".concat((_a = res.js) === null || _a === void 0 ? void 0 : _a.averageFPS, " | Min: ").concat((_b = res.js) === null || _b === void 0 ? void 0 : _b.minFPS, " | Max: ").concat((_c = res.js) === null || _c === void 0 ? void 0 : _c.maxFPS, "\n\n") +
97
- "".concat(res.blankArea
98
- ? "Blank Area: Max: ".concat((_d = res.blankArea) === null || _d === void 0 ? void 0 : _d.maxBlankArea, " Cumulative: ").concat((_e = res.blankArea) === null || _e === void 0 ? void 0 : _e.cumulativeBlankArea, "\n\n")
99
- : "") +
100
- "".concat(res.suggestions.length > 0
101
- ? "Suggestions:\n\n".concat(res.suggestions
102
- .map(function (value, index) { return "".concat(index + 1, ". ").concat(value); })
103
- .join("\n"))
104
- : ""));
105
- }
106
- exports.getFormattedString = getFormattedString;
107
- function generateResult(jsProfilerResponse, blankAreaResult, suggestions, cancellable) {
108
- return {
109
- js: jsProfilerResponse,
110
- blankArea: blankAreaResult.maxBlankArea >= 0
111
- ? {
112
- maxBlankArea: (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(blankAreaResult.maxBlankArea, 0),
113
- cumulativeBlankArea: (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(blankAreaResult.cumulativeBlankArea, 0),
114
- }
115
- : undefined,
116
- suggestions: suggestions,
117
- interrupted: cancellable.isCancelled(),
118
- };
119
- }
120
- /**
121
- * Scrolls to the end of the list and then back to the top
122
- */
123
- function runScrollBenchmark(flashListRef, cancellable, scrollSpeedMultiplier) {
124
- return tslib_1.__awaiter(this, void 0, void 0, function () {
125
- var horizontal_1, rlv, rlvSize, rlvContentSize, fromX, fromY, toX, toY, scrollNow;
126
- return tslib_1.__generator(this, function (_a) {
127
- switch (_a.label) {
128
- case 0:
129
- if (!flashListRef.current) return [3 /*break*/, 3];
130
- horizontal_1 = flashListRef.current.props.horizontal;
131
- rlv = flashListRef.current.recyclerlistview_unsafe;
132
- if (!rlv) return [3 /*break*/, 3];
133
- rlvSize = rlv.getRenderedSize();
134
- rlvContentSize = rlv.getContentDimension();
135
- fromX = 0;
136
- fromY = 0;
137
- toX = rlvContentSize.width - rlvSize.width;
138
- toY = rlvContentSize.height - rlvSize.height;
139
- scrollNow = function (x, y) {
140
- var _a;
141
- (_a = flashListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToOffset({
142
- offset: horizontal_1 ? x : y,
143
- animated: false,
144
- });
145
- };
146
- return [4 /*yield*/, (0, AutoScrollHelper_1.autoScroll)(scrollNow, fromX, fromY, toX, toY, scrollSpeedMultiplier, cancellable)];
147
- case 1:
148
- _a.sent();
149
- return [4 /*yield*/, (0, AutoScrollHelper_1.autoScroll)(scrollNow, toX, toY, fromX, fromY, scrollSpeedMultiplier, cancellable)];
150
- case 2:
151
- _a.sent();
152
- _a.label = 3;
153
- case 3: return [2 /*return*/];
154
- }
155
- });
156
- });
157
- }
158
- function computeSuggestions(flashListRef, suggestions) {
159
- var _a;
160
- if (flashListRef.current) {
161
- if (flashListRef.current.props.data.length < 200) {
162
- suggestions.push("Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.");
163
- }
164
- var distanceFromWindow = (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(flashListRef.current.firstItemOffset, 0);
165
- if ((flashListRef.current.props.estimatedFirstItemOffset || 0) !==
166
- distanceFromWindow) {
167
- suggestions.push("estimatedFirstItemOffset can be set to ".concat(distanceFromWindow));
168
- }
169
- var rlv_1 = flashListRef.current.recyclerlistview_unsafe;
170
- var horizontal_2 = flashListRef.current.props.horizontal;
171
- if (rlv_1) {
172
- var sizeArray = rlv_1.props.dataProvider
173
- .getAllData()
174
- .map(function (_, index) {
175
- var _a, _b, _c, _d;
176
- return horizontal_2
177
- ? ((_b = (_a = rlv_1.getLayout) === null || _a === void 0 ? void 0 : _a.call(rlv_1, index)) === null || _b === void 0 ? void 0 : _b.width) || 0
178
- : ((_d = (_c = rlv_1.getLayout) === null || _c === void 0 ? void 0 : _c.call(rlv_1, index)) === null || _d === void 0 ? void 0 : _d.height) || 0;
179
- });
180
- var averageSize = Math.round(sizeArray.reduce(function (prev, current) { return prev + current; }, 0) /
181
- sizeArray.length);
182
- if (Math.abs(averageSize -
183
- ((_a = flashListRef.current.props.estimatedItemSize) !== null && _a !== void 0 ? _a : flashListRef.current.state.layoutProvider
184
- .defaultEstimatedItemSize)) > 5) {
185
- suggestions.push("estimatedItemSize can be set to ".concat(averageSize));
186
- }
187
- }
188
- }
189
- }
1
+ import { useEffect, useState, useCallback, useRef } from "react";
2
+ import { ErrorMessages } from "../errors/ErrorMessages";
3
+ import { autoScroll, Cancellable } from "./AutoScrollHelper";
4
+ import { JSFPSMonitor } from "./JSFPSMonitor";
5
+ /**
6
+ * Runs the benchmark on FlashList.
7
+ * Response object has a formatted string that can be printed to the console or shown as an alert.
8
+ * Result is posted to the callback method passed to the hook.
9
+ */
10
+ export function useBenchmark(flashListRef, callback, params = {}) {
11
+ const [isBenchmarkRunning, setIsBenchmarkRunning] = useState(false);
12
+ const cancellableRef = useRef(null);
13
+ const startBenchmark = useCallback(() => {
14
+ var _a;
15
+ if (isBenchmarkRunning) {
16
+ return;
17
+ }
18
+ const cancellable = new Cancellable();
19
+ cancellableRef.current = cancellable;
20
+ const suggestions = [];
21
+ if (flashListRef.current) {
22
+ if (!(Number((_a = flashListRef.current.props.data) === null || _a === void 0 ? void 0 : _a.length) > 0)) {
23
+ throw new Error(ErrorMessages.dataEmptyCannotRunBenchmark);
24
+ }
25
+ }
26
+ setIsBenchmarkRunning(true);
27
+ const runBenchmark = async () => {
28
+ const jsFPSMonitor = new JSFPSMonitor();
29
+ jsFPSMonitor.startTracking();
30
+ for (let i = 0; i < (params.repeatCount || 1); i++) {
31
+ await runScrollBenchmark(flashListRef, cancellable, params.speedMultiplier || 1);
32
+ }
33
+ const jsProfilerResponse = jsFPSMonitor.stopAndGetData();
34
+ if (jsProfilerResponse.averageFPS < 35) {
35
+ suggestions.push(`Your average JS FPS is low. This can indicate that your components are doing too much work. Try to optimize your components and reduce re-renders if any`);
36
+ }
37
+ computeSuggestions(flashListRef, suggestions);
38
+ const result = generateResult(jsProfilerResponse, suggestions, cancellable);
39
+ if (!cancellable.isCancelled()) {
40
+ result.formattedString = getFormattedString(result);
41
+ }
42
+ callback(result);
43
+ setIsBenchmarkRunning(false);
44
+ };
45
+ runBenchmark();
46
+ }, [
47
+ callback,
48
+ flashListRef,
49
+ isBenchmarkRunning,
50
+ params.repeatCount,
51
+ params.speedMultiplier,
52
+ ]);
53
+ useEffect(() => {
54
+ if (params.startManually) {
55
+ return;
56
+ }
57
+ const cancelTimeout = setTimeout(() => {
58
+ startBenchmark();
59
+ }, params.startDelayInMs || 3000);
60
+ return () => {
61
+ clearTimeout(cancelTimeout);
62
+ if (cancellableRef.current) {
63
+ cancellableRef.current.cancel();
64
+ }
65
+ };
66
+ // eslint-disable-next-line react-hooks/exhaustive-deps
67
+ }, []);
68
+ return { startBenchmark, isBenchmarkRunning };
69
+ }
70
+ export function getFormattedString(res) {
71
+ var _a, _b, _c;
72
+ return (`Results:\n\n` +
73
+ `JS FPS: Avg: ${(_a = res.js) === null || _a === void 0 ? void 0 : _a.averageFPS} | Min: ${(_b = res.js) === null || _b === void 0 ? void 0 : _b.minFPS} | Max: ${(_c = res.js) === null || _c === void 0 ? void 0 : _c.maxFPS}\n\n` +
74
+ `${res.suggestions.length > 0
75
+ ? `Suggestions:\n\n${res.suggestions
76
+ .map((value, index) => `${index + 1}. ${value}`)
77
+ .join("\n")}`
78
+ : ``}`);
79
+ }
80
+ function generateResult(jsProfilerResponse, suggestions, cancellable) {
81
+ return {
82
+ js: jsProfilerResponse,
83
+ suggestions,
84
+ interrupted: cancellable.isCancelled(),
85
+ };
86
+ }
87
+ /**
88
+ * Scrolls to the end of the list and then back to the top
89
+ */
90
+ async function runScrollBenchmark(flashListRef, cancellable, scrollSpeedMultiplier) {
91
+ if (flashListRef.current) {
92
+ const horizontal = flashListRef.current.props.horizontal;
93
+ const rv = flashListRef.current;
94
+ if (rv) {
95
+ const rvSize = rv.getWindowSize();
96
+ const rvContentSize = rv.getChildContainerDimensions();
97
+ const fromX = 0;
98
+ const fromY = 0;
99
+ const toX = rvContentSize.width - rvSize.width;
100
+ const toY = rvContentSize.height - rvSize.height;
101
+ const scrollNow = (x, y) => {
102
+ var _a;
103
+ (_a = flashListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToOffset({
104
+ offset: horizontal ? x : y,
105
+ animated: false,
106
+ });
107
+ };
108
+ await autoScroll(scrollNow, fromX, fromY, toX, toY, scrollSpeedMultiplier, cancellable);
109
+ await autoScroll(scrollNow, toX, toY, fromX, fromY, scrollSpeedMultiplier, cancellable);
110
+ }
111
+ }
112
+ }
113
+ function computeSuggestions(flashListRef, suggestions) {
114
+ if (flashListRef.current) {
115
+ if (flashListRef.current.props.data.length < 200) {
116
+ suggestions.push(`Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.`);
117
+ }
118
+ }
119
+ }
190
120
  //# sourceMappingURL=useBenchmark.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,9 @@
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
- * Increases the data size by duplicating it, it's kept in hook format so that in future we can add auto pagination support.
26
- * If you're using this with FlatList then make sure you remove `keyExtractor` because this method might duplicate ids that might be in the data.
27
- * @param data The data to duplicate
28
- * @param count Final count of data to be returned from this hook
29
- * @returns Multiplied data.
30
- */
31
- export declare function useDataMultiplier<T>(data: T[], count: number): [T[]];
1
+ /**
2
+ * Increases the data size by duplicating it, it's kept in hook format so that in future we can add auto pagination support.
3
+ * If you're using this with FlatList then make sure you remove `keyExtractor` because this method might duplicate ids that might be in the data.
4
+ * @param data The data to duplicate
5
+ * @param count Final count of data to be returned from this hook
6
+ * @returns Multiplied data.
7
+ */
8
+ export declare function useDataMultiplier<T>(data: T[], count: number): [T[]];
32
9
  //# sourceMappingURL=useDataMultiplier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDataMultiplier.d.ts","sourceRoot":"","sources":["../../src/benchmark/useDataMultiplier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAWpE"}
1
+ {"version":3,"file":"useDataMultiplier.d.ts","sourceRoot":"","sources":["../../src/benchmark/useDataMultiplier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAWpE"}
@@ -1,48 +1,20 @@
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.useDataMultiplier = void 0;
27
- var tslib_1 = require("tslib");
28
- /**
29
- * Increases the data size by duplicating it, it's kept in hook format so that in future we can add auto pagination support.
30
- * If you're using this with FlatList then make sure you remove `keyExtractor` because this method might duplicate ids that might be in the data.
31
- * @param data The data to duplicate
32
- * @param count Final count of data to be returned from this hook
33
- * @returns Multiplied data.
34
- */
35
- function useDataMultiplier(data, count) {
36
- var len = data.length;
37
- var arr = new Array(count);
38
- var isObject = false;
39
- if (typeof data[0] === "object") {
40
- isObject = true;
41
- }
42
- for (var i = 0; i < count; i++) {
43
- arr[i] = isObject ? tslib_1.__assign({}, data[i % len]) : data[i % len];
44
- }
45
- return [arr];
46
- }
47
- exports.useDataMultiplier = useDataMultiplier;
1
+ /**
2
+ * Increases the data size by duplicating it, it's kept in hook format so that in future we can add auto pagination support.
3
+ * If you're using this with FlatList then make sure you remove `keyExtractor` because this method might duplicate ids that might be in the data.
4
+ * @param data The data to duplicate
5
+ * @param count Final count of data to be returned from this hook
6
+ * @returns Multiplied data.
7
+ */
8
+ export function useDataMultiplier(data, count) {
9
+ const len = data.length;
10
+ const arr = new Array(count);
11
+ let isObject = false;
12
+ if (typeof data[0] === "object") {
13
+ isObject = true;
14
+ }
15
+ for (let i = 0; i < count; i++) {
16
+ arr[i] = isObject ? { ...data[i % len] } : data[i % len];
17
+ }
18
+ return [arr];
19
+ }
48
20
  //# sourceMappingURL=useDataMultiplier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDataMultiplier.js","sourceRoot":"","sources":["../../src/benchmark/useDataMultiplier.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;AAEH;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAI,IAAS,EAAE,KAAa;IAC3D,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,IAAM,GAAG,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QAC/B,QAAQ,GAAG,IAAI,CAAC;KACjB;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,sBAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC1D;IACD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAXD,8CAWC"}
1
+ {"version":3,"file":"useDataMultiplier.js","sourceRoot":"","sources":["../../src/benchmark/useDataMultiplier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAI,IAAS,EAAE,KAAa;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -1,36 +1,15 @@
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
- /// <reference types="react" />
25
- import { FlatList } from "react-native";
26
- import { BenchmarkParams, BenchmarkResult } from "./useBenchmark";
27
- export interface FlatListBenchmarkParams extends BenchmarkParams {
28
- targetOffset: number;
29
- }
30
- /**
31
- * Runs the benchmark on FlatList and calls the callback method with the result.
32
- * Target offset is mandatory in params.
33
- * It's recommended to remove pagination while running the benchmark. Removing the onEndReached callback is the easiest way to do that.
34
- */
35
- export declare function useFlatListBenchmark(flatListRef: React.RefObject<FlatList<any>>, callback: (benchmarkResult: BenchmarkResult) => void, params: FlatListBenchmarkParams): never[];
1
+ import { FlatList } from "react-native";
2
+ import { BenchmarkParams, BenchmarkResult } from "./useBenchmark";
3
+ export interface FlatListBenchmarkParams extends BenchmarkParams {
4
+ targetOffset: number;
5
+ }
6
+ /**
7
+ * Runs the benchmark on FlatList and calls the callback method with the result.
8
+ * Target offset is mandatory in params.
9
+ * It's recommended to remove pagination while running the benchmark. Removing the onEndReached callback is the easiest way to do that.
10
+ */
11
+ export declare function useFlatListBenchmark(flatListRef: React.RefObject<FlatList<any>>, callback: (benchmarkResult: BenchmarkResult) => void, params: FlatListBenchmarkParams): {
12
+ startBenchmark: () => void;
13
+ isBenchmarkRunning: boolean;
14
+ };
36
15
  //# sourceMappingURL=useFlatListBenchmark.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFlatListBenchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/useFlatListBenchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAIxC,OAAO,EACL,eAAe,EACf,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC3C,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EACpD,MAAM,EAAE,uBAAuB,WAsChC"}
1
+ {"version":3,"file":"useFlatListBenchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/useFlatListBenchmark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EACL,eAAe,EACf,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC3C,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EACpD,MAAM,EAAE,uBAAuB;;;EAuEhC"}