@shopify/flash-list 2.0.0-alpha.8 → 2.0.0-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 (197) hide show
  1. package/README.md +38 -98
  2. package/dist/AnimatedFlashList.d.ts.map +1 -1
  3. package/dist/AnimatedFlashList.js +3 -3
  4. package/dist/AnimatedFlashList.js.map +1 -1
  5. package/dist/FlashList.d.ts +9 -0
  6. package/dist/FlashList.d.ts.map +1 -1
  7. package/dist/FlashList.js +20 -0
  8. package/dist/FlashList.js.map +1 -1
  9. package/dist/FlashListProps.d.ts +15 -8
  10. package/dist/FlashListProps.d.ts.map +1 -1
  11. package/dist/FlashListProps.js.map +1 -1
  12. package/dist/FlashListRef.d.ts +305 -0
  13. package/dist/FlashListRef.d.ts.map +1 -0
  14. package/dist/FlashListRef.js +3 -0
  15. package/dist/FlashListRef.js.map +1 -0
  16. package/dist/MasonryFlashList.js.map +1 -1
  17. package/dist/__tests__/RecyclerView.test.js +63 -28
  18. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  19. package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
  20. package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
  21. package/dist/__tests__/RenderStackManager.test.js +486 -0
  22. package/dist/__tests__/RenderStackManager.test.js.map +1 -0
  23. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +1 -1
  24. package/dist/__tests__/helpers/createLayoutManager.js +3 -4
  25. package/dist/__tests__/helpers/createLayoutManager.js.map +1 -1
  26. package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
  27. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
  28. package/dist/benchmark/useFlatListBenchmark.js +8 -7
  29. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  30. package/dist/enableNewCore.d.ts.map +1 -1
  31. package/dist/enableNewCore.js +2 -1
  32. package/dist/enableNewCore.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.android.d.ts +2 -0
  37. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  38. package/dist/native/config/PlatformHelper.android.js +2 -0
  39. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.d.ts +2 -0
  41. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  42. package/dist/native/config/PlatformHelper.ios.d.ts +2 -0
  43. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  44. package/dist/native/config/PlatformHelper.ios.js +2 -0
  45. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  46. package/dist/native/config/PlatformHelper.js +2 -0
  47. package/dist/native/config/PlatformHelper.js.map +1 -1
  48. package/dist/native/config/PlatformHelper.web.d.ts +2 -0
  49. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  50. package/dist/native/config/PlatformHelper.web.js +3 -1
  51. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  52. package/dist/recyclerview/RecyclerView.d.ts +2 -1
  53. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  54. package/dist/recyclerview/RecyclerView.js +64 -37
  55. package/dist/recyclerview/RecyclerView.js.map +1 -1
  56. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +6 -5
  57. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  58. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  59. package/dist/recyclerview/RecyclerViewManager.d.ts +21 -7
  60. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  61. package/dist/recyclerview/RecyclerViewManager.js +105 -113
  62. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  63. package/dist/recyclerview/RenderStackManager.d.ts +85 -0
  64. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  65. package/dist/recyclerview/RenderStackManager.js +324 -0
  66. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  67. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  68. package/dist/recyclerview/ViewHolder.js +5 -3
  69. package/dist/recyclerview/ViewHolder.js.map +1 -1
  70. package/dist/recyclerview/ViewHolderCollection.d.ts +3 -1
  71. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  72. package/dist/recyclerview/ViewHolderCollection.js +23 -8
  73. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  74. package/dist/recyclerview/components/ScrollAnchor.d.ts +2 -1
  75. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  76. package/dist/recyclerview/components/ScrollAnchor.js +9 -4
  77. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  78. package/dist/recyclerview/components/StickyHeaders.d.ts +1 -1
  79. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  80. package/dist/recyclerview/components/StickyHeaders.js +40 -32
  81. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  82. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +45 -1
  83. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -1
  84. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +79 -20
  85. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  86. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +10 -0
  87. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
  88. package/dist/recyclerview/helpers/RenderTimeTracker.js +39 -0
  89. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
  90. package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
  91. package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
  92. package/dist/recyclerview/helpers/VelocityTracker.js +70 -0
  93. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
  94. package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
  95. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  96. package/dist/recyclerview/hooks/useBoundDetection.js +19 -16
  97. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  98. package/dist/recyclerview/hooks/useMappingHelper.d.ts +1 -1
  99. package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -1
  100. package/dist/recyclerview/hooks/useMappingHelper.js +1 -1
  101. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  102. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  103. package/dist/recyclerview/hooks/useOnLoad.js +4 -6
  104. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  105. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +3 -48
  106. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  107. package/dist/recyclerview/hooks/useRecyclerViewController.js +179 -119
  108. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  109. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +2 -0
  110. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  111. package/dist/recyclerview/hooks/useRecyclerViewManager.js +10 -1
  112. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  113. package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
  114. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
  115. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
  116. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
  117. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  118. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +6 -0
  119. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  120. package/dist/recyclerview/layout-managers/GridLayoutManager.js +27 -5
  121. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  122. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +10 -16
  123. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
  124. package/dist/recyclerview/layout-managers/LayoutManager.js +4 -14
  125. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  126. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +2 -2
  127. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  128. package/dist/recyclerview/utils/measureLayout.d.ts +1 -29
  129. package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -1
  130. package/dist/recyclerview/utils/measureLayout.js +2 -4
  131. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  132. package/dist/recyclerview/utils/measureLayout.web.d.ts +29 -0
  133. package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -0
  134. package/dist/recyclerview/utils/measureLayout.web.js +89 -0
  135. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -0
  136. package/dist/tsconfig.tsbuildinfo +1 -1
  137. package/dist/viewability/ViewToken.d.ts +2 -2
  138. package/dist/viewability/ViewToken.d.ts.map +1 -1
  139. package/dist/viewability/ViewabilityHelper.js +1 -1
  140. package/dist/viewability/ViewabilityHelper.js.map +1 -1
  141. package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
  142. package/dist/viewability/ViewabilityManager.js +1 -2
  143. package/dist/viewability/ViewabilityManager.js.map +1 -1
  144. package/jestSetup.js +30 -11
  145. package/package.json +2 -1
  146. package/src/AnimatedFlashList.ts +3 -2
  147. package/src/FlashList.tsx +24 -0
  148. package/src/FlashListProps.ts +20 -8
  149. package/src/FlashListRef.ts +320 -0
  150. package/src/MasonryFlashList.tsx +2 -2
  151. package/src/__tests__/RecyclerView.test.tsx +84 -30
  152. package/src/__tests__/RenderStackManager.test.ts +575 -0
  153. package/src/__tests__/helpers/createLayoutManager.ts +2 -3
  154. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
  155. package/src/benchmark/useFlatListBenchmark.ts +2 -2
  156. package/src/enableNewCore.ts +3 -1
  157. package/src/index.ts +1 -0
  158. package/src/native/config/PlatformHelper.android.ts +2 -0
  159. package/src/native/config/PlatformHelper.ios.ts +2 -0
  160. package/src/native/config/PlatformHelper.ts +2 -0
  161. package/src/native/config/PlatformHelper.web.ts +3 -1
  162. package/src/recyclerview/RecyclerView.tsx +85 -43
  163. package/src/recyclerview/RecyclerViewContextProvider.ts +12 -6
  164. package/src/recyclerview/RecyclerViewManager.ts +123 -98
  165. package/src/recyclerview/RenderStackManager.ts +291 -0
  166. package/src/recyclerview/ViewHolder.tsx +5 -3
  167. package/src/recyclerview/ViewHolderCollection.tsx +33 -12
  168. package/src/recyclerview/components/ScrollAnchor.tsx +21 -8
  169. package/src/recyclerview/components/StickyHeaders.tsx +63 -44
  170. package/src/recyclerview/helpers/EngagedIndicesTracker.ts +120 -23
  171. package/src/recyclerview/helpers/RenderTimeTracker.ts +38 -0
  172. package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
  173. package/src/recyclerview/hooks/useBoundDetection.ts +25 -18
  174. package/src/recyclerview/hooks/useMappingHelper.ts +1 -1
  175. package/src/recyclerview/hooks/useOnLoad.ts +4 -6
  176. package/src/recyclerview/hooks/useRecyclerViewController.tsx +204 -173
  177. package/src/recyclerview/hooks/useRecyclerViewManager.ts +11 -1
  178. package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
  179. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
  180. package/src/recyclerview/layout-managers/GridLayoutManager.ts +30 -7
  181. package/src/recyclerview/layout-managers/LayoutManager.ts +12 -21
  182. package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +1 -1
  183. package/src/recyclerview/utils/measureLayout.ts +3 -3
  184. package/src/recyclerview/utils/measureLayout.web.ts +104 -0
  185. package/src/viewability/ViewToken.ts +2 -2
  186. package/src/viewability/ViewabilityHelper.ts +1 -1
  187. package/src/viewability/ViewabilityManager.ts +6 -3
  188. package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
  189. package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
  190. package/dist/__tests__/RecycleKeyManager.test.js +0 -210
  191. package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
  192. package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
  193. package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
  194. package/dist/recyclerview/RecycleKeyManager.js +0 -135
  195. package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
  196. package/src/__tests__/RecycleKeyManager.test.ts +0 -254
  197. package/src/recyclerview/RecycleKeyManager.ts +0 -185
@@ -5,19 +5,22 @@ import { Velocity } from "./helpers/EngagedIndicesTracker";
5
5
  export declare class RecyclerViewManager<T> {
6
6
  private initialDrawBatchSize;
7
7
  private engagedIndicesTracker;
8
- private recycleKeyManager;
8
+ private renderStackManager;
9
9
  private layoutManager?;
10
- private renderStack;
11
10
  private isFirstLayoutComplete;
12
11
  private hasRenderedProgressively;
13
- private props;
12
+ private propsRef;
14
13
  private itemViewabilityManager;
15
- private allocatedKeyTracker;
16
- disableRecycling: boolean;
14
+ private _isDisposed;
15
+ private _isLayoutManagerDirty;
17
16
  firstItemOffset: number;
18
17
  ignoreScrollEvents: boolean;
18
+ get isOffsetProjectionEnabled(): boolean;
19
+ get isDisposed(): boolean;
19
20
  constructor(props: RecyclerViewProps<T>);
20
21
  private updateRenderStack;
22
+ get props(): RecyclerViewProps<T>;
23
+ setOffsetProjectionEnabled(value: boolean): void;
21
24
  updateProps(props: RecyclerViewProps<T>): void;
22
25
  /**
23
26
  * Updates the scroll offset and returns the engaged indices if any
@@ -25,18 +28,26 @@ export declare class RecyclerViewManager<T> {
25
28
  * @param velocity
26
29
  */
27
30
  updateScrollOffset(offset: number, velocity?: Velocity): ConsecutiveNumbers | undefined;
31
+ updateAverageRenderTime(time: number): void;
28
32
  getIsFirstLayoutComplete(): boolean;
33
+ disableRecycling(disable: boolean): void;
29
34
  getLayout(index: number): import("./layout-managers/LayoutManager").RVLayout;
35
+ tryGetLayout(index: number): import("./layout-managers/LayoutManager").RVLayout | undefined;
30
36
  getChildContainerDimensions(): RVDimension;
31
- getRenderStack(): Map<number, string>;
37
+ getRenderStack(): Map<string, {
38
+ itemType: string;
39
+ index: number;
40
+ stableId: string;
41
+ }>;
32
42
  getWindowSize(): RVDimension;
33
43
  getLastScrollOffset(): number;
34
44
  getMaxScrollOffset(): number;
35
45
  getAbsoluteLastScrollOffset(): number;
36
46
  setScrollDirection(scrollDirection: "forward" | "backward"): void;
47
+ resetVelocityCompute(): void;
37
48
  updateLayoutParams(windowSize: RVDimension, firstItemOffset: number): void;
38
49
  hasLayout(): boolean;
39
- getVisibleIndices(): ConsecutiveNumbers;
50
+ computeVisibleIndices(): ConsecutiveNumbers;
40
51
  getEngagedIndices(): ConsecutiveNumbers;
41
52
  modifyChildrenLayout(layoutInfo: RVLayoutInfo[], dataLength: number): boolean;
42
53
  computeItemViewability(): void;
@@ -45,12 +56,15 @@ export declare class RecyclerViewManager<T> {
45
56
  processDataUpdate(): void;
46
57
  recomputeEngagedIndices(): ConsecutiveNumbers | undefined;
47
58
  dispose(): void;
59
+ markLayoutManagerDirty(): void;
48
60
  getInitialScrollIndex(): number | undefined;
61
+ shouldMaintainVisibleContentPosition(): boolean;
49
62
  getDataLength(): number;
50
63
  private getLayoutManagerClass;
51
64
  private applyInitialScrollAdjustment;
52
65
  private renderProgressively;
53
66
  private getItemType;
54
67
  private getStableId;
68
+ private overrideItemLayout;
55
69
  }
56
70
  //# sourceMappingURL=RecyclerViewManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerViewManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EACL,WAAW,EACX,YAAY,EAEb,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAkB;IAExC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,mBAAmB,CAA0B;IAE9C,gBAAgB,UAAS;IACzB,eAAe,SAAK;IACpB,kBAAkB,UAAS;gBAEtB,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IASvC,OAAO,CAAC,iBAAiB,CA6CvB;IAEF,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAWvC;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,GAAG,SAAS;IAgBjC,wBAAwB;IAIxB,SAAS,CAAC,KAAK,EAAE,MAAM;IAUvB,2BAA2B;IAS3B,cAAc;IAId,aAAa;IAUb,mBAAmB;IAInB,kBAAkB;IAclB,2BAA2B;IAI3B,kBAAkB,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU;IAI1D,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IA2CnE,SAAS;IAIT,iBAAiB;IASjB,iBAAiB;IAIjB,oBAAoB,CAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO;IAkBV,sBAAsB;IAUtB,iBAAiB;IAIjB,sBAAsB;IAItB,iBAAiB;IAWjB,uBAAuB,IAAI,kBAAkB,GAAG,SAAS;IAIzD,OAAO;IAIP,qBAAqB;IASrB,aAAa;IAIb,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"RecyclerViewManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAEL,WAAW,EACX,YAAY,EAGb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAkB;IAExC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAS;IAE/B,eAAe,SAAK;IACpB,kBAAkB,UAAS;IAElC,IAAW,yBAAyB,YAEnC;IAED,IAAW,UAAU,YAEpB;gBAEW,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAavC,OAAO,CAAC,iBAAiB,CAOvB;IAEF,IAAI,KAAK,yBAER;IAED,0BAA0B,CAAC,KAAK,EAAE,OAAO;IAIzC,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAcvC;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,GAAG,SAAS;IAgBjC,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,wBAAwB;IAIxB,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAIjC,SAAS,CAAC,KAAK,EAAE,MAAM;IASvB,YAAY,CAAC,KAAK,EAAE,MAAM;IAY1B,2BAA2B;IAS3B,cAAc;;;;;IAId,aAAa;IAUb,mBAAmB;IAInB,kBAAkB;IAclB,2BAA2B;IAI3B,kBAAkB,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU;IAI1D,oBAAoB;IAIpB,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IAoCnE,SAAS;IAIT,qBAAqB;IASrB,iBAAiB;IAIjB,oBAAoB,CAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO;IAkBV,sBAAsB;IAUtB,iBAAiB;IAIjB,sBAAsB;IAItB,iBAAiB;IAWjB,uBAAuB,IAAI,kBAAkB,GAAG,SAAS;IAIzD,OAAO;IAKP,sBAAsB;IAItB,qBAAqB;IASrB,oCAAoC;IAQpC,aAAa;IAIb,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -6,105 +6,69 @@ var ViewabilityManager_1 = tslib_1.__importDefault(require("../viewability/Viewa
6
6
  var GridLayoutManager_1 = require("./layout-managers/GridLayoutManager");
7
7
  var LinearLayoutManager_1 = require("./layout-managers/LinearLayoutManager");
8
8
  var MasonryLayoutManager_1 = require("./layout-managers/MasonryLayoutManager");
9
- var RecycleKeyManager_1 = require("./RecycleKeyManager");
10
9
  var EngagedIndicesTracker_1 = require("./helpers/EngagedIndicesTracker");
11
- // Abstracts layout manager, key manager and viewability manager and generates render stack (progressively on load)
10
+ var RenderStackManager_1 = require("./RenderStackManager");
11
+ // Abstracts layout manager, render stack manager and viewability manager and generates render stack (progressively on load)
12
12
  var RecyclerViewManager = /** @class */ (function () {
13
13
  function RecyclerViewManager(props) {
14
14
  var _this = this;
15
15
  this.initialDrawBatchSize = 1;
16
16
  // Map of index to key
17
- this.renderStack = new Map();
18
17
  this.isFirstLayoutComplete = false;
19
18
  this.hasRenderedProgressively = false;
20
- this.allocatedKeyTracker = new Set();
21
- this.disableRecycling = false;
19
+ this._isDisposed = false;
20
+ this._isLayoutManagerDirty = false;
22
21
  this.firstItemOffset = 0;
23
22
  this.ignoreScrollEvents = false;
24
23
  // updates render stack based on the engaged indices which are sorted. Recycles unused keys.
25
- // TODO: Write comprehensive tests for this function
26
24
  this.updateRenderStack = function (engagedIndices) {
27
- // console.log("updateRenderStack", engagedIndices);
28
- var e_1, _a, e_2, _b, e_3, _c;
29
- var _d, _e;
30
- _this.allocatedKeyTracker.clear();
31
- var newRenderStack = new Map();
32
- try {
33
- for (var _f = tslib_1.__values(_this.renderStack), _g = _f.next(); !_g.done; _g = _f.next()) {
34
- var _h = tslib_1.__read(_g.value, 2), index = _h[0], key = _h[1];
35
- if (!engagedIndices.includes(index)) {
36
- _this.recycleKeyManager.recycleKey(key);
37
- }
38
- }
39
- }
40
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
41
- finally {
42
- try {
43
- if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
44
- }
45
- finally { if (e_1) throw e_1.error; }
46
- }
47
- if (_this.disableRecycling) {
48
- _this.recycleKeyManager.clearPool();
49
- }
50
- try {
51
- for (var engagedIndices_1 = tslib_1.__values(engagedIndices), engagedIndices_1_1 = engagedIndices_1.next(); !engagedIndices_1_1.done; engagedIndices_1_1 = engagedIndices_1.next()) {
52
- var index = engagedIndices_1_1.value;
53
- var currentKey = _this.renderStack.get(index);
54
- if (currentKey &&
55
- !_this.disableRecycling &&
56
- !_this.allocatedKeyTracker.has(currentKey)) {
57
- _this.recycleKeyManager.recycleKey(currentKey);
58
- }
59
- var newKey = _this.recycleKeyManager.getKey(_this.getItemType(index), _this.getStableId(index), currentKey);
60
- _this.allocatedKeyTracker.add(newKey);
61
- newRenderStack.set(index, newKey);
62
- }
63
- }
64
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
65
- finally {
66
- try {
67
- if (engagedIndices_1_1 && !engagedIndices_1_1.done && (_b = engagedIndices_1.return)) _b.call(engagedIndices_1);
68
- }
69
- finally { if (e_2) throw e_2.error; }
70
- }
71
- try {
72
- // DANGER
73
- for (var _j = tslib_1.__values(_this.renderStack), _k = _j.next(); !_k.done; _k = _j.next()) {
74
- var _l = tslib_1.__read(_k.value, 2), index = _l[0], key = _l[1];
75
- if (_this.recycleKeyManager.hasKeyInPool(key) &&
76
- !newRenderStack.has(index) &&
77
- index < ((_e = (_d = _this.props.data) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0)) {
78
- _this.allocatedKeyTracker.add(key);
79
- newRenderStack.set(index, key);
80
- }
81
- }
82
- }
83
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
84
- finally {
85
- try {
86
- if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
87
- }
88
- finally { if (e_3) throw e_3.error; }
89
- }
90
- _this.renderStack = newRenderStack;
25
+ _this.renderStackManager.sync(_this.getStableId, _this.getItemType, engagedIndices, _this.getDataLength());
91
26
  };
92
- this.props = props;
27
+ this.getStableId = this.getStableId.bind(this);
28
+ this.getItemType = this.getItemType.bind(this);
29
+ this.overrideItemLayout = this.overrideItemLayout.bind(this);
30
+ this.propsRef = props;
93
31
  this.engagedIndicesTracker = new EngagedIndicesTracker_1.RVEngagedIndicesTrackerImpl();
94
- this.recycleKeyManager = new RecycleKeyManager_1.RecycleKeyManagerImpl();
32
+ this.renderStackManager = new RenderStackManager_1.RenderStackManager(props.maxItemsInRecyclePool);
95
33
  this.itemViewabilityManager = new ViewabilityManager_1.default(this);
96
34
  }
35
+ Object.defineProperty(RecyclerViewManager.prototype, "isOffsetProjectionEnabled", {
36
+ get: function () {
37
+ return this.engagedIndicesTracker.enableOffsetProjection;
38
+ },
39
+ enumerable: false,
40
+ configurable: true
41
+ });
42
+ Object.defineProperty(RecyclerViewManager.prototype, "isDisposed", {
43
+ get: function () {
44
+ return this._isDisposed;
45
+ },
46
+ enumerable: false,
47
+ configurable: true
48
+ });
49
+ Object.defineProperty(RecyclerViewManager.prototype, "props", {
50
+ get: function () {
51
+ return this.propsRef;
52
+ },
53
+ enumerable: false,
54
+ configurable: true
55
+ });
56
+ RecyclerViewManager.prototype.setOffsetProjectionEnabled = function (value) {
57
+ this.engagedIndicesTracker.enableOffsetProjection = value;
58
+ };
97
59
  RecyclerViewManager.prototype.updateProps = function (props) {
98
- var _a, _b;
99
- this.props = props;
60
+ var _a, _b, _c, _d;
61
+ this.propsRef = props;
100
62
  this.engagedIndicesTracker.drawDistance =
101
63
  (_a = props.drawDistance) !== null && _a !== void 0 ? _a : this.engagedIndicesTracker.drawDistance;
102
- if (this.props.drawDistance === 0) {
64
+ if (this.propsRef.drawDistance === 0) {
103
65
  this.initialDrawBatchSize = 1;
104
66
  }
105
67
  else {
106
68
  this.initialDrawBatchSize = ((_b = props.numColumns) !== null && _b !== void 0 ? _b : 1) * 2;
107
69
  }
70
+ this.initialDrawBatchSize =
71
+ (_d = (_c = this.propsRef.overrideProps) === null || _c === void 0 ? void 0 : _c.initialDrawBatchSize) !== null && _d !== void 0 ? _d : this.initialDrawBatchSize;
108
72
  };
109
73
  /**
110
74
  * Updates the scroll offset and returns the engaged indices if any
@@ -112,7 +76,7 @@ var RecyclerViewManager = /** @class */ (function () {
112
76
  * @param velocity
113
77
  */
114
78
  RecyclerViewManager.prototype.updateScrollOffset = function (offset, velocity) {
115
- if (this.layoutManager) {
79
+ if (this.layoutManager && !this._isDisposed) {
116
80
  var engagedIndices = this.engagedIndicesTracker.updateScrollOffset(offset - this.firstItemOffset, velocity, this.layoutManager);
117
81
  if (engagedIndices) {
118
82
  this.updateRenderStack(engagedIndices);
@@ -121,15 +85,29 @@ var RecyclerViewManager = /** @class */ (function () {
121
85
  }
122
86
  return undefined;
123
87
  };
88
+ RecyclerViewManager.prototype.updateAverageRenderTime = function (time) {
89
+ this.engagedIndicesTracker.averageRenderTime = time;
90
+ };
124
91
  RecyclerViewManager.prototype.getIsFirstLayoutComplete = function () {
125
92
  return this.isFirstLayoutComplete;
126
93
  };
94
+ RecyclerViewManager.prototype.disableRecycling = function (disable) {
95
+ this.renderStackManager.disableRecycling = disable;
96
+ };
127
97
  RecyclerViewManager.prototype.getLayout = function (index) {
128
98
  if (!this.layoutManager) {
129
99
  throw new Error("LayoutManager is not initialized, layout info is unavailable");
130
100
  }
131
101
  return this.layoutManager.getLayout(index);
132
102
  };
103
+ RecyclerViewManager.prototype.tryGetLayout = function (index) {
104
+ if (this.layoutManager &&
105
+ index >= 0 &&
106
+ index < this.layoutManager.getLayoutCount()) {
107
+ return this.layoutManager.getLayout(index);
108
+ }
109
+ return undefined;
110
+ };
133
111
  // Doesn't include header / foot etc
134
112
  RecyclerViewManager.prototype.getChildContainerDimensions = function () {
135
113
  if (!this.layoutManager) {
@@ -138,7 +116,7 @@ var RecyclerViewManager = /** @class */ (function () {
138
116
  return this.layoutManager.getLayoutSize();
139
117
  };
140
118
  RecyclerViewManager.prototype.getRenderStack = function () {
141
- return this.renderStack;
119
+ return this.renderStackManager.getRenderStack();
142
120
  };
143
121
  RecyclerViewManager.prototype.getWindowSize = function () {
144
122
  if (!this.layoutManager) {
@@ -151,10 +129,10 @@ var RecyclerViewManager = /** @class */ (function () {
151
129
  return this.engagedIndicesTracker.scrollOffset;
152
130
  };
153
131
  RecyclerViewManager.prototype.getMaxScrollOffset = function () {
154
- return Math.max(0, (this.props.horizontal
132
+ return Math.max(0, (this.propsRef.horizontal
155
133
  ? this.getChildContainerDimensions().width
156
134
  : this.getChildContainerDimensions().height) -
157
- (this.props.horizontal
135
+ (this.propsRef.horizontal
158
136
  ? this.getWindowSize().width
159
137
  : this.getWindowSize().height) +
160
138
  this.firstItemOffset);
@@ -166,42 +144,42 @@ var RecyclerViewManager = /** @class */ (function () {
166
144
  RecyclerViewManager.prototype.setScrollDirection = function (scrollDirection) {
167
145
  this.engagedIndicesTracker.setScrollDirection(scrollDirection);
168
146
  };
147
+ RecyclerViewManager.prototype.resetVelocityCompute = function () {
148
+ this.engagedIndicesTracker.resetVelocityHistory();
149
+ };
169
150
  RecyclerViewManager.prototype.updateLayoutParams = function (windowSize, firstItemOffset) {
170
- var _this = this;
171
- var _a, _b, _c, _d, _e;
151
+ var _a, _b, _c;
172
152
  this.firstItemOffset = firstItemOffset;
173
153
  var LayoutManagerClass = this.getLayoutManagerClass();
174
154
  if (this.layoutManager &&
175
155
  Boolean((_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.isHorizontal()) !==
176
- Boolean(this.props.horizontal)) {
156
+ Boolean(this.propsRef.horizontal)) {
177
157
  throw new Error("Horizontal prop cannot be toggled, you can use a key on FlashList to recreate it.");
178
158
  }
159
+ if (this._isLayoutManagerDirty) {
160
+ this.layoutManager = undefined;
161
+ this._isLayoutManagerDirty = false;
162
+ }
163
+ var layoutManagerParams = {
164
+ windowSize: windowSize,
165
+ maxColumns: (_b = this.propsRef.numColumns) !== null && _b !== void 0 ? _b : 1,
166
+ horizontal: Boolean(this.propsRef.horizontal),
167
+ optimizeItemArrangement: (_c = this.propsRef.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
168
+ overrideItemLayout: this.overrideItemLayout,
169
+ getItemType: this.getItemType,
170
+ };
179
171
  if (!(this.layoutManager instanceof LayoutManagerClass)) {
180
172
  // console.log("-----> new LayoutManagerClass");
181
- this.layoutManager = new LayoutManagerClass({
182
- windowSize: windowSize,
183
- maxColumns: (_b = this.props.numColumns) !== null && _b !== void 0 ? _b : 1,
184
- horizontal: Boolean(this.props.horizontal),
185
- optimizeItemArrangement: (_c = this.props.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
186
- overrideItemLayout: function (index, layout) {
187
- var _a, _b, _c;
188
- (_b = (_a = _this.props) === null || _a === void 0 ? void 0 : _a.overrideItemLayout) === null || _b === void 0 ? void 0 : _b.call(_a, layout, _this.props.data[index], index, (_c = _this.props.numColumns) !== null && _c !== void 0 ? _c : 1, _this.props.extraData);
189
- },
190
- }, this.layoutManager);
173
+ this.layoutManager = new LayoutManagerClass(layoutManagerParams, this.layoutManager);
191
174
  }
192
175
  else {
193
- this.layoutManager.updateLayoutParams({
194
- windowSize: windowSize,
195
- maxColumns: (_d = this.props.numColumns) !== null && _d !== void 0 ? _d : 1,
196
- horizontal: Boolean(this.props.horizontal),
197
- optimizeItemArrangement: (_e = this.props.optimizeItemArrangement) !== null && _e !== void 0 ? _e : true,
198
- });
176
+ this.layoutManager.updateLayoutParams(layoutManagerParams);
199
177
  }
200
178
  };
201
179
  RecyclerViewManager.prototype.hasLayout = function () {
202
180
  return this.layoutManager !== undefined;
203
181
  };
204
- RecyclerViewManager.prototype.getVisibleIndices = function () {
182
+ RecyclerViewManager.prototype.computeVisibleIndices = function () {
205
183
  if (!this.layoutManager) {
206
184
  throw new Error("LayoutManager is not initialized, visible indices are not unavailable");
207
185
  }
@@ -232,9 +210,9 @@ var RecyclerViewManager = /** @class */ (function () {
232
210
  RecyclerViewManager.prototype.computeItemViewability = function () {
233
211
  // Using higher buffer for masonry to avoid missing items
234
212
  this.itemViewabilityManager.shouldListenToVisibleIndices &&
235
- this.itemViewabilityManager.updateViewableItems(this.props.masonry
213
+ this.itemViewabilityManager.updateViewableItems(this.propsRef.masonry
236
214
  ? this.engagedIndicesTracker.getEngagedIndices().toArray()
237
- : this.getVisibleIndices().toArray());
215
+ : this.computeVisibleIndices().toArray());
238
216
  };
239
217
  RecyclerViewManager.prototype.recordInteraction = function () {
240
218
  this.itemViewabilityManager.recordInteraction();
@@ -245,7 +223,7 @@ var RecyclerViewManager = /** @class */ (function () {
245
223
  RecyclerViewManager.prototype.processDataUpdate = function () {
246
224
  var _a, _b;
247
225
  if (this.hasLayout()) {
248
- this.modifyChildrenLayout([], (_b = (_a = this.props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
226
+ this.modifyChildrenLayout([], (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
249
227
  if (!this.recomputeEngagedIndices()) {
250
228
  // recomputeEngagedIndices will update the render stack if there are any changes in the engaged indices.
251
229
  // It's important to update render stack so that elements are assgined right keys incase items were deleted.
@@ -257,30 +235,40 @@ var RecyclerViewManager = /** @class */ (function () {
257
235
  return this.updateScrollOffset(this.getAbsoluteLastScrollOffset());
258
236
  };
259
237
  RecyclerViewManager.prototype.dispose = function () {
238
+ this._isDisposed = true;
260
239
  this.itemViewabilityManager.dispose();
261
240
  };
241
+ RecyclerViewManager.prototype.markLayoutManagerDirty = function () {
242
+ this._isLayoutManagerDirty = true;
243
+ };
262
244
  RecyclerViewManager.prototype.getInitialScrollIndex = function () {
263
245
  var _a, _b;
264
- return ((_a = this.props.initialScrollIndex) !== null && _a !== void 0 ? _a : (((_b = this.props.maintainVisibleContentPosition) === null || _b === void 0 ? void 0 : _b.startRenderingFromBottom)
246
+ return ((_a = this.propsRef.initialScrollIndex) !== null && _a !== void 0 ? _a : (((_b = this.propsRef.maintainVisibleContentPosition) === null || _b === void 0 ? void 0 : _b.startRenderingFromBottom)
265
247
  ? this.getDataLength() - 1
266
248
  : undefined));
267
249
  };
250
+ RecyclerViewManager.prototype.shouldMaintainVisibleContentPosition = function () {
251
+ var _a;
252
+ // Return true if maintainVisibleContentPosition is enabled and not horizontal
253
+ return (!((_a = this.propsRef.maintainVisibleContentPosition) === null || _a === void 0 ? void 0 : _a.disabled) &&
254
+ !this.propsRef.horizontal);
255
+ };
268
256
  RecyclerViewManager.prototype.getDataLength = function () {
269
257
  var _a, _b;
270
- return (_b = (_a = this.props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
258
+ return (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
271
259
  };
272
260
  RecyclerViewManager.prototype.getLayoutManagerClass = function () {
273
261
  var _a, _b;
274
262
  // throw errors for incompatible props
275
- if (this.props.masonry && this.props.horizontal) {
263
+ if (this.propsRef.masonry && this.propsRef.horizontal) {
276
264
  throw new Error("Masonry and horizontal props are incompatible");
277
265
  }
278
- if (((_a = this.props.numColumns) !== null && _a !== void 0 ? _a : 1) > 1 && this.props.horizontal) {
266
+ if (((_a = this.propsRef.numColumns) !== null && _a !== void 0 ? _a : 1) > 1 && this.propsRef.horizontal) {
279
267
  throw new Error("numColumns and horizontal props are incompatible");
280
268
  }
281
- return this.props.masonry
269
+ return this.propsRef.masonry
282
270
  ? MasonryLayoutManager_1.RVMasonryLayoutManagerImpl
283
- : ((_b = this.props.numColumns) !== null && _b !== void 0 ? _b : 1) > 1 && !this.props.horizontal
271
+ : ((_b = this.propsRef.numColumns) !== null && _b !== void 0 ? _b : 1) > 1 && !this.propsRef.horizontal
284
272
  ? GridLayoutManager_1.RVGridLayoutManagerImpl
285
273
  : LinearLayoutManager_1.RVLinearLayoutManagerImpl;
286
274
  };
@@ -291,7 +279,7 @@ var RecyclerViewManager = /** @class */ (function () {
291
279
  }
292
280
  var initialScrollIndex = this.getInitialScrollIndex();
293
281
  var initialItemLayout = (_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.getLayout(initialScrollIndex !== null && initialScrollIndex !== void 0 ? initialScrollIndex : 0);
294
- var initialItemOffset = this.props.horizontal
282
+ var initialItemOffset = this.propsRef.horizontal
295
283
  ? initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.x
296
284
  : initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.y;
297
285
  if (initialScrollIndex !== undefined) {
@@ -315,7 +303,7 @@ var RecyclerViewManager = /** @class */ (function () {
315
303
  var layoutManager = this.layoutManager;
316
304
  if (layoutManager) {
317
305
  this.applyInitialScrollAdjustment();
318
- var visibleIndices = this.getVisibleIndices();
306
+ var visibleIndices = this.computeVisibleIndices();
319
307
  // console.log("---------> visibleIndices", visibleIndices);
320
308
  this.hasRenderedProgressively = visibleIndices.every(function (index) {
321
309
  return layoutManager.getLayout(index).isHeightMeasured &&
@@ -329,16 +317,20 @@ var RecyclerViewManager = /** @class */ (function () {
329
317
  !this.hasRenderedProgressively &&
330
318
  this.updateRenderStack(
331
319
  // pick first n indices from visible ones and n is size of renderStack
332
- visibleIndices.slice(0, Math.min(visibleIndices.length, this.renderStack.size + this.initialDrawBatchSize)));
320
+ visibleIndices.slice(0, Math.min(visibleIndices.length, this.getRenderStack().size + this.initialDrawBatchSize)));
333
321
  }
334
322
  };
335
323
  RecyclerViewManager.prototype.getItemType = function (index) {
336
324
  var _a, _b, _c;
337
- return ((_c = (_b = (_a = this.props).getItemType) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.data[index], index)) !== null && _c !== void 0 ? _c : "default").toString();
325
+ return ((_c = (_b = (_a = this.propsRef).getItemType) === null || _b === void 0 ? void 0 : _b.call(_a, this.propsRef.data[index], index)) !== null && _c !== void 0 ? _c : "default").toString();
338
326
  };
339
327
  RecyclerViewManager.prototype.getStableId = function (index) {
340
328
  var _a, _b, _c;
341
- return ((_c = (_b = (_a = this.props).keyExtractor) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.data[index], index)) !== null && _c !== void 0 ? _c : index.toString());
329
+ return ((_c = (_b = (_a = this.propsRef).keyExtractor) === null || _b === void 0 ? void 0 : _b.call(_a, this.propsRef.data[index], index)) !== null && _c !== void 0 ? _c : index.toString());
330
+ };
331
+ RecyclerViewManager.prototype.overrideItemLayout = function (index, layout) {
332
+ var _a, _b, _c;
333
+ (_b = (_a = this.propsRef) === null || _a === void 0 ? void 0 : _a.overrideItemLayout) === null || _b === void 0 ? void 0 : _b.call(_a, layout, this.propsRef.data[index], index, (_c = this.propsRef.numColumns) !== null && _c !== void 0 ? _c : 1, this.propsRef.extraData);
342
334
  };
343
335
  return RecyclerViewManager;
344
336
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { ConsecutiveNumbers } from "./helpers/ConsecutiveNumbers";
2
+ /**
3
+ * Manages the recycling of rendered items in a virtualized list.
4
+ * This class handles tracking, recycling, and reusing item keys to optimize
5
+ * rendering performance by minimizing creation/destruction of components.
6
+ */
7
+ export declare class RenderStackManager {
8
+ disableRecycling: boolean;
9
+ private maxItemsInRecyclePool;
10
+ private recycleKeyPools;
11
+ private keyMap;
12
+ private stableIdMap;
13
+ private keyCounter;
14
+ /**
15
+ * @param maxItemsInRecyclePool - Maximum number of items that can be in the recycle pool
16
+ */
17
+ constructor(maxItemsInRecyclePool?: number);
18
+ /**
19
+ * Synchronizes the render stack with the current state of data.
20
+ * This method is the core orchestrator that:
21
+ * 1. Recycles keys for items that are no longer valid
22
+ * 2. Updates existing keys for items that remain visible
23
+ * 3. Assigns new keys for newly visible items
24
+ * 4. Cleans up excess items to maintain the recycling pool size
25
+ *
26
+ * @param getStableId - Function to get a stable identifier for an item at a specific index
27
+ * @param getItemType - Function to get the type of an item at a specific index
28
+ * @param engagedIndices - Collection of indices that are currently visible or engaged
29
+ * @param dataLength - Total length of the data set
30
+ */
31
+ sync(getStableId: (index: number) => string, getItemType: (index: number) => string, engagedIndices: ConsecutiveNumbers, dataLength: number): void;
32
+ /**
33
+ * Checks if a stable ID already has an assigned key
34
+ */
35
+ private hasOptimizedKey;
36
+ /**
37
+ * Cleans up stale keys and manages the recycle pool size.
38
+ * This ensures we don't maintain references to items that are no longer in the dataset,
39
+ * and limits the number of recycled items to avoid excessive memory usage.
40
+ */
41
+ private cleanup;
42
+ /**
43
+ * Places a key back into its type-specific recycle pool for future reuse
44
+ */
45
+ private recycleKey;
46
+ /**
47
+ * Returns the current render stack containing all active keys and their metadata
48
+ */
49
+ getRenderStack(): Map<string, {
50
+ itemType: string;
51
+ index: number;
52
+ stableId: string;
53
+ }>;
54
+ /**
55
+ * Syncs an individual item by assigning it an appropriate key.
56
+ * Will use an existing key if available, or generate a new one.
57
+ *
58
+ * @returns The key assigned to the item
59
+ */
60
+ private syncItem;
61
+ /**
62
+ * Clears all recycled keys from the pool, effectively resetting the recycling system.
63
+ * This operation does not affect currently active keys.
64
+ */
65
+ private clearRecyclePool;
66
+ /**
67
+ * Generates a unique sequential key using an internal counter.
68
+ * @returns A unique key as a string
69
+ */
70
+ private generateKey;
71
+ /**
72
+ * Removes a specific key from its type's recycle pool
73
+ */
74
+ private deleteKeyFromRecyclePool;
75
+ /**
76
+ * Gets or creates a recycle pool for a specific item type
77
+ */
78
+ private getRecyclePoolForType;
79
+ /**
80
+ * Retrieves and removes a key from the type's recycle pool
81
+ * @returns A recycled key or undefined if none available
82
+ */
83
+ private getKeyFromRecyclePool;
84
+ }
85
+ //# sourceMappingURL=RenderStackManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderStackManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RenderStackManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AACH,qBAAa,kBAAkB;IACtB,gBAAgB,UAAS;IAGhC,OAAO,CAAC,qBAAqB,CAAS;IAGtC,OAAO,CAAC,eAAe,CAA2B;IAGlD,OAAO,CAAC,MAAM,CAGZ;IAGF,OAAO,CAAC,WAAW,CAAsB;IAGzC,OAAO,CAAC,UAAU,CAAS;IAE3B;;OAEG;gBACS,qBAAqB,GAAE,MAAgC;IAQnE;;;;;;;;;;;;OAYG;IACI,IAAI,CACT,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACtC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACtC,cAAc,EAAE,kBAAkB,EAClC,UAAU,EAAE,MAAM;IA+DpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IA6Cf;;OAEG;IACH,OAAO,CAAC,UAAU;IAkBlB;;OAEG;IACI,cAAc;kBArLP,MAAM;eAAS,MAAM;kBAAY,MAAM;;IAyLrD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA6BhB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAS9B"}