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

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 (283) hide show
  1. package/dist/AnimatedFlashList.js +2 -2
  2. package/dist/AnimatedFlashList.js.map +1 -1
  3. package/dist/FlashList.d.ts +1 -167
  4. package/dist/FlashList.d.ts.map +1 -1
  5. package/dist/FlashList.js +3 -595
  6. package/dist/FlashList.js.map +1 -1
  7. package/dist/FlashListProps.d.ts +2 -63
  8. package/dist/FlashListProps.d.ts.map +1 -1
  9. package/dist/FlashListProps.js.map +1 -1
  10. package/dist/__tests__/ViewabilityHelper.test.js +3 -4
  11. package/dist/__tests__/ViewabilityHelper.test.js.map +1 -1
  12. package/dist/benchmark/JSFPSMonitor.d.ts.map +1 -1
  13. package/dist/benchmark/JSFPSMonitor.js +2 -1
  14. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  15. package/dist/benchmark/useBenchmark.d.ts +2 -4
  16. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  17. package/dist/benchmark/useBenchmark.js +12 -24
  18. package/dist/benchmark/useBenchmark.js.map +1 -1
  19. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  20. package/dist/benchmark/useFlatListBenchmark.js +2 -1
  21. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  22. package/dist/errors/ErrorMessages.d.ts +16 -0
  23. package/dist/errors/ErrorMessages.d.ts.map +1 -0
  24. package/dist/errors/ErrorMessages.js +19 -0
  25. package/dist/errors/ErrorMessages.js.map +1 -0
  26. package/dist/errors/WarningMessages.d.ts +4 -0
  27. package/dist/errors/WarningMessages.d.ts.map +1 -0
  28. package/dist/errors/WarningMessages.js +7 -0
  29. package/dist/errors/WarningMessages.js.map +1 -0
  30. package/dist/index.d.ts +3 -9
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +7 -29
  33. package/dist/index.js.map +1 -1
  34. package/dist/isNewArch.d.ts +2 -0
  35. package/dist/isNewArch.d.ts.map +1 -0
  36. package/dist/isNewArch.js +25 -0
  37. package/dist/isNewArch.js.map +1 -0
  38. package/dist/native/config/PlatformHelper.android.d.ts +1 -22
  39. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  40. package/dist/native/config/PlatformHelper.android.js +1 -16
  41. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  42. package/dist/native/config/PlatformHelper.d.ts +1 -22
  43. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  44. package/dist/native/config/PlatformHelper.ios.d.ts +1 -22
  45. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  46. package/dist/native/config/PlatformHelper.ios.js +1 -15
  47. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  48. package/dist/native/config/PlatformHelper.js +1 -16
  49. package/dist/native/config/PlatformHelper.js.map +1 -1
  50. package/dist/native/config/PlatformHelper.web.d.ts +1 -23
  51. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  52. package/dist/native/config/PlatformHelper.web.js +1 -18
  53. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  54. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  55. package/dist/recyclerview/RecyclerView.js +5 -0
  56. package/dist/recyclerview/RecyclerView.js.map +1 -1
  57. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  58. package/dist/recyclerview/RecyclerViewManager.js +9 -8
  59. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  60. package/dist/recyclerview/RecyclerViewProps.d.ts +1 -8
  61. package/dist/recyclerview/RecyclerViewProps.d.ts.map +1 -1
  62. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  63. package/dist/recyclerview/hooks/useRecyclerViewController.js +4 -0
  64. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  65. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
  66. package/dist/recyclerview/layout-managers/LayoutManager.js +2 -1
  67. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  68. package/dist/recyclerview/viewability/ViewToken.d.ts.map +1 -0
  69. package/dist/recyclerview/viewability/ViewToken.js.map +1 -0
  70. package/dist/{viewability → recyclerview/viewability}/ViewabilityHelper.d.ts +2 -2
  71. package/dist/recyclerview/viewability/ViewabilityHelper.d.ts.map +1 -0
  72. package/dist/{viewability → recyclerview/viewability}/ViewabilityHelper.js +2 -4
  73. package/dist/{viewability → recyclerview/viewability}/ViewabilityHelper.js.map +1 -1
  74. package/dist/{viewability → recyclerview/viewability}/ViewabilityManager.d.ts +3 -3
  75. package/dist/recyclerview/viewability/ViewabilityManager.d.ts.map +1 -0
  76. package/dist/{viewability → recyclerview/viewability}/ViewabilityManager.js +16 -16
  77. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -0
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +3 -14
  80. package/src/AnimatedFlashList.ts +2 -2
  81. package/src/FlashList.ts +1 -0
  82. package/src/FlashListProps.ts +3 -79
  83. package/src/__tests__/ViewabilityHelper.test.ts +13 -14
  84. package/src/benchmark/JSFPSMonitor.ts +3 -3
  85. package/src/benchmark/useBenchmark.ts +12 -40
  86. package/src/benchmark/useFlatListBenchmark.ts +3 -1
  87. package/src/errors/ErrorMessages.ts +26 -0
  88. package/src/errors/WarningMessages.ts +4 -0
  89. package/src/index.ts +7 -43
  90. package/src/isNewArch.ts +25 -0
  91. package/src/native/config/PlatformHelper.android.ts +1 -25
  92. package/src/native/config/PlatformHelper.ios.ts +1 -24
  93. package/src/native/config/PlatformHelper.ts +1 -25
  94. package/src/native/config/PlatformHelper.web.ts +1 -30
  95. package/src/recyclerview/RecyclerView.tsx +5 -0
  96. package/src/recyclerview/RecyclerViewManager.ts +9 -18
  97. package/src/recyclerview/RecyclerViewProps.ts +1 -11
  98. package/src/recyclerview/hooks/useRecyclerViewController.tsx +4 -0
  99. package/src/recyclerview/layout-managers/LayoutManager.ts +2 -1
  100. package/src/{viewability → recyclerview/viewability}/ViewabilityHelper.ts +8 -9
  101. package/src/{viewability → recyclerview/viewability}/ViewabilityManager.ts +18 -20
  102. package/RNFlashList.podspec +0 -37
  103. package/android/build.gradle +0 -89
  104. package/android/src/main/AndroidManifest.xml +0 -3
  105. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutShadow.kt +0 -105
  106. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutView.kt +0 -158
  107. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutViewManager.kt +0 -70
  108. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/BlankAreaEvent.kt +0 -29
  109. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainer.java +0 -16
  110. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainerImpl.kt +0 -16
  111. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainerManager.kt +0 -34
  112. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/FlashListPackage.kt +0 -19
  113. package/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerDelegate.java +0 -47
  114. package/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerInterface.java +0 -21
  115. package/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerDelegate.java +0 -32
  116. package/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerInterface.java +0 -16
  117. package/android/src/test/java/com/shopify/reactnative/flash_list/AutoLayoutShadowTest.kt +0 -147
  118. package/android/src/test/java/com/shopify/reactnative/flash_list/models/Rect.kt +0 -61
  119. package/android/src/test/java/com/shopify/reactnative/flash_list/models/TestCollection.kt +0 -6
  120. package/android/src/test/java/com/shopify/reactnative/flash_list/models/TestDataModel.kt +0 -8
  121. package/android/src/test/resources/LayoutTestData.json +0 -788
  122. package/dist/GridLayoutProviderWithProps.d.ts +0 -42
  123. package/dist/GridLayoutProviderWithProps.d.ts.map +0 -1
  124. package/dist/GridLayoutProviderWithProps.js +0 -114
  125. package/dist/GridLayoutProviderWithProps.js.map +0 -1
  126. package/dist/MasonryFlashList.d.ts +0 -51
  127. package/dist/MasonryFlashList.d.ts.map +0 -1
  128. package/dist/MasonryFlashList.js +0 -252
  129. package/dist/MasonryFlashList.js.map +0 -1
  130. package/dist/PureComponentWrapper.d.ts +0 -22
  131. package/dist/PureComponentWrapper.d.ts.map +0 -1
  132. package/dist/PureComponentWrapper.js +0 -37
  133. package/dist/PureComponentWrapper.js.map +0 -1
  134. package/dist/__tests__/ContentContainerUtils.test.d.ts +0 -2
  135. package/dist/__tests__/ContentContainerUtils.test.d.ts.map +0 -1
  136. package/dist/__tests__/ContentContainerUtils.test.js +0 -85
  137. package/dist/__tests__/ContentContainerUtils.test.js.map +0 -1
  138. package/dist/__tests__/FlashList.test.d.ts +0 -2
  139. package/dist/__tests__/FlashList.test.d.ts.map +0 -1
  140. package/dist/__tests__/FlashList.test.js +0 -902
  141. package/dist/__tests__/FlashList.test.js.map +0 -1
  142. package/dist/__tests__/GridLayoutProviderWithProps.test.d.ts +0 -2
  143. package/dist/__tests__/GridLayoutProviderWithProps.test.d.ts.map +0 -1
  144. package/dist/__tests__/GridLayoutProviderWithProps.test.js +0 -143
  145. package/dist/__tests__/GridLayoutProviderWithProps.test.js.map +0 -1
  146. package/dist/__tests__/MasonryFlashList.test.d.ts +0 -2
  147. package/dist/__tests__/MasonryFlashList.test.d.ts.map +0 -1
  148. package/dist/__tests__/MasonryFlashList.test.js +0 -254
  149. package/dist/__tests__/MasonryFlashList.test.js.map +0 -1
  150. package/dist/__tests__/PlatformHelper.web.test.d.ts +0 -2
  151. package/dist/__tests__/PlatformHelper.web.test.d.ts.map +0 -1
  152. package/dist/__tests__/PlatformHelper.web.test.js +0 -33
  153. package/dist/__tests__/PlatformHelper.web.test.js.map +0 -1
  154. package/dist/__tests__/helpers/mountFlashList.d.ts +0 -19
  155. package/dist/__tests__/helpers/mountFlashList.d.ts.map +0 -1
  156. package/dist/__tests__/helpers/mountFlashList.js +0 -44
  157. package/dist/__tests__/helpers/mountFlashList.js.map +0 -1
  158. package/dist/__tests__/helpers/mountMasonryFlashList.d.ts +0 -18
  159. package/dist/__tests__/helpers/mountMasonryFlashList.d.ts.map +0 -1
  160. package/dist/__tests__/helpers/mountMasonryFlashList.js +0 -49
  161. package/dist/__tests__/helpers/mountMasonryFlashList.js.map +0 -1
  162. package/dist/__tests__/useBlankAreaTracker.test.d.ts +0 -2
  163. package/dist/__tests__/useBlankAreaTracker.test.d.ts.map +0 -1
  164. package/dist/__tests__/useBlankAreaTracker.test.js +0 -179
  165. package/dist/__tests__/useBlankAreaTracker.test.js.map +0 -1
  166. package/dist/benchmark/useBlankAreaTracker.d.ts +0 -34
  167. package/dist/benchmark/useBlankAreaTracker.d.ts.map +0 -1
  168. package/dist/benchmark/useBlankAreaTracker.js +0 -66
  169. package/dist/benchmark/useBlankAreaTracker.js.map +0 -1
  170. package/dist/enableNewCore.d.ts +0 -3
  171. package/dist/enableNewCore.d.ts.map +0 -1
  172. package/dist/enableNewCore.js +0 -25
  173. package/dist/enableNewCore.js.map +0 -1
  174. package/dist/errors/CustomError.d.ts +0 -8
  175. package/dist/errors/CustomError.d.ts.map +0 -1
  176. package/dist/errors/CustomError.js +0 -14
  177. package/dist/errors/CustomError.js.map +0 -1
  178. package/dist/errors/ExceptionList.d.ts +0 -24
  179. package/dist/errors/ExceptionList.d.ts.map +0 -1
  180. package/dist/errors/ExceptionList.js +0 -26
  181. package/dist/errors/ExceptionList.js.map +0 -1
  182. package/dist/errors/Warnings.d.ts +0 -9
  183. package/dist/errors/Warnings.d.ts.map +0 -1
  184. package/dist/errors/Warnings.js +0 -13
  185. package/dist/errors/Warnings.js.map +0 -1
  186. package/dist/native/auto-layout/AutoLayoutView.d.ts +0 -22
  187. package/dist/native/auto-layout/AutoLayoutView.d.ts.map +0 -1
  188. package/dist/native/auto-layout/AutoLayoutView.js +0 -48
  189. package/dist/native/auto-layout/AutoLayoutView.js.map +0 -1
  190. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts +0 -4
  191. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts.map +0 -1
  192. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js +0 -6
  193. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js.map +0 -1
  194. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts +0 -5
  195. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts.map +0 -1
  196. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts +0 -4
  197. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts.map +0 -1
  198. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js +0 -6
  199. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js.map +0 -1
  200. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js +0 -6
  201. package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js.map +0 -1
  202. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +0 -16
  203. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +0 -1
  204. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js +0 -3
  205. package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js.map +0 -1
  206. package/dist/native/cell-container/CellContainer.android.d.ts +0 -6
  207. package/dist/native/cell-container/CellContainer.android.d.ts.map +0 -1
  208. package/dist/native/cell-container/CellContainer.android.js +0 -9
  209. package/dist/native/cell-container/CellContainer.android.js.map +0 -1
  210. package/dist/native/cell-container/CellContainer.d.ts +0 -8
  211. package/dist/native/cell-container/CellContainer.d.ts.map +0 -1
  212. package/dist/native/cell-container/CellContainer.ios.d.ts +0 -6
  213. package/dist/native/cell-container/CellContainer.ios.d.ts.map +0 -1
  214. package/dist/native/cell-container/CellContainer.ios.js +0 -9
  215. package/dist/native/cell-container/CellContainer.ios.js.map +0 -1
  216. package/dist/native/cell-container/CellContainer.js +0 -11
  217. package/dist/native/cell-container/CellContainer.js.map +0 -1
  218. package/dist/native/cell-container/CellContainer.web.d.ts +0 -7
  219. package/dist/native/cell-container/CellContainer.web.d.ts.map +0 -1
  220. package/dist/native/cell-container/CellContainer.web.js +0 -13
  221. package/dist/native/cell-container/CellContainer.web.js.map +0 -1
  222. package/dist/specs/AutoLayoutNativeComponent.d.ts +0 -18
  223. package/dist/specs/AutoLayoutNativeComponent.d.ts.map +0 -1
  224. package/dist/specs/AutoLayoutNativeComponent.js +0 -6
  225. package/dist/specs/AutoLayoutNativeComponent.js.map +0 -1
  226. package/dist/specs/CellContainerNativeComponent.d.ts +0 -8
  227. package/dist/specs/CellContainerNativeComponent.d.ts.map +0 -1
  228. package/dist/specs/CellContainerNativeComponent.js +0 -6
  229. package/dist/specs/CellContainerNativeComponent.js.map +0 -1
  230. package/dist/utils/ContentContainerUtils.d.ts +0 -27
  231. package/dist/utils/ContentContainerUtils.d.ts.map +0 -1
  232. package/dist/utils/ContentContainerUtils.js +0 -48
  233. package/dist/utils/ContentContainerUtils.js.map +0 -1
  234. package/dist/viewability/ViewToken.d.ts.map +0 -1
  235. package/dist/viewability/ViewToken.js.map +0 -1
  236. package/dist/viewability/ViewabilityHelper.d.ts.map +0 -1
  237. package/dist/viewability/ViewabilityManager.d.ts.map +0 -1
  238. package/dist/viewability/ViewabilityManager.js.map +0 -1
  239. package/ios/RNFlashList.xcodeproj/project.pbxproj +0 -3
  240. package/ios/RNFlashList.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
  241. package/ios/Sources/AutoLayoutView.swift +0 -294
  242. package/ios/Sources/AutoLayoutViewComponentView.h +0 -16
  243. package/ios/Sources/AutoLayoutViewComponentView.mm +0 -90
  244. package/ios/Sources/AutoLayoutViewManager.mm +0 -14
  245. package/ios/Sources/AutoLayoutViewManager.swift +0 -12
  246. package/ios/Sources/CellContainerComponentView.h +0 -18
  247. package/ios/Sources/CellContainerComponentView.mm +0 -62
  248. package/ios/Sources/CellContainerManager.mm +0 -8
  249. package/ios/Sources/CellContainerManager.swift +0 -12
  250. package/ios/Sources/FlatListPro-Bridging-Header.h +0 -11
  251. package/ios/Tests/AutoLayoutViewTests.swift +0 -113
  252. package/src/FlashList.tsx +0 -953
  253. package/src/GridLayoutProviderWithProps.ts +0 -180
  254. package/src/MasonryFlashList.tsx +0 -476
  255. package/src/PureComponentWrapper.tsx +0 -42
  256. package/src/__tests__/ContentContainerUtils.test.ts +0 -130
  257. package/src/__tests__/FlashList.test.tsx +0 -1001
  258. package/src/__tests__/GridLayoutProviderWithProps.test.ts +0 -179
  259. package/src/__tests__/MasonryFlashList.test.ts +0 -292
  260. package/src/__tests__/PlatformHelper.web.test.ts +0 -45
  261. package/src/__tests__/helpers/mountFlashList.tsx +0 -62
  262. package/src/__tests__/helpers/mountMasonryFlashList.tsx +0 -70
  263. package/src/__tests__/useBlankAreaTracker.test.tsx +0 -206
  264. package/src/benchmark/useBlankAreaTracker.ts +0 -117
  265. package/src/enableNewCore.ts +0 -24
  266. package/src/errors/CustomError.ts +0 -10
  267. package/src/errors/ExceptionList.ts +0 -28
  268. package/src/errors/Warnings.ts +0 -15
  269. package/src/native/auto-layout/AutoLayoutView.tsx +0 -73
  270. package/src/native/auto-layout/AutoLayoutViewNativeComponent.android.ts +0 -7
  271. package/src/native/auto-layout/AutoLayoutViewNativeComponent.ios.ts +0 -7
  272. package/src/native/auto-layout/AutoLayoutViewNativeComponent.ts +0 -7
  273. package/src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts +0 -17
  274. package/src/native/cell-container/CellContainer.android.ts +0 -7
  275. package/src/native/cell-container/CellContainer.ios.ts +0 -7
  276. package/src/native/cell-container/CellContainer.tsx +0 -14
  277. package/src/native/cell-container/CellContainer.web.tsx +0 -9
  278. package/src/specs/AutoLayoutNativeComponent.ts +0 -24
  279. package/src/specs/CellContainerNativeComponent.ts +0 -9
  280. package/src/utils/ContentContainerUtils.ts +0 -92
  281. /package/dist/{viewability → recyclerview/viewability}/ViewToken.d.ts +0 -0
  282. /package/dist/{viewability → recyclerview/viewability}/ViewToken.js +0 -0
  283. /package/src/{viewability → recyclerview/viewability}/ViewToken.ts +0 -0
@@ -1,42 +0,0 @@
1
- import { Dimension, GridLayoutProvider, Layout, LayoutManager } from "recyclerlistview";
2
- import { FlashListProps } from "./FlashListProps";
3
- export default class GridLayoutProviderWithProps<T> extends GridLayoutProvider {
4
- private props;
5
- private layoutObject;
6
- private averageWindow;
7
- private renderWindowInsets;
8
- private _hasExpired;
9
- defaultEstimatedItemSize: number;
10
- constructor(maxSpan: number, getLayoutType: (index: number, props: FlashListProps<T>, mutableLayout: {
11
- span?: number;
12
- size?: number;
13
- }) => string | number, getSpan: (index: number, props: FlashListProps<T>, mutableLayout: {
14
- span?: number;
15
- size?: number;
16
- }) => number, getHeightOrWidth: (index: number, props: FlashListProps<T>, mutableLayout: {
17
- span?: number;
18
- size?: number;
19
- }) => number | undefined, props: FlashListProps<T>, acceptableRelayoutDelta?: number);
20
- updateProps(props: FlashListProps<T>): GridLayoutProviderWithProps<T>;
21
- /**
22
- * This methods returns true if the layout provider has expired and needs to be recreated.
23
- * This can happen if the number of columns has changed or the render window size has changed in a way that cannot be handled by the layout provider internally.
24
- */
25
- get hasExpired(): boolean;
26
- /**
27
- * Calling this method will mark the layout provider as expired. As a result, a new one will be created by FlashList and old cached layouts will be discarded.
28
- */
29
- markExpired(): void;
30
- /**
31
- * Calling this method will help the layout provider track average item sizes on its own
32
- * Overriding layout manager can help achieve the same thing without relying on this method being called however, it will make implementation very complex for a simple use case
33
- * @param index Index of the item being reported
34
- */
35
- reportItemLayout(index: number): void;
36
- get averageItemSize(): number;
37
- newLayoutManager(renderWindowSize: Dimension, isHorizontal?: boolean, cachedLayouts?: Layout[]): LayoutManager;
38
- private updateCachedDimensions;
39
- private getCleanLayoutObj;
40
- private getAdjustedRenderWindowSize;
41
- }
42
- //# sourceMappingURL=GridLayoutProviderWithProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GridLayoutProviderWithProps.d.ts","sourceRoot":"","sources":["../src/GridLayoutProviderWithProps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,MAAM,EACN,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,2BAA2B,CAAC,CAAC,CAAE,SAAQ,kBAAkB;IAC5E,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,WAAW,CAAS;IACrB,wBAAwB,SAAO;gBAGpC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,CACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,aAAa,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAC5C,MAAM,GAAG,MAAM,EACpB,OAAO,EAAE,CACP,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,aAAa,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAC5C,MAAM,EACX,gBAAgB,EAAE,CAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,aAAa,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAC5C,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,uBAAuB,CAAC,EAAE,MAAM;IA6B3B,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC;IAmB5E;;;OAGG;IACH,IAAW,UAAU,YAEpB;IAED;;OAEG;IACI,WAAW;IAIlB;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAYrC,IAAW,eAAe,WAEzB;IAEM,gBAAgB,CACrB,gBAAgB,EAAE,SAAS,EAC3B,YAAY,CAAC,EAAE,OAAO,EACtB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,aAAa;IA0BhB,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,2BAA2B;CAOpC"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var recyclerlistview_1 = require("recyclerlistview");
5
- var AverageWindow_1 = require("./utils/AverageWindow");
6
- var ContentContainerUtils_1 = require("./utils/ContentContainerUtils");
7
- var GridLayoutProviderWithProps = /** @class */ (function (_super) {
8
- tslib_1.__extends(GridLayoutProviderWithProps, _super);
9
- function GridLayoutProviderWithProps(maxSpan, getLayoutType, getSpan, getHeightOrWidth, props, acceptableRelayoutDelta) {
10
- var _a;
11
- var _this = _super.call(this, maxSpan, function (i) {
12
- return getLayoutType(i, _this.props, _this.getCleanLayoutObj());
13
- }, function (i) {
14
- return getSpan(i, _this.props, _this.getCleanLayoutObj());
15
- }, function (i) {
16
- var _a;
17
- return (
18
- // Using average item size if no override has been provided by the developer
19
- (_a = getHeightOrWidth(i, _this.props, _this.getCleanLayoutObj())) !== null && _a !== void 0 ? _a : _this.averageItemSize);
20
- }, acceptableRelayoutDelta) || this;
21
- _this.layoutObject = { span: undefined, size: undefined };
22
- _this.renderWindowInsets = { width: 0, height: 0 };
23
- _this._hasExpired = false;
24
- _this.defaultEstimatedItemSize = 100;
25
- _this.props = props;
26
- _this.averageWindow = new AverageWindow_1.AverageWindow(1, (_a = props.estimatedItemSize) !== null && _a !== void 0 ? _a : _this.defaultEstimatedItemSize);
27
- _this.renderWindowInsets = _this.getAdjustedRenderWindowSize(_this.renderWindowInsets);
28
- return _this;
29
- }
30
- GridLayoutProviderWithProps.prototype.updateProps = function (props) {
31
- var newInsetValues = (0, ContentContainerUtils_1.applyContentContainerInsetForLayoutManager)({
32
- height: 0,
33
- width: 0,
34
- }, props.contentContainerStyle, Boolean(props.horizontal));
35
- this._hasExpired =
36
- this._hasExpired ||
37
- this.props.numColumns !== props.numColumns ||
38
- newInsetValues.height !== this.renderWindowInsets.height ||
39
- newInsetValues.width !== this.renderWindowInsets.width;
40
- this.renderWindowInsets = newInsetValues;
41
- this.props = props;
42
- return this;
43
- };
44
- Object.defineProperty(GridLayoutProviderWithProps.prototype, "hasExpired", {
45
- /**
46
- * This methods returns true if the layout provider has expired and needs to be recreated.
47
- * This can happen if the number of columns has changed or the render window size has changed in a way that cannot be handled by the layout provider internally.
48
- */
49
- get: function () {
50
- return this._hasExpired;
51
- },
52
- enumerable: false,
53
- configurable: true
54
- });
55
- /**
56
- * Calling this method will mark the layout provider as expired. As a result, a new one will be created by FlashList and old cached layouts will be discarded.
57
- */
58
- GridLayoutProviderWithProps.prototype.markExpired = function () {
59
- this._hasExpired = true;
60
- };
61
- /**
62
- * Calling this method will help the layout provider track average item sizes on its own
63
- * Overriding layout manager can help achieve the same thing without relying on this method being called however, it will make implementation very complex for a simple use case
64
- * @param index Index of the item being reported
65
- */
66
- GridLayoutProviderWithProps.prototype.reportItemLayout = function (index) {
67
- var _a;
68
- var layout = (_a = this.getLayoutManager()) === null || _a === void 0 ? void 0 : _a.getLayouts()[index];
69
- if (layout) {
70
- // For the same index we can now return different estimates because average is updated in realtime
71
- // Marking the layout as overridden will help layout manager avoid using the average after initial measurement
72
- layout.isOverridden = true;
73
- this.averageWindow.addValue(this.props.horizontal ? layout.width : layout.height);
74
- }
75
- };
76
- Object.defineProperty(GridLayoutProviderWithProps.prototype, "averageItemSize", {
77
- get: function () {
78
- return this.averageWindow.currentValue;
79
- },
80
- enumerable: false,
81
- configurable: true
82
- });
83
- GridLayoutProviderWithProps.prototype.newLayoutManager = function (renderWindowSize, isHorizontal, cachedLayouts) {
84
- var _a;
85
- // Average window is updated whenever a new layout manager is created. This is because old values are not relevant anymore.
86
- var estimatedItemCount = Math.max(3, Math.round((this.props.horizontal
87
- ? renderWindowSize.width
88
- : renderWindowSize.height) /
89
- ((_a = this.props.estimatedItemSize) !== null && _a !== void 0 ? _a : this.defaultEstimatedItemSize)));
90
- this.averageWindow = new AverageWindow_1.AverageWindow(2 * (this.props.numColumns || 1) * estimatedItemCount, this.averageWindow.currentValue);
91
- var newLayoutManager = _super.prototype.newLayoutManager.call(this, this.getAdjustedRenderWindowSize(renderWindowSize), isHorizontal, cachedLayouts);
92
- if (cachedLayouts) {
93
- this.updateCachedDimensions(cachedLayouts, newLayoutManager);
94
- }
95
- return newLayoutManager;
96
- };
97
- GridLayoutProviderWithProps.prototype.updateCachedDimensions = function (cachedLayouts, layoutManager) {
98
- var layoutCount = cachedLayouts.length;
99
- for (var i = 0; i < layoutCount; i++) {
100
- cachedLayouts[i] = tslib_1.__assign(tslib_1.__assign({}, cachedLayouts[i]), layoutManager.getStyleOverridesForIndex(i));
101
- }
102
- };
103
- GridLayoutProviderWithProps.prototype.getCleanLayoutObj = function () {
104
- this.layoutObject.size = undefined;
105
- this.layoutObject.span = undefined;
106
- return this.layoutObject;
107
- };
108
- GridLayoutProviderWithProps.prototype.getAdjustedRenderWindowSize = function (renderWindowSize) {
109
- return (0, ContentContainerUtils_1.applyContentContainerInsetForLayoutManager)(tslib_1.__assign({}, renderWindowSize), this.props.contentContainerStyle, Boolean(this.props.horizontal));
110
- };
111
- return GridLayoutProviderWithProps;
112
- }(recyclerlistview_1.GridLayoutProvider));
113
- exports.default = GridLayoutProviderWithProps;
114
- //# sourceMappingURL=GridLayoutProviderWithProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GridLayoutProviderWithProps.js","sourceRoot":"","sources":["../src/GridLayoutProviderWithProps.ts"],"names":[],"mappings":";;;AAAA,qDAK0B;AAG1B,uDAAsD;AACtD,uEAA2F;AAE3F;IAA4D,uDAAkB;IAQ5E,qCACE,OAAe,EACf,aAIoB,EACpB,OAIW,EACX,gBAIuB,EACvB,KAAwB,EACxB,uBAAgC;;QAEhC,YAAA,MAAK,YACH,OAAO,EACP,UAAC,CAAC;YACA,OAAO,aAAa,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChE,CAAC,EACD,UAAC,CAAC;YACA,OAAO,OAAO,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC1D,CAAC,EACD,UAAC,CAAC;;YACA,OAAO;YACL,4EAA4E;YAC5E,MAAA,gBAAgB,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,iBAAiB,EAAE,CAAC,mCACzD,KAAI,CAAC,eAAe,CACrB,CAAC;QACJ,CAAC,EACD,uBAAuB,CACxB,SAAC;QA1CI,kBAAY,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAEpD,wBAAkB,GAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACxD,iBAAW,GAAG,KAAK,CAAC;QACrB,8BAAwB,GAAG,GAAG,CAAC;QAuCpC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,KAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CACpC,CAAC,EACD,MAAA,KAAK,CAAC,iBAAiB,mCAAI,KAAI,CAAC,wBAAwB,CACzD,CAAC;QACF,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,2BAA2B,CACxD,KAAI,CAAC,kBAAkB,CACxB,CAAC;;IACJ,CAAC;IAEM,iDAAW,GAAlB,UAAmB,KAAwB;QACzC,IAAM,cAAc,GAAG,IAAA,kEAA0C,EAC/D;YACE,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;SACT,EACD,KAAK,CAAC,qBAAqB,EAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAC1B,CAAC;QACF,IAAI,CAAC,WAAW;YACd,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;gBAC1C,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM;gBACxD,cAAc,CAAC,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,sBAAW,mDAAU;QAJrB;;;WAGG;aACH;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IAED;;OAEG;IACI,iDAAW,GAAlB;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,sDAAgB,GAAvB,UAAwB,KAAa;;QACnC,IAAM,MAAM,GAAG,MAAA,IAAI,CAAC,gBAAgB,EAAE,0CAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAC5D,IAAI,MAAM,EAAE,CAAC;YACX,kGAAkG;YAClG,8GAA8G;YAC9G,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CACzB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sBAAW,wDAAe;aAA1B;YACE,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;QACzC,CAAC;;;OAAA;IAEM,sDAAgB,GAAvB,UACE,gBAA2B,EAC3B,YAAsB,EACtB,aAAwB;;QAExB,2HAA2H;QAC3H,IAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CACjC,CAAC,EACD,IAAI,CAAC,KAAK,CACR,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;YACpB,CAAC,CAAC,gBAAgB,CAAC,KAAK;YACxB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC1B,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,mCAAI,IAAI,CAAC,wBAAwB,CAAC,CAClE,CACF,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CACpC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,kBAAkB,EACrD,IAAI,CAAC,aAAa,CAAC,YAAY,CAChC,CAAC;QACF,IAAM,gBAAgB,GAAG,gBAAK,CAAC,gBAAgB,YAC7C,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,EAClD,YAAY,EACZ,aAAa,CACd,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,4DAAsB,GAA9B,UACE,aAAuB,EACvB,aAA4B;QAE5B,IAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,aAAa,CAAC,CAAC,CAAC,yCACX,aAAa,CAAC,CAAC,CAAC,GAGhB,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uDAAiB,GAAzB;QACE,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,iEAA2B,GAAnC,UAAoC,gBAA2B;QAC7D,OAAO,IAAA,kEAA0C,uBAC1C,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAChC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAC/B,CAAC;IACJ,CAAC;IACH,kCAAC;AAAD,CAAC,AAxKD,CAA4D,qCAAkB,GAwK7E"}
@@ -1,51 +0,0 @@
1
- import React from "react";
2
- import { NativeScrollEvent } from "react-native";
3
- import FlashList from "./FlashList";
4
- import { FlashListProps, ListRenderItemInfo } from "./FlashListProps";
5
- export interface MasonryListRenderItemInfo<TItem> extends ListRenderItemInfo<TItem> {
6
- columnSpan: number;
7
- columnIndex: number;
8
- }
9
- export type MasonryListRenderItem<TItem> = (info: MasonryListRenderItemInfo<TItem>) => React.ReactElement | null;
10
- export interface MasonryFlashListProps<T> extends Omit<FlashListProps<T>, "horizontal" | "initialScrollIndex" | "inverted" | "onBlankArea" | "renderItem" | "viewabilityConfigCallbackPairs"> {
11
- /**
12
- * Allows you to change the column widths of the list. This is helpful if you want some columns to be wider than the others.
13
- * e.g, if `numColumns` is `3`, you can return `2` for `index 1` and `1` for the rest to achieve a `1:2:1` split by width.
14
- */
15
- getColumnFlex?: (items: MasonryListItem<T>[], columnIndex: number, maxColumns: number, extraData?: any) => number;
16
- /**
17
- * If enabled, MasonryFlashList will try to reduce difference in column height by modifying item order.
18
- * `overrideItemLayout` is required to make this work.
19
- */
20
- optimizeItemArrangement?: boolean;
21
- /**
22
- * Extends typical `renderItem` to include `columnIndex` and `columnSpan` (number of columns the item spans).
23
- * `columnIndex` gives the consumer column information in case they might need to treat items differently based on column.
24
- * This information may not otherwise be derived if using the `optimizeItemArrangement` feature, as the items will no
25
- * longer be linearly distributed across the columns; instead they are allocated to the column with the least estimated height.
26
- */
27
- renderItem: MasonryListRenderItem<T> | null | undefined;
28
- }
29
- export interface MasonryFlashListScrollEvent extends NativeScrollEvent {
30
- doNotPropagate?: boolean;
31
- }
32
- export interface MasonryListItem<T> {
33
- originalIndex: number;
34
- originalItem: T;
35
- }
36
- /**
37
- * MasonryFlashListRef with support for scroll related methods
38
- */
39
- export interface MasonryFlashListRef<T> {
40
- scrollToOffset: FlashList<T>["scrollToOffset"];
41
- scrollToEnd: FlashList<T>["scrollToEnd"];
42
- getScrollableNode: FlashList<T>["getScrollableNode"];
43
- }
44
- /**
45
- * FlashList variant that enables rendering of masonry layouts.
46
- * If you want `MasonryFlashList` to optimize item arrangement, enable `optimizeItemArrangement` and pass a valid `overrideItemLayout` function.
47
- */
48
- export declare const MasonryFlashList: <T>(props: MasonryFlashListProps<T> & {
49
- ref?: React.RefObject<MasonryFlashListRef<T>>;
50
- }) => React.ReactElement;
51
- //# sourceMappingURL=MasonryFlashList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MasonryFlashList.d.ts","sourceRoot":"","sources":["../src/MasonryFlashList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAKL,iBAAiB,EAElB,MAAM,cAAc,CAAC;AAItB,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAItE,MAAM,WAAW,yBAAyB,CAAC,KAAK,CAC9C,SAAQ,kBAAkB,CAAC,KAAK,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,CACzC,IAAI,EAAE,yBAAyB,CAAC,KAAK,CAAC,KACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,MAAM,WAAW,qBAAqB,CAAC,CAAC,CACtC,SAAQ,IAAI,CACV,cAAc,CAAC,CAAC,CAAC,EACf,YAAY,GACZ,oBAAoB,GACpB,UAAU,GACV,aAAa,GACb,YAAY,GACZ,gCAAgC,CACnC;IACD;;;OAGG;IACH,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,GAAG,KACZ,MAAM,CAAC;IAEZ;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;OAKG;IACH,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACzD;AAKD,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC/C,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACzC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;CACtD;AAiYD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAgC,CAAC,CAAC,EAC7D,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG;IAChC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,KACE,KAAK,CAAC,YAAY,CAAC"}
@@ -1,252 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MasonryFlashList = void 0;
4
- var tslib_1 = require("tslib");
5
- var react_1 = tslib_1.__importStar(require("react"));
6
- var react_native_1 = require("react-native");
7
- var CustomError_1 = tslib_1.__importDefault(require("./errors/CustomError"));
8
- var ExceptionList_1 = tslib_1.__importDefault(require("./errors/ExceptionList"));
9
- var FlashList_1 = tslib_1.__importDefault(require("./FlashList"));
10
- var ContentContainerUtils_1 = require("./utils/ContentContainerUtils");
11
- var defaultEstimatedItemSize = 100;
12
- /**
13
- * FlashList variant that enables rendering of masonry layouts.
14
- * If you want `MasonryFlashList` to optimize item arrangement, enable `optimizeItemArrangement` and pass a valid `overrideItemLayout` function.
15
- */
16
- var MasonryFlashListComponent = react_1.default.forwardRef(function (
17
- /**
18
- * Forward Ref will force cast generic parament T to unknown. Export has a explicit cast to solve this.
19
- */
20
- props, forwardRef) {
21
- var _a, _b, _c, _d, _e;
22
- var columnCount = props.numColumns || 1;
23
- var drawDistance = props.drawDistance;
24
- var estimatedListSize = (_b = (_a = props.estimatedListSize) !== null && _a !== void 0 ? _a : react_native_1.Dimensions.get("window")) !== null && _b !== void 0 ? _b : { height: 500, width: 500 };
25
- if (props.optimizeItemArrangement && !props.overrideItemLayout) {
26
- throw new CustomError_1.default(ExceptionList_1.default.overrideItemLayoutRequiredForMasonryOptimization);
27
- }
28
- var dataSet = useDataSet(columnCount, Boolean(props.optimizeItemArrangement), props.data, props.overrideItemLayout, props.extraData);
29
- var totalColumnFlex = useTotalColumnFlex(dataSet, props);
30
- var propsRef = (0, react_1.useRef)(props);
31
- propsRef.current = props;
32
- var onScrollRef = (0, react_1.useRef)([]);
33
- var emptyScrollEvent = (0, react_1.useRef)(getEmptyScrollEvent())
34
- .current;
35
- var ScrollComponent = (0, react_1.useRef)(getFlashListScrollView(onScrollRef, function () {
36
- var _a;
37
- return (((_a = getListRenderedSize(parentFlashList)) === null || _a === void 0 ? void 0 : _a.height) ||
38
- estimatedListSize.height);
39
- })).current;
40
- var onScrollProxy = (0, react_1.useRef)(function (scrollEvent) {
41
- var _a, _b, _c, _d, _e;
42
- emptyScrollEvent.nativeEvent.contentOffset.y =
43
- scrollEvent.nativeEvent.contentOffset.y -
44
- ((_b = (_a = parentFlashList.current) === null || _a === void 0 ? void 0 : _a.firstItemOffset) !== null && _b !== void 0 ? _b : 0);
45
- (_c = onScrollRef.current) === null || _c === void 0 ? void 0 : _c.forEach(function (onScrollCallback) {
46
- onScrollCallback === null || onScrollCallback === void 0 ? void 0 : onScrollCallback(emptyScrollEvent);
47
- });
48
- if (!scrollEvent.nativeEvent.doNotPropagate) {
49
- (_e = (_d = propsRef.current).onScroll) === null || _e === void 0 ? void 0 : _e.call(_d, scrollEvent);
50
- }
51
- }).current;
52
- /**
53
- * We're triggering an onScroll on internal lists so that they register the correct offset which is offset - header size.
54
- * This will make sure viewability callbacks are triggered correctly.
55
- * 32 ms is equal to two frames at 60 fps. Faster framerates will not cause any problems.
56
- */
57
- var onLoadForNestedLists = (0, react_1.useRef)(function (args) {
58
- var _a, _b;
59
- setTimeout(function () {
60
- emptyScrollEvent.nativeEvent.doNotPropagate = true;
61
- onScrollProxy === null || onScrollProxy === void 0 ? void 0 : onScrollProxy(emptyScrollEvent);
62
- emptyScrollEvent.nativeEvent.doNotPropagate = false;
63
- }, 32);
64
- (_b = (_a = propsRef.current).onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, args);
65
- }).current;
66
- var _f = tslib_1.__read(useRefWithForwardRef(forwardRef), 2), parentFlashList = _f[0], getFlashList = _f[1];
67
- var renderItem = props.renderItem, getItemType = props.getItemType, getColumnFlex = props.getColumnFlex, overrideItemLayout = props.overrideItemLayout, viewabilityConfig = props.viewabilityConfig, keyExtractor = props.keyExtractor, onLoad = props.onLoad, onViewableItemsChanged = props.onViewableItemsChanged, data = props.data, stickyHeaderIndices = props.stickyHeaderIndices, CellRendererComponent = props.CellRendererComponent, ItemSeparatorComponent = props.ItemSeparatorComponent, remainingProps = tslib_1.__rest(props, ["renderItem", "getItemType", "getColumnFlex", "overrideItemLayout", "viewabilityConfig", "keyExtractor", "onLoad", "onViewableItemsChanged", "data", "stickyHeaderIndices", "CellRendererComponent", "ItemSeparatorComponent"]);
68
- var firstColumnHeight = ((_d = (_c = dataSet[0]) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) *
69
- ((_e = props.estimatedItemSize) !== null && _e !== void 0 ? _e : defaultEstimatedItemSize);
70
- var insetForLayoutManager = (0, ContentContainerUtils_1.applyContentContainerInsetForLayoutManager)({ height: 0, width: 0 }, props.contentContainerStyle, false);
71
- return (react_1.default.createElement(FlashList_1.default, tslib_1.__assign({ ref: getFlashList }, remainingProps, { horizontal: false, numColumns: columnCount, data: dataSet, onScroll: onScrollProxy, estimatedItemSize: firstColumnHeight || estimatedListSize.height, renderItem: function (args) {
72
- var _a, _b;
73
- return (react_1.default.createElement(FlashList_1.default, { renderScrollComponent: ScrollComponent, estimatedItemSize: props.estimatedItemSize, data: args.item, onLoad: args.index === 0 ? onLoadForNestedLists : undefined, renderItem: function (innerArgs) {
74
- var _a;
75
- return ((_a = renderItem === null || renderItem === void 0 ? void 0 : renderItem(tslib_1.__assign(tslib_1.__assign({}, innerArgs), { item: innerArgs.item.originalItem, index: innerArgs.item.originalIndex, columnSpan: 1, columnIndex: args.index }))) !== null && _a !== void 0 ? _a : null);
76
- }, keyExtractor: keyExtractor
77
- ? function (item, _) {
78
- return keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item.originalItem, item.originalIndex);
79
- }
80
- : undefined, getItemType: getItemType
81
- ? function (item, _, extraData) {
82
- return getItemType === null || getItemType === void 0 ? void 0 : getItemType(item.originalItem, item.originalIndex, extraData);
83
- }
84
- : undefined, drawDistance: drawDistance, estimatedListSize: {
85
- height: estimatedListSize.height,
86
- width: (((((_a = getListRenderedSize(parentFlashList)) === null || _a === void 0 ? void 0 : _a.width) ||
87
- estimatedListSize.width) +
88
- insetForLayoutManager.width) /
89
- totalColumnFlex) *
90
- ((_b = getColumnFlex === null || getColumnFlex === void 0 ? void 0 : getColumnFlex(args.item, args.index, columnCount, props.extraData)) !== null && _b !== void 0 ? _b : 1),
91
- }, extraData: props.extraData, CellRendererComponent: CellRendererComponent, ItemSeparatorComponent: ItemSeparatorComponent, viewabilityConfig: viewabilityConfig, onViewableItemsChanged: onViewableItemsChanged
92
- ? function (info) {
93
- updateViewTokens(info.viewableItems);
94
- updateViewTokens(info.changed);
95
- onViewableItemsChanged === null || onViewableItemsChanged === void 0 ? void 0 : onViewableItemsChanged(info);
96
- }
97
- : undefined, overrideItemLayout: overrideItemLayout
98
- ? function (layout, item, _, __, extraData) {
99
- overrideItemLayout === null || overrideItemLayout === void 0 ? void 0 : overrideItemLayout(layout, item.originalItem, item.originalIndex, columnCount, extraData);
100
- layout.span = undefined;
101
- }
102
- : undefined }));
103
- }, overrideItemLayout: getColumnFlex
104
- ? function (layout, item, index, maxColumns, extraData) {
105
- layout.span =
106
- (columnCount *
107
- getColumnFlex(item, index, maxColumns, extraData)) /
108
- totalColumnFlex;
109
- }
110
- : undefined })));
111
- });
112
- /**
113
- * Splits data for each column's FlashList
114
- */
115
- var useDataSet = function (columnCount, optimizeItemArrangement, sourceData, overrideItemLayout, extraData) {
116
- return (0, react_1.useMemo)(function () {
117
- var _a;
118
- if (!sourceData || sourceData.length === 0) {
119
- return [];
120
- }
121
- var columnHeightTracker = new Array(columnCount).fill(0);
122
- var layoutObject = { size: undefined };
123
- var dataSet = new Array(columnCount);
124
- var dataSize = sourceData.length;
125
- for (var i = 0; i < columnCount; i++) {
126
- dataSet[i] = [];
127
- }
128
- for (var i = 0; i < dataSize; i++) {
129
- var nextColumnIndex = i % columnCount;
130
- if (optimizeItemArrangement) {
131
- for (var j = 0; j < columnCount; j++) {
132
- if (columnHeightTracker[j] < columnHeightTracker[nextColumnIndex]) {
133
- nextColumnIndex = j;
134
- }
135
- }
136
- // update height of column
137
- layoutObject.size = undefined;
138
- overrideItemLayout(layoutObject, sourceData[i], i, columnCount, extraData);
139
- columnHeightTracker[nextColumnIndex] +=
140
- (_a = layoutObject.size) !== null && _a !== void 0 ? _a : defaultEstimatedItemSize;
141
- }
142
- dataSet[nextColumnIndex].push({
143
- originalItem: sourceData[i],
144
- originalIndex: i,
145
- });
146
- }
147
- return dataSet;
148
- // eslint-disable-next-line react-hooks/exhaustive-deps
149
- }, [sourceData, columnCount, optimizeItemArrangement, extraData]);
150
- };
151
- var useTotalColumnFlex = function (dataSet, props) {
152
- return (0, react_1.useMemo)(function () {
153
- var columnCount = props.numColumns || 1;
154
- if (!props.getColumnFlex) {
155
- return columnCount;
156
- }
157
- var totalFlexSum = 0;
158
- var dataSize = dataSet.length;
159
- for (var i = 0; i < dataSize; i++) {
160
- totalFlexSum += props.getColumnFlex(dataSet[i], i, columnCount, props.extraData);
161
- }
162
- return totalFlexSum;
163
- // eslint-disable-next-line react-hooks/exhaustive-deps
164
- }, [dataSet, props.getColumnFlex, props.extraData]);
165
- };
166
- /**
167
- * Handle both function refs and refs with current property
168
- */
169
- var useRefWithForwardRef = function (forwardRef) {
170
- var ref = (0, react_1.useRef)(null);
171
- return [
172
- ref,
173
- (0, react_1.useCallback)(function (instance) {
174
- ref.current = instance;
175
- if (typeof forwardRef === "function") {
176
- forwardRef(instance);
177
- }
178
- else if (forwardRef) {
179
- forwardRef.current = instance;
180
- }
181
- }, [forwardRef]),
182
- ];
183
- };
184
- /**
185
- * This ScrollView is actually just a view mimicking a scrollview. We block the onScroll event from being passed to the parent list directly.
186
- * We manually drive onScroll from the parent and thus, achieve recycling.
187
- */
188
- var getFlashListScrollView = function (onScrollRef, getParentHeight) {
189
- var FlashListScrollView = react_1.default.forwardRef(function (props, ref) {
190
- var onLayout = props.onLayout, onScroll = props.onScroll, rest = tslib_1.__rest(props, ["onLayout", "onScroll"]);
191
- var onLayoutProxy = (0, react_1.useCallback)(function (layoutEvent) {
192
- onLayout === null || onLayout === void 0 ? void 0 : onLayout({
193
- nativeEvent: {
194
- layout: {
195
- height: getParentHeight(),
196
- width: layoutEvent.nativeEvent.layout.width,
197
- },
198
- },
199
- });
200
- }, [onLayout]);
201
- (0, react_1.useEffect)(function () {
202
- var _a;
203
- if (onScroll) {
204
- (_a = onScrollRef.current) === null || _a === void 0 ? void 0 : _a.push(onScroll);
205
- }
206
- return function () {
207
- if (!onScrollRef.current || !onScroll) {
208
- return;
209
- }
210
- var indexToDelete = onScrollRef.current.indexOf(onScroll);
211
- if (indexToDelete > -1) {
212
- onScrollRef.current.splice(indexToDelete, 1);
213
- }
214
- };
215
- }, [onScroll]);
216
- return react_1.default.createElement(react_native_1.View, tslib_1.__assign({ ref: ref }, rest, { onLayout: onLayoutProxy }));
217
- });
218
- FlashListScrollView.displayName = "FlashListScrollView";
219
- return FlashListScrollView;
220
- };
221
- var updateViewTokens = function (tokens) {
222
- var length = tokens.length;
223
- for (var i = 0; i < length; i++) {
224
- var token = tokens[i];
225
- if (token.index !== null && token.index !== undefined) {
226
- if (token.item) {
227
- token.index = token.item.originalIndex;
228
- token.item = token.item.originalItem;
229
- }
230
- else {
231
- token.index = null;
232
- token.item = undefined;
233
- }
234
- }
235
- }
236
- };
237
- var getEmptyScrollEvent = function () {
238
- return {
239
- nativeEvent: { contentOffset: { y: 0, x: 0 } },
240
- };
241
- };
242
- var getListRenderedSize = function (parentFlashList) {
243
- var _a, _b;
244
- return (_b = (_a = parentFlashList === null || parentFlashList === void 0 ? void 0 : parentFlashList.current) === null || _a === void 0 ? void 0 : _a.recyclerlistview_unsafe) === null || _b === void 0 ? void 0 : _b.getRenderedSize();
245
- };
246
- MasonryFlashListComponent.displayName = "MasonryFlashList";
247
- /**
248
- * FlashList variant that enables rendering of masonry layouts.
249
- * If you want `MasonryFlashList` to optimize item arrangement, enable `optimizeItemArrangement` and pass a valid `overrideItemLayout` function.
250
- */
251
- exports.MasonryFlashList = MasonryFlashListComponent;
252
- //# sourceMappingURL=MasonryFlashList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MasonryFlashList.js","sourceRoot":"","sources":["../src/MasonryFlashList.tsx"],"names":[],"mappings":";;;;AAAA,qDAAuE;AACvE,6CAOsB;AAEtB,6EAA+C;AAC/C,iFAAmD;AACnD,kEAAoC;AAEpC,uEAA2F;AAkD3F,IAAM,wBAAwB,GAAG,GAAG,CAAC;AAoBrC;;;GAGG;AACH,IAAM,yBAAyB,GAAG,eAAK,CAAC,UAAU,CAChD;AACE;;GAEG;AACH,KAA+B,EAC/B,UAAsD;;IAEtD,IAAM,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,IAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,IAAM,iBAAiB,GAAG,MAAA,MAAA,KAAK,CAAC,iBAAiB,mCAC/C,yBAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAE1D,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC/D,MAAM,IAAI,qBAAW,CACnB,uBAAa,CAAC,gDAAgD,CAC/D,CAAC;IACJ,CAAC;IACD,IAAM,OAAO,GAAG,UAAU,CACxB,WAAW,EACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,EACtC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,IAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3D,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAEzB,IAAM,WAAW,GAAG,IAAA,cAAM,EAAqB,EAAE,CAAC,CAAC;IACnD,IAAM,gBAAgB,GAAG,IAAA,cAAM,EAAC,mBAAmB,EAAE,CAAC;SACnD,OAA4D,CAAC;IAChE,IAAM,eAAe,GAAG,IAAA,cAAM,EAC5B,sBAAsB,CAAC,WAAW,EAAE;;QAClC,OAAO,CACL,CAAA,MAAA,mBAAmB,CAAC,eAAe,CAAC,0CAAE,MAAM;YAC5C,iBAAiB,CAAC,MAAM,CACzB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC,OAAO,CAAC;IAEV,IAAM,aAAa,GAAG,IAAA,cAAM,EAC1B,UAAC,WAA8D;;QAC7D,gBAAgB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC1C,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACvC,CAAC,MAAA,MAAA,eAAe,CAAC,OAAO,0CAAE,eAAe,mCAAI,CAAC,CAAC,CAAC;QAClD,MAAA,WAAW,CAAC,OAAO,0CAAE,OAAO,CAAC,UAAC,gBAAgB;YAC5C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,gBAAgB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;YAC5C,MAAA,MAAA,QAAQ,CAAC,OAAO,EAAC,QAAQ,mDAAG,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CACF,CAAC,OAAO,CAAC;IAEV;;;;OAIG;IACH,IAAM,oBAAoB,GAAG,IAAA,cAAM,EAAC,UAAC,IAAiC;;QACpE,UAAU,CAAC;YACT,gBAAgB,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;YACnD,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,gBAAgB,CAAC,CAAC;YAClC,gBAAgB,CAAC,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC;QACtD,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAA,MAAA,QAAQ,CAAC,OAAO,EAAC,MAAM,mDAAG,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEL,IAAA,KAAA,eACJ,oBAAoB,CAAkC,UAAU,CAAC,IAAA,EAD5D,eAAe,QAAA,EAAE,YAAY,QAC+B,CAAC;IAGlE,IAAA,UAAU,GAaR,KAAK,WAbG,EACV,WAAW,GAYT,KAAK,YAZI,EACX,aAAa,GAWX,KAAK,cAXM,EACb,kBAAkB,GAUhB,KAAK,mBAVW,EAClB,iBAAiB,GASf,KAAK,kBATU,EACjB,YAAY,GAQV,KAAK,aARK,EACZ,MAAM,GAOJ,KAAK,OAPD,EACN,sBAAsB,GAMpB,KAAK,uBANe,EACtB,IAAI,GAKF,KAAK,KALH,EACJ,mBAAmB,GAIjB,KAAK,oBAJY,EACnB,qBAAqB,GAGnB,KAAK,sBAHc,EACrB,sBAAsB,GAEpB,KAAK,uBAFe,EACnB,cAAc,kBACf,KAAK,EAdH,+NAcL,CADkB,CACT;IAEV,IAAM,iBAAiB,GACrB,CAAC,MAAA,MAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC;QACzB,CAAC,MAAA,KAAK,CAAC,iBAAiB,mCAAI,wBAAwB,CAAC,CAAC;IAExD,IAAM,qBAAqB,GAAG,IAAA,kEAA0C,EACtE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EACvB,KAAK,CAAC,qBAAqB,EAC3B,KAAK,CACN,CAAC;IAEF,OAAO,CACL,8BAAC,mBAAS,qBACR,GAAG,EAAE,YAAY,IACb,cAAc,IAClB,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,WAAW,EACvB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,aAAa,EACvB,iBAAiB,EAAE,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAChE,UAAU,EAAE,UAAC,IAAI;;YACf,OAAO,CACL,8BAAC,mBAAS,IACR,qBAAqB,EAAE,eAAe,EACtC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAC3D,UAAU,EAAE,UAAC,SAAS;;oBACpB,OAAO,CACL,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,uCACL,SAAS,KACZ,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,YAAY,EACjC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,EACnC,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,IAAI,CAAC,KAAK,IACvB,mCAAI,IAAI,CACX,CAAC;gBACJ,CAAC,EACD,YAAY,EACV,YAAY;oBACV,CAAC,CAAC,UAAC,IAAI,EAAE,CAAC;wBACN,OAAO,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CACnB,CAAC;oBACJ,CAAC;oBACH,CAAC,CAAC,SAAS,EAEf,WAAW,EACT,WAAW;oBACT,CAAC,CAAC,UAAC,IAAI,EAAE,CAAC,EAAE,SAAS;wBACjB,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,SAAS,CACV,CAAC;oBACJ,CAAC;oBACH,CAAC,CAAC,SAAS,EAEf,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE;oBACjB,MAAM,EAAE,iBAAiB,CAAC,MAAM;oBAChC,KAAK,EACH,CAAC,CAAC,CAAC,CAAA,MAAA,mBAAmB,CAAC,eAAe,CAAC,0CAAE,KAAK;wBAC5C,iBAAiB,CAAC,KAAK,CAAC;wBACxB,qBAAqB,CAAC,KAAK,CAAC;wBAC5B,eAAe,CAAC;wBAClB,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,WAAW,EACX,KAAK,CAAC,SAAS,CAChB,mCAAI,CAAC,CAAC;iBACV,EACD,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,iBAAiB,EAAE,iBAAiB,EACpC,sBAAsB,EACpB,sBAAsB;oBACpB,CAAC,CAAC,UAAC,IAAI;wBACH,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBACrC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC/B,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAG,IAAW,CAAC,CAAC;oBACxC,CAAC;oBACH,CAAC,CAAC,SAAS,EAEf,kBAAkB,EAChB,kBAAkB;oBAChB,CAAC,CAAC,UAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS;wBAC7B,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAChB,MAAM,EACN,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,WAAW,EACX,SAAS,CACV,CAAC;wBACF,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;oBAC1B,CAAC;oBACH,CAAC,CAAC,SAAS,GAEf,CACH,CAAC;QACJ,CAAC,EACD,kBAAkB,EAChB,aAAa;YACX,CAAC,CAAC,UAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS;gBACzC,MAAM,CAAC,IAAI;oBACT,CAAC,WAAW;wBACV,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;wBACpD,eAAe,CAAC;YACpB,CAAC;YACH,CAAC,CAAC,SAAS,IAEf,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;GAEG;AACH,IAAM,UAAU,GAAG,UACjB,WAAmB,EACnB,uBAAgC,EAChC,UAAsC,EACtC,kBAAmE,EACnE,SAAiD;IAEjD,OAAO,IAAA,eAAO,EAAC;;QACb,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAM,mBAAmB,GAAG,IAAI,KAAK,CAAS,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,IAAM,YAAY,GAAiC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACvE,IAAM,OAAO,GAAG,IAAI,KAAK,CAAuB,WAAW,CAAC,CAAC;QAC7D,IAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,eAAe,GAAG,CAAC,GAAG,WAAW,CAAC;YACtC,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAAC,EAAE,CAAC;wBAClE,eAAe,GAAG,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;gBACD,0BAA0B;gBAC1B,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;gBAC9B,kBAAmB,CACjB,YAAY,EACZ,UAAU,CAAC,CAAC,CAAC,EACb,CAAC,EACD,WAAW,EACX,SAAS,CACV,CAAC;gBACF,mBAAmB,CAAC,eAAe,CAAC;oBAClC,MAAA,YAAY,CAAC,IAAI,mCAAI,wBAAwB,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;gBAC5B,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC3B,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;QACf,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,IAAM,kBAAkB,GAAG,UACzB,OAA+B,EAC/B,KAA+B;IAE/B,OAAO,IAAA,eAAO,EAAC;QACb,IAAM,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,YAAY,IAAI,KAAK,CAAC,aAAa,CACjC,OAAO,CAAC,CAAC,CAAC,EACV,CAAC,EACD,WAAW,EACX,KAAK,CAAC,SAAS,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CAAC;QACpB,uDAAuD;IACzD,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;GAEG;AACH,IAAM,oBAAoB,GAAG,UAC3B,UAAe;IAEf,IAAM,GAAG,GAAqC,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAC3D,OAAO;QACL,GAAG;QACH,IAAA,mBAAW,EACT,UAAC,QAAkB;YACjB,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;YACvB,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC;YAChC,CAAC;QACH,CAAC,EACD,CAAC,UAAU,CAAC,CACb;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,IAAM,sBAAsB,GAAG,UAC7B,WAAgD,EAChD,eAA6B;IAE7B,IAAM,mBAAmB,GAAG,eAAK,CAAC,UAAU,CAC1C,UAAC,KAAsB,EAAE,GAA6B;QAC5C,IAAA,QAAQ,GAAwB,KAAK,SAA7B,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,kBAAK,KAAK,EAAvC,wBAA+B,CAAF,CAAW;QAC9C,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,WAA8B;YAC7B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG;gBACT,WAAW,EAAE;oBACX,MAAM,EAAE;wBACN,MAAM,EAAE,eAAe,EAAE;wBACzB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;qBAC5C;iBACF;aACmB,CAAC,CAAC;QAC1B,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;QACF,IAAA,iBAAS,EAAC;;YACR,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAA,WAAW,CAAC,OAAO,0CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YACD,OAAO;gBACL,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtC,OAAO;gBACT,CAAC;gBACD,IAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;oBACvB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC;QACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACf,OAAO,8BAAC,mBAAI,qBAAC,GAAG,EAAE,GAAG,IAAM,IAAI,IAAE,QAAQ,EAAE,aAAa,IAAI,CAAC;IAC/D,CAAC,CACF,CAAC;IACF,mBAAmB,CAAC,WAAW,GAAG,qBAAqB,CAAC;IACxD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AACF,IAAM,gBAAgB,GAAG,UAAC,MAAwB;IAChD,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;gBACvC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG;IAC1B,OAAO;QACL,WAAW,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;KAC/C,CAAC;AACJ,CAAC,CAAC;AACF,IAAM,mBAAmB,GAAG,UAC1B,eAA8D;;IAE9D,OAAO,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,uBAAuB,0CAAE,eAAe,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF,yBAAyB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAE3D;;;GAGG;AACU,QAAA,gBAAgB,GAAG,yBAIT,CAAC"}
@@ -1,22 +0,0 @@
1
- import React from "react";
2
- export interface PureComponentWrapperProps {
3
- renderer: (arg: unknown) => JSX.Element | null;
4
- /** Renderer is called with this argument.
5
- * Don't change this value everytime or else component will always rerender. Prefer primitives. */
6
- arg?: unknown;
7
- enabled?: boolean;
8
- [other: string]: unknown;
9
- }
10
- /**
11
- * Pure component wrapper that can be used to prevent renders of the `renderer` method passed to the component. Any change in props will lead to `renderer` getting called.
12
- */
13
- export declare class PureComponentWrapper extends React.PureComponent<PureComponentWrapperProps> {
14
- static defaultProps: {
15
- enabled: boolean;
16
- };
17
- private overrideEnabled;
18
- /** Once set explicitly, prop will be ignored. Not using state because of performance reasons. */
19
- setEnabled(enabled: boolean): void;
20
- render(): JSX.Element | null;
21
- }
22
- //# sourceMappingURL=PureComponentWrapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PureComponentWrapper.d.ts","sourceRoot":"","sources":["../src/PureComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAE/C;sGACkG;IAClG,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC;IACtF,MAAM,CAAC,YAAY;;MAEjB;IAEF,OAAO,CAAC,eAAe,CAAkC;IAEzD,iGAAiG;IAC1F,UAAU,CAAC,OAAO,EAAE,OAAO;IAOlC,MAAM;CAWP"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PureComponentWrapper = void 0;
4
- var tslib_1 = require("tslib");
5
- var react_1 = tslib_1.__importDefault(require("react"));
6
- /**
7
- * Pure component wrapper that can be used to prevent renders of the `renderer` method passed to the component. Any change in props will lead to `renderer` getting called.
8
- */
9
- var PureComponentWrapper = /** @class */ (function (_super) {
10
- tslib_1.__extends(PureComponentWrapper, _super);
11
- function PureComponentWrapper() {
12
- var _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(arguments), false)) || this;
13
- _this.overrideEnabled = undefined;
14
- return _this;
15
- }
16
- /** Once set explicitly, prop will be ignored. Not using state because of performance reasons. */
17
- PureComponentWrapper.prototype.setEnabled = function (enabled) {
18
- if (enabled !== this.overrideEnabled) {
19
- this.overrideEnabled = enabled;
20
- this.forceUpdate();
21
- }
22
- };
23
- PureComponentWrapper.prototype.render = function () {
24
- if (this.overrideEnabled === undefined) {
25
- return ((this.props.enabled && this.props.renderer(this.props.arg)) || null);
26
- }
27
- else {
28
- return ((this.overrideEnabled && this.props.renderer(this.props.arg)) || null);
29
- }
30
- };
31
- PureComponentWrapper.defaultProps = {
32
- enabled: true,
33
- };
34
- return PureComponentWrapper;
35
- }(react_1.default.PureComponent));
36
- exports.PureComponentWrapper = PureComponentWrapper;
37
- //# sourceMappingURL=PureComponentWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PureComponentWrapper.js","sourceRoot":"","sources":["../src/PureComponentWrapper.tsx"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAY1B;;GAEG;AACH;IAA0C,gDAA8C;IAAxF;;QAKU,qBAAe,GAAwB,SAAS,CAAC;;IAqB3D,CAAC;IAnBC,iGAAiG;IAC1F,yCAAU,GAAjB,UAAkB,OAAgB;QAChC,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,qCAAM,GAAN;QACE,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CACpE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CACL,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAxBM,iCAAY,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,AAFkB,CAEjB;IAuBJ,2BAAC;CAAA,AA1BD,CAA0C,eAAK,CAAC,aAAa,GA0B5D;AA1BY,oDAAoB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ContentContainerUtils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentContainerUtils.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ContentContainerUtils.test.ts"],"names":[],"mappings":""}