@shopify/flash-list 2.0.3 → 2.1.0

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 (194) hide show
  1. package/dist/AnimatedFlashList.js +4 -6
  2. package/dist/AnimatedFlashList.js.map +1 -1
  3. package/dist/FlashList.js +1 -5
  4. package/dist/FlashList.js.map +1 -1
  5. package/dist/FlashListProps.d.ts +9 -1
  6. package/dist/FlashListProps.d.ts.map +1 -1
  7. package/dist/FlashListProps.js +1 -4
  8. package/dist/FlashListProps.js.map +1 -1
  9. package/dist/FlashListRef.js +1 -2
  10. package/dist/benchmark/AutoScrollHelper.js +22 -30
  11. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  12. package/dist/benchmark/JSFPSMonitor.js +27 -33
  13. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  14. package/dist/benchmark/roundToDecimalPlaces.js +2 -5
  15. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  16. package/dist/benchmark/useBenchmark.d.ts +9 -1
  17. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  18. package/dist/benchmark/useBenchmark.js +86 -95
  19. package/dist/benchmark/useBenchmark.js.map +1 -1
  20. package/dist/benchmark/useDataMultiplier.js +6 -10
  21. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  22. package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
  23. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +73 -81
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/errors/ErrorMessages.js +1 -4
  27. package/dist/errors/ErrorMessages.js.map +1 -1
  28. package/dist/errors/WarningMessages.d.ts +1 -0
  29. package/dist/errors/WarningMessages.d.ts.map +1 -1
  30. package/dist/errors/WarningMessages.js +2 -4
  31. package/dist/errors/WarningMessages.js.map +1 -1
  32. package/dist/index.js +17 -35
  33. package/dist/index.js.map +1 -1
  34. package/dist/isNewArch.js +6 -9
  35. package/dist/isNewArch.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.android.js +2 -5
  37. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  38. package/dist/native/config/PlatformHelper.ios.js +2 -5
  39. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.js +2 -5
  41. package/dist/native/config/PlatformHelper.js.map +1 -1
  42. package/dist/native/config/PlatformHelper.web.js +2 -5
  43. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  44. package/dist/recyclerview/LayoutCommitObserver.js +20 -24
  45. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
  46. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  47. package/dist/recyclerview/RecyclerView.js +117 -107
  48. package/dist/recyclerview/RecyclerView.js.map +1 -1
  49. package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
  50. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  51. package/dist/recyclerview/RecyclerViewManager.d.ts +2 -0
  52. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  53. package/dist/recyclerview/RecyclerViewManager.js +146 -164
  54. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  55. package/dist/recyclerview/RecyclerViewProps.js +1 -2
  56. package/dist/recyclerview/RenderStackManager.js +97 -188
  57. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  58. package/dist/recyclerview/ViewHolder.js +16 -20
  59. package/dist/recyclerview/ViewHolder.js.map +1 -1
  60. package/dist/recyclerview/ViewHolderCollection.js +26 -30
  61. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  62. package/dist/recyclerview/components/CompatScroller.js +6 -7
  63. package/dist/recyclerview/components/CompatScroller.js.map +1 -1
  64. package/dist/recyclerview/components/CompatView.js +6 -7
  65. package/dist/recyclerview/components/CompatView.js.map +1 -1
  66. package/dist/recyclerview/components/ScrollAnchor.js +10 -15
  67. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  68. package/dist/recyclerview/components/StickyHeaders.js +34 -40
  69. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  70. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
  71. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  72. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
  73. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  74. package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
  75. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  76. package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
  77. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
  78. package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
  79. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  80. package/dist/recyclerview/hooks/useLayoutState.js +9 -15
  81. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  82. package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
  83. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  84. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  85. package/dist/recyclerview/hooks/useOnLoad.js +17 -22
  86. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  87. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  88. package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
  89. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  90. package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
  91. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  92. package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
  93. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  94. package/dist/recyclerview/hooks/useSecondaryProps.js +24 -30
  95. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  96. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
  97. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  98. package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
  99. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  100. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
  101. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  102. package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
  103. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  104. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
  105. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  106. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
  107. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  108. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
  109. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  110. package/dist/recyclerview/utils/componentUtils.js +4 -9
  111. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  112. package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
  113. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  114. package/dist/recyclerview/utils/measureLayout.js +12 -20
  115. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  116. package/dist/recyclerview/utils/measureLayout.web.js +15 -23
  117. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  118. package/dist/recyclerview/viewability/ViewToken.js +1 -2
  119. package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
  120. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
  121. package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
  122. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/utils/AverageWindow.js +28 -39
  125. package/dist/utils/AverageWindow.js.map +1 -1
  126. package/package.json +4 -6
  127. package/src/FlashListProps.ts +8 -1
  128. package/src/benchmark/useBenchmark.ts +47 -4
  129. package/src/benchmark/useFlatListBenchmark.ts +38 -5
  130. package/src/errors/WarningMessages.ts +2 -0
  131. package/src/recyclerview/RecyclerView.tsx +18 -5
  132. package/src/recyclerview/RecyclerViewManager.ts +12 -0
  133. package/src/recyclerview/hooks/useOnLoad.ts +1 -0
  134. package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
  135. package/dist/__tests__/AverageWindow.test.d.ts +0 -2
  136. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  137. package/dist/__tests__/AverageWindow.test.js +0 -104
  138. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  139. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
  140. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
  141. package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
  142. package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
  143. package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
  144. package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
  145. package/dist/__tests__/GridLayoutManager.test.js +0 -69
  146. package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
  147. package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
  148. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
  149. package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
  150. package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
  151. package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
  152. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
  153. package/dist/__tests__/LinearLayoutManager.test.js +0 -140
  154. package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
  155. package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
  156. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
  157. package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
  158. package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
  159. package/dist/__tests__/RecyclerView.test.d.ts +0 -2
  160. package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
  161. package/dist/__tests__/RecyclerView.test.js +0 -103
  162. package/dist/__tests__/RecyclerView.test.js.map +0 -1
  163. package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
  164. package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
  165. package/dist/__tests__/RenderStackManager.test.js +0 -485
  166. package/dist/__tests__/RenderStackManager.test.js.map +0 -1
  167. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  168. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  169. package/dist/__tests__/ViewabilityHelper.test.js +0 -186
  170. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  171. package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
  172. package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
  173. package/dist/__tests__/findVisibleIndex.test.js +0 -259
  174. package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
  175. package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
  176. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
  177. package/dist/__tests__/helpers/createLayoutManager.js +0 -110
  178. package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
  179. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
  180. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
  181. package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
  182. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
  183. package/src/__tests__/AverageWindow.test.ts +0 -128
  184. package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
  185. package/src/__tests__/GridLayoutManager.test.ts +0 -113
  186. package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
  187. package/src/__tests__/LinearLayoutManager.test.ts +0 -227
  188. package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
  189. package/src/__tests__/RecyclerView.test.tsx +0 -144
  190. package/src/__tests__/RenderStackManager.test.ts +0 -574
  191. package/src/__tests__/ViewabilityHelper.test.ts +0 -282
  192. package/src/__tests__/findVisibleIndex.test.ts +0 -369
  193. package/src/__tests__/helpers/createLayoutManager.ts +0 -141
  194. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
@@ -1,186 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var ViewabilityHelper_1 = tslib_1.__importDefault(require("../recyclerview/viewability/ViewabilityHelper"));
5
- var ErrorMessages_1 = require("../errors/ErrorMessages");
6
- describe("ViewabilityHelper", function () {
7
- var viewableIndicesChanged = jest.fn();
8
- beforeEach(function () {
9
- jest.resetAllMocks();
10
- jest.useFakeTimers();
11
- });
12
- it("does not report any changes when indices have not changed", function () {
13
- var viewabilityHelper = new ViewabilityHelper_1.default(null, viewableIndicesChanged);
14
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2];
15
- updateViewableItems({ viewabilityHelper: viewabilityHelper });
16
- // Initial call
17
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2], [0, 1, 2], []);
18
- // No changes
19
- viewableIndicesChanged.mockReset();
20
- updateViewableItems({ viewabilityHelper: viewabilityHelper });
21
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
22
- });
23
- it("reports only viewable indices", function () {
24
- var viewabilityHelper = new ViewabilityHelper_1.default(null, viewableIndicesChanged);
25
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2, 3];
26
- updateViewableItems({ viewabilityHelper: viewabilityHelper });
27
- // Items 0, 1, 2 are initially viewable
28
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2], [0, 1, 2], []);
29
- // After scroll, item 3 becomes viewable, too
30
- updateViewableItems({ viewabilityHelper: viewabilityHelper, scrollOffset: 50 });
31
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2, 3], [3], []);
32
- // After additional scroll, the first item is no longer viewable
33
- updateViewableItems({ viewabilityHelper: viewabilityHelper, scrollOffset: 100 });
34
- expect(viewableIndicesChanged).toHaveBeenCalledWith([1, 2, 3], [], [0]);
35
- });
36
- it("reports only viewable indices when horizontal", function () {
37
- var viewabilityHelper = new ViewabilityHelper_1.default(null, viewableIndicesChanged);
38
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2, 3];
39
- var getLayout = function (index) {
40
- return { x: index * 100, y: 0, height: 300, width: 100 };
41
- };
42
- updateViewableItems({ viewabilityHelper: viewabilityHelper, horizontal: true, getLayout: getLayout });
43
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2], [0, 1, 2], []);
44
- updateViewableItems({
45
- viewabilityHelper: viewabilityHelper,
46
- horizontal: true,
47
- scrollOffset: 50,
48
- getLayout: getLayout,
49
- });
50
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2, 3], [3], []);
51
- updateViewableItems({
52
- viewabilityHelper: viewabilityHelper,
53
- horizontal: true,
54
- scrollOffset: 100,
55
- getLayout: getLayout,
56
- });
57
- expect(viewableIndicesChanged).toHaveBeenCalledWith([1, 2, 3], [], [0]);
58
- });
59
- it("reports items only after minimumViewTime has elapsed", function () {
60
- var viewabilityHelper = new ViewabilityHelper_1.default({ minimumViewTime: 500 }, viewableIndicesChanged);
61
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2, 3];
62
- updateViewableItems({ viewabilityHelper: viewabilityHelper, runAllTimers: false });
63
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
64
- jest.advanceTimersByTime(400);
65
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
66
- jest.advanceTimersByTime(100);
67
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2], [0, 1, 2], []);
68
- viewableIndicesChanged.mockReset();
69
- updateViewableItems({
70
- viewabilityHelper: viewabilityHelper,
71
- scrollOffset: 50,
72
- runAllTimers: false,
73
- });
74
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
75
- jest.advanceTimersByTime(500);
76
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2, 3], [3], []);
77
- viewableIndicesChanged.mockReset();
78
- updateViewableItems({
79
- viewabilityHelper: viewabilityHelper,
80
- scrollOffset: 100,
81
- runAllTimers: false,
82
- });
83
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
84
- jest.advanceTimersByTime(500);
85
- expect(viewableIndicesChanged).toHaveBeenCalledWith([1, 2, 3], [], [0]);
86
- });
87
- it("reports items that only satisfy itemVisiblePercentThreshold", function () {
88
- var viewabilityHelper = new ViewabilityHelper_1.default({ itemVisiblePercentThreshold: 50 }, viewableIndicesChanged);
89
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2, 3];
90
- updateViewableItems({
91
- viewabilityHelper: viewabilityHelper,
92
- });
93
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2], [0, 1, 2], []);
94
- viewableIndicesChanged.mockReset();
95
- // User scrolled by 50 pixels, making both first and last item visible from 50 %
96
- updateViewableItems({
97
- viewabilityHelper: viewabilityHelper,
98
- scrollOffset: 50,
99
- });
100
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2, 3], [3], []);
101
- viewableIndicesChanged.mockReset();
102
- // User scrolled by 55 pixels, first item no longer satisfies threshold
103
- updateViewableItems({
104
- viewabilityHelper: viewabilityHelper,
105
- scrollOffset: 55,
106
- });
107
- expect(viewableIndicesChanged).toHaveBeenCalledWith([1, 2, 3], [], [0]);
108
- });
109
- it("reports items that only satisfy viewAreaCoveragePercentThreshold", function () {
110
- var getLayout = function (index) {
111
- if (index === 4) {
112
- return { x: 0, y: index * 100, width: 100, height: 25 };
113
- }
114
- return { x: 0, y: index * 100, height: 100, width: 300 };
115
- };
116
- var viewabilityHelper = new ViewabilityHelper_1.default({ viewAreaCoveragePercentThreshold: 25 }, viewableIndicesChanged);
117
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2, 3];
118
- updateViewableItems({
119
- viewabilityHelper: viewabilityHelper,
120
- getLayout: getLayout,
121
- });
122
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2], [0, 1, 2], []);
123
- viewableIndicesChanged.mockReset();
124
- // User scrolled by 75 pixels.
125
- // First item is visible only from 25 pixels, not meeting the threshold.
126
- // The last item is visible from 75 pixels, which is exactly the threshold (300 / 4 = 75 where 300 is height of the list)
127
- updateViewableItems({
128
- viewabilityHelper: viewabilityHelper,
129
- scrollOffset: 75,
130
- getLayout: getLayout,
131
- });
132
- expect(viewableIndicesChanged).toHaveBeenCalledWith([1, 2, 3], [3], [0]);
133
- viewableIndicesChanged.mockReset();
134
- // User scrolled by 110 pixels, making the last small item only partially visible, not meeting the threshold.
135
- viewabilityHelper.possiblyViewableIndices = [1, 2, 3, 4];
136
- updateViewableItems({
137
- viewabilityHelper: viewabilityHelper,
138
- scrollOffset: 110,
139
- getLayout: getLayout,
140
- });
141
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
142
- // User scrolled by 125 pixels, making the last small item completely visible, even when it is not meeting the threshold.
143
- viewabilityHelper.possiblyViewableIndices = [1, 2, 3, 4];
144
- updateViewableItems({
145
- viewabilityHelper: viewabilityHelper,
146
- scrollOffset: 125,
147
- getLayout: getLayout,
148
- });
149
- expect(viewableIndicesChanged).toHaveBeenCalledWith([1, 2, 3, 4], [4], []);
150
- });
151
- it("reports viewable items only after interaction if waitForInteraction is set to true", function () {
152
- var viewabilityHelper = new ViewabilityHelper_1.default({ waitForInteraction: true }, viewableIndicesChanged);
153
- // Even when elements are visible, viewableIndicesChanged will not be called since interaction has not been recorded, yet
154
- viewabilityHelper.possiblyViewableIndices = [0, 1, 2, 3];
155
- updateViewableItems({
156
- viewabilityHelper: viewabilityHelper,
157
- });
158
- // View is scrolled but programatically - not resulting in an interaction
159
- updateViewableItems({
160
- viewabilityHelper: viewabilityHelper,
161
- scrollOffset: 50,
162
- });
163
- expect(viewableIndicesChanged).not.toHaveBeenCalled();
164
- // Interaction is recorded, leading to trigger of viewableIndicesChanged
165
- viewabilityHelper.hasInteracted = true;
166
- updateViewableItems({
167
- viewabilityHelper: viewabilityHelper,
168
- scrollOffset: 50,
169
- });
170
- expect(viewableIndicesChanged).toHaveBeenCalledWith([0, 1, 2, 3], [0, 1, 2, 3], []);
171
- });
172
- it("throws multipleViewabilityThresholdTypesNotSupported exception when both viewAreaCoveragePercentThreshold and itemVisiblePercentThreshold are defined", function () {
173
- var viewabilityHelper = new ViewabilityHelper_1.default({ viewAreaCoveragePercentThreshold: 1, itemVisiblePercentThreshold: 1 }, viewableIndicesChanged);
174
- expect(function () { return updateViewableItems({ viewabilityHelper: viewabilityHelper }); }).toThrow(ErrorMessages_1.ErrorMessages.multipleViewabilityThresholdTypesNotSupported);
175
- });
176
- var updateViewableItems = function (_a) {
177
- var viewabilityHelper = _a.viewabilityHelper, horizontal = _a.horizontal, scrollOffset = _a.scrollOffset, listSize = _a.listSize, getLayout = _a.getLayout, runAllTimers = _a.runAllTimers;
178
- viewabilityHelper.updateViewableItems(horizontal !== null && horizontal !== void 0 ? horizontal : false, scrollOffset !== null && scrollOffset !== void 0 ? scrollOffset : 0, listSize !== null && listSize !== void 0 ? listSize : { height: 300, width: 300 }, getLayout !== null && getLayout !== void 0 ? getLayout : (function (index) {
179
- return { x: 0, y: index * 100, height: 100, width: 300 };
180
- }));
181
- if (runAllTimers !== null && runAllTimers !== void 0 ? runAllTimers : true) {
182
- jest.runAllTimers();
183
- }
184
- };
185
- });
186
- //# sourceMappingURL=ViewabilityHelper.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewabilityHelper.test.js","sourceRoot":"","sources":["../../src/__tests__/ViewabilityHelper.test.ts"],"names":[],"mappings":";;;AAAA,4GAA8E;AAC9E,yDAAwD;AAMxD,QAAQ,CAAC,mBAAmB,EAAE;IAC5B,IAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACzC,UAAU,CAAC;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE;QAC9D,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,IAAI,EACJ,sBAAsB,CACvB,CAAC;QACF,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC;QAC3C,eAAe;QACf,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,EAAE,CACH,CAAC;QAEF,aAAa;QACb,sBAAsB,CAAC,SAAS,EAAE,CAAC;QACnC,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE;QAClC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,IAAI,EACJ,sBAAsB,CACvB,CAAC;QACF,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC;QAC3C,uCAAuC;QACvC,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,EAAE,CACH,CAAC;QAEF,6CAA6C;QAC7C,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3E,gEAAgE;QAChE,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE;QAClD,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,IAAI,EACJ,sBAAsB,CACvB,CAAC;QACF,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,IAAM,SAAS,GAAG,UAAC,KAAa;YAC9B,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAc,CAAC;QACvE,CAAC,CAAC;QACF,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,EAAE,CACH,CAAC;QAEF,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,EAAE;YAChB,SAAS,WAAA;SACV,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3E,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,GAAG;YACjB,SAAS,WAAA;SACV,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE;QACzD,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,EAAE,eAAe,EAAE,GAAG,EAAE,EACxB,sBAAsB,CACvB,CAAC;QACF,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,EAAE,CACH,CAAC;QAEF,sBAAsB,CAAC,SAAS,EAAE,CAAC;QACnC,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3E,sBAAsB,CAAC,SAAS,EAAE,CAAC;QACnC,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE;QAChE,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,EAAE,2BAA2B,EAAE,EAAE,EAAE,EACnC,sBAAsB,CACvB,CAAC;QACF,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,EAAE,CACH,CAAC;QACF,sBAAsB,CAAC,SAAS,EAAE,CAAC;QAEnC,gFAAgF;QAChF,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,sBAAsB,CAAC,SAAS,EAAE,CAAC;QAEnC,uEAAuE;QACvE,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE;QACrE,IAAM,SAAS,GAAG,UAAC,KAAa;YAC9B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAc,CAAC;YACtE,CAAC;YACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAc,CAAC;QACvE,CAAC,CAAC;QACF,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,EAAE,gCAAgC,EAAE,EAAE,EAAE,EACxC,sBAAsB,CACvB,CAAC;QACF,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,SAAS,WAAA;SACV,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,EAAE,CACH,CAAC;QACF,sBAAsB,CAAC,SAAS,EAAE,CAAC;QAEnC,8BAA8B;QAC9B,wEAAwE;QACxE,yHAAyH;QACzH,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,EAAE;YAChB,SAAS,WAAA;SACV,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,sBAAsB,CAAC,SAAS,EAAE,CAAC;QAEnC,6GAA6G;QAC7G,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,GAAG;YACjB,SAAS,WAAA;SACV,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEtD,yHAAyH;QACzH,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,GAAG;YACjB,SAAS,WAAA;SACV,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE;QACvF,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAC5B,sBAAsB,CACvB,CAAC;QACF,yHAAyH;QACzH,iBAAiB,CAAC,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;SAClB,CAAC,CAAC;QACH,yEAAyE;QACzE,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEtD,wEAAwE;QACxE,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC;QACvC,mBAAmB,CAAC;YAClB,iBAAiB,mBAAA;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACZ,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uJAAuJ,EAAE;QAC1J,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAC7C,EAAE,gCAAgC,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAC,EAAE,EACvE,sBAAsB,CACvB,CAAC;QACF,MAAM,CAAC,cAAM,OAAA,mBAAmB,CAAC,EAAE,iBAAiB,mBAAA,EAAE,CAAC,EAA1C,CAA0C,CAAC,CAAC,OAAO,CAC9D,6BAAa,CAAC,6CAA6C,CAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAM,mBAAmB,GAAG,UAAC,EAc5B;YAbC,iBAAiB,uBAAA,EACjB,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,YAAY,kBAAA;QASZ,iBAAiB,CAAC,mBAAmB,CACnC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,EACnB,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,EACjB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EACvC,SAAS,aAAT,SAAS,cAAT,SAAS,GACP,CAAC,UAAC,KAAK;YACL,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAc,CAAC;QACvE,CAAC,CAAC,CACL,CAAC;QACF,IAAI,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=findVisibleIndex.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findVisibleIndex.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/findVisibleIndex.test.ts"],"names":[],"mappings":""}
@@ -1,259 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var findVisibleIndex_1 = require("../recyclerview/utils/findVisibleIndex");
4
- var createLayoutManager_1 = require("./helpers/createLayoutManager");
5
- describe("findVisibleIndex", function () {
6
- // Helper function to create mock layouts directly for precise control
7
- function createMockLayouts(count, startPosition, itemSize, isHorizontal) {
8
- var layouts = [];
9
- for (var i = 0; i < count; i++) {
10
- var x = isHorizontal ? startPosition + i * itemSize : 0;
11
- var y = isHorizontal ? 0 : startPosition + i * itemSize;
12
- layouts.push({
13
- x: x,
14
- y: y,
15
- width: isHorizontal ? itemSize : 100,
16
- height: isHorizontal ? 100 : itemSize,
17
- });
18
- }
19
- return layouts;
20
- }
21
- describe("findFirstVisibleIndex", function () {
22
- // Test 1: Basic functionality - vertical layout
23
- it("finds the first visible index in a vertical layout", function () {
24
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.LINEAR, 20, { horizontal: false });
25
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
26
- // Viewport starts at y=150, so the second item (index 1) should be first visible
27
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 150, false);
28
- expect(firstVisibleIndex).toBe(1);
29
- });
30
- // Test 2: Basic functionality - horizontal layout
31
- it("finds the first visible index in a horizontal layout", function () {
32
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.LINEAR, 20, { horizontal: true });
33
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
34
- // Viewport starts at x=150, so the second item (index 1) should be first visible
35
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 150, true);
36
- expect(firstVisibleIndex).toBe(1);
37
- });
38
- // Test 3: Empty layouts array
39
- it("returns -1 for empty layouts array", function () {
40
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)([], 100, false);
41
- expect(firstVisibleIndex).toBe(-1);
42
- });
43
- // Test 4: All items are visible (threshold at 0)
44
- it("returns 0 when all items are visible (threshold at 0)", function () {
45
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.LINEAR, 10);
46
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
47
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 0, false);
48
- expect(firstVisibleIndex).toBe(0);
49
- });
50
- // Test 5: No items are visible (threshold beyond all items)
51
- it("returns -1 when no items are visible", function () {
52
- var layouts = createMockLayouts(10, 0, 100, false);
53
- // Threshold is beyond all items (10 items * 100 height = 1000)
54
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 1100, false);
55
- expect(firstVisibleIndex).toBe(-1);
56
- });
57
- // Test 6: Edge case - threshold exactly at item boundary
58
- it("returns correct index when threshold is exactly at item boundary", function () {
59
- var layouts = createMockLayouts(10, 0, 100, false);
60
- // Threshold exactly at the start of the 5th item
61
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 400, false);
62
- expect(firstVisibleIndex).toBe(4);
63
- });
64
- // Test 7: Edge case - threshold in the middle of an item
65
- it("returns correct index when threshold is in the middle of an item", function () {
66
- var layouts = createMockLayouts(10, 0, 100, false);
67
- // Threshold in the middle of the 3rd item
68
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 250, false);
69
- expect(firstVisibleIndex).toBe(2);
70
- });
71
- // Test 8: With grid layout - threshold crosses multiple columns
72
- it("finds first visible index with grid layout", function () {
73
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 20, { maxColumns: 2 });
74
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
75
- // With 2 columns, items are positioned differently
76
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 150, false);
77
- // Expected result depends on how grid layout positions items
78
- // This test might need adjustment based on actual grid layout behavior
79
- expect(firstVisibleIndex).not.toBe(-1);
80
- });
81
- // Test 9: With masonry layout - variable height items
82
- it("finds first visible index with masonry layout and variable item sizes", function () {
83
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.MASONRY, 20, { maxColumns: 2 }, 100, 100, true // Variable size
84
- );
85
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
86
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 200, false);
87
- expect(firstVisibleIndex).not.toBe(-1);
88
- });
89
- // Test 10: Partial visibility - item just starting to appear
90
- it("finds item that is just starting to become visible", function () {
91
- var layouts = createMockLayouts(10, 0, 100, false);
92
- // Threshold just 1px before item 4 ends
93
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 399, false);
94
- expect(firstVisibleIndex).toBe(3);
95
- });
96
- });
97
- describe("findLastVisibleIndex", function () {
98
- // Test 11: Basic functionality - vertical layout
99
- it("finds the last visible index in a vertical layout", function () {
100
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.LINEAR, 20, { horizontal: false });
101
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
102
- // Viewport ends at y=250, so the third item (index 2) should be last visible
103
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 250, false);
104
- expect(lastVisibleIndex).toBe(2);
105
- });
106
- // Test 12: Basic functionality - horizontal layout
107
- it("finds the last visible index in a horizontal layout", function () {
108
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.LINEAR, 20, { horizontal: true });
109
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
110
- // Viewport ends at x=250, so the third item (index 2) should be last visible
111
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 250, true);
112
- expect(lastVisibleIndex).toBe(2);
113
- });
114
- // Test 13: Empty layouts array
115
- it("returns -1 for empty layouts array", function () {
116
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)([], 100, false);
117
- expect(lastVisibleIndex).toBe(-1);
118
- });
119
- // Test 14: All items are within viewport
120
- it("returns the last item index when all items are within viewport", function () {
121
- var layouts = createMockLayouts(5, 0, 100, false);
122
- // Viewport ends at y=1000, which includes all 5 items
123
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 1000, false);
124
- expect(lastVisibleIndex).toBe(4); // Last item index is 4
125
- });
126
- // Test 15: No items are visible (threshold before all items)
127
- it("returns -1 when no items are visible", function () {
128
- var layouts = createMockLayouts(10, 100, 100, false);
129
- // Threshold is before all items start
130
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 50, false);
131
- expect(lastVisibleIndex).toBe(-1);
132
- });
133
- // Test 16: Edge case - threshold exactly at item boundary
134
- it("returns correct index when threshold is exactly at item boundary", function () {
135
- var layouts = createMockLayouts(10, 0, 100, false);
136
- // Threshold exactly at the end of the 3rd item
137
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 300, false);
138
- expect(lastVisibleIndex).toBe(3);
139
- });
140
- // Test 17: Edge case - threshold in the middle of an item
141
- it("returns correct index when threshold is in the middle of an item", function () {
142
- var layouts = createMockLayouts(10, 0, 100, false);
143
- // Threshold in the middle of the 3rd item
144
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 250, false);
145
- expect(lastVisibleIndex).toBe(2);
146
- });
147
- // Test 18: With grid layout
148
- it("finds last visible index with grid layout", function () {
149
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 20, { maxColumns: 2 });
150
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
151
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 350, false);
152
- expect(lastVisibleIndex).not.toBe(-1);
153
- });
154
- // Test 19: With masonry layout - variable height items
155
- it("finds last visible index with masonry layout and variable item sizes", function () {
156
- var layoutManager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.MASONRY, 20, { maxColumns: 2 }, 100, 100, true // Variable size
157
- );
158
- var layouts = (0, createLayoutManager_1.getAllLayouts)(layoutManager);
159
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 400, false);
160
- expect(lastVisibleIndex).not.toBe(-1);
161
- });
162
- // Test 20: Last item partially visible
163
- it("includes last item when it's partially visible", function () {
164
- var layouts = createMockLayouts(10, 0, 100, false);
165
- // Threshold just 1px into the 5th item
166
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 401, false);
167
- expect(lastVisibleIndex).toBe(4);
168
- });
169
- });
170
- describe("Edge cases and complex scenarios", function () {
171
- // Test 21: Single item layout
172
- it("correctly handles single item layout for first visible", function () {
173
- var layouts = createMockLayouts(1, 0, 100, false);
174
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 50, false);
175
- expect(firstVisibleIndex).toBe(0);
176
- });
177
- // Test 22: Single item layout
178
- it("correctly handles single item layout for last visible", function () {
179
- var layouts = createMockLayouts(1, 0, 100, false);
180
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 50, false);
181
- expect(lastVisibleIndex).toBe(0);
182
- });
183
- // Test 23: Variable size items for first visible index
184
- it("correctly finds first visible with variable size items", function () {
185
- var layouts = [
186
- { x: 0, y: 0, width: 100, height: 50 },
187
- { x: 0, y: 50, width: 100, height: 150 },
188
- { x: 0, y: 200, width: 100, height: 75 },
189
- { x: 0, y: 275, width: 100, height: 100 },
190
- ];
191
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 175, false);
192
- expect(firstVisibleIndex).toBe(1); // Second item is still visible at threshold 175
193
- });
194
- // Test 24: Variable size items for last visible index
195
- it("correctly finds last visible with variable size items", function () {
196
- var layouts = [
197
- { x: 0, y: 0, width: 100, height: 50 },
198
- { x: 0, y: 50, width: 100, height: 150 },
199
- { x: 0, y: 200, width: 100, height: 75 },
200
- { x: 0, y: 275, width: 100, height: 100 },
201
- ];
202
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 225, false);
203
- expect(lastVisibleIndex).toBe(2); // Third item is visible at threshold 225
204
- });
205
- // Test 25: Items with zero size
206
- it("correctly handles items with zero size for first visible", function () {
207
- var layouts = [
208
- { x: 0, y: 0, width: 100, height: 0 },
209
- { x: 0, y: 0, width: 100, height: 100 },
210
- ];
211
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 0, false);
212
- expect(firstVisibleIndex).toBe(0); // First item is at position but has zero height
213
- });
214
- // Test 26: Items with zero size
215
- it("correctly handles items with zero size for last visible", function () {
216
- var layouts = [
217
- { x: 0, y: 0, width: 100, height: 100 },
218
- { x: 0, y: 100, width: 100, height: 0 },
219
- ];
220
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 100, false);
221
- expect(lastVisibleIndex).toBe(1); // Second item is at threshold position but has zero height
222
- });
223
- // Test 27: Large number of items - performance test
224
- it("efficiently finds first visible index in large dataset", function () {
225
- var layouts = createMockLayouts(1000, 0, 100, false);
226
- // Threshold in the middle of the list
227
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 50000, false);
228
- expect(firstVisibleIndex).toBe(500);
229
- });
230
- // Test 28: Large number of items - performance test
231
- it("efficiently finds last visible index in large dataset", function () {
232
- var layouts = createMockLayouts(1000, 0, 100, false);
233
- // Threshold in the middle of the list
234
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 50000, false);
235
- expect(lastVisibleIndex).toBe(500);
236
- });
237
- // Test 29: Non-sequential indices
238
- it("works with non-sequential indices for first visible", function () {
239
- var layouts = [
240
- { x: 0, y: 0, width: 100, height: 100 },
241
- { x: 0, y: 100, width: 100, height: 100 },
242
- { x: 0, y: 200, width: 100, height: 100 },
243
- ];
244
- var firstVisibleIndex = (0, findVisibleIndex_1.findFirstVisibleIndex)(layouts, 150, false);
245
- expect(firstVisibleIndex).toBe(1); // Second layout in the array, not index 1
246
- });
247
- // Test 30: Non-sequential indices
248
- it("works with non-sequential indices for last visible", function () {
249
- var layouts = [
250
- { x: 0, y: 0, width: 100, height: 100 },
251
- { x: 0, y: 100, width: 100, height: 100 },
252
- { x: 0, y: 200, width: 100, height: 100 },
253
- ];
254
- var lastVisibleIndex = (0, findVisibleIndex_1.findLastVisibleIndex)(layouts, 150, false);
255
- expect(lastVisibleIndex).toBe(1); // Second layout in the array, not index 1
256
- });
257
- });
258
- });
259
- //# sourceMappingURL=findVisibleIndex.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findVisibleIndex.test.js","sourceRoot":"","sources":["../../src/__tests__/findVisibleIndex.test.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { LayoutParams, RVLayout, RVLayoutInfo, RVLayoutManager } from "../../recyclerview/layout-managers/LayoutManager";
2
- /**
3
- * Layout manager types available in the app
4
- */
5
- export declare enum LayoutManagerType {
6
- LINEAR = "linear",
7
- GRID = "grid",
8
- MASONRY = "masonry"
9
- }
10
- /**
11
- * Create layout parameters with sensible defaults
12
- */
13
- export declare function createLayoutParams(params?: Partial<LayoutParams>): LayoutParams;
14
- /**
15
- * Create a layout manager of the specified type
16
- */
17
- export declare function createLayoutManager(type: LayoutManagerType, params?: Partial<LayoutParams>, previousLayoutManager?: RVLayoutManager): RVLayoutManager;
18
- /**
19
- * Generate mock layout info for testing
20
- */
21
- export declare function createMockLayoutInfo(index: number, width: number, height: number): RVLayoutInfo;
22
- /**
23
- * Populate layout data in a layout manager
24
- */
25
- export declare function populateLayouts(layoutManager: RVLayoutManager, itemCount: number, itemWidth?: number, itemHeight?: number, variableSize?: boolean): void;
26
- /**
27
- * Create and populate a layout manager in one step
28
- */
29
- export declare function createPopulatedLayoutManager(type: LayoutManagerType, itemCount: number, params?: Partial<LayoutParams>, itemWidth?: number, itemHeight?: number, variableSize?: boolean): RVLayoutManager;
30
- /**
31
- * Get all layouts from a layout manager
32
- */
33
- export declare function getAllLayouts(layoutManager: RVLayoutManager): RVLayout[];
34
- //# sourceMappingURL=createLayoutManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/createLayoutManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEZ,QAAQ,EACR,YAAY,EACZ,eAAe,EAChB,MAAM,kDAAkD,CAAC;AAK1D;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAUD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GACjC,YAAY,CASd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,EACvB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,qBAAqB,CAAC,EAAE,eAAe,GACtC,eAAe,CAgBjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,YAAY,CAQd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,eAAe,EAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,SAAM,EACf,UAAU,SAAM,EAChB,YAAY,UAAQ,GACnB,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,SAAS,SAAM,EACf,UAAU,SAAM,EAChB,YAAY,UAAQ,GACnB,eAAe,CAUjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,eAAe,GAAG,QAAQ,EAAE,CAKxE"}
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LayoutManagerType = void 0;
4
- exports.createLayoutParams = createLayoutParams;
5
- exports.createLayoutManager = createLayoutManager;
6
- exports.createMockLayoutInfo = createMockLayoutInfo;
7
- exports.populateLayouts = populateLayouts;
8
- exports.createPopulatedLayoutManager = createPopulatedLayoutManager;
9
- exports.getAllLayouts = getAllLayouts;
10
- var LinearLayoutManager_1 = require("../../recyclerview/layout-managers/LinearLayoutManager");
11
- var GridLayoutManager_1 = require("../../recyclerview/layout-managers/GridLayoutManager");
12
- var MasonryLayoutManager_1 = require("../../recyclerview/layout-managers/MasonryLayoutManager");
13
- /**
14
- * Layout manager types available in the app
15
- */
16
- var LayoutManagerType;
17
- (function (LayoutManagerType) {
18
- LayoutManagerType["LINEAR"] = "linear";
19
- LayoutManagerType["GRID"] = "grid";
20
- LayoutManagerType["MASONRY"] = "masonry";
21
- })(LayoutManagerType || (exports.LayoutManagerType = LayoutManagerType = {}));
22
- /**
23
- * Default window size for layout managers
24
- */
25
- var DEFAULT_WINDOW_SIZE = {
26
- width: 400,
27
- height: 900,
28
- };
29
- /**
30
- * Create layout parameters with sensible defaults
31
- */
32
- function createLayoutParams(params) {
33
- var _a, _b, _c, _d, _e;
34
- if (params === void 0) { params = {}; }
35
- return {
36
- windowSize: params.windowSize || DEFAULT_WINDOW_SIZE,
37
- horizontal: (_a = params.horizontal) !== null && _a !== void 0 ? _a : false,
38
- maxColumns: (_b = params.maxColumns) !== null && _b !== void 0 ? _b : 1,
39
- optimizeItemArrangement: (_c = params.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
40
- overrideItemLayout: (_d = params.overrideItemLayout) !== null && _d !== void 0 ? _d : (function () { }),
41
- getItemType: (_e = params.getItemType) !== null && _e !== void 0 ? _e : (function () { return "default"; }),
42
- };
43
- }
44
- /**
45
- * Create a layout manager of the specified type
46
- */
47
- function createLayoutManager(type, params, previousLayoutManager) {
48
- if (params === void 0) { params = {}; }
49
- var layoutParams = createLayoutParams(params);
50
- switch (type) {
51
- case LayoutManagerType.LINEAR:
52
- return new LinearLayoutManager_1.RVLinearLayoutManagerImpl(layoutParams, previousLayoutManager);
53
- case LayoutManagerType.GRID:
54
- return new GridLayoutManager_1.RVGridLayoutManagerImpl(layoutParams, previousLayoutManager);
55
- case LayoutManagerType.MASONRY:
56
- return new MasonryLayoutManager_1.RVMasonryLayoutManagerImpl(layoutParams, previousLayoutManager);
57
- default:
58
- throw new Error("Unknown layout manager type: ".concat(type));
59
- }
60
- }
61
- /**
62
- * Generate mock layout info for testing
63
- */
64
- function createMockLayoutInfo(index, width, height) {
65
- return {
66
- index: index,
67
- dimensions: {
68
- width: width,
69
- height: height,
70
- },
71
- };
72
- }
73
- /**
74
- * Populate layout data in a layout manager
75
- */
76
- function populateLayouts(layoutManager, itemCount, itemWidth, itemHeight, variableSize) {
77
- if (itemWidth === void 0) { itemWidth = 100; }
78
- if (itemHeight === void 0) { itemHeight = 100; }
79
- if (variableSize === void 0) { variableSize = false; }
80
- var layoutInfos = [];
81
- for (var i = 0; i < itemCount; i++) {
82
- // If variableSize is true, add some randomness to the item dimensions
83
- var width = variableSize ? itemWidth + (i % 3) * 20 : itemWidth;
84
- var height = variableSize ? itemHeight + (i % 5) * 25 : itemHeight;
85
- layoutInfos.push(createMockLayoutInfo(i, width, height));
86
- }
87
- layoutManager.modifyLayout(layoutInfos, itemCount);
88
- }
89
- /**
90
- * Create and populate a layout manager in one step
91
- */
92
- function createPopulatedLayoutManager(type, itemCount, params, itemWidth, itemHeight, variableSize) {
93
- if (params === void 0) { params = {}; }
94
- if (itemWidth === void 0) { itemWidth = 100; }
95
- if (itemHeight === void 0) { itemHeight = 100; }
96
- if (variableSize === void 0) { variableSize = false; }
97
- var layoutManager = createLayoutManager(type, params);
98
- populateLayouts(layoutManager, itemCount, itemWidth, itemHeight, variableSize);
99
- return layoutManager;
100
- }
101
- /**
102
- * Get all layouts from a layout manager
103
- */
104
- function getAllLayouts(layoutManager) {
105
- // Access the internal layouts array
106
- return Array.from({ length: layoutManager.getLayoutCount() }, function (_, index) {
107
- return layoutManager.getLayout(index);
108
- });
109
- }
110
- //# sourceMappingURL=createLayoutManager.js.map