@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.
- package/dist/AnimatedFlashList.js +4 -6
- package/dist/AnimatedFlashList.js.map +1 -1
- package/dist/FlashList.js +1 -5
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +9 -1
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js +1 -4
- package/dist/FlashListProps.js.map +1 -1
- package/dist/FlashListRef.js +1 -2
- package/dist/benchmark/AutoScrollHelper.js +22 -30
- package/dist/benchmark/AutoScrollHelper.js.map +1 -1
- package/dist/benchmark/JSFPSMonitor.js +27 -33
- package/dist/benchmark/JSFPSMonitor.js.map +1 -1
- package/dist/benchmark/roundToDecimalPlaces.js +2 -5
- package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
- package/dist/benchmark/useBenchmark.d.ts +9 -1
- package/dist/benchmark/useBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useBenchmark.js +86 -95
- package/dist/benchmark/useBenchmark.js.map +1 -1
- package/dist/benchmark/useDataMultiplier.js +6 -10
- package/dist/benchmark/useDataMultiplier.js.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.js +73 -81
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/errors/ErrorMessages.js +1 -4
- package/dist/errors/ErrorMessages.js.map +1 -1
- package/dist/errors/WarningMessages.d.ts +1 -0
- package/dist/errors/WarningMessages.d.ts.map +1 -1
- package/dist/errors/WarningMessages.js +2 -4
- package/dist/errors/WarningMessages.js.map +1 -1
- package/dist/index.js +17 -35
- package/dist/index.js.map +1 -1
- package/dist/isNewArch.js +6 -9
- package/dist/isNewArch.js.map +1 -1
- package/dist/native/config/PlatformHelper.android.js +2 -5
- package/dist/native/config/PlatformHelper.android.js.map +1 -1
- package/dist/native/config/PlatformHelper.ios.js +2 -5
- package/dist/native/config/PlatformHelper.ios.js.map +1 -1
- package/dist/native/config/PlatformHelper.js +2 -5
- package/dist/native/config/PlatformHelper.js.map +1 -1
- package/dist/native/config/PlatformHelper.web.js +2 -5
- package/dist/native/config/PlatformHelper.web.js.map +1 -1
- package/dist/recyclerview/LayoutCommitObserver.js +20 -24
- package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerView.js +117 -107
- package/dist/recyclerview/RecyclerView.js.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.d.ts +2 -0
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.js +146 -164
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/RecyclerViewProps.js +1 -2
- package/dist/recyclerview/RenderStackManager.js +97 -188
- package/dist/recyclerview/RenderStackManager.js.map +1 -1
- package/dist/recyclerview/ViewHolder.js +16 -20
- package/dist/recyclerview/ViewHolder.js.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.js +26 -30
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
- package/dist/recyclerview/components/CompatScroller.js +6 -7
- package/dist/recyclerview/components/CompatScroller.js.map +1 -1
- package/dist/recyclerview/components/CompatView.js +6 -7
- package/dist/recyclerview/components/CompatView.js.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js +10 -15
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.js +34 -40
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
- package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
- package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
- package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
- package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
- package/dist/recyclerview/hooks/useLayoutState.js +9 -15
- package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
- package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
- package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.js +17 -22
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
- package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.js +24 -30
- package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
- package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
- package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
- package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
- package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
- package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
- package/dist/recyclerview/utils/componentUtils.js +4 -9
- package/dist/recyclerview/utils/componentUtils.js.map +1 -1
- package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
- package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
- package/dist/recyclerview/utils/measureLayout.js +12 -20
- package/dist/recyclerview/utils/measureLayout.js.map +1 -1
- package/dist/recyclerview/utils/measureLayout.web.js +15 -23
- package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
- package/dist/recyclerview/viewability/ViewToken.js +1 -2
- package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
- package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
- package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
- package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/AverageWindow.js +28 -39
- package/dist/utils/AverageWindow.js.map +1 -1
- package/package.json +4 -6
- package/src/FlashListProps.ts +8 -1
- package/src/benchmark/useBenchmark.ts +47 -4
- package/src/benchmark/useFlatListBenchmark.ts +38 -5
- package/src/errors/WarningMessages.ts +2 -0
- package/src/recyclerview/RecyclerView.tsx +18 -5
- package/src/recyclerview/RecyclerViewManager.ts +12 -0
- package/src/recyclerview/hooks/useOnLoad.ts +1 -0
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
- package/dist/__tests__/AverageWindow.test.d.ts +0 -2
- package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
- package/dist/__tests__/AverageWindow.test.js +0 -104
- package/dist/__tests__/AverageWindow.test.js.map +0 -1
- package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
- package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
- package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
- package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
- package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
- package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
- package/dist/__tests__/GridLayoutManager.test.js +0 -69
- package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
- package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
- package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
- package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
- package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
- package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
- package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
- package/dist/__tests__/LinearLayoutManager.test.js +0 -140
- package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
- package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
- package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
- package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
- package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
- package/dist/__tests__/RecyclerView.test.d.ts +0 -2
- package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
- package/dist/__tests__/RecyclerView.test.js +0 -103
- package/dist/__tests__/RecyclerView.test.js.map +0 -1
- package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
- package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
- package/dist/__tests__/RenderStackManager.test.js +0 -485
- package/dist/__tests__/RenderStackManager.test.js.map +0 -1
- package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
- package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
- package/dist/__tests__/ViewabilityHelper.test.js +0 -186
- package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
- package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
- package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
- package/dist/__tests__/findVisibleIndex.test.js +0 -259
- package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
- package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
- package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
- package/dist/__tests__/helpers/createLayoutManager.js +0 -110
- package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
- package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
- package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
- package/src/__tests__/AverageWindow.test.ts +0 -128
- package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
- package/src/__tests__/GridLayoutManager.test.ts +0 -113
- package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
- package/src/__tests__/LinearLayoutManager.test.ts +0 -227
- package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
- package/src/__tests__/RecyclerView.test.tsx +0 -144
- package/src/__tests__/RenderStackManager.test.ts +0 -574
- package/src/__tests__/ViewabilityHelper.test.ts +0 -282
- package/src/__tests__/findVisibleIndex.test.ts +0 -369
- package/src/__tests__/helpers/createLayoutManager.ts +0 -141
- 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":"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"}
|
|
@@ -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":";;AAAA,2EAGgD;AAGhD,qEAIuC;AAEvC,QAAQ,CAAC,kBAAkB,EAAE;IAC3B,sEAAsE;IACtE,SAAS,iBAAiB,CACxB,KAAa,EACb,aAAqB,EACrB,QAAgB,EAChB,YAAqB;QAErB,IAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,GAAG,QAAQ,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC;gBACX,CAAC,GAAA;gBACD,CAAC,GAAA;gBACD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;gBACpC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,uBAAuB,EAAE;QAChC,gDAAgD;QAChD,EAAE,CAAC,oDAAoD,EAAE;YACvD,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,MAAM,EACxB,EAAE,EACF,EAAE,UAAU,EAAE,KAAK,EAAE,CACtB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,iFAAiF;YACjF,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,EAAE,CAAC,sDAAsD,EAAE;YACzD,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,MAAM,EACxB,EAAE,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,iFAAiF;YACjF,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,EAAE,CAAC,oCAAoC,EAAE;YACvC,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,EAAE,CAAC,uDAAuD,EAAE;YAC1D,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,MAAM,EACxB,EAAE,CACH,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,EAAE,CAAC,sCAAsC,EAAE;YACzC,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,+DAA+D;YAC/D,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,EAAE,CAAC,kEAAkE,EAAE;YACrE,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,iDAAiD;YACjD,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,EAAE,CAAC,kEAAkE,EAAE;YACrE,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,0CAA0C;YAC1C,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,EAAE,CAAC,4CAA4C,EAAE;YAC/C,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,IAAI,EACtB,EAAE,EACF,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,mDAAmD;YACnD,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErE,6DAA6D;YAC7D,uEAAuE;YACvE,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,EAAE,CAAC,uEAAuE,EAAE;YAC1E,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,OAAO,EACzB,EAAE,EACF,EAAE,UAAU,EAAE,CAAC,EAAE,EACjB,GAAG,EACH,GAAG,EACH,IAAI,CAAC,gBAAgB;aACtB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,EAAE,CAAC,oDAAoD,EAAE;YACvD,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,wCAAwC;YACxC,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE;QAC/B,iDAAiD;QACjD,EAAE,CAAC,mDAAmD,EAAE;YACtD,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,MAAM,EACxB,EAAE,EACF,EAAE,UAAU,EAAE,KAAK,EAAE,CACtB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,6EAA6E;YAC7E,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,mDAAmD;QACnD,EAAE,CAAC,qDAAqD,EAAE;YACxD,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,MAAM,EACxB,EAAE,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,6EAA6E;YAC7E,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAClE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,EAAE,CAAC,oCAAoC,EAAE;YACvC,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,EAAE,CAAC,gEAAgE,EAAE;YACnE,IAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAEpD,sDAAsD;YACtD,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;QAC3D,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,EAAE,CAAC,sCAAsC,EAAE;YACzC,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAEvD,sCAAsC;YACtC,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,EAAE,CAAC,kEAAkE,EAAE;YACrE,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,+CAA+C;YAC/C,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,EAAE,CAAC,kEAAkE,EAAE;YACrE,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,0CAA0C;YAC1C,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,EAAE,CAAC,2CAA2C,EAAE;YAC9C,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,IAAI,EACtB,EAAE,EACF,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,EAAE,CAAC,sEAAsE,EAAE;YACzE,IAAM,aAAa,GAAG,IAAA,kDAA4B,EAChD,uCAAiB,CAAC,OAAO,EACzB,EAAE,EACF,EAAE,UAAU,EAAE,CAAC,EAAE,EACjB,GAAG,EACH,GAAG,EACH,IAAI,CAAC,gBAAgB;aACtB,CAAC;YACF,IAAM,OAAO,GAAG,IAAA,mCAAa,EAAC,aAAa,CAAC,CAAC;YAE7C,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,EAAE,CAAC,gDAAgD,EAAE;YACnD,IAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAErD,uCAAuC;YACvC,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE;QAC3C,8BAA8B;QAC9B,EAAE,CAAC,wDAAwD,EAAE;YAC3D,IAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAEpD,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,EAAE,CAAC,uDAAuD,EAAE;YAC1D,IAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAEpD,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,EAAE,CAAC,wDAAwD,EAAE;YAC3D,IAAM,OAAO,GAAe;gBAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;gBACtC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACxC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;gBACxC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC1C,CAAC;YAEF,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD;QACrF,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,EAAE,CAAC,uDAAuD,EAAE;YAC1D,IAAM,OAAO,GAAe;gBAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;gBACtC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACxC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;gBACxC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC1C,CAAC;YAEF,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC;QAC7E,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,EAAE,CAAC,0DAA0D,EAAE;YAC7D,IAAM,OAAO,GAAe;gBAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;gBACrC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aACxC,CAAC;YAEF,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD;QACrF,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,EAAE,CAAC,yDAAyD,EAAE;YAC5D,IAAM,OAAO,GAAe;gBAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;aACxC,CAAC;YAEF,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,2DAA2D;QAC/F,CAAC,CAAC,CAAC;QAEH,oDAAoD;QACpD,EAAE,CAAC,wDAAwD,EAAE;YAC3D,IAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAEvD,sCAAsC;YACtC,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,oDAAoD;QACpD,EAAE,CAAC,uDAAuD,EAAE;YAC1D,IAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAEvD,sCAAsC;YACtC,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,EAAE,CAAC,qDAAqD,EAAE;YACxD,IAAM,OAAO,GAAe;gBAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACzC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC1C,CAAC;YAEF,IAAM,iBAAiB,GAAG,IAAA,wCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAC/E,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,EAAE,CAAC,oDAAoD,EAAE;YACvD,IAAM,OAAO,GAAe;gBAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACzC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC1C,CAAC;YAEF,IAAM,gBAAgB,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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
|