@shopify/flash-list 2.0.4-alpha.1 → 2.2.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 (203) 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 +41 -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.js +1 -4
  29. package/dist/errors/WarningMessages.js.map +1 -1
  30. package/dist/index.js +17 -35
  31. package/dist/index.js.map +1 -1
  32. package/dist/isNewArch.js +6 -9
  33. package/dist/isNewArch.js.map +1 -1
  34. package/dist/native/config/PlatformHelper.android.js +2 -5
  35. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.ios.js +2 -5
  37. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  38. package/dist/native/config/PlatformHelper.js +2 -5
  39. package/dist/native/config/PlatformHelper.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.web.js +2 -5
  41. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  42. package/dist/recyclerview/LayoutCommitObserver.js +20 -24
  43. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
  44. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  45. package/dist/recyclerview/RecyclerView.js +134 -111
  46. package/dist/recyclerview/RecyclerView.js.map +1 -1
  47. package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
  48. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  49. package/dist/recyclerview/RecyclerViewManager.js +138 -167
  50. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  51. package/dist/recyclerview/RecyclerViewProps.js +1 -2
  52. package/dist/recyclerview/RenderStackManager.js +97 -188
  53. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  54. package/dist/recyclerview/ViewHolder.d.ts +2 -0
  55. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  56. package/dist/recyclerview/ViewHolder.js +19 -21
  57. package/dist/recyclerview/ViewHolder.js.map +1 -1
  58. package/dist/recyclerview/ViewHolderCollection.d.ts +4 -0
  59. package/dist/recyclerview/ViewHolderCollection.d.ts.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.d.ts +5 -1
  69. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  70. package/dist/recyclerview/components/StickyHeaders.js +77 -51
  71. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  72. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
  73. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  74. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
  75. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  76. package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
  77. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  78. package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
  79. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
  80. package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
  81. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  82. package/dist/recyclerview/hooks/useLayoutState.js +9 -15
  83. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  84. package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
  85. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  86. package/dist/recyclerview/hooks/useOnLoad.js +16 -22
  87. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  88. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  89. package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
  90. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  91. package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
  92. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  93. package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
  94. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  95. package/dist/recyclerview/hooks/useSecondaryProps.d.ts +2 -0
  96. package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -1
  97. package/dist/recyclerview/hooks/useSecondaryProps.js +39 -30
  98. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  99. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
  100. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  101. package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
  102. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  103. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
  104. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  105. package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
  106. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  107. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
  108. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  109. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
  110. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  111. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
  112. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  113. package/dist/recyclerview/utils/componentUtils.js +4 -9
  114. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  115. package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
  116. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  117. package/dist/recyclerview/utils/measureLayout.js +12 -20
  118. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  119. package/dist/recyclerview/utils/measureLayout.web.js +15 -23
  120. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  121. package/dist/recyclerview/viewability/ViewToken.js +1 -2
  122. package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
  123. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
  124. package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
  125. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
  126. package/dist/tsconfig.tsbuildinfo +1 -1
  127. package/dist/utils/AverageWindow.js +28 -39
  128. package/dist/utils/AverageWindow.js.map +1 -1
  129. package/package.json +4 -6
  130. package/src/FlashListProps.ts +51 -1
  131. package/src/benchmark/useBenchmark.ts +47 -4
  132. package/src/benchmark/useFlatListBenchmark.ts +38 -5
  133. package/src/recyclerview/RecyclerView.tsx +42 -8
  134. package/src/recyclerview/ViewHolder.tsx +6 -1
  135. package/src/recyclerview/ViewHolderCollection.tsx +10 -0
  136. package/src/recyclerview/components/StickyHeaders.tsx +54 -13
  137. package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
  138. package/src/recyclerview/hooks/useSecondaryProps.tsx +23 -0
  139. package/dist/__tests__/AverageWindow.test.d.ts +0 -2
  140. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  141. package/dist/__tests__/AverageWindow.test.js +0 -104
  142. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  143. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
  144. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
  145. package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
  146. package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
  147. package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
  148. package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
  149. package/dist/__tests__/GridLayoutManager.test.js +0 -69
  150. package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
  151. package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
  152. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
  153. package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
  154. package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
  155. package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
  156. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
  157. package/dist/__tests__/LinearLayoutManager.test.js +0 -140
  158. package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
  159. package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
  160. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
  161. package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
  162. package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
  163. package/dist/__tests__/RecyclerView.test.d.ts +0 -2
  164. package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
  165. package/dist/__tests__/RecyclerView.test.js +0 -103
  166. package/dist/__tests__/RecyclerView.test.js.map +0 -1
  167. package/dist/__tests__/RecyclerViewManager.test.d.ts +0 -2
  168. package/dist/__tests__/RecyclerViewManager.test.d.ts.map +0 -1
  169. package/dist/__tests__/RecyclerViewManager.test.js +0 -56
  170. package/dist/__tests__/RecyclerViewManager.test.js.map +0 -1
  171. package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
  172. package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
  173. package/dist/__tests__/RenderStackManager.test.js +0 -485
  174. package/dist/__tests__/RenderStackManager.test.js.map +0 -1
  175. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  176. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  177. package/dist/__tests__/ViewabilityHelper.test.js +0 -186
  178. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  179. package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
  180. package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
  181. package/dist/__tests__/findVisibleIndex.test.js +0 -259
  182. package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
  183. package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
  184. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
  185. package/dist/__tests__/helpers/createLayoutManager.js +0 -110
  186. package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
  187. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
  188. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
  189. package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
  190. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
  191. package/src/__tests__/AverageWindow.test.ts +0 -128
  192. package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
  193. package/src/__tests__/GridLayoutManager.test.ts +0 -113
  194. package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
  195. package/src/__tests__/LinearLayoutManager.test.ts +0 -227
  196. package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
  197. package/src/__tests__/RecyclerView.test.tsx +0 -144
  198. package/src/__tests__/RecyclerViewManager.test.ts +0 -74
  199. package/src/__tests__/RenderStackManager.test.ts +0 -574
  200. package/src/__tests__/ViewabilityHelper.test.ts +0 -282
  201. package/src/__tests__/findVisibleIndex.test.ts +0 -369
  202. package/src/__tests__/helpers/createLayoutManager.ts +0 -141
  203. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var AverageWindow_1 = require("../utils/AverageWindow");
4
- describe("AverageWindow", function () {
5
- var fillAverageWindow = function (averageWindow, from, to) {
6
- for (var i = from; i < to; i++) {
7
- averageWindow.addValue(i);
8
- }
9
- };
10
- it("all input window values should be filled with correct values", function () {
11
- var commonValue = 50;
12
- var size = 100;
13
- var averageWindow = new AverageWindow_1.AverageWindow(size);
14
- var inputValues = averageWindow["inputValues"];
15
- for (var i = 0; i < size; i++) {
16
- averageWindow.addValue(commonValue);
17
- }
18
- expect(Math.round(averageWindow.currentValue)).toBe(commonValue);
19
- expect(inputValues.every(function (val) { return val === commonValue; })).toBe(true);
20
- });
21
- it("computes correct average", function () {
22
- // We're gonna check if average from internal array matches the current average value
23
- var size = 100;
24
- var averageWindow = new AverageWindow_1.AverageWindow(size);
25
- var inputValues = averageWindow["inputValues"];
26
- fillAverageWindow(averageWindow, 0, 200);
27
- // calculate average directly
28
- var reduceObj = inputValues.reduce(function (obj, val) {
29
- if (val !== undefined) {
30
- obj.sum += val;
31
- obj.count++;
32
- }
33
- return obj;
34
- }, { sum: 0, count: 0 });
35
- // running average could be different by few decimal points so floor is required
36
- expect(Math.floor(averageWindow.currentValue)).toBe(Math.floor(reduceObj.sum / reduceObj.count));
37
- });
38
- it("should prioritize new values quickly", function () {
39
- var size = 30;
40
- var averageWindow = new AverageWindow_1.AverageWindow(size);
41
- fillAverageWindow(averageWindow, 0, 100);
42
- expect(averageWindow.currentValue).toBeGreaterThan(70);
43
- fillAverageWindow(averageWindow, 0, 30);
44
- expect(averageWindow.currentValue).toBeLessThan(30);
45
- });
46
- it("reports initial average correctly", function () {
47
- var size = 30;
48
- var averageWindow = new AverageWindow_1.AverageWindow(size, 25);
49
- expect(averageWindow.currentValue).toBe(25);
50
- });
51
- it("updates initial average correctly", function () {
52
- var size = 30;
53
- var averageWindow = new AverageWindow_1.AverageWindow(size, 10);
54
- averageWindow.addValue(20);
55
- expect(averageWindow.currentValue).toBe(15);
56
- });
57
- it("increments next index correctly", function () {
58
- var size = 30;
59
- var averageWindow = new AverageWindow_1.AverageWindow(size);
60
- for (var i = 0; i < 300; i++) {
61
- expect(averageWindow["getNextIndex"]()).toBe(i % size);
62
- }
63
- var averageWindow2 = new AverageWindow_1.AverageWindow(size, 1);
64
- for (var i = 1; i < 300; i++) {
65
- expect(averageWindow2["getNextIndex"]()).toBe(i % size);
66
- }
67
- });
68
- });
69
- describe("MultiTypeAverageWindow", function () {
70
- it("should maintain separate averages for different types", function () {
71
- var windowSize = 10;
72
- var multiTypeAverageWindow = new AverageWindow_1.MultiTypeAverageWindow(windowSize);
73
- multiTypeAverageWindow.addValue(10, "type1");
74
- multiTypeAverageWindow.addValue(20, "type2");
75
- expect(multiTypeAverageWindow.getCurrentValue("type1")).toBe(10);
76
- expect(multiTypeAverageWindow.getCurrentValue("type2")).toBe(20);
77
- });
78
- it("should update averages correctly for each type", function () {
79
- var windowSize = 5;
80
- var multiTypeAverageWindow = new AverageWindow_1.MultiTypeAverageWindow(windowSize);
81
- multiTypeAverageWindow.addValue(10, "type1");
82
- multiTypeAverageWindow.addValue(20, "type1");
83
- multiTypeAverageWindow.addValue(30, "type1");
84
- multiTypeAverageWindow.addValue(5, "type2");
85
- multiTypeAverageWindow.addValue(15, "type2");
86
- expect(multiTypeAverageWindow.getCurrentValue("type1")).toBe(20);
87
- expect(multiTypeAverageWindow.getCurrentValue("type2")).toBe(10);
88
- });
89
- it("should return 0 for non-existent types", function () {
90
- var windowSize = 5;
91
- var multiTypeAverageWindow = new AverageWindow_1.MultiTypeAverageWindow(windowSize);
92
- expect(multiTypeAverageWindow.getCurrentValue("nonExistentType")).toBe(0);
93
- });
94
- it("should reset all averages", function () {
95
- var windowSize = 5;
96
- var multiTypeAverageWindow = new AverageWindow_1.MultiTypeAverageWindow(windowSize);
97
- multiTypeAverageWindow.addValue(10, "type1");
98
- multiTypeAverageWindow.addValue(20, "type2");
99
- multiTypeAverageWindow.reset();
100
- expect(multiTypeAverageWindow.getCurrentValue("type1")).toBe(0);
101
- expect(multiTypeAverageWindow.getCurrentValue("type2")).toBe(0);
102
- });
103
- });
104
- //# sourceMappingURL=AverageWindow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AverageWindow.test.js","sourceRoot":"","sources":["../../src/__tests__/AverageWindow.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ConsecutiveNumbers.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsecutiveNumbers.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ConsecutiveNumbers.test.ts"],"names":[],"mappings":""}
@@ -1,224 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- /* eslint-disable id-length */
5
- var ConsecutiveNumbers_1 = require("../recyclerview/helpers/ConsecutiveNumbers");
6
- describe("ConsecutiveNumbers", function () {
7
- describe("constructor", function () {
8
- it("should initialize with start and end indices", function () {
9
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
10
- expect(numbers.startIndex).toBe(5);
11
- expect(numbers.endIndex).toBe(10);
12
- });
13
- });
14
- describe("EMPTY", function () {
15
- it("should have correct values for EMPTY constant", function () {
16
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.startIndex).toBe(-1);
17
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.endIndex).toBe(-2);
18
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.length).toBe(0);
19
- });
20
- });
21
- describe("length", function () {
22
- it("should return correct length for valid range", function () {
23
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10).length).toBe(6);
24
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(0, 0).length).toBe(1);
25
- });
26
- it("should return 0 for invalid range", function () {
27
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 4).length).toBe(0);
28
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(10, 5).length).toBe(0);
29
- });
30
- });
31
- describe("at", function () {
32
- it("should return correct value at index", function () {
33
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
34
- expect(numbers.at(0)).toBe(5);
35
- expect(numbers.at(3)).toBe(8);
36
- expect(numbers.at(5)).toBe(10);
37
- });
38
- it("should work with negative ranges", function () {
39
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(-3, 2);
40
- expect(numbers.at(0)).toBe(-3);
41
- expect(numbers.at(3)).toBe(0);
42
- expect(numbers.at(5)).toBe(2);
43
- });
44
- });
45
- describe("equals", function () {
46
- it("should return true for identical ranges", function () {
47
- var a = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
48
- var b = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
49
- expect(a.equals(b)).toBe(true);
50
- });
51
- it("should return false for different ranges", function () {
52
- var a = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
53
- var b = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 11);
54
- var c = new ConsecutiveNumbers_1.ConsecutiveNumbers(6, 10);
55
- expect(a.equals(b)).toBe(false);
56
- expect(a.equals(c)).toBe(false);
57
- });
58
- it("should handle empty ranges", function () {
59
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.equals(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY)).toBe(true);
60
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.equals(new ConsecutiveNumbers_1.ConsecutiveNumbers(1, 5))).toBe(false);
61
- });
62
- });
63
- describe("toArray", function () {
64
- it("should return correct array for valid range", function () {
65
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 8).toArray()).toEqual([5, 6, 7, 8]);
66
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(0, 3).toArray()).toEqual([0, 1, 2, 3]);
67
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(-2, 1).toArray()).toEqual([-2, -1, 0, 1]);
68
- });
69
- it("should return empty array for invalid ranges", function () {
70
- expect(new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 4).toArray()).toEqual([]);
71
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.toArray()).toEqual([]);
72
- });
73
- });
74
- describe("includes", function () {
75
- it("should return true for values in range", function () {
76
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
77
- expect(numbers.includes(5)).toBe(true);
78
- expect(numbers.includes(7)).toBe(true);
79
- expect(numbers.includes(10)).toBe(true);
80
- });
81
- it("should return false for values outside range", function () {
82
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
83
- expect(numbers.includes(4)).toBe(false);
84
- expect(numbers.includes(11)).toBe(false);
85
- });
86
- it("should handle empty ranges", function () {
87
- expect(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY.includes(0)).toBe(false);
88
- });
89
- });
90
- describe("indexOf", function () {
91
- it("should return correct index for values in range", function () {
92
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
93
- expect(numbers.indexOf(5)).toBe(0);
94
- expect(numbers.indexOf(7)).toBe(2);
95
- expect(numbers.indexOf(10)).toBe(5);
96
- });
97
- it("should return -1 for values outside range", function () {
98
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
99
- expect(numbers.indexOf(4)).toBe(-1);
100
- expect(numbers.indexOf(11)).toBe(-1);
101
- });
102
- });
103
- describe("findValue", function () {
104
- it("should find values matching predicate", function () {
105
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
106
- expect(numbers.findValue(function (v) { return v % 2 === 0; })).toBe(6);
107
- expect(numbers.findValue(function (v) { return v > 8; })).toBe(9);
108
- });
109
- it("should return undefined when no match found", function () {
110
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
111
- expect(numbers.findValue(function (v) { return v > 100; })).toBe(undefined);
112
- });
113
- it("should provide index and array to predicate", function () {
114
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 7);
115
- var mockFn = jest.fn().mockReturnValue(false);
116
- numbers.findValue(mockFn);
117
- expect(mockFn).toHaveBeenCalledTimes(3);
118
- expect(mockFn).toHaveBeenNthCalledWith(1, 5, 0, numbers);
119
- expect(mockFn).toHaveBeenNthCalledWith(2, 6, 1, numbers);
120
- expect(mockFn).toHaveBeenNthCalledWith(3, 7, 2, numbers);
121
- });
122
- });
123
- describe("every", function () {
124
- it("should return true when all values match predicate", function () {
125
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
126
- expect(numbers.every(function (v) { return v >= 5; })).toBe(true);
127
- expect(numbers.every(function (v) { return v <= 10; })).toBe(true);
128
- });
129
- it("should return false when some values do not match predicate", function () {
130
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
131
- expect(numbers.every(function (v) { return v % 2 === 0; })).toBe(false);
132
- expect(numbers.every(function (v) { return v > 7; })).toBe(false);
133
- });
134
- it("should provide index and array to predicate", function () {
135
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 7);
136
- var mockFn = jest.fn().mockReturnValue(true);
137
- numbers.every(mockFn);
138
- expect(mockFn).toHaveBeenCalledTimes(3);
139
- expect(mockFn).toHaveBeenNthCalledWith(1, 5, 0, numbers);
140
- expect(mockFn).toHaveBeenNthCalledWith(2, 6, 1, numbers);
141
- expect(mockFn).toHaveBeenNthCalledWith(3, 7, 2, numbers);
142
- });
143
- it("should short-circuit when predicate returns false", function () {
144
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
145
- var mockFn = jest.fn().mockImplementation(function (v) { return v < 7; });
146
- numbers.every(mockFn);
147
- expect(mockFn).toHaveBeenCalledTimes(3); // Should stop after v=7
148
- });
149
- });
150
- describe("slice", function () {
151
- it("should slice with both start and end", function () {
152
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
153
- var sliced = numbers.slice(1, 4);
154
- expect(sliced.startIndex).toBe(6);
155
- expect(sliced.endIndex).toBe(8);
156
- expect(sliced.length).toBe(3);
157
- });
158
- it("should slice with only start", function () {
159
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
160
- var sliced = numbers.slice(2);
161
- expect(sliced.startIndex).toBe(7);
162
- expect(sliced.endIndex).toBe(10);
163
- expect(sliced.length).toBe(4);
164
- });
165
- it("should handle out of bounds slices", function () {
166
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
167
- var sliced = numbers.slice(0, 100);
168
- expect(sliced.length).toBe(6);
169
- expect(sliced.startIndex).toBe(5);
170
- expect(sliced.endIndex).toBe(10);
171
- });
172
- it("should handle invalid slices", function () {
173
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 10);
174
- var sliced = numbers.slice(4, 3);
175
- expect(sliced.length).toBe(0);
176
- expect(sliced.startIndex).toBe(9);
177
- expect(sliced.endIndex).toBe(8);
178
- });
179
- });
180
- describe("iterator", function () {
181
- it("should iterate over all values", function () {
182
- var e_1, _a;
183
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 8);
184
- var result = [];
185
- try {
186
- for (var numbers_1 = tslib_1.__values(numbers), numbers_1_1 = numbers_1.next(); !numbers_1_1.done; numbers_1_1 = numbers_1.next()) {
187
- var num = numbers_1_1.value;
188
- result.push(num);
189
- }
190
- }
191
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
192
- finally {
193
- try {
194
- if (numbers_1_1 && !numbers_1_1.done && (_a = numbers_1.return)) _a.call(numbers_1);
195
- }
196
- finally { if (e_1) throw e_1.error; }
197
- }
198
- expect(result).toEqual([5, 6, 7, 8]);
199
- });
200
- it("should handle empty ranges", function () {
201
- var e_2, _a;
202
- var result = [];
203
- try {
204
- for (var _b = tslib_1.__values(ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY), _c = _b.next(); !_c.done; _c = _b.next()) {
205
- var num = _c.value;
206
- result.push(num);
207
- }
208
- }
209
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
210
- finally {
211
- try {
212
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
213
- }
214
- finally { if (e_2) throw e_2.error; }
215
- }
216
- expect(result).toEqual([]);
217
- });
218
- it("should work with spread operator", function () {
219
- var numbers = new ConsecutiveNumbers_1.ConsecutiveNumbers(5, 8);
220
- expect(tslib_1.__spreadArray([], tslib_1.__read(numbers), false)).toEqual([5, 6, 7, 8]);
221
- });
222
- });
223
- });
224
- //# sourceMappingURL=ConsecutiveNumbers.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsecutiveNumbers.test.js","sourceRoot":"","sources":["../../src/__tests__/ConsecutiveNumbers.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=GridLayoutManager.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GridLayoutManager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/GridLayoutManager.test.ts"],"names":[],"mappings":""}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var createLayoutManager_1 = require("./helpers/createLayoutManager");
5
- describe("GridLayoutManager", function () {
6
- var windowSize = { width: 400, height: 900 };
7
- var defaultParams = { windowSize: windowSize, maxColumns: 2 };
8
- describe("Basic grid layout", function () {
9
- it("should arrange items in rows with equal widths", function () {
10
- var manager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 4, defaultParams);
11
- var layouts = (0, createLayoutManager_1.getAllLayouts)(manager);
12
- expect(layouts[0].x).toBe(0);
13
- expect(layouts[0].width).toBe(200);
14
- expect(layouts[1].x).toBe(200);
15
- expect(layouts[2].y).toBe(layouts[0].height);
16
- expect(layouts[3].x).toBe(200);
17
- });
18
- it("should respect maxColumns configuration", function () {
19
- var manager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 6, tslib_1.__assign(tslib_1.__assign({}, defaultParams), { maxColumns: 3 }));
20
- var layouts = (0, createLayoutManager_1.getAllLayouts)(manager);
21
- expect(layouts[0].width).toBeCloseTo(400 / 3);
22
- expect(layouts[3].x).toBe(0);
23
- expect(layouts[3].y).toBe(layouts[0].height);
24
- });
25
- });
26
- describe("Multi-column items", function () {
27
- it("should handle items spanning multiple columns", function () {
28
- var manager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 3, tslib_1.__assign(tslib_1.__assign({}, defaultParams), { maxColumns: 3, overrideItemLayout: function (index, layout) {
29
- layout.span = index === 0 ? 2 : undefined;
30
- } }));
31
- var layouts = (0, createLayoutManager_1.getAllLayouts)(manager);
32
- // First item spans 2 columns
33
- expect(layouts[0].width).toBeCloseTo((400 / 3) * 2);
34
- // Next item starts in third column
35
- expect(layouts[1].x).toBeCloseTo((400 / 3) * 2);
36
- });
37
- it("should wrap items that exceed column count", function () {
38
- var manager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 4, tslib_1.__assign(tslib_1.__assign({}, defaultParams), { overrideItemLayout: function (index, layout) {
39
- layout.span = index % 2 === 0 ? 2 : 1;
40
- } }));
41
- var layouts = (0, createLayoutManager_1.getAllLayouts)(manager);
42
- // Row 1: 2 columns (span 2 + span 2 would exceed 2 columns)
43
- expect(layouts[0].width).toBe(400);
44
- expect(layouts[1].x).toBe(0);
45
- expect(layouts[1].y).toBe(layouts[0].height);
46
- expect(layouts[2].x).toBe(0);
47
- expect(layouts[2].y).toBe(layouts[1].height + layouts[0].height);
48
- });
49
- });
50
- describe("Layout recalculations", function () {
51
- it("should adjust layout when window size changes", function () {
52
- var manager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 4, defaultParams);
53
- // Update window size
54
- manager.updateLayoutParams((0, createLayoutManager_1.createLayoutParams)(tslib_1.__assign(tslib_1.__assign({}, defaultParams), { windowSize: { width: 600, height: 900 } })));
55
- var updatedWidth = (0, createLayoutManager_1.getAllLayouts)(manager)[0].width;
56
- expect(updatedWidth).toBe(300); // 600 / 2 columns
57
- });
58
- it("should maintain positions when adding new items", function () {
59
- var manager = (0, createLayoutManager_1.createPopulatedLayoutManager)(createLayoutManager_1.LayoutManagerType.GRID, 2, defaultParams);
60
- var initialLayouts = (0, createLayoutManager_1.getAllLayouts)(manager);
61
- // Add two more items
62
- manager.modifyLayout([], 4);
63
- var updatedLayouts = (0, createLayoutManager_1.getAllLayouts)(manager);
64
- expect(updatedLayouts[0]).toEqual(initialLayouts[0]);
65
- expect(updatedLayouts[3].y).toBe(initialLayouts[0].height);
66
- });
67
- });
68
- });
69
- //# sourceMappingURL=GridLayoutManager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GridLayoutManager.test.js","sourceRoot":"","sources":["../../src/__tests__/GridLayoutManager.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LayoutCommitObserver.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayoutCommitObserver.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/LayoutCommitObserver.test.tsx"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var react_1 = tslib_1.__importDefault(require("react"));
5
- var react_testing_1 = require("@quilted/react-testing");
6
- var RecyclerViewContextProvider_1 = require("../recyclerview/RecyclerViewContextProvider");
7
- var LayoutCommitObserver_1 = require("../recyclerview/LayoutCommitObserver");
8
- var __1 = require("..");
9
- describe("LayoutCommitObserver", function () {
10
- it("should not alter ref captured by child", function () {
11
- var ChildComponent = function () {
12
- var _a, _b, _c, _d;
13
- var context = (0, RecyclerViewContextProvider_1.useFlashListContext)();
14
- expect((_a = context === null || context === void 0 ? void 0 : context.getRef()) === null || _a === void 0 ? void 0 : _a.props.testID).toBe("child");
15
- expect((_b = context === null || context === void 0 ? void 0 : context.getParentRef()) === null || _b === void 0 ? void 0 : _b.props.testID).toBe("parent");
16
- expect((_c = context === null || context === void 0 ? void 0 : context.getScrollViewRef()) === null || _c === void 0 ? void 0 : _c.props.testID).toBe("child");
17
- expect((_d = context === null || context === void 0 ? void 0 : context.getParentScrollViewRef()) === null || _d === void 0 ? void 0 : _d.props.testID).toBe("parent");
18
- return null;
19
- };
20
- var commitLayoutEffectCount = 0;
21
- var content = (react_1.default.createElement(__1.FlashList, { testID: "parent", data: [1], renderItem: function () { return (react_1.default.createElement(LayoutCommitObserver_1.LayoutCommitObserver, { onCommitLayoutEffect: function () {
22
- commitLayoutEffectCount++;
23
- } },
24
- react_1.default.createElement(__1.FlashList, { testID: "child", data: [1], renderItem: function () { return (react_1.default.createElement(LayoutCommitObserver_1.LayoutCommitObserver, { onCommitLayoutEffect: function () {
25
- commitLayoutEffectCount++;
26
- } },
27
- react_1.default.createElement(LayoutCommitObserver_1.LayoutCommitObserver, { onCommitLayoutEffect: function () {
28
- commitLayoutEffectCount++;
29
- } },
30
- react_1.default.createElement(ChildComponent, null)))); } }))); } }));
31
- var renderResult = (0, react_testing_1.render)(content);
32
- expect(commitLayoutEffectCount).toBe(3);
33
- // Force unmount to trigger cleanup of async operations
34
- renderResult.unmount();
35
- });
36
- });
37
- //# sourceMappingURL=LayoutCommitObserver.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayoutCommitObserver.test.js","sourceRoot":"","sources":["../../src/__tests__/LayoutCommitObserver.test.tsx"],"names":[],"mappings":";;;AAAA,wDAA0B;AAC1B,wDAAgD;AAEhD,2FAAkF;AAClF,6EAA4E;AAC5E,wBAA+B;AAE/B,QAAQ,CAAC,sBAAsB,EAAE;IAC/B,EAAE,CAAC,wCAAwC,EAAE;QAC3C,IAAM,cAAc,GAAG;;YACrB,IAAM,OAAO,GAAG,IAAA,iDAAmB,GAAE,CAAC;YACtC,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAEhC,IAAM,OAAO,GAAG,CACd,8BAAC,aAAS,IACR,MAAM,EAAC,QAAQ,EACf,IAAI,EAAE,CAAC,CAAC,CAAC,EACT,UAAU,EAAE,cAAM,OAAA,CAChB,8BAAC,2CAAoB,IACnB,oBAAoB,EAAE;oBACpB,uBAAuB,EAAE,CAAC;gBAC5B,CAAC;gBAED,8BAAC,aAAS,IACR,MAAM,EAAC,OAAO,EACd,IAAI,EAAE,CAAC,CAAC,CAAC,EACT,UAAU,EAAE,cAAM,OAAA,CAChB,8BAAC,2CAAoB,IACnB,oBAAoB,EAAE;4BACpB,uBAAuB,EAAE,CAAC;wBAC5B,CAAC;wBAED,8BAAC,2CAAoB,IACnB,oBAAoB,EAAE;gCACpB,uBAAuB,EAAE,CAAC;4BAC5B,CAAC;4BAED,8BAAC,cAAc,OAAG,CACG,CACF,CACxB,EAdiB,CAcjB,GACD,CACmB,CACxB,EA1BiB,CA0BjB,GACD,CACH,CAAC;QAEF,IAAM,YAAY,GAAG,IAAA,sBAAM,EAAC,OAAO,CAAC,CAAC;QAErC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExC,uDAAuD;QACvD,YAAY,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LinearLayoutManager.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinearLayoutManager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/LinearLayoutManager.test.ts"],"names":[],"mappings":""}