react-native-reorderable-list 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/lib/commonjs/components/NestedReorderableList.js +2 -0
- package/lib/commonjs/components/NestedReorderableList.js.map +1 -1
- package/lib/commonjs/components/ReorderableList.js +4 -3
- package/lib/commonjs/components/ReorderableList.js.map +1 -1
- package/lib/commonjs/components/ReorderableListCell.js +2 -2
- package/lib/commonjs/components/ReorderableListCell.js.map +1 -1
- package/lib/commonjs/components/ReorderableListCore/ReorderableListCore.js +3 -3
- package/lib/commonjs/components/ReorderableListCore/ReorderableListCore.js.map +1 -1
- package/lib/commonjs/components/ReorderableListCore/useReorderableListCore.js +160 -99
- package/lib/commonjs/components/ReorderableListCore/useReorderableListCore.js.map +1 -1
- package/lib/commonjs/components/ScrollViewContainer.js +14 -3
- package/lib/commonjs/components/ScrollViewContainer.js.map +1 -1
- package/lib/commonjs/contexts/ScrollViewContainerContext.js.map +1 -1
- package/lib/module/components/NestedReorderableList.js +2 -0
- package/lib/module/components/NestedReorderableList.js.map +1 -1
- package/lib/module/components/ReorderableList.js +4 -3
- package/lib/module/components/ReorderableList.js.map +1 -1
- package/lib/module/components/ReorderableListCell.js +2 -2
- package/lib/module/components/ReorderableListCell.js.map +1 -1
- package/lib/module/components/ReorderableListCore/ReorderableListCore.js +3 -3
- package/lib/module/components/ReorderableListCore/ReorderableListCore.js.map +1 -1
- package/lib/module/components/ReorderableListCore/useReorderableListCore.js +161 -100
- package/lib/module/components/ReorderableListCore/useReorderableListCore.js.map +1 -1
- package/lib/module/components/ScrollViewContainer.js +16 -5
- package/lib/module/components/ScrollViewContainer.js.map +1 -1
- package/lib/module/contexts/ScrollViewContainerContext.js.map +1 -1
- package/lib/typescript/components/NestedReorderableList.d.ts.map +1 -1
- package/lib/typescript/components/ReorderableList.d.ts.map +1 -1
- package/lib/typescript/components/ReorderableListCore/ReorderableListCore.d.ts +1 -0
- package/lib/typescript/components/ReorderableListCore/ReorderableListCore.d.ts.map +1 -1
- package/lib/typescript/components/ReorderableListCore/useReorderableListCore.d.ts +4 -5
- package/lib/typescript/components/ReorderableListCore/useReorderableListCore.d.ts.map +1 -1
- package/lib/typescript/components/ScrollViewContainer.d.ts.map +1 -1
- package/lib/typescript/contexts/ScrollViewContainerContext.d.ts +1 -0
- package/lib/typescript/contexts/ScrollViewContainerContext.d.ts.map +1 -1
- package/lib/typescript/types/props.d.ts +0 -5
- package/lib/typescript/types/props.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/NestedReorderableList.tsx +2 -0
- package/src/components/ReorderableList.tsx +3 -2
- package/src/components/ReorderableListCell.tsx +3 -3
- package/src/components/ReorderableListCore/ReorderableListCore.tsx +4 -3
- package/src/components/ReorderableListCore/useReorderableListCore.ts +277 -184
- package/src/components/ScrollViewContainer.tsx +23 -5
- package/src/contexts/ScrollViewContainerContext.ts +1 -0
- package/src/types/props.ts +0 -5
|
@@ -23,19 +23,19 @@ const useReorderableListCore = ({
|
|
|
23
23
|
autoscrollDelay,
|
|
24
24
|
autoscrollActivationDelta,
|
|
25
25
|
animationDuration,
|
|
26
|
-
dragReorderThreshold,
|
|
27
26
|
onReorder,
|
|
28
27
|
onDragStart,
|
|
29
28
|
onDragEnd,
|
|
30
29
|
onLayout,
|
|
31
30
|
onIndexChange,
|
|
32
31
|
scrollViewContainerRef,
|
|
32
|
+
scrollViewPageY,
|
|
33
33
|
scrollViewHeightY,
|
|
34
34
|
scrollViewScrollOffsetY,
|
|
35
35
|
scrollViewScrollEnabled,
|
|
36
|
+
scrollable,
|
|
36
37
|
initialScrollEnabled,
|
|
37
38
|
initialScrollViewScrollEnabled,
|
|
38
|
-
nestedScrollable,
|
|
39
39
|
cellAnimations,
|
|
40
40
|
shouldUpdateActiveItem,
|
|
41
41
|
panActivateAfterLongPress,
|
|
@@ -47,22 +47,25 @@ const useReorderableListCore = ({
|
|
|
47
47
|
const gestureState = (0, _reactNativeReanimated.useSharedValue)(_reactNativeGestureHandler.State.UNDETERMINED);
|
|
48
48
|
const currentY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
49
49
|
const currentTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
50
|
+
const currentItemDragCenterY = (0, _reactNativeReanimated.useSharedValue)(null);
|
|
51
|
+
const startItemDragCenterY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
50
52
|
const flatListScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
51
53
|
const flatListHeightY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
52
|
-
const
|
|
54
|
+
const flatListPageY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
55
|
+
// The scroll y translation of the list since drag start
|
|
53
56
|
const dragScrollTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
57
|
+
// The initial scroll offset y of the list on drag start
|
|
54
58
|
const dragInitialScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
59
|
+
// The scroll y translation of the ScrollViewContainer since drag start
|
|
55
60
|
const scrollViewDragScrollTranslationY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
61
|
+
// The initial scroll offset y of the ScrollViewContainer on drag start
|
|
56
62
|
const scrollViewDragInitialScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
57
63
|
const draggedHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
58
64
|
const itemOffset = (0, _reactNativeReanimated.useSharedValue)([]);
|
|
59
65
|
const itemHeight = (0, _reactNativeReanimated.useSharedValue)([]);
|
|
60
66
|
const autoscrollTrigger = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
61
67
|
const lastAutoscrollTrigger = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
62
|
-
const previousY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
63
68
|
const dragY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
64
|
-
const previousDirection = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
65
|
-
const previousIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
66
69
|
const currentIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
67
70
|
const draggedIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
68
71
|
const state = (0, _reactNativeReanimated.useSharedValue)(_types.ReorderableListState.IDLE);
|
|
@@ -74,6 +77,9 @@ const useReorderableListCore = ({
|
|
|
74
77
|
const dragDirection = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
75
78
|
const lastDragDirectionPivot = (0, _reactNativeReanimated.useSharedValue)(null);
|
|
76
79
|
const autoscrollDelta = (0, _reactNativeReanimated.useSharedValue)(autoscrollActivationDelta);
|
|
80
|
+
|
|
81
|
+
// Position of the list relative to the scroll container
|
|
82
|
+
const nestedFlatListPositionY = (0, _reactNativeReanimated.useDerivedValue)(() => flatListPageY.value - ((scrollViewPageY === null || scrollViewPageY === void 0 ? void 0 : scrollViewPageY.value) || 0));
|
|
77
83
|
(0, _react.useEffect)(() => {
|
|
78
84
|
duration.value = animationDuration;
|
|
79
85
|
autoscrollDelta.value = autoscrollActivationDelta;
|
|
@@ -97,6 +103,8 @@ const useReorderableListCore = ({
|
|
|
97
103
|
* Decides the intended drag direction of the user.
|
|
98
104
|
* This is used to to determine if the user intends to autoscroll
|
|
99
105
|
* when within the threshold area.
|
|
106
|
+
*
|
|
107
|
+
* @param e - The payload of the pan gesture update event.
|
|
100
108
|
*/
|
|
101
109
|
const setDragDirection = (0, _react.useCallback)(e => {
|
|
102
110
|
'worklet';
|
|
@@ -111,6 +119,22 @@ const useReorderableListCore = ({
|
|
|
111
119
|
}
|
|
112
120
|
}
|
|
113
121
|
}, [dragDirection, lastDragDirectionPivot, autoscrollDelta]);
|
|
122
|
+
const setCurrentItemDragCenterY = (0, _react.useCallback)(e => {
|
|
123
|
+
'worklet';
|
|
124
|
+
|
|
125
|
+
if (currentItemDragCenterY.value === null) {
|
|
126
|
+
if (currentIndex.value >= 0) {
|
|
127
|
+
const itemCenter = itemHeight.value[currentIndex.value] * 0.5;
|
|
128
|
+
// the y coordinate of the item relative to the list
|
|
129
|
+
const itemY = itemOffset.value[currentIndex.value] - (flatListScrollOffsetY.value + scrollViewDragScrollTranslationY.value);
|
|
130
|
+
const value = itemY + itemCenter + e.translationY;
|
|
131
|
+
startItemDragCenterY.value = value;
|
|
132
|
+
currentItemDragCenterY.value = value;
|
|
133
|
+
}
|
|
134
|
+
} else {
|
|
135
|
+
currentItemDragCenterY.value = startItemDragCenterY.value + e.translationY;
|
|
136
|
+
}
|
|
137
|
+
}, [currentItemDragCenterY, currentIndex, startItemDragCenterY, itemOffset, itemHeight, flatListScrollOffsetY, scrollViewDragScrollTranslationY]);
|
|
114
138
|
const panGestureHandler = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan().onBegin(e => {
|
|
115
139
|
// prevent new dragging until item is completely released
|
|
116
140
|
if (state.value === _types.ReorderableListState.IDLE) {
|
|
@@ -125,12 +149,13 @@ const useReorderableListCore = ({
|
|
|
125
149
|
setDragDirection(e);
|
|
126
150
|
}
|
|
127
151
|
if (state.value !== _types.ReorderableListState.RELEASED) {
|
|
152
|
+
setCurrentItemDragCenterY(e);
|
|
128
153
|
currentY.value = startY.value + e.translationY;
|
|
129
154
|
currentTranslationY.value = e.translationY;
|
|
130
155
|
dragY.value = e.translationY + dragScrollTranslationY.value + scrollViewDragScrollTranslationY.value;
|
|
131
156
|
gestureState.value = e.state;
|
|
132
157
|
}
|
|
133
|
-
}).onEnd(e => gestureState.value = e.state).onFinalize(e => gestureState.value = e.state), [state, startY, currentY, currentTranslationY, dragY, gestureState,
|
|
158
|
+
}).onEnd(e => gestureState.value = e.state).onFinalize(e => gestureState.value = e.state), [state, startY, currentY, currentTranslationY, dragY, gestureState, dragScrollTranslationY, scrollViewDragScrollTranslationY, setDragDirection, setCurrentItemDragCenterY]);
|
|
134
159
|
const panGestureHandlerWithOptions = (0, _react.useMemo)(() => {
|
|
135
160
|
if (typeof panActivateAfterLongPress === 'number') {
|
|
136
161
|
panGestureHandler.activateAfterLongPress(panActivateAfterLongPress);
|
|
@@ -168,7 +193,8 @@ const useReorderableListCore = ({
|
|
|
168
193
|
scrollViewDragScrollTranslationY.value = 0;
|
|
169
194
|
dragDirection.value = 0;
|
|
170
195
|
lastDragDirectionPivot.value = null;
|
|
171
|
-
|
|
196
|
+
currentItemDragCenterY.value = null;
|
|
197
|
+
}, [state, draggedIndex, dragY, dragScrollTranslationY, scrollViewDragScrollTranslationY, dragDirection, lastDragDirectionPivot, currentItemDragCenterY]);
|
|
172
198
|
const resetSharedValuesAfterAnimations = (0, _react.useCallback)(() => {
|
|
173
199
|
setTimeout((0, _reactNativeReanimated.runOnUI)(resetSharedValues), duration.value);
|
|
174
200
|
}, [resetSharedValues, duration]);
|
|
@@ -188,67 +214,72 @@ const useReorderableListCore = ({
|
|
|
188
214
|
}
|
|
189
215
|
}
|
|
190
216
|
};
|
|
191
|
-
const
|
|
217
|
+
const recomputeLayout = (0, _react.useCallback)((from, to) => {
|
|
192
218
|
'worklet';
|
|
193
219
|
|
|
194
|
-
const
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
220
|
+
const itemDirection = to > from;
|
|
221
|
+
const index1 = itemDirection ? from : to;
|
|
222
|
+
const index2 = itemDirection ? to : from;
|
|
223
|
+
const newOffset1 = itemOffset.value[index1];
|
|
224
|
+
const newHeight1 = itemHeight.value[index2];
|
|
225
|
+
const newOffset2 = itemOffset.value[index2] + itemHeight.value[index2] - itemHeight.value[index1];
|
|
226
|
+
const newHeight2 = itemHeight.value[index1];
|
|
227
|
+
itemOffset.value[index1] = newOffset1;
|
|
228
|
+
itemHeight.value[index1] = newHeight1;
|
|
229
|
+
itemOffset.value[index2] = newOffset2;
|
|
230
|
+
itemHeight.value[index2] = newHeight2;
|
|
231
|
+
}, [itemOffset, itemHeight]);
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Computes a potential new drop container for the current dragged item and evaluates
|
|
235
|
+
* whether the dragged item center is nearer to the center of the current container or the new one.
|
|
236
|
+
*
|
|
237
|
+
* @returns The new index if the center of the dragged item is closer to the center of
|
|
238
|
+
* the new drop container or the current index if closer to the current drop container.
|
|
239
|
+
*/
|
|
240
|
+
const computeCurrentIndex = (0, _react.useCallback)(() => {
|
|
241
|
+
'worklet';
|
|
242
|
+
|
|
243
|
+
if (currentItemDragCenterY.value === null) {
|
|
244
|
+
return currentIndex.value;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// apply scroll offset and scroll container translation
|
|
248
|
+
const relativeDragCenterY = flatListScrollOffsetY.value + scrollViewDragScrollTranslationY.value + currentItemDragCenterY.value;
|
|
249
|
+
const currentOffset = itemOffset.value[currentIndex.value];
|
|
250
|
+
const currentHeight = itemHeight.value[currentIndex.value];
|
|
251
|
+
const currentCenter = currentOffset + currentHeight * 0.5;
|
|
252
|
+
const max = itemOffset.value.length;
|
|
253
|
+
const possibleIndex = relativeDragCenterY < currentCenter ? Math.max(0, currentIndex.value - 1) : Math.min(max - 1, currentIndex.value + 1);
|
|
254
|
+
if (currentIndex.value !== possibleIndex) {
|
|
255
|
+
let possibleOffset = itemOffset.value[possibleIndex];
|
|
256
|
+
if (possibleIndex > currentIndex.value) {
|
|
257
|
+
possibleOffset += itemHeight.value[possibleIndex] - currentHeight;
|
|
209
258
|
}
|
|
259
|
+
const possibleCenter = possibleOffset + currentHeight * 0.5;
|
|
260
|
+
const distanceFromCurrent = Math.abs(relativeDragCenterY - currentCenter);
|
|
261
|
+
const distanceFromPossible = Math.abs(relativeDragCenterY - possibleCenter);
|
|
262
|
+
return distanceFromCurrent <= distanceFromPossible ? currentIndex.value : possibleIndex;
|
|
210
263
|
}
|
|
211
|
-
return
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
};
|
|
215
|
-
}, [dragReorderThreshold, currentIndex, flatListScrollOffsetY, previousDirection, itemOffset, itemHeight]);
|
|
216
|
-
const setCurrentIndex = (0, _react.useCallback)(y => {
|
|
264
|
+
return currentIndex.value;
|
|
265
|
+
}, [currentIndex, currentItemDragCenterY, itemOffset, itemHeight, flatListScrollOffsetY, scrollViewDragScrollTranslationY]);
|
|
266
|
+
const setCurrentIndex = (0, _react.useCallback)(() => {
|
|
217
267
|
'worklet';
|
|
218
268
|
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
} = getIndexFromY(y);
|
|
223
|
-
const delta = Math.abs(previousY.value - y);
|
|
224
|
-
if (currentIndex.value !== newIndex && (
|
|
225
|
-
// if the same two items re-swap index check delta and direction to avoid swap flickering
|
|
226
|
-
previousIndex.value !== newIndex || previousDirection.value !== newDirection && delta >= 5)) {
|
|
227
|
-
const itemDirection = newIndex > currentIndex.value;
|
|
228
|
-
const index1 = itemDirection ? currentIndex.value : newIndex;
|
|
229
|
-
const index2 = itemDirection ? newIndex : currentIndex.value;
|
|
230
|
-
const newOffset1 = itemOffset.value[index1];
|
|
231
|
-
const newHeight1 = itemHeight.value[index2];
|
|
232
|
-
const newOffset2 = itemOffset.value[index2] + (itemHeight.value[index2] - itemHeight.value[index1]);
|
|
233
|
-
const newHeight2 = itemHeight.value[index1];
|
|
234
|
-
itemOffset.value[index1] = newOffset1;
|
|
235
|
-
itemHeight.value[index1] = newHeight1;
|
|
236
|
-
itemOffset.value[index2] = newOffset2;
|
|
237
|
-
itemHeight.value[index2] = newHeight2;
|
|
238
|
-
previousY.value = y;
|
|
239
|
-
previousDirection.value = newDirection;
|
|
240
|
-
previousIndex.value = currentIndex.value;
|
|
269
|
+
const newIndex = computeCurrentIndex();
|
|
270
|
+
if (currentIndex.value !== newIndex) {
|
|
271
|
+
recomputeLayout(currentIndex.value, newIndex);
|
|
241
272
|
currentIndex.value = newIndex;
|
|
242
273
|
onIndexChange === null || onIndexChange === void 0 || onIndexChange({
|
|
243
274
|
index: newIndex
|
|
244
275
|
});
|
|
245
276
|
}
|
|
246
|
-
}, [currentIndex,
|
|
277
|
+
}, [currentIndex, computeCurrentIndex, recomputeLayout, onIndexChange]);
|
|
247
278
|
const runDefaultDragAnimations = (0, _react.useCallback)(type => {
|
|
248
279
|
'worklet';
|
|
249
280
|
|
|
250
281
|
// if no custom scale run default
|
|
251
|
-
if (!(cellAnimations && '
|
|
282
|
+
if (!(cellAnimations && 'transform' in cellAnimations)) {
|
|
252
283
|
const scaleConfig = _animationDefaults.SCALE_ANIMATION_CONFIG_DEFAULT[type];
|
|
253
284
|
scaleDefault.value = (0, _reactNativeReanimated.withTiming)(scaleConfig.toValue, scaleConfig);
|
|
254
285
|
}
|
|
@@ -303,7 +334,7 @@ const useReorderableListCore = ({
|
|
|
303
334
|
}
|
|
304
335
|
}
|
|
305
336
|
});
|
|
306
|
-
const
|
|
337
|
+
const computeHiddenArea = (0, _react.useCallback)(() => {
|
|
307
338
|
'worklet';
|
|
308
339
|
|
|
309
340
|
if (!scrollViewScrollOffsetY || !scrollViewHeightY) {
|
|
@@ -321,9 +352,10 @@ const useReorderableListCore = ({
|
|
|
321
352
|
bottom
|
|
322
353
|
};
|
|
323
354
|
}, [scrollViewScrollOffsetY, scrollViewHeightY, nestedFlatListPositionY, flatListHeightY]);
|
|
324
|
-
const
|
|
355
|
+
const computeThresholdArea = (0, _react.useCallback)(() => {
|
|
325
356
|
'worklet';
|
|
326
357
|
|
|
358
|
+
const hiddenArea = computeHiddenArea();
|
|
327
359
|
const offsetTop = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.top) || 0);
|
|
328
360
|
const offsetBottom = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.bottom) || 0);
|
|
329
361
|
const threshold = Math.max(0, Math.min(autoscrollThreshold, 0.4));
|
|
@@ -335,66 +367,81 @@ const useReorderableListCore = ({
|
|
|
335
367
|
top,
|
|
336
368
|
bottom
|
|
337
369
|
};
|
|
338
|
-
}, [autoscrollThreshold, autoscrollThresholdOffset, flatListHeightY]);
|
|
339
|
-
const
|
|
370
|
+
}, [computeHiddenArea, autoscrollThreshold, autoscrollThresholdOffset, flatListHeightY]);
|
|
371
|
+
const computeContainerThresholdArea = (0, _react.useCallback)(() => {
|
|
340
372
|
'worklet';
|
|
341
373
|
|
|
374
|
+
if (!scrollViewHeightY) {
|
|
375
|
+
return {
|
|
376
|
+
top: -Infinity,
|
|
377
|
+
bottom: Infinity
|
|
378
|
+
};
|
|
379
|
+
}
|
|
342
380
|
const offsetTop = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.top) || 0);
|
|
343
381
|
const offsetBottom = Math.max(0, (autoscrollThresholdOffset === null || autoscrollThresholdOffset === void 0 ? void 0 : autoscrollThresholdOffset.bottom) || 0);
|
|
344
382
|
const threshold = Math.max(0, Math.min(autoscrollThreshold, 0.4));
|
|
345
|
-
const
|
|
383
|
+
const visibleHeight = scrollViewHeightY.value - (offsetTop + offsetBottom);
|
|
384
|
+
const area = visibleHeight * threshold;
|
|
346
385
|
const top = area + offsetTop;
|
|
347
|
-
const bottom =
|
|
348
|
-
|
|
349
|
-
// if the hidden area is 0 then we don't have a threshold area
|
|
350
|
-
// we might have floating errors like 0.0001 which we should ignore
|
|
386
|
+
const bottom = visibleHeight - area - offsetBottom;
|
|
351
387
|
return {
|
|
352
|
-
top
|
|
353
|
-
bottom
|
|
388
|
+
top,
|
|
389
|
+
bottom
|
|
354
390
|
};
|
|
355
|
-
}, [autoscrollThreshold, autoscrollThresholdOffset,
|
|
356
|
-
const
|
|
391
|
+
}, [autoscrollThreshold, autoscrollThresholdOffset, scrollViewHeightY]);
|
|
392
|
+
const shouldScrollContainer = (0, _react.useCallback)(y => {
|
|
357
393
|
'worklet';
|
|
358
394
|
|
|
359
|
-
const
|
|
360
|
-
const
|
|
395
|
+
const containerThresholdArea = computeContainerThresholdArea();
|
|
396
|
+
const nestedListHiddenArea = computeHiddenArea();
|
|
361
397
|
|
|
362
|
-
//
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
398
|
+
// We should scroll the container if there's a hidden part of the nested list.
|
|
399
|
+
// We might have floating errors like 0.0001 which we should ignore.
|
|
400
|
+
return nestedListHiddenArea.top > 0.01 && y <= containerThresholdArea.top || nestedListHiddenArea.bottom > 0.01 && y >= containerThresholdArea.bottom;
|
|
401
|
+
}, [computeHiddenArea, computeContainerThresholdArea]);
|
|
402
|
+
const getRelativeContainerY = (0, _react.useCallback)(() => {
|
|
366
403
|
'worklet';
|
|
367
404
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
405
|
+
return currentY.value + nestedFlatListPositionY.value - scrollViewDragInitialScrollOffsetY.value;
|
|
406
|
+
}, [currentY, nestedFlatListPositionY, scrollViewDragInitialScrollOffsetY]);
|
|
407
|
+
const getRelativeListY = (0, _react.useCallback)(() => {
|
|
408
|
+
'worklet';
|
|
409
|
+
|
|
410
|
+
return currentY.value + scrollViewDragScrollTranslationY.value;
|
|
411
|
+
}, [currentY, scrollViewDragScrollTranslationY]);
|
|
412
|
+
const scrollDirection = (0, _react.useCallback)(() => {
|
|
413
|
+
'worklet';
|
|
414
|
+
|
|
415
|
+
const relativeContainerY = getRelativeContainerY();
|
|
416
|
+
if (shouldScrollContainer(relativeContainerY)) {
|
|
417
|
+
const containerThresholdArea = computeContainerThresholdArea();
|
|
418
|
+
if (relativeContainerY <= containerThresholdArea.top) {
|
|
372
419
|
return -1;
|
|
373
420
|
}
|
|
374
|
-
if (
|
|
421
|
+
if (relativeContainerY >= containerThresholdArea.bottom) {
|
|
375
422
|
return 1;
|
|
376
423
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
const thresholdArea =
|
|
380
|
-
if (
|
|
424
|
+
} else if (scrollable) {
|
|
425
|
+
const relativeListY = getRelativeListY();
|
|
426
|
+
const thresholdArea = computeThresholdArea();
|
|
427
|
+
if (relativeListY <= thresholdArea.top) {
|
|
381
428
|
return -1;
|
|
382
429
|
}
|
|
383
|
-
if (
|
|
430
|
+
if (relativeListY >= thresholdArea.bottom) {
|
|
384
431
|
return 1;
|
|
385
432
|
}
|
|
386
433
|
}
|
|
387
434
|
return 0;
|
|
388
|
-
}, [
|
|
389
|
-
(0, _reactNativeReanimated.useAnimatedReaction)(() => currentY.value
|
|
435
|
+
}, [shouldScrollContainer, computeThresholdArea, computeContainerThresholdArea, getRelativeContainerY, getRelativeListY, scrollable]);
|
|
436
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => currentY.value, () => {
|
|
390
437
|
if (state.value === _types.ReorderableListState.DRAGGED || state.value === _types.ReorderableListState.AUTOSCROLL) {
|
|
391
|
-
setCurrentIndex(
|
|
438
|
+
setCurrentIndex();
|
|
392
439
|
|
|
393
440
|
// Trigger autoscroll when:
|
|
394
441
|
// 1. Within the threshold area (top or bottom of list)
|
|
395
442
|
// 2. Have dragged in the same direction as the scroll
|
|
396
443
|
// 3. Not already in autoscroll mode
|
|
397
|
-
if (dragDirection.value === scrollDirection(
|
|
444
|
+
if (dragDirection.value === scrollDirection()) {
|
|
398
445
|
// When the first two conditions are met and it's already in autoscroll mode, we let it continue (no-op)
|
|
399
446
|
if (state.value !== _types.ReorderableListState.AUTOSCROLL) {
|
|
400
447
|
state.value = _types.ReorderableListState.AUTOSCROLL;
|
|
@@ -408,12 +455,15 @@ const useReorderableListCore = ({
|
|
|
408
455
|
});
|
|
409
456
|
(0, _reactNativeReanimated.useAnimatedReaction)(() => autoscrollTrigger.value, () => {
|
|
410
457
|
if (autoscrollTrigger.value !== lastAutoscrollTrigger.value && state.value === _types.ReorderableListState.AUTOSCROLL) {
|
|
411
|
-
|
|
412
|
-
const autoscrollIncrement = scrollDirection(y) * _autoscrollConfig.AUTOSCROLL_CONFIG.increment * autoscrollSpeedScale;
|
|
458
|
+
const autoscrollIncrement = dragDirection.value * _autoscrollConfig.AUTOSCROLL_CONFIG.increment * autoscrollSpeedScale;
|
|
413
459
|
if (autoscrollIncrement !== 0) {
|
|
414
460
|
let scrollOffset = flatListScrollOffsetY.value;
|
|
415
461
|
let listRef = flatListRef;
|
|
416
|
-
|
|
462
|
+
|
|
463
|
+
// Checking on every autoscroll whether to scroll the container,
|
|
464
|
+
// this allows to smoothly pass the scroll from the container to the nested list
|
|
465
|
+
// without any gesture input.
|
|
466
|
+
if (scrollViewScrollOffsetY && shouldScrollContainer(getRelativeContainerY())) {
|
|
417
467
|
scrollOffset = scrollViewScrollOffsetY.value;
|
|
418
468
|
listRef = scrollViewContainerRef;
|
|
419
469
|
}
|
|
@@ -422,7 +472,7 @@ const useReorderableListCore = ({
|
|
|
422
472
|
|
|
423
473
|
// when autoscrolling user may not be moving his finger so we need
|
|
424
474
|
// to update the current position of the dragged item here
|
|
425
|
-
setCurrentIndex(
|
|
475
|
+
setCurrentIndex();
|
|
426
476
|
}
|
|
427
477
|
});
|
|
428
478
|
|
|
@@ -445,12 +495,11 @@ const useReorderableListCore = ({
|
|
|
445
495
|
}
|
|
446
496
|
});
|
|
447
497
|
|
|
448
|
-
//
|
|
498
|
+
// container scroll handler
|
|
449
499
|
(0, _reactNativeReanimated.useAnimatedReaction)(() => scrollViewScrollOffsetY === null || scrollViewScrollOffsetY === void 0 ? void 0 : scrollViewScrollOffsetY.value, value => {
|
|
450
500
|
if (value && scrollViewScrollEnabled) {
|
|
451
501
|
// checking if the list is not scrollable instead of the scrolling state
|
|
452
|
-
// fixes a bug on iOS where the item is shifted after autoscrolling and
|
|
453
|
-
// moving await from autoscroll area
|
|
502
|
+
// fixes a bug on iOS where the item is shifted after autoscrolling and moving away from the area
|
|
454
503
|
if (!scrollViewScrollEnabled.value) {
|
|
455
504
|
scrollViewDragScrollTranslationY.value = value - scrollViewDragInitialScrollOffsetY.value;
|
|
456
505
|
}
|
|
@@ -475,10 +524,9 @@ const useReorderableListCore = ({
|
|
|
475
524
|
(0, _reactNativeReanimated.runOnJS)(setActiveIndex)(index);
|
|
476
525
|
}
|
|
477
526
|
dragInitialScrollOffsetY.value = flatListScrollOffsetY.value;
|
|
478
|
-
scrollViewDragInitialScrollOffsetY.value = scrollViewScrollOffsetY ? scrollViewScrollOffsetY.value
|
|
527
|
+
scrollViewDragInitialScrollOffsetY.value = (scrollViewScrollOffsetY === null || scrollViewScrollOffsetY === void 0 ? void 0 : scrollViewScrollOffsetY.value) || 0;
|
|
479
528
|
draggedHeight.value = itemHeight.value[index];
|
|
480
529
|
draggedIndex.value = index;
|
|
481
|
-
previousIndex.value = -1;
|
|
482
530
|
currentIndex.value = index;
|
|
483
531
|
state.value = _types.ReorderableListState.DRAGGED;
|
|
484
532
|
(0, _reactNativeReanimated.runOnJS)(setScrollEnabled)(false);
|
|
@@ -489,12 +537,25 @@ const useReorderableListCore = ({
|
|
|
489
537
|
index
|
|
490
538
|
});
|
|
491
539
|
}
|
|
492
|
-
}, [resetSharedValues, shouldUpdateActiveItem, dragInitialScrollOffsetY, scrollViewScrollOffsetY, scrollViewDragInitialScrollOffsetY, setScrollEnabled, currentIndex,
|
|
540
|
+
}, [resetSharedValues, shouldUpdateActiveItem, dragInitialScrollOffsetY, scrollViewScrollOffsetY, scrollViewDragInitialScrollOffsetY, setScrollEnabled, currentIndex, draggedHeight, draggedIndex, state, flatListScrollOffsetY, itemHeight, onDragStart, runDefaultDragAnimations]);
|
|
493
541
|
const handleFlatListLayout = (0, _react.useCallback)(e => {
|
|
494
|
-
nestedFlatListPositionY.value = e.nativeEvent.layout.y;
|
|
495
542
|
flatListHeightY.value = e.nativeEvent.layout.height;
|
|
543
|
+
|
|
544
|
+
// If nested in a scroll container.
|
|
545
|
+
if (scrollViewScrollOffsetY) {
|
|
546
|
+
// Timeout fixes a bug where measure returns height 0.
|
|
547
|
+
setTimeout(() => {
|
|
548
|
+
(0, _reactNativeReanimated.runOnUI)(() => {
|
|
549
|
+
const measurement = (0, _reactNativeReanimated.measure)(flatListRef);
|
|
550
|
+
if (!measurement) {
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
flatListPageY.value = measurement.pageY;
|
|
554
|
+
})();
|
|
555
|
+
}, 100);
|
|
556
|
+
}
|
|
496
557
|
onLayout === null || onLayout === void 0 || onLayout(e);
|
|
497
|
-
}, [
|
|
558
|
+
}, [flatListRef, flatListPageY, flatListHeightY, scrollViewScrollOffsetY, onLayout]);
|
|
498
559
|
const handleRef = value => {
|
|
499
560
|
flatListRef(value);
|
|
500
561
|
if (typeof ref === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_animationDefaults","_autoscrollConfig","_types","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","version","React","split","hasAutomaticBatching","length","parseInt","useReorderableListCore","ref","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","autoscrollActivationDelta","animationDuration","dragReorderThreshold","onReorder","onDragStart","onDragEnd","onLayout","onIndexChange","scrollViewContainerRef","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","initialScrollEnabled","initialScrollViewScrollEnabled","nestedScrollable","cellAnimations","shouldUpdateActiveItem","panActivateAfterLongPress","panEnabled","flatListRef","useAnimatedRef","activeIndex","setActiveIndex","useState","scrollEnabled","useSharedValue","gestureState","State","UNDETERMINED","currentY","currentTranslationY","flatListScrollOffsetY","flatListHeightY","nestedFlatListPositionY","dragScrollTranslationY","dragInitialScrollOffsetY","scrollViewDragScrollTranslationY","scrollViewDragInitialScrollOffsetY","draggedHeight","itemOffset","itemHeight","autoscrollTrigger","lastAutoscrollTrigger","previousY","dragY","previousDirection","previousIndex","currentIndex","draggedIndex","state","ReorderableListState","IDLE","dragEndHandlers","startY","duration","scaleDefault","opacityDefault","dragDirection","lastDragDirectionPivot","autoscrollDelta","useEffect","value","listContextValue","useMemo","transform","scale","opacity","setDragDirection","useCallback","direction","velocityY","absoluteY","Math","abs","panGestureHandler","Gesture","Pan","onBegin","y","translationY","onUpdate","DRAGGED","RELEASED","onEnd","onFinalize","panGestureHandlerWithOptions","activateAfterLongPress","enabled","gestureHandler","Simultaneous","Native","setScrollEnabled","_flatListRef$current","current","setNativeProps","_scrollViewContainerR","resetSharedValues","resetSharedValuesAfterAnimations","setTimeout","runOnUI","reorder","fromIndex","toIndex","updateState","from","to","unstable_batchedUpdates","getIndexFromY","relativeY","count","threshold","max","min","height","offset","index","setCurrentIndex","newIndex","newDirection","delta","itemDirection","index1","index2","newOffset1","newHeight1","newOffset2","newHeight2","runDefaultDragAnimations","type","scaleConfig","SCALE_ANIMATION_CONFIG_DEFAULT","withTiming","toValue","opacityConfig","OPACITY_ANIMATION_CONFIG_DEFAULT","useAnimatedReaction","ACTIVE","BEGAN","AUTOSCROLL","runOnJS","handlers","Array","isArray","forEach","fn","currentItemOffset","currentItemHeight","draggedItemOffset","draggedItemHeight","newTopPosition","easing","Easing","out","ease","calculateHiddenArea","top","bottom","calculateThresholdArea","hiddenArea","offsetTop","offsetBottom","visibleHeight","area","calculateThresholdAreaParent","shouldScrollParent","thresholdAreaParent","scrollDirection","thresholdArea","autoscrollIncrement","AUTOSCROLL_CONFIG","increment","scrollOffset","listRef","scrollTo","handleScroll","useAnimatedScrollHandler","contentOffset","withDelay","startDrag","handleFlatListLayout","nativeEvent","layout","handleRef","exports"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/useReorderableListCore.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,0BAAA,GAAAF,OAAA;AAMA,IAAAG,sBAAA,GAAAH,OAAA;AAeA,IAAAI,kBAAA,GAAAJ,OAAA;AAIA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAMqB,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAGrB,MAAMW,OAAO,GAAGC,cAAK,CAACD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC;AACxC,MAAMC,oBAAoB,GAAGH,OAAO,CAACI,MAAM,GACvCC,QAAQ,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAC9B,KAAK;AA6BF,MAAMM,sBAAsB,GAAGA,CAAI;EACxCC,GAAG;EACHC,mBAAmB;EACnBC,yBAAyB;EACzBC,oBAAoB;EACpBC,eAAe;EACfC,yBAAyB;EACzBC,iBAAiB;EACjBC,oBAAoB;EACpBC,SAAS;EACTC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,aAAa;EACbC,sBAAsB;EACtBC,iBAAiB;EACjBC,uBAAuB;EACvBC,uBAAuB;EACvBC,oBAAoB;EACpBC,8BAA8B;EAC9BC,gBAAgB;EAChBC,cAAc;EACdC,sBAAsB;EACtBC,yBAAyB;EACzBC;AAC6B,CAAC,KAAK;EACnC,MAAMC,WAAW,GAAG,IAAAC,qCAAc,EAAW,CAAC;EAC9C,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC,CAAC;EAClD,MAAMC,aAAa,GAAG,IAAAC,qCAAc,EAACb,oBAAoB,CAAC;EAC1D,MAAMc,YAAY,GAAG,IAAAD,qCAAc,EAAQE,gCAAK,CAACC,YAAY,CAAC;EAC9D,MAAMC,QAAQ,GAAG,IAAAJ,qCAAc,EAAC,CAAC,CAAC;EAClC,MAAMK,mBAAmB,GAAG,IAAAL,qCAAc,EAAC,CAAC,CAAC;EAC7C,MAAMM,qBAAqB,GAAG,IAAAN,qCAAc,EAAC,CAAC,CAAC;EAC/C,MAAMO,eAAe,GAAG,IAAAP,qCAAc,EAAC,CAAC,CAAC;EACzC,MAAMQ,uBAAuB,GAAG,IAAAR,qCAAc,EAAC,CAAC,CAAC;EACjD,MAAMS,sBAAsB,GAAG,IAAAT,qCAAc,EAAC,CAAC,CAAC;EAChD,MAAMU,wBAAwB,GAAG,IAAAV,qCAAc,EAAC,CAAC,CAAC;EAClD,MAAMW,gCAAgC,GAAG,IAAAX,qCAAc,EAAC,CAAC,CAAC;EAC1D,MAAMY,kCAAkC,GAAG,IAAAZ,qCAAc,EAAC,CAAC,CAAC;EAC5D,MAAMa,aAAa,GAAG,IAAAb,qCAAc,EAAC,CAAC,CAAC;EACvC,MAAMc,UAAU,GAAG,IAAAd,qCAAc,EAAW,EAAE,CAAC;EAC/C,MAAMe,UAAU,GAAG,IAAAf,qCAAc,EAAW,EAAE,CAAC;EAC/C,MAAMgB,iBAAiB,GAAG,IAAAhB,qCAAc,EAAC,CAAC,CAAC,CAAC;EAC5C,MAAMiB,qBAAqB,GAAG,IAAAjB,qCAAc,EAAC,CAAC,CAAC,CAAC;EAChD,MAAMkB,SAAS,GAAG,IAAAlB,qCAAc,EAAC,CAAC,CAAC;EACnC,MAAMmB,KAAK,GAAG,IAAAnB,qCAAc,EAAC,CAAC,CAAC;EAC/B,MAAMoB,iBAAiB,GAAG,IAAApB,qCAAc,EAAC,CAAC,CAAC;EAC3C,MAAMqB,aAAa,GAAG,IAAArB,qCAAc,EAAC,CAAC,CAAC,CAAC;EACxC,MAAMsB,YAAY,GAAG,IAAAtB,qCAAc,EAAC,CAAC,CAAC,CAAC;EACvC,MAAMuB,YAAY,GAAG,IAAAvB,qCAAc,EAAC,CAAC,CAAC,CAAC;EACvC,MAAMwB,KAAK,GAAG,IAAAxB,qCAAc,EAAuByB,2BAAoB,CAACC,IAAI,CAAC;EAC7E,MAAMC,eAAe,GAAG,IAAA3B,qCAAc,EAEpC,EAAE,CAAC;EACL,MAAM4B,MAAM,GAAG,IAAA5B,qCAAc,EAAC,CAAC,CAAC;EAChC,MAAM6B,QAAQ,GAAG,IAAA7B,qCAAc,EAACxB,iBAAiB,CAAC;EAClD,MAAMsD,YAAY,GAAG,IAAA9B,qCAAc,EAAC,CAAC,CAAC;EACtC,MAAM+B,cAAc,GAAG,IAAA/B,qCAAc,EAAC,CAAC,CAAC;EACxC,MAAMgC,aAAa,GAAG,IAAAhC,qCAAc,EAAC,CAAC,CAAC;EACvC,MAAMiC,sBAAsB,GAAG,IAAAjC,qCAAc,EAAgB,IAAI,CAAC;EAClE,MAAMkC,eAAe,GAAG,IAAAlC,qCAAc,EAACzB,yBAAyB,CAAC;EAEjE,IAAA4D,gBAAS,EAAC,MAAM;IACdN,QAAQ,CAACO,KAAK,GAAG5D,iBAAiB;IAClC0D,eAAe,CAACE,KAAK,GAAG7D,yBAAyB;EACnD,CAAC,EAAE,CAACsD,QAAQ,EAAErD,iBAAiB,EAAE0D,eAAe,EAAE3D,yBAAyB,CAAC,CAAC;EAE7E,MAAM8D,gBAAgB,GAAG,IAAAC,cAAO,EAC9B,OAAO;IACLzB,aAAa;IACbS,YAAY;IACZC,YAAY;IACZI,eAAe;IACf/B,WAAW;IACXN,cAAc,EAAE;MACd,GAAGA,cAAc;MACjBiD,SAAS,EACPjD,cAAc,IAAI,WAAW,IAAIA,cAAc,GAC3CA,cAAc,CAACiD,SAAS,GACxB,CAAC;QAACC,KAAK,EAAEV;MAAY,CAAC,CAAC;MAC7BW,OAAO,EACLnD,cAAc,IAAI,SAAS,IAAIA,cAAc,GACzCA,cAAc,CAACmD,OAAO,GACtBV;IACR;EACF,CAAC,CAAC,EACF,CACElB,aAAa,EACbS,YAAY,EACZC,YAAY,EACZI,eAAe,EACf/B,WAAW,EACXN,cAAc,EACdwC,YAAY,EACZC,cAAc,CAElB,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMW,gBAAgB,GAAG,IAAAC,kBAAW,EACjCnG,CAAoD,IAAK;IACxD,SAAS;;IAET,MAAMoG,SAAS,GAAGpG,CAAC,CAACqG,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAID,SAAS,KAAKZ,aAAa,CAACI,KAAK,EAAE;MACrC,IAAIH,sBAAsB,CAACG,KAAK,KAAK,IAAI,EAAE;QACzCH,sBAAsB,CAACG,KAAK,GAAG5F,CAAC,CAACsG,SAAS;MAC5C,CAAC,MAAM,IACLC,IAAI,CAACC,GAAG,CAACxG,CAAC,CAACsG,SAAS,GAAGb,sBAAsB,CAACG,KAAK,CAAC,IACpDF,eAAe,CAACE,KAAK,EACrB;QACAJ,aAAa,CAACI,KAAK,GAAGQ,SAAS;QAC/BX,sBAAsB,CAACG,KAAK,GAAG5F,CAAC,CAACsG,SAAS;MAC5C;IACF;EACF,CAAC,EACD,CAACd,aAAa,EAAEC,sBAAsB,EAAEC,eAAe,CACzD,CAAC;EAED,MAAMe,iBAAiB,GAAG,IAAAX,cAAO,EAC/B,MACEY,kCAAO,CAACC,GAAG,CAAC,CAAC,CACVC,OAAO,CAAC5G,CAAC,IAAI;IACZ;IACA,IAAIgF,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACC,IAAI,EAAE;MAC7CE,MAAM,CAACQ,KAAK,GAAG5F,CAAC,CAAC6G,CAAC;MAClBjD,QAAQ,CAACgC,KAAK,GAAG5F,CAAC,CAAC6G,CAAC;MACpBhD,mBAAmB,CAAC+B,KAAK,GAAG5F,CAAC,CAAC8G,YAAY;MAC1CnC,KAAK,CAACiB,KAAK,GAAG5F,CAAC,CAAC8G,YAAY;MAC5BrD,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAACgF,KAAK;IAC9B;EACF,CAAC,CAAC,CACD+B,QAAQ,CAAC/G,CAAC,IAAI;IACb,IAAIgF,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAAC+B,OAAO,EAAE;MAChDd,gBAAgB,CAAClG,CAAC,CAAC;IACrB;IAEA,IAAIgF,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACgC,QAAQ,EAAE;MACjDrD,QAAQ,CAACgC,KAAK,GAAGR,MAAM,CAACQ,KAAK,GAAG5F,CAAC,CAAC8G,YAAY;MAC9CjD,mBAAmB,CAAC+B,KAAK,GAAG5F,CAAC,CAAC8G,YAAY;MAC1CnC,KAAK,CAACiB,KAAK,GACT5F,CAAC,CAAC8G,YAAY,GACd7C,sBAAsB,CAAC2B,KAAK,GAC5BzB,gCAAgC,CAACyB,KAAK;MACxCnC,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAACgF,KAAK;IAC9B;EACF,CAAC,CAAC,CACDkC,KAAK,CAAClH,CAAC,IAAKyD,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAACgF,KAAM,CAAC,CAC1CmC,UAAU,CAACnH,CAAC,IAAKyD,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAACgF,KAAM,CAAC,EACpD,CACEA,KAAK,EACLI,MAAM,EACNxB,QAAQ,EACRC,mBAAmB,EACnBc,KAAK,EACLlB,YAAY,EACZyC,gBAAgB,EAChBjC,sBAAsB,EACtBE,gCAAgC,CAEpC,CAAC;EAED,MAAMiD,4BAA4B,GAAG,IAAAtB,cAAO,EAAC,MAAM;IACjD,IAAI,OAAO9C,yBAAyB,KAAK,QAAQ,EAAE;MACjDyD,iBAAiB,CAACY,sBAAsB,CAACrE,yBAAyB,CAAC;IACrE;IAEA,IAAI,CAACC,UAAU,EAAE;MACfwD,iBAAiB,CAACa,OAAO,CAACrE,UAAU,CAAC;IACvC;IAEA,OAAOwD,iBAAiB;EAC1B,CAAC,EAAE,CAACzD,yBAAyB,EAAEC,UAAU,EAAEwD,iBAAiB,CAAC,CAAC;EAE9D,MAAMc,cAAc,GAAG,IAAAzB,cAAO,EAC5B,MAAMY,kCAAO,CAACc,YAAY,CAACd,kCAAO,CAACe,MAAM,CAAC,CAAC,EAAEL,4BAA4B,CAAC,EAC1E,CAACA,4BAA4B,CAC/B,CAAC;EAED,MAAMM,gBAAgB,GAAG,IAAAvB,kBAAW,EACjCmB,OAAgB,IAAK;IACpB;IACA,IAAI3E,oBAAoB,EAAE;MAAA,IAAAgF,oBAAA;MACxBpE,aAAa,CAACqC,KAAK,GAAG0B,OAAO;MAC7B,CAAAK,oBAAA,GAAAzE,WAAW,CAAC0E,OAAO,cAAAD,oBAAA,eAAnBA,oBAAA,CAAqBE,cAAc,CAAC;QAACtE,aAAa,EAAE+D;MAAO,CAAC,CAAC;IAC/D;IAEA,IACE/E,sBAAsB,IACtBG,uBAAuB,IACvBE,8BAA8B,EAC9B;MAAA,IAAAkF,qBAAA;MACApF,uBAAuB,CAACkD,KAAK,GAAG0B,OAAO;MACvC,CAAAQ,qBAAA,GAAAvF,sBAAsB,CAACqF,OAAO,cAAAE,qBAAA,eAA9BA,qBAAA,CAAgCD,cAAc,CAAC;QAC7CtE,aAAa,EAAE+D;MACjB,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CACE3E,oBAAoB,EACpBO,WAAW,EACXK,aAAa,EACbX,8BAA8B,EAC9BL,sBAAsB,EACtBG,uBAAuB,CAE3B,CAAC;EAED,MAAMqF,iBAAiB,GAAG,IAAA5B,kBAAW,EAAC,MAAM;IAC1C,SAAS;;IAETnB,KAAK,CAACY,KAAK,GAAGX,2BAAoB,CAACC,IAAI;IACvCH,YAAY,CAACa,KAAK,GAAG,CAAC,CAAC;IACvBjB,KAAK,CAACiB,KAAK,GAAG,CAAC;IACf3B,sBAAsB,CAAC2B,KAAK,GAAG,CAAC;IAChCzB,gCAAgC,CAACyB,KAAK,GAAG,CAAC;IAC1CJ,aAAa,CAACI,KAAK,GAAG,CAAC;IACvBH,sBAAsB,CAACG,KAAK,GAAG,IAAI;EACrC,CAAC,EAAE,CACDZ,KAAK,EACLD,YAAY,EACZJ,KAAK,EACLV,sBAAsB,EACtBE,gCAAgC,EAChCqB,aAAa,EACbC,sBAAsB,CACvB,CAAC;EAEF,MAAMuC,gCAAgC,GAAG,IAAA7B,kBAAW,EAAC,MAAM;IACzD8B,UAAU,CAAC,IAAAC,8BAAO,EAACH,iBAAiB,CAAC,EAAE1C,QAAQ,CAACO,KAAK,CAAC;EACxD,CAAC,EAAE,CAACmC,iBAAiB,EAAE1C,QAAQ,CAAC,CAAC;EAEjC,MAAM8C,OAAO,GAAGA,CAACC,SAAiB,EAAEC,OAAe,KAAK;IACtD,IAAAH,8BAAO,EAACH,iBAAiB,CAAC,CAAC,CAAC;IAE5B,IAAIK,SAAS,KAAKC,OAAO,EAAE;MACzB,MAAMC,WAAW,GAAGA,CAAA,KAAM;QACxBpG,SAAS,CAAC;UAACqG,IAAI,EAAEH,SAAS;UAAEI,EAAE,EAAEH;QAAO,CAAC,CAAC;MAC3C,CAAC;MAED,IAAI,CAAC/G,oBAAoB,EAAE;QACzB,IAAAmH,oCAAuB,EAACH,WAAW,CAAC;MACtC,CAAC,MAAM;QACLA,WAAW,CAAC,CAAC;MACf;IACF;EACF,CAAC;EAED,MAAMI,aAAa,GAAG,IAAAvC,kBAAW,EAC9BU,CAAS,IAAK;IACb,SAAS;;IAET,MAAM8B,SAAS,GAAG7E,qBAAqB,CAAC8B,KAAK,GAAGiB,CAAC;IACjD,MAAM+B,KAAK,GAAGtE,UAAU,CAACsB,KAAK,CAACrE,MAAM;IAErC,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2H,KAAK,EAAE3H,CAAC,EAAE,EAAE;MAC9B,IAAI6D,YAAY,CAACc,KAAK,KAAK3E,CAAC,EAAE;QAC5B;MACF;MAEA,MAAMmF,SAAS,GAAGnF,CAAC,GAAG6D,YAAY,CAACc,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;MACjD,MAAMiD,SAAS,GAAGtC,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACwC,GAAG,CAAC,CAAC,EAAE9G,oBAAoB,CAAC,CAAC;MAChE,MAAM+G,MAAM,GAAGzE,UAAU,CAACqB,KAAK,CAAC3E,CAAC,CAAC;MAClC,MAAMgI,MAAM,GAAG3E,UAAU,CAACsB,KAAK,CAAC3E,CAAC,CAAC,GAAG+H,MAAM,GAAGH,SAAS,GAAGzC,SAAS;MAEnE,IACGnF,CAAC,KAAK,CAAC,IAAI0H,SAAS,IAAIM,MAAM,IAC9BhI,CAAC,KAAK2H,KAAK,GAAG,CAAC,IAAID,SAAS,IAAIM,MAAM,GAAGD,MAAO,IAChDL,SAAS,IAAIM,MAAM,IAAIN,SAAS,IAAIM,MAAM,GAAGD,MAAO,EACrD;QACA,OAAO;UAACE,KAAK,EAAEjI,CAAC;UAAEmF;QAAS,CAAC;MAC9B;IACF;IAEA,OAAO;MACL8C,KAAK,EAAEpE,YAAY,CAACc,KAAK;MACzBQ,SAAS,EAAExB,iBAAiB,CAACgB;IAC/B,CAAC;EACH,CAAC,EACD,CACE3D,oBAAoB,EACpB6C,YAAY,EACZhB,qBAAqB,EACrBc,iBAAiB,EACjBN,UAAU,EACVC,UAAU,CAEd,CAAC;EAED,MAAM4E,eAAe,GAAG,IAAAhD,kBAAW,EAChCU,CAAS,IAAK;IACb,SAAS;;IAET,MAAM;MAACqC,KAAK,EAAEE,QAAQ;MAAEhD,SAAS,EAAEiD;IAAY,CAAC,GAAGX,aAAa,CAAC7B,CAAC,CAAC;IACnE,MAAMyC,KAAK,GAAG/C,IAAI,CAACC,GAAG,CAAC9B,SAAS,CAACkB,KAAK,GAAGiB,CAAC,CAAC;IAE3C,IACE/B,YAAY,CAACc,KAAK,KAAKwD,QAAQ;IAC/B;IACCvE,aAAa,CAACe,KAAK,KAAKwD,QAAQ,IAC9BxE,iBAAiB,CAACgB,KAAK,KAAKyD,YAAY,IAAIC,KAAK,IAAI,CAAE,CAAC,EAC3D;MACA,MAAMC,aAAa,GAAGH,QAAQ,GAAGtE,YAAY,CAACc,KAAK;MACnD,MAAM4D,MAAM,GAAGD,aAAa,GAAGzE,YAAY,CAACc,KAAK,GAAGwD,QAAQ;MAC5D,MAAMK,MAAM,GAAGF,aAAa,GAAGH,QAAQ,GAAGtE,YAAY,CAACc,KAAK;MAE5D,MAAM8D,UAAU,GAAGpF,UAAU,CAACsB,KAAK,CAAC4D,MAAM,CAAC;MAC3C,MAAMG,UAAU,GAAGpF,UAAU,CAACqB,KAAK,CAAC6D,MAAM,CAAC;MAC3C,MAAMG,UAAU,GACdtF,UAAU,CAACsB,KAAK,CAAC6D,MAAM,CAAC,IACvBlF,UAAU,CAACqB,KAAK,CAAC6D,MAAM,CAAC,GAAGlF,UAAU,CAACqB,KAAK,CAAC4D,MAAM,CAAC,CAAC;MACvD,MAAMK,UAAU,GAAGtF,UAAU,CAACqB,KAAK,CAAC4D,MAAM,CAAC;MAE3ClF,UAAU,CAACsB,KAAK,CAAC4D,MAAM,CAAC,GAAGE,UAAU;MACrCnF,UAAU,CAACqB,KAAK,CAAC4D,MAAM,CAAC,GAAGG,UAAU;MACrCrF,UAAU,CAACsB,KAAK,CAAC6D,MAAM,CAAC,GAAGG,UAAU;MACrCrF,UAAU,CAACqB,KAAK,CAAC6D,MAAM,CAAC,GAAGI,UAAU;MAErCnF,SAAS,CAACkB,KAAK,GAAGiB,CAAC;MACnBjC,iBAAiB,CAACgB,KAAK,GAAGyD,YAAY;MACtCxE,aAAa,CAACe,KAAK,GAAGd,YAAY,CAACc,KAAK;MACxCd,YAAY,CAACc,KAAK,GAAGwD,QAAQ;MAE7B9G,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG;QAAC4G,KAAK,EAAEE;MAAQ,CAAC,CAAC;IACpC;EACF,CAAC,EACD,CACEtE,YAAY,EACZD,aAAa,EACbD,iBAAiB,EACjBF,SAAS,EACTJ,UAAU,EACVC,UAAU,EACVmE,aAAa,EACbpG,aAAa,CAEjB,CAAC;EAED,MAAMwH,wBAAwB,GAAG,IAAA3D,kBAAW,EACzC4D,IAAqB,IAAK;IACzB,SAAS;;IAET;IACA,IAAI,EAAEjH,cAAc,IAAI,cAAc,IAAIA,cAAc,CAAC,EAAE;MACzD,MAAMkH,WAAW,GAAGC,iDAA8B,CAACF,IAAI,CAAC;MACxDzE,YAAY,CAACM,KAAK,GAAG,IAAAsE,iCAAU,EAACF,WAAW,CAACG,OAAO,EAAEH,WAAW,CAAC;IACnE;;IAEA;IACA,IAAI,EAAElH,cAAc,IAAI,SAAS,IAAIA,cAAc,CAAC,EAAE;MACpD,MAAMsH,aAAa,GAAGC,mDAAgC,CAACN,IAAI,CAAC;MAC5DxE,cAAc,CAACK,KAAK,GAAG,IAAAsE,iCAAU,EAACE,aAAa,CAACD,OAAO,EAAEC,aAAa,CAAC;IACzE;EACF,CAAC,EACD,CAACtH,cAAc,EAAEwC,YAAY,EAAEC,cAAc,CAC/C,CAAC;EAED,IAAA+E,0CAAmB,EACjB,MAAM7G,YAAY,CAACmC,KAAK,EACxB,MAAM;IACJ,IACEnC,YAAY,CAACmC,KAAK,KAAKlC,gCAAK,CAAC6G,MAAM,IACnC9G,YAAY,CAACmC,KAAK,KAAKlC,gCAAK,CAAC8G,KAAK,KACjCxF,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAAC+B,OAAO,IAC3ChC,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,CAAC,EAClD;MACAzF,KAAK,CAACY,KAAK,GAAGX,2BAAoB,CAACgC,QAAQ;;MAE3C;MACA,IAAAyD,8BAAO,EAAChD,gBAAgB,CAAC,CAAC,IAAI,CAAC;MAE/B,IAAI3E,sBAAsB,EAAE;QAC1B,IAAA2H,8BAAO,EAACrH,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;MAC7B;;MAEA;MACA,IAAIrD,CAAC,GAAG;QAACuI,IAAI,EAAExD,YAAY,CAACa,KAAK;QAAE4C,EAAE,EAAE1D,YAAY,CAACc;MAAK,CAAC;MAC1DxD,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGpC,CAAC,CAAC;MAEd,MAAM2K,QAAQ,GAAGxF,eAAe,CAACS,KAAK,CAACb,YAAY,CAACa,KAAK,CAAC;MAC1D,IAAIgF,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;QAC3BA,QAAQ,CAACG,OAAO,CAACC,EAAE,IAAIA,EAAE,CAAC/K,CAAC,CAACuI,IAAI,EAAEvI,CAAC,CAACwI,EAAE,CAAC,CAAC;MAC1C;;MAEA;MACA,MAAMwC,iBAAiB,GAAG1G,UAAU,CAACsB,KAAK,CAACb,YAAY,CAACa,KAAK,CAAC;MAC9D,MAAMqF,iBAAiB,GAAG1G,UAAU,CAACqB,KAAK,CAACb,YAAY,CAACa,KAAK,CAAC;MAC9D,MAAMsF,iBAAiB,GAAG5G,UAAU,CAACsB,KAAK,CAACd,YAAY,CAACc,KAAK,CAAC;MAC9D,MAAMuF,iBAAiB,GAAG5G,UAAU,CAACqB,KAAK,CAACd,YAAY,CAACc,KAAK,CAAC;MAE9D,MAAMwF,cAAc,GAClBtG,YAAY,CAACc,KAAK,GAAGb,YAAY,CAACa,KAAK,GACnCsF,iBAAiB,GAAGF,iBAAiB,GACrCE,iBAAiB,GACjBF,iBAAiB,IAChBG,iBAAiB,GAAGF,iBAAiB,CAAC;MAE7CnB,wBAAwB,CAAC,KAAK,CAAC;MAE/B,IAAInF,KAAK,CAACiB,KAAK,KAAKwF,cAAc,EAAE;QAClC;QACAzG,KAAK,CAACiB,KAAK,GAAG,IAAAsE,iCAAU,EACtBkB,cAAc,EACd;UACE/F,QAAQ,EAAEA,QAAQ,CAACO,KAAK;UACxByF,MAAM,EAAEC,6BAAM,CAACC,GAAG,CAACD,6BAAM,CAACE,IAAI;QAChC,CAAC,EACD,MAAM;UACJ,IAAAd,8BAAO,EAACvC,OAAO,CAAC,CAACpD,YAAY,CAACa,KAAK,EAAEd,YAAY,CAACc,KAAK,CAAC;QAC1D,CACF,CAAC;MACH,CAAC,MAAM;QACL;QACA;QACA;QACA,IAAA8E,8BAAO,EAAC1C,gCAAgC,CAAC,CAAC,CAAC;MAC7C;IACF;EACF,CACF,CAAC;EAED,MAAMyD,mBAAmB,GAAG,IAAAtF,kBAAW,EAAC,MAAM;IAC5C,SAAS;;IACT,IAAI,CAAC1D,uBAAuB,IAAI,CAACD,iBAAiB,EAAE;MAClD,OAAO;QAACkJ,GAAG,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAC,CAAC;IAC5B;;IAEA;IACA,MAAMD,GAAG,GAAGnF,IAAI,CAACuC,GAAG,CAClB,CAAC,EACDrG,uBAAuB,CAACmD,KAAK,GAAG5B,uBAAuB,CAAC4B,KAC1D,CAAC;IACD,MAAM+F,MAAM,GAAGpF,IAAI,CAACuC,GAAG,CACrB,CAAC,EACD9E,uBAAuB,CAAC4B,KAAK,GAC3B7B,eAAe,CAAC6B,KAAK,IACpBnD,uBAAuB,CAACmD,KAAK,GAAGpD,iBAAiB,CAACoD,KAAK,CAC5D,CAAC;IAED,OAAO;MAAC8F,GAAG;MAAEC;IAAM,CAAC;EACtB,CAAC,EAAE,CACDlJ,uBAAuB,EACvBD,iBAAiB,EACjBwB,uBAAuB,EACvBD,eAAe,CAChB,CAAC;EAEF,MAAM6H,sBAAsB,GAAG,IAAAzF,kBAAW,EACvC0F,UAAyC,IAAK;IAC7C,SAAS;;IACT,MAAMC,SAAS,GAAGvF,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAE,CAAAlH,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAE8J,GAAG,KAAI,CAAC,CAAC;IAClE,MAAMK,YAAY,GAAGxF,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAE,CAAAlH,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAE+J,MAAM,KAAI,CAAC,CAAC;IACxE,MAAM9C,SAAS,GAAGtC,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACwC,GAAG,CAACpH,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACjE,MAAMqK,aAAa,GACjBjI,eAAe,CAAC6B,KAAK,IACpBiG,UAAU,CAACH,GAAG,GAAGG,UAAU,CAACF,MAAM,CAAC,IACnCG,SAAS,GAAGC,YAAY,CAAC;IAE5B,MAAME,IAAI,GAAGD,aAAa,GAAGnD,SAAS;IACtC,MAAM6C,GAAG,GAAGO,IAAI,GAAGH,SAAS;IAC5B,MAAMH,MAAM,GAAG5H,eAAe,CAAC6B,KAAK,GAAGqG,IAAI,GAAGF,YAAY;IAE1D,OAAO;MAACL,GAAG;MAAEC;IAAM,CAAC;EACtB,CAAC,EACD,CAAChK,mBAAmB,EAAEC,yBAAyB,EAAEmC,eAAe,CAClE,CAAC;EAED,MAAMmI,4BAA4B,GAAG,IAAA/F,kBAAW,EAC7C0F,UAAyC,IAAK;IAC7C,SAAS;;IACT,MAAMC,SAAS,GAAGvF,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAE,CAAAlH,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAE8J,GAAG,KAAI,CAAC,CAAC;IAClE,MAAMK,YAAY,GAAGxF,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAE,CAAAlH,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAE+J,MAAM,KAAI,CAAC,CAAC;IACxE,MAAM9C,SAAS,GAAGtC,IAAI,CAACuC,GAAG,CAAC,CAAC,EAAEvC,IAAI,CAACwC,GAAG,CAACpH,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAEjE,MAAMsK,IAAI,GAAGlI,eAAe,CAAC6B,KAAK,GAAGiD,SAAS;IAC9C,MAAM6C,GAAG,GAAGO,IAAI,GAAGH,SAAS;IAC5B,MAAMH,MAAM,GAAG5H,eAAe,CAAC6B,KAAK,GAAGqG,IAAI,GAAGF,YAAY;;IAE1D;IACA;IACA,OAAO;MACLL,GAAG,EAAEG,UAAU,CAACH,GAAG,GAAG,GAAG,GAAGA,GAAG,GAAGG,UAAU,CAACH,GAAG,GAAG,CAAC;MACpDC,MAAM,EAAEE,UAAU,CAACF,MAAM,GAAG,GAAG,GAAGA,MAAM,GAAGE,UAAU,CAACF,MAAM,GAAG;IACjE,CAAC;EACH,CAAC,EACD,CAAChK,mBAAmB,EAAEC,yBAAyB,EAAEmC,eAAe,CAClE,CAAC;EAED,MAAMoI,kBAAkB,GAAG,IAAAhG,kBAAW,EACnCU,CAAS,IAAK;IACb,SAAS;;IACT,MAAMgF,UAAU,GAAGJ,mBAAmB,CAAC,CAAC;IACxC,MAAMW,mBAAmB,GAAGF,4BAA4B,CAACL,UAAU,CAAC;;IAEpE;IACA,OACGA,UAAU,CAACH,GAAG,GAAG,GAAG,IAAI7E,CAAC,IAAIuF,mBAAmB,CAACV,GAAG,IACpDG,UAAU,CAACF,MAAM,GAAG,GAAG,IAAI9E,CAAC,IAAIuF,mBAAmB,CAACT,MAAO;EAEhE,CAAC,EACD,CAACF,mBAAmB,EAAES,4BAA4B,CACpD,CAAC;EAED,MAAMG,eAAe,GAAG,IAAAlG,kBAAW,EAChCU,CAAS,IAAK;IACb,SAAS;;IACT,MAAMgF,UAAU,GAAGJ,mBAAmB,CAAC,CAAC;IAExC,IAAIU,kBAAkB,CAACtF,CAAC,CAAC,EAAE;MACzB,MAAMuF,mBAAmB,GAAGF,4BAA4B,CAACL,UAAU,CAAC;MACpE,IAAIhF,CAAC,IAAIuF,mBAAmB,CAACV,GAAG,EAAE;QAChC,OAAO,CAAC,CAAC;MACX;MAEA,IAAI7E,CAAC,IAAIuF,mBAAmB,CAACT,MAAM,EAAE;QACnC,OAAO,CAAC;MACV;MAEA,OAAO,CAAC;IACV,CAAC,MAAM,IAAI9I,gBAAgB,EAAE;MAC3B,MAAMyJ,aAAa,GAAGV,sBAAsB,CAACC,UAAU,CAAC;MACxD,IAAIhF,CAAC,IAAIyF,aAAa,CAACZ,GAAG,EAAE;QAC1B,OAAO,CAAC,CAAC;MACX;MAEA,IAAI7E,CAAC,IAAIyF,aAAa,CAACX,MAAM,EAAE;QAC7B,OAAO,CAAC;MACV;IACF;IAEA,OAAO,CAAC;EACV,CAAC,EACD,CACE9I,gBAAgB,EAChBsJ,kBAAkB,EAClBV,mBAAmB,EACnBG,sBAAsB,EACtBM,4BAA4B,CAEhC,CAAC;EAED,IAAA5B,0CAAmB,EACjB,MAAM1G,QAAQ,CAACgC,KAAK,GAAGzB,gCAAgC,CAACyB,KAAK,EAC7DiB,CAAC,IAAI;IACH,IACE7B,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAAC+B,OAAO,IAC5ChC,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,EAC/C;MACAtB,eAAe,CAACtC,CAAC,CAAC;;MAElB;MACA;MACA;MACA;MACA,IAAIrB,aAAa,CAACI,KAAK,KAAKyG,eAAe,CAACxF,CAAC,CAAC,EAAE;QAC9C;QACA,IAAI7B,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,EAAE;UACnDzF,KAAK,CAACY,KAAK,GAAGX,2BAAoB,CAACwF,UAAU;UAC7ChG,qBAAqB,CAACmB,KAAK,GAAGpB,iBAAiB,CAACoB,KAAK;UACrDpB,iBAAiB,CAACoB,KAAK,IAAI,CAAC,CAAC;QAC/B;MACF,CAAC,MAAM,IAAIZ,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,EAAE;QAC1DzF,KAAK,CAACY,KAAK,GAAGX,2BAAoB,CAAC+B,OAAO;MAC5C;IACF;EACF,CACF,CAAC;EAED,IAAAsD,0CAAmB,EACjB,MAAM9F,iBAAiB,CAACoB,KAAK,EAC7B,MAAM;IACJ,IACEpB,iBAAiB,CAACoB,KAAK,KAAKnB,qBAAqB,CAACmB,KAAK,IACvDZ,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,EAC/C;MACA,IAAI5D,CAAC,GAAGjD,QAAQ,CAACgC,KAAK,GAAGzB,gCAAgC,CAACyB,KAAK;MAC/D,MAAM2G,mBAAmB,GACvBF,eAAe,CAACxF,CAAC,CAAC,GAClB2F,mCAAiB,CAACC,SAAS,GAC3B5K,oBAAoB;MAEtB,IAAI0K,mBAAmB,KAAK,CAAC,EAAE;QAC7B,IAAIG,YAAY,GAAG5I,qBAAqB,CAAC8B,KAAK;QAC9C,IAAI+G,OAAO,GACTzJ,WAA0D;QAE5D,IAAIiJ,kBAAkB,CAACtF,CAAC,CAAC,IAAIpE,uBAAuB,EAAE;UACpDiK,YAAY,GAAGjK,uBAAuB,CAACmD,KAAK;UAC5C+G,OAAO,GACLpK,sBAAqE;QACzE;QAEA,IAAAqK,+BAAQ,EAACD,OAAO,EAAE,CAAC,EAAED,YAAY,GAAGH,mBAAmB,EAAE,IAAI,CAAC;MAChE;;MAEA;MACA;MACApD,eAAe,CAACtC,CAAC,CAAC;IACpB;EACF,CACF,CAAC;;EAED;EACA,MAAMgG,YAAY,GAAG,IAAAC,+CAAwB,EAAC9M,CAAC,IAAI;IACjD8D,qBAAqB,CAAC8B,KAAK,GAAG5F,CAAC,CAAC+M,aAAa,CAAClG,CAAC;;IAE/C;IACA;IACA;IACA,IAAI,CAACtD,aAAa,CAACqC,KAAK,EAAE;MACxB3B,sBAAsB,CAAC2B,KAAK,GAC1B9B,qBAAqB,CAAC8B,KAAK,GAAG1B,wBAAwB,CAAC0B,KAAK;IAChE;IAEA,IAAIZ,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,EAAE;MACnD9F,KAAK,CAACiB,KAAK,GACT/B,mBAAmB,CAAC+B,KAAK,GACzB3B,sBAAsB,CAAC2B,KAAK,GAC5BzB,gCAAgC,CAACyB,KAAK;MAExCnB,qBAAqB,CAACmB,KAAK,GAAGpB,iBAAiB,CAACoB,KAAK;MACrDpB,iBAAiB,CAACoB,KAAK,GAAG,IAAAoH,gCAAS,EACjClL,eAAe,EACf,IAAAoI,iCAAU,EAAC1F,iBAAiB,CAACoB,KAAK,GAAG,CAAC,CAAC,EAAE;QAACP,QAAQ,EAAE;MAAC,CAAC,CACxD,CAAC;IACH;EACF,CAAC,CAAC;;EAEF;EACA,IAAAiF,0CAAmB,EACjB,MAAM7H,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEmD,KAAK,EACpCA,KAAK,IAAI;IACP,IAAIA,KAAK,IAAIlD,uBAAuB,EAAE;MACpC;MACA;MACA;MACA,IAAI,CAACA,uBAAuB,CAACkD,KAAK,EAAE;QAClCzB,gCAAgC,CAACyB,KAAK,GACpCA,KAAK,GAAGxB,kCAAkC,CAACwB,KAAK;MACpD;MAEA,IAAIZ,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACwF,UAAU,EAAE;QACnD9F,KAAK,CAACiB,KAAK,GACT/B,mBAAmB,CAAC+B,KAAK,GAAGzB,gCAAgC,CAACyB,KAAK;QAEpEnB,qBAAqB,CAACmB,KAAK,GAAGpB,iBAAiB,CAACoB,KAAK;QACrDpB,iBAAiB,CAACoB,KAAK,GAAG,IAAAoH,gCAAS,EACjClL,eAAe,EACf,IAAAoI,iCAAU,EAAC1F,iBAAiB,CAACoB,KAAK,GAAG,CAAC,CAAC,EAAE;UAACP,QAAQ,EAAE;QAAC,CAAC,CACxD,CAAC;MACH;IACF;EACF,CACF,CAAC;EAED,MAAM4H,SAAS,GAAG,IAAA9G,kBAAW,EAC1B+C,KAAa,IAAK;IACjB,SAAS;;IAET;IACA,IAAIlE,KAAK,CAACY,KAAK,KAAKX,2BAAoB,CAACC,IAAI,EAAE;MAC7C;MACA;MACA6C,iBAAiB,CAAC,CAAC;MAEnB,IAAIhF,sBAAsB,EAAE;QAC1B,IAAA2H,8BAAO,EAACrH,cAAc,CAAC,CAAC6F,KAAK,CAAC;MAChC;MAEAhF,wBAAwB,CAAC0B,KAAK,GAAG9B,qBAAqB,CAAC8B,KAAK;MAC5DxB,kCAAkC,CAACwB,KAAK,GAAGnD,uBAAuB,GAC9DA,uBAAuB,CAACmD,KAAK,GAC7B,CAAC;MAELvB,aAAa,CAACuB,KAAK,GAAGrB,UAAU,CAACqB,KAAK,CAACsD,KAAK,CAAC;MAC7CnE,YAAY,CAACa,KAAK,GAAGsD,KAAK;MAC1BrE,aAAa,CAACe,KAAK,GAAG,CAAC,CAAC;MACxBd,YAAY,CAACc,KAAK,GAAGsD,KAAK;MAC1BlE,KAAK,CAACY,KAAK,GAAGX,2BAAoB,CAAC+B,OAAO;MAE1C,IAAA0D,8BAAO,EAAChD,gBAAgB,CAAC,CAAC,KAAK,CAAC;;MAEhC;MACAoC,wBAAwB,CAAC,OAAO,CAAC;MACjC3H,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG;QAAC+G;MAAK,CAAC,CAAC;IACxB;EACF,CAAC,EACD,CACEnB,iBAAiB,EACjBhF,sBAAsB,EACtBmB,wBAAwB,EACxBzB,uBAAuB,EACvB2B,kCAAkC,EAClCsD,gBAAgB,EAChB5C,YAAY,EACZD,aAAa,EACbR,aAAa,EACbU,YAAY,EACZC,KAAK,EACLlB,qBAAqB,EACrBS,UAAU,EACVpC,WAAW,EACX2H,wBAAwB,CAE5B,CAAC;EAED,MAAMoD,oBAAoB,GAAG,IAAA/G,kBAAW,EACrCnG,CAAoB,IAAK;IACxBgE,uBAAuB,CAAC4B,KAAK,GAAG5F,CAAC,CAACmN,WAAW,CAACC,MAAM,CAACvG,CAAC;IACtD9C,eAAe,CAAC6B,KAAK,GAAG5F,CAAC,CAACmN,WAAW,CAACC,MAAM,CAACpE,MAAM;IAEnD3G,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGrC,CAAC,CAAC;EACf,CAAC,EACD,CAACgE,uBAAuB,EAAED,eAAe,EAAE1B,QAAQ,CACrD,CAAC;EAED,MAAMgL,SAAS,GAAIzH,KAAkB,IAAK;IACxC1C,WAAW,CAAC0C,KAAK,CAAC;IAElB,IAAI,OAAOlE,GAAG,KAAK,UAAU,EAAE;MAC7BA,GAAG,CAACkE,KAAK,CAAC;IACZ,CAAC,MAAM,IAAIlE,GAAG,EAAE;MACdA,GAAG,CAACkG,OAAO,GAAGhC,KAAK;IACrB;EACF,CAAC;EAED,OAAO;IACL2B,cAAc;IACdsF,YAAY;IACZK,oBAAoB;IACpBG,SAAS;IACTJ,SAAS;IACTpH,gBAAgB;IAChBvB,UAAU;IACVC,UAAU;IACVQ,YAAY;IACZJ,KAAK;IACLU;EACF,CAAC;AACH,CAAC;AAACiI,OAAA,CAAA7L,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_animationDefaults","_autoscrollConfig","_types","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","version","React","split","hasAutomaticBatching","length","parseInt","useReorderableListCore","ref","autoscrollThreshold","autoscrollThresholdOffset","autoscrollSpeedScale","autoscrollDelay","autoscrollActivationDelta","animationDuration","onReorder","onDragStart","onDragEnd","onLayout","onIndexChange","scrollViewContainerRef","scrollViewPageY","scrollViewHeightY","scrollViewScrollOffsetY","scrollViewScrollEnabled","scrollable","initialScrollEnabled","initialScrollViewScrollEnabled","cellAnimations","shouldUpdateActiveItem","panActivateAfterLongPress","panEnabled","flatListRef","useAnimatedRef","activeIndex","setActiveIndex","useState","scrollEnabled","useSharedValue","gestureState","State","UNDETERMINED","currentY","currentTranslationY","currentItemDragCenterY","startItemDragCenterY","flatListScrollOffsetY","flatListHeightY","flatListPageY","dragScrollTranslationY","dragInitialScrollOffsetY","scrollViewDragScrollTranslationY","scrollViewDragInitialScrollOffsetY","draggedHeight","itemOffset","itemHeight","autoscrollTrigger","lastAutoscrollTrigger","dragY","currentIndex","draggedIndex","state","ReorderableListState","IDLE","dragEndHandlers","startY","duration","scaleDefault","opacityDefault","dragDirection","lastDragDirectionPivot","autoscrollDelta","nestedFlatListPositionY","useDerivedValue","value","useEffect","listContextValue","useMemo","transform","scale","opacity","setDragDirection","useCallback","direction","velocityY","absoluteY","Math","abs","setCurrentItemDragCenterY","itemCenter","itemY","translationY","panGestureHandler","Gesture","Pan","onBegin","y","onUpdate","DRAGGED","RELEASED","onEnd","onFinalize","panGestureHandlerWithOptions","activateAfterLongPress","enabled","gestureHandler","Simultaneous","Native","setScrollEnabled","_flatListRef$current","current","setNativeProps","_scrollViewContainerR","resetSharedValues","resetSharedValuesAfterAnimations","setTimeout","runOnUI","reorder","fromIndex","toIndex","updateState","from","to","unstable_batchedUpdates","recomputeLayout","itemDirection","index1","index2","newOffset1","newHeight1","newOffset2","newHeight2","computeCurrentIndex","relativeDragCenterY","currentOffset","currentHeight","currentCenter","max","possibleIndex","min","possibleOffset","possibleCenter","distanceFromCurrent","distanceFromPossible","setCurrentIndex","newIndex","index","runDefaultDragAnimations","type","scaleConfig","SCALE_ANIMATION_CONFIG_DEFAULT","withTiming","toValue","opacityConfig","OPACITY_ANIMATION_CONFIG_DEFAULT","useAnimatedReaction","ACTIVE","BEGAN","AUTOSCROLL","runOnJS","handlers","Array","isArray","forEach","fn","currentItemOffset","currentItemHeight","draggedItemOffset","draggedItemHeight","newTopPosition","easing","Easing","out","ease","computeHiddenArea","top","bottom","computeThresholdArea","hiddenArea","offsetTop","offsetBottom","threshold","visibleHeight","area","computeContainerThresholdArea","Infinity","shouldScrollContainer","containerThresholdArea","nestedListHiddenArea","getRelativeContainerY","getRelativeListY","scrollDirection","relativeContainerY","relativeListY","thresholdArea","autoscrollIncrement","AUTOSCROLL_CONFIG","increment","scrollOffset","listRef","scrollTo","handleScroll","useAnimatedScrollHandler","contentOffset","withDelay","startDrag","handleFlatListLayout","nativeEvent","layout","height","measurement","measure","pageY","handleRef","exports"],"sourceRoot":"../../../../src","sources":["components/ReorderableListCore/useReorderableListCore.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,0BAAA,GAAAF,OAAA;AAMA,IAAAG,sBAAA,GAAAH,OAAA;AAiBA,IAAAI,kBAAA,GAAAJ,OAAA;AAIA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAOqB,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAErB,MAAMW,OAAO,GAAGC,cAAK,CAACD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC;AACxC,MAAMC,oBAAoB,GAAGH,OAAO,CAACI,MAAM,GACvCC,QAAQ,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAC9B,KAAK;AA6BF,MAAMM,sBAAsB,GAAGA,CAAI;EACxCC,GAAG;EACHC,mBAAmB;EACnBC,yBAAyB;EACzBC,oBAAoB;EACpBC,eAAe;EACfC,yBAAyB;EACzBC,iBAAiB;EACjBC,SAAS;EACTC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,aAAa;EACbC,sBAAsB;EACtBC,eAAe;EACfC,iBAAiB;EACjBC,uBAAuB;EACvBC,uBAAuB;EACvBC,UAAU;EACVC,oBAAoB;EACpBC,8BAA8B;EAC9BC,cAAc;EACdC,sBAAsB;EACtBC,yBAAyB;EACzBC;AAC6B,CAAC,KAAK;EACnC,MAAMC,WAAW,GAAG,IAAAC,qCAAc,EAAW,CAAC;EAC9C,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC,CAAC;EAClD,MAAMC,aAAa,GAAG,IAAAC,qCAAc,EAACZ,oBAAoB,CAAC;EAC1D,MAAMa,YAAY,GAAG,IAAAD,qCAAc,EAAQE,gCAAK,CAACC,YAAY,CAAC;EAC9D,MAAMC,QAAQ,GAAG,IAAAJ,qCAAc,EAAC,CAAC,CAAC;EAClC,MAAMK,mBAAmB,GAAG,IAAAL,qCAAc,EAAC,CAAC,CAAC;EAC7C,MAAMM,sBAAsB,GAAG,IAAAN,qCAAc,EAAgB,IAAI,CAAC;EAClE,MAAMO,oBAAoB,GAAG,IAAAP,qCAAc,EAAS,CAAC,CAAC;EACtD,MAAMQ,qBAAqB,GAAG,IAAAR,qCAAc,EAAC,CAAC,CAAC;EAC/C,MAAMS,eAAe,GAAG,IAAAT,qCAAc,EAAC,CAAC,CAAC;EACzC,MAAMU,aAAa,GAAG,IAAAV,qCAAc,EAAC,CAAC,CAAC;EACvC;EACA,MAAMW,sBAAsB,GAAG,IAAAX,qCAAc,EAAC,CAAC,CAAC;EAChD;EACA,MAAMY,wBAAwB,GAAG,IAAAZ,qCAAc,EAAC,CAAC,CAAC;EAClD;EACA,MAAMa,gCAAgC,GAAG,IAAAb,qCAAc,EAAC,CAAC,CAAC;EAC1D;EACA,MAAMc,kCAAkC,GAAG,IAAAd,qCAAc,EAAC,CAAC,CAAC;EAC5D,MAAMe,aAAa,GAAG,IAAAf,qCAAc,EAAC,CAAC,CAAC;EACvC,MAAMgB,UAAU,GAAG,IAAAhB,qCAAc,EAAW,EAAE,CAAC;EAC/C,MAAMiB,UAAU,GAAG,IAAAjB,qCAAc,EAAW,EAAE,CAAC;EAC/C,MAAMkB,iBAAiB,GAAG,IAAAlB,qCAAc,EAAC,CAAC,CAAC,CAAC;EAC5C,MAAMmB,qBAAqB,GAAG,IAAAnB,qCAAc,EAAC,CAAC,CAAC,CAAC;EAChD,MAAMoB,KAAK,GAAG,IAAApB,qCAAc,EAAC,CAAC,CAAC;EAC/B,MAAMqB,YAAY,GAAG,IAAArB,qCAAc,EAAC,CAAC,CAAC,CAAC;EACvC,MAAMsB,YAAY,GAAG,IAAAtB,qCAAc,EAAC,CAAC,CAAC,CAAC;EACvC,MAAMuB,KAAK,GAAG,IAAAvB,qCAAc,EAAuBwB,2BAAoB,CAACC,IAAI,CAAC;EAC7E,MAAMC,eAAe,GAAG,IAAA1B,qCAAc,EAEpC,EAAE,CAAC;EACL,MAAM2B,MAAM,GAAG,IAAA3B,qCAAc,EAAC,CAAC,CAAC;EAChC,MAAM4B,QAAQ,GAAG,IAAA5B,qCAAc,EAACxB,iBAAiB,CAAC;EAClD,MAAMqD,YAAY,GAAG,IAAA7B,qCAAc,EAAC,CAAC,CAAC;EACtC,MAAM8B,cAAc,GAAG,IAAA9B,qCAAc,EAAC,CAAC,CAAC;EACxC,MAAM+B,aAAa,GAAG,IAAA/B,qCAAc,EAAC,CAAC,CAAC;EACvC,MAAMgC,sBAAsB,GAAG,IAAAhC,qCAAc,EAAgB,IAAI,CAAC;EAClE,MAAMiC,eAAe,GAAG,IAAAjC,qCAAc,EAACzB,yBAAyB,CAAC;;EAEjE;EACA,MAAM2D,uBAAuB,GAAG,IAAAC,sCAAe,EAC7C,MAAMzB,aAAa,CAAC0B,KAAK,IAAI,CAAArD,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEqD,KAAK,KAAI,CAAC,CAC1D,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACdT,QAAQ,CAACQ,KAAK,GAAG5D,iBAAiB;IAClCyD,eAAe,CAACG,KAAK,GAAG7D,yBAAyB;EACnD,CAAC,EAAE,CAACqD,QAAQ,EAAEpD,iBAAiB,EAAEyD,eAAe,EAAE1D,yBAAyB,CAAC,CAAC;EAE7E,MAAM+D,gBAAgB,GAAG,IAAAC,cAAO,EAC9B,OAAO;IACLxB,aAAa;IACbM,YAAY;IACZC,YAAY;IACZI,eAAe;IACf9B,WAAW;IACXN,cAAc,EAAE;MACd,GAAGA,cAAc;MACjBkD,SAAS,EACPlD,cAAc,IAAI,WAAW,IAAIA,cAAc,GAC3CA,cAAc,CAACkD,SAAS,GACxB,CAAC;QAACC,KAAK,EAAEZ;MAAY,CAAC,CAAC;MAC7Ba,OAAO,EACLpD,cAAc,IAAI,SAAS,IAAIA,cAAc,GACzCA,cAAc,CAACoD,OAAO,GACtBZ;IACR;EACF,CAAC,CAAC,EACF,CACEf,aAAa,EACbM,YAAY,EACZC,YAAY,EACZI,eAAe,EACf9B,WAAW,EACXN,cAAc,EACduC,YAAY,EACZC,cAAc,CAElB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMa,gBAAgB,GAAG,IAAAC,kBAAW,EACjCpG,CAAoD,IAAK;IACxD,SAAS;;IAET,MAAMqG,SAAS,GAAGrG,CAAC,CAACsG,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAID,SAAS,KAAKd,aAAa,CAACK,KAAK,EAAE;MACrC,IAAIJ,sBAAsB,CAACI,KAAK,KAAK,IAAI,EAAE;QACzCJ,sBAAsB,CAACI,KAAK,GAAG5F,CAAC,CAACuG,SAAS;MAC5C,CAAC,MAAM,IACLC,IAAI,CAACC,GAAG,CAACzG,CAAC,CAACuG,SAAS,GAAGf,sBAAsB,CAACI,KAAK,CAAC,IACpDH,eAAe,CAACG,KAAK,EACrB;QACAL,aAAa,CAACK,KAAK,GAAGS,SAAS;QAC/Bb,sBAAsB,CAACI,KAAK,GAAG5F,CAAC,CAACuG,SAAS;MAC5C;IACF;EACF,CAAC,EACD,CAAChB,aAAa,EAAEC,sBAAsB,EAAEC,eAAe,CACzD,CAAC;EAED,MAAMiB,yBAAyB,GAAG,IAAAN,kBAAW,EAC1CpG,CAAoD,IAAK;IACxD,SAAS;;IAET,IAAI8D,sBAAsB,CAAC8B,KAAK,KAAK,IAAI,EAAE;MACzC,IAAIf,YAAY,CAACe,KAAK,IAAI,CAAC,EAAE;QAC3B,MAAMe,UAAU,GAAGlC,UAAU,CAACmB,KAAK,CAACf,YAAY,CAACe,KAAK,CAAC,GAAG,GAAG;QAC7D;QACA,MAAMgB,KAAK,GACTpC,UAAU,CAACoB,KAAK,CAACf,YAAY,CAACe,KAAK,CAAC,IACnC5B,qBAAqB,CAAC4B,KAAK,GAC1BvB,gCAAgC,CAACuB,KAAK,CAAC;QAE3C,MAAMA,KAAK,GAAGgB,KAAK,GAAGD,UAAU,GAAG3G,CAAC,CAAC6G,YAAY;QACjD9C,oBAAoB,CAAC6B,KAAK,GAAGA,KAAK;QAClC9B,sBAAsB,CAAC8B,KAAK,GAAGA,KAAK;MACtC;IACF,CAAC,MAAM;MACL9B,sBAAsB,CAAC8B,KAAK,GAC1B7B,oBAAoB,CAAC6B,KAAK,GAAG5F,CAAC,CAAC6G,YAAY;IAC/C;EACF,CAAC,EACD,CACE/C,sBAAsB,EACtBe,YAAY,EACZd,oBAAoB,EACpBS,UAAU,EACVC,UAAU,EACVT,qBAAqB,EACrBK,gCAAgC,CAEpC,CAAC;EAED,MAAMyC,iBAAiB,GAAG,IAAAf,cAAO,EAC/B,MACEgB,kCAAO,CAACC,GAAG,CAAC,CAAC,CACVC,OAAO,CAACjH,CAAC,IAAI;IACZ;IACA,IAAI+E,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACC,IAAI,EAAE;MAC7CE,MAAM,CAACS,KAAK,GAAG5F,CAAC,CAACkH,CAAC;MAClBtD,QAAQ,CAACgC,KAAK,GAAG5F,CAAC,CAACkH,CAAC;MACpBrD,mBAAmB,CAAC+B,KAAK,GAAG5F,CAAC,CAAC6G,YAAY;MAC1CjC,KAAK,CAACgB,KAAK,GAAG5F,CAAC,CAAC6G,YAAY;MAC5BpD,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAAC+E,KAAK;IAC9B;EACF,CAAC,CAAC,CACDoC,QAAQ,CAACnH,CAAC,IAAI;IACb,IAAI+E,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACoC,OAAO,EAAE;MAChDjB,gBAAgB,CAACnG,CAAC,CAAC;IACrB;IAEA,IAAI+E,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACqC,QAAQ,EAAE;MACjDX,yBAAyB,CAAC1G,CAAC,CAAC;MAE5B4D,QAAQ,CAACgC,KAAK,GAAGT,MAAM,CAACS,KAAK,GAAG5F,CAAC,CAAC6G,YAAY;MAC9ChD,mBAAmB,CAAC+B,KAAK,GAAG5F,CAAC,CAAC6G,YAAY;MAC1CjC,KAAK,CAACgB,KAAK,GACT5F,CAAC,CAAC6G,YAAY,GACd1C,sBAAsB,CAACyB,KAAK,GAC5BvB,gCAAgC,CAACuB,KAAK;MACxCnC,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAAC+E,KAAK;IAC9B;EACF,CAAC,CAAC,CACDuC,KAAK,CAACtH,CAAC,IAAKyD,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAAC+E,KAAM,CAAC,CAC1CwC,UAAU,CAACvH,CAAC,IAAKyD,YAAY,CAACmC,KAAK,GAAG5F,CAAC,CAAC+E,KAAM,CAAC,EACpD,CACEA,KAAK,EACLI,MAAM,EACNvB,QAAQ,EACRC,mBAAmB,EACnBe,KAAK,EACLnB,YAAY,EACZU,sBAAsB,EACtBE,gCAAgC,EAChC8B,gBAAgB,EAChBO,yBAAyB,CAE7B,CAAC;EAED,MAAMc,4BAA4B,GAAG,IAAAzB,cAAO,EAAC,MAAM;IACjD,IAAI,OAAO/C,yBAAyB,KAAK,QAAQ,EAAE;MACjD8D,iBAAiB,CAACW,sBAAsB,CAACzE,yBAAyB,CAAC;IACrE;IAEA,IAAI,CAACC,UAAU,EAAE;MACf6D,iBAAiB,CAACY,OAAO,CAACzE,UAAU,CAAC;IACvC;IAEA,OAAO6D,iBAAiB;EAC1B,CAAC,EAAE,CAAC9D,yBAAyB,EAAEC,UAAU,EAAE6D,iBAAiB,CAAC,CAAC;EAE9D,MAAMa,cAAc,GAAG,IAAA5B,cAAO,EAC5B,MAAMgB,kCAAO,CAACa,YAAY,CAACb,kCAAO,CAACc,MAAM,CAAC,CAAC,EAAEL,4BAA4B,CAAC,EAC1E,CAACA,4BAA4B,CAC/B,CAAC;EAED,MAAMM,gBAAgB,GAAG,IAAA1B,kBAAW,EACjCsB,OAAgB,IAAK;IACpB;IACA,IAAI9E,oBAAoB,EAAE;MAAA,IAAAmF,oBAAA;MACxBxE,aAAa,CAACqC,KAAK,GAAG8B,OAAO;MAC7B,CAAAK,oBAAA,GAAA7E,WAAW,CAAC8E,OAAO,cAAAD,oBAAA,eAAnBA,oBAAA,CAAqBE,cAAc,CAAC;QAAC1E,aAAa,EAAEmE;MAAO,CAAC,CAAC;IAC/D;IAEA,IACEpF,sBAAsB,IACtBI,uBAAuB,IACvBG,8BAA8B,EAC9B;MAAA,IAAAqF,qBAAA;MACAxF,uBAAuB,CAACkD,KAAK,GAAG8B,OAAO;MACvC,CAAAQ,qBAAA,GAAA5F,sBAAsB,CAAC0F,OAAO,cAAAE,qBAAA,eAA9BA,qBAAA,CAAgCD,cAAc,CAAC;QAC7C1E,aAAa,EAAEmE;MACjB,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CACE9E,oBAAoB,EACpBM,WAAW,EACXK,aAAa,EACbV,8BAA8B,EAC9BP,sBAAsB,EACtBI,uBAAuB,CAE3B,CAAC;EAED,MAAMyF,iBAAiB,GAAG,IAAA/B,kBAAW,EAAC,MAAM;IAC1C,SAAS;;IAETrB,KAAK,CAACa,KAAK,GAAGZ,2BAAoB,CAACC,IAAI;IACvCH,YAAY,CAACc,KAAK,GAAG,CAAC,CAAC;IACvBhB,KAAK,CAACgB,KAAK,GAAG,CAAC;IACfzB,sBAAsB,CAACyB,KAAK,GAAG,CAAC;IAChCvB,gCAAgC,CAACuB,KAAK,GAAG,CAAC;IAC1CL,aAAa,CAACK,KAAK,GAAG,CAAC;IACvBJ,sBAAsB,CAACI,KAAK,GAAG,IAAI;IACnC9B,sBAAsB,CAAC8B,KAAK,GAAG,IAAI;EACrC,CAAC,EAAE,CACDb,KAAK,EACLD,YAAY,EACZF,KAAK,EACLT,sBAAsB,EACtBE,gCAAgC,EAChCkB,aAAa,EACbC,sBAAsB,EACtB1B,sBAAsB,CACvB,CAAC;EAEF,MAAMsE,gCAAgC,GAAG,IAAAhC,kBAAW,EAAC,MAAM;IACzDiC,UAAU,CAAC,IAAAC,8BAAO,EAACH,iBAAiB,CAAC,EAAE/C,QAAQ,CAACQ,KAAK,CAAC;EACxD,CAAC,EAAE,CAACuC,iBAAiB,EAAE/C,QAAQ,CAAC,CAAC;EAEjC,MAAMmD,OAAO,GAAGA,CAACC,SAAiB,EAAEC,OAAe,KAAK;IACtD,IAAAH,8BAAO,EAACH,iBAAiB,CAAC,CAAC,CAAC;IAE5B,IAAIK,SAAS,KAAKC,OAAO,EAAE;MACzB,MAAMC,WAAW,GAAGA,CAAA,KAAM;QACxBzG,SAAS,CAAC;UAAC0G,IAAI,EAAEH,SAAS;UAAEI,EAAE,EAAEH;QAAO,CAAC,CAAC;MAC3C,CAAC;MAED,IAAI,CAACnH,oBAAoB,EAAE;QACzB,IAAAuH,oCAAuB,EAACH,WAAW,CAAC;MACtC,CAAC,MAAM;QACLA,WAAW,CAAC,CAAC;MACf;IACF;EACF,CAAC;EAED,MAAMI,eAAe,GAAG,IAAA1C,kBAAW,EACjC,CAACuC,IAAY,EAAEC,EAAU,KAAK;IAC5B,SAAS;;IAET,MAAMG,aAAa,GAAGH,EAAE,GAAGD,IAAI;IAC/B,MAAMK,MAAM,GAAGD,aAAa,GAAGJ,IAAI,GAAGC,EAAE;IACxC,MAAMK,MAAM,GAAGF,aAAa,GAAGH,EAAE,GAAGD,IAAI;IAExC,MAAMO,UAAU,GAAG1E,UAAU,CAACoB,KAAK,CAACoD,MAAM,CAAC;IAC3C,MAAMG,UAAU,GAAG1E,UAAU,CAACmB,KAAK,CAACqD,MAAM,CAAC;IAC3C,MAAMG,UAAU,GACd5E,UAAU,CAACoB,KAAK,CAACqD,MAAM,CAAC,GACxBxE,UAAU,CAACmB,KAAK,CAACqD,MAAM,CAAC,GACxBxE,UAAU,CAACmB,KAAK,CAACoD,MAAM,CAAC;IAC1B,MAAMK,UAAU,GAAG5E,UAAU,CAACmB,KAAK,CAACoD,MAAM,CAAC;IAE3CxE,UAAU,CAACoB,KAAK,CAACoD,MAAM,CAAC,GAAGE,UAAU;IACrCzE,UAAU,CAACmB,KAAK,CAACoD,MAAM,CAAC,GAAGG,UAAU;IACrC3E,UAAU,CAACoB,KAAK,CAACqD,MAAM,CAAC,GAAGG,UAAU;IACrC3E,UAAU,CAACmB,KAAK,CAACqD,MAAM,CAAC,GAAGI,UAAU;EACvC,CAAC,EACD,CAAC7E,UAAU,EAAEC,UAAU,CACzB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAM6E,mBAAmB,GAAG,IAAAlD,kBAAW,EAAC,MAAM;IAC5C,SAAS;;IAET,IAAItC,sBAAsB,CAAC8B,KAAK,KAAK,IAAI,EAAE;MACzC,OAAOf,YAAY,CAACe,KAAK;IAC3B;;IAEA;IACA,MAAM2D,mBAAmB,GACvBvF,qBAAqB,CAAC4B,KAAK,GAC3BvB,gCAAgC,CAACuB,KAAK,GACtC9B,sBAAsB,CAAC8B,KAAK;IAE9B,MAAM4D,aAAa,GAAGhF,UAAU,CAACoB,KAAK,CAACf,YAAY,CAACe,KAAK,CAAC;IAC1D,MAAM6D,aAAa,GAAGhF,UAAU,CAACmB,KAAK,CAACf,YAAY,CAACe,KAAK,CAAC;IAC1D,MAAM8D,aAAa,GAAGF,aAAa,GAAGC,aAAa,GAAG,GAAG;IAEzD,MAAME,GAAG,GAAGnF,UAAU,CAACoB,KAAK,CAACrE,MAAM;IACnC,MAAMqI,aAAa,GACjBL,mBAAmB,GAAGG,aAAa,GAC/BlD,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAE9E,YAAY,CAACe,KAAK,GAAG,CAAC,CAAC,GACnCY,IAAI,CAACqD,GAAG,CAACF,GAAG,GAAG,CAAC,EAAE9E,YAAY,CAACe,KAAK,GAAG,CAAC,CAAC;IAE/C,IAAIf,YAAY,CAACe,KAAK,KAAKgE,aAAa,EAAE;MACxC,IAAIE,cAAc,GAAGtF,UAAU,CAACoB,KAAK,CAACgE,aAAa,CAAC;MACpD,IAAIA,aAAa,GAAG/E,YAAY,CAACe,KAAK,EAAE;QACtCkE,cAAc,IAAIrF,UAAU,CAACmB,KAAK,CAACgE,aAAa,CAAC,GAAGH,aAAa;MACnE;MAEA,MAAMM,cAAc,GAAGD,cAAc,GAAGL,aAAa,GAAG,GAAG;MAC3D,MAAMO,mBAAmB,GAAGxD,IAAI,CAACC,GAAG,CAAC8C,mBAAmB,GAAGG,aAAa,CAAC;MACzE,MAAMO,oBAAoB,GAAGzD,IAAI,CAACC,GAAG,CACnC8C,mBAAmB,GAAGQ,cACxB,CAAC;MAED,OAAOC,mBAAmB,IAAIC,oBAAoB,GAC9CpF,YAAY,CAACe,KAAK,GAClBgE,aAAa;IACnB;IAEA,OAAO/E,YAAY,CAACe,KAAK;EAC3B,CAAC,EAAE,CACDf,YAAY,EACZf,sBAAsB,EACtBU,UAAU,EACVC,UAAU,EACVT,qBAAqB,EACrBK,gCAAgC,CACjC,CAAC;EAEF,MAAM6F,eAAe,GAAG,IAAA9D,kBAAW,EAAC,MAAM;IACxC,SAAS;;IAET,MAAM+D,QAAQ,GAAGb,mBAAmB,CAAC,CAAC;IAEtC,IAAIzE,YAAY,CAACe,KAAK,KAAKuE,QAAQ,EAAE;MACnCrB,eAAe,CAACjE,YAAY,CAACe,KAAK,EAAEuE,QAAQ,CAAC;MAC7CtF,YAAY,CAACe,KAAK,GAAGuE,QAAQ;MAE7B9H,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG;QAAC+H,KAAK,EAAED;MAAQ,CAAC,CAAC;IACpC;EACF,CAAC,EAAE,CAACtF,YAAY,EAAEyE,mBAAmB,EAAER,eAAe,EAAEzG,aAAa,CAAC,CAAC;EAEvE,MAAMgI,wBAAwB,GAAG,IAAAjE,kBAAW,EACzCkE,IAAqB,IAAK;IACzB,SAAS;;IAET;IACA,IAAI,EAAExH,cAAc,IAAI,WAAW,IAAIA,cAAc,CAAC,EAAE;MACtD,MAAMyH,WAAW,GAAGC,iDAA8B,CAACF,IAAI,CAAC;MACxDjF,YAAY,CAACO,KAAK,GAAG,IAAA6E,iCAAU,EAACF,WAAW,CAACG,OAAO,EAAEH,WAAW,CAAC;IACnE;;IAEA;IACA,IAAI,EAAEzH,cAAc,IAAI,SAAS,IAAIA,cAAc,CAAC,EAAE;MACpD,MAAM6H,aAAa,GAAGC,mDAAgC,CAACN,IAAI,CAAC;MAC5DhF,cAAc,CAACM,KAAK,GAAG,IAAA6E,iCAAU,EAACE,aAAa,CAACD,OAAO,EAAEC,aAAa,CAAC;IACzE;EACF,CAAC,EACD,CAAC7H,cAAc,EAAEuC,YAAY,EAAEC,cAAc,CAC/C,CAAC;EAED,IAAAuF,0CAAmB,EACjB,MAAMpH,YAAY,CAACmC,KAAK,EACxB,MAAM;IACJ,IACEnC,YAAY,CAACmC,KAAK,KAAKlC,gCAAK,CAACoH,MAAM,IACnCrH,YAAY,CAACmC,KAAK,KAAKlC,gCAAK,CAACqH,KAAK,KACjChG,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACoC,OAAO,IAC3CrC,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,CAAC,EAClD;MACAjG,KAAK,CAACa,KAAK,GAAGZ,2BAAoB,CAACqC,QAAQ;;MAE3C;MACA,IAAA4D,8BAAO,EAACnD,gBAAgB,CAAC,CAAC,IAAI,CAAC;MAE/B,IAAI/E,sBAAsB,EAAE;QAC1B,IAAAkI,8BAAO,EAAC5H,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;MAC7B;;MAEA;MACA,IAAIrD,CAAC,GAAG;QAAC2I,IAAI,EAAE7D,YAAY,CAACc,KAAK;QAAEgD,EAAE,EAAE/D,YAAY,CAACe;MAAK,CAAC;MAC1DzD,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGnC,CAAC,CAAC;MAEd,MAAMkL,QAAQ,GAAGhG,eAAe,CAACU,KAAK,CAACd,YAAY,CAACc,KAAK,CAAC;MAC1D,IAAIuF,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;QAC3BA,QAAQ,CAACG,OAAO,CAACC,EAAE,IAAIA,EAAE,CAACtL,CAAC,CAAC2I,IAAI,EAAE3I,CAAC,CAAC4I,EAAE,CAAC,CAAC;MAC1C;;MAEA;MACA,MAAM2C,iBAAiB,GAAG/G,UAAU,CAACoB,KAAK,CAACd,YAAY,CAACc,KAAK,CAAC;MAC9D,MAAM4F,iBAAiB,GAAG/G,UAAU,CAACmB,KAAK,CAACd,YAAY,CAACc,KAAK,CAAC;MAC9D,MAAM6F,iBAAiB,GAAGjH,UAAU,CAACoB,KAAK,CAACf,YAAY,CAACe,KAAK,CAAC;MAC9D,MAAM8F,iBAAiB,GAAGjH,UAAU,CAACmB,KAAK,CAACf,YAAY,CAACe,KAAK,CAAC;MAE9D,MAAM+F,cAAc,GAClB9G,YAAY,CAACe,KAAK,GAAGd,YAAY,CAACc,KAAK,GACnC6F,iBAAiB,GAAGF,iBAAiB,GACrCE,iBAAiB,GACjBF,iBAAiB,IAChBG,iBAAiB,GAAGF,iBAAiB,CAAC;MAE7CnB,wBAAwB,CAAC,KAAK,CAAC;MAE/B,IAAIzF,KAAK,CAACgB,KAAK,KAAK+F,cAAc,EAAE;QAClC;QACA/G,KAAK,CAACgB,KAAK,GAAG,IAAA6E,iCAAU,EACtBkB,cAAc,EACd;UACEvG,QAAQ,EAAEA,QAAQ,CAACQ,KAAK;UACxBgG,MAAM,EAAEC,6BAAM,CAACC,GAAG,CAACD,6BAAM,CAACE,IAAI;QAChC,CAAC,EACD,MAAM;UACJ,IAAAd,8BAAO,EAAC1C,OAAO,CAAC,CAACzD,YAAY,CAACc,KAAK,EAAEf,YAAY,CAACe,KAAK,CAAC;QAC1D,CACF,CAAC;MACH,CAAC,MAAM;QACL;QACA;QACA;QACA,IAAAqF,8BAAO,EAAC7C,gCAAgC,CAAC,CAAC,CAAC;MAC7C;IACF;EACF,CACF,CAAC;EAED,MAAM4D,iBAAiB,GAAG,IAAA5F,kBAAW,EAAC,MAAM;IAC1C,SAAS;;IACT,IAAI,CAAC3D,uBAAuB,IAAI,CAACD,iBAAiB,EAAE;MAClD,OAAO;QAACyJ,GAAG,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAC,CAAC;IAC5B;;IAEA;IACA,MAAMD,GAAG,GAAGzF,IAAI,CAACmD,GAAG,CAClB,CAAC,EACDlH,uBAAuB,CAACmD,KAAK,GAAGF,uBAAuB,CAACE,KAC1D,CAAC;IACD,MAAMsG,MAAM,GAAG1F,IAAI,CAACmD,GAAG,CACrB,CAAC,EACDjE,uBAAuB,CAACE,KAAK,GAC3B3B,eAAe,CAAC2B,KAAK,IACpBnD,uBAAuB,CAACmD,KAAK,GAAGpD,iBAAiB,CAACoD,KAAK,CAC5D,CAAC;IAED,OAAO;MAACqG,GAAG;MAAEC;IAAM,CAAC;EACtB,CAAC,EAAE,CACDzJ,uBAAuB,EACvBD,iBAAiB,EACjBkD,uBAAuB,EACvBzB,eAAe,CAChB,CAAC;EAEF,MAAMkI,oBAAoB,GAAG,IAAA/F,kBAAW,EAAC,MAAM;IAC7C,SAAS;;IAET,MAAMgG,UAAU,GAAGJ,iBAAiB,CAAC,CAAC;IAEtC,MAAMK,SAAS,GAAG7F,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAE,CAAA/H,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAEqK,GAAG,KAAI,CAAC,CAAC;IAClE,MAAMK,YAAY,GAAG9F,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAE,CAAA/H,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAEsK,MAAM,KAAI,CAAC,CAAC;IACxE,MAAMK,SAAS,GAAG/F,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAEnD,IAAI,CAACqD,GAAG,CAAClI,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM6K,aAAa,GACjBvI,eAAe,CAAC2B,KAAK,IACpBwG,UAAU,CAACH,GAAG,GAAGG,UAAU,CAACF,MAAM,CAAC,IACnCG,SAAS,GAAGC,YAAY,CAAC;IAE5B,MAAMG,IAAI,GAAGD,aAAa,GAAGD,SAAS;IACtC,MAAMN,GAAG,GAAGQ,IAAI,GAAGJ,SAAS;IAC5B,MAAMH,MAAM,GAAGjI,eAAe,CAAC2B,KAAK,GAAG6G,IAAI,GAAGH,YAAY;IAE1D,OAAO;MAACL,GAAG;MAAEC;IAAM,CAAC;EACtB,CAAC,EAAE,CACDF,iBAAiB,EACjBrK,mBAAmB,EACnBC,yBAAyB,EACzBqC,eAAe,CAChB,CAAC;EAEF,MAAMyI,6BAA6B,GAAG,IAAAtG,kBAAW,EAAC,MAAM;IACtD,SAAS;;IACT,IAAI,CAAC5D,iBAAiB,EAAE;MACtB,OAAO;QAACyJ,GAAG,EAAE,CAACU,QAAQ;QAAET,MAAM,EAAES;MAAQ,CAAC;IAC3C;IAEA,MAAMN,SAAS,GAAG7F,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAE,CAAA/H,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAEqK,GAAG,KAAI,CAAC,CAAC;IAClE,MAAMK,YAAY,GAAG9F,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAE,CAAA/H,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAEsK,MAAM,KAAI,CAAC,CAAC;IACxE,MAAMK,SAAS,GAAG/F,IAAI,CAACmD,GAAG,CAAC,CAAC,EAAEnD,IAAI,CAACqD,GAAG,CAAClI,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM6K,aAAa,GAAGhK,iBAAiB,CAACoD,KAAK,IAAIyG,SAAS,GAAGC,YAAY,CAAC;IAE1E,MAAMG,IAAI,GAAGD,aAAa,GAAGD,SAAS;IACtC,MAAMN,GAAG,GAAGQ,IAAI,GAAGJ,SAAS;IAC5B,MAAMH,MAAM,GAAGM,aAAa,GAAGC,IAAI,GAAGH,YAAY;IAElD,OAAO;MAACL,GAAG;MAAEC;IAAM,CAAC;EACtB,CAAC,EAAE,CAACvK,mBAAmB,EAAEC,yBAAyB,EAAEY,iBAAiB,CAAC,CAAC;EAEvE,MAAMoK,qBAAqB,GAAG,IAAAxG,kBAAW,EACtCc,CAAS,IAAK;IACb,SAAS;;IACT,MAAM2F,sBAAsB,GAAGH,6BAA6B,CAAC,CAAC;IAC9D,MAAMI,oBAAoB,GAAGd,iBAAiB,CAAC,CAAC;;IAEhD;IACA;IACA,OACGc,oBAAoB,CAACb,GAAG,GAAG,IAAI,IAAI/E,CAAC,IAAI2F,sBAAsB,CAACZ,GAAG,IAClEa,oBAAoB,CAACZ,MAAM,GAAG,IAAI,IACjChF,CAAC,IAAI2F,sBAAsB,CAACX,MAAO;EAEzC,CAAC,EACD,CAACF,iBAAiB,EAAEU,6BAA6B,CACnD,CAAC;EAED,MAAMK,qBAAqB,GAAG,IAAA3G,kBAAW,EAAC,MAAM;IAC9C,SAAS;;IAET,OACExC,QAAQ,CAACgC,KAAK,GACdF,uBAAuB,CAACE,KAAK,GAC7BtB,kCAAkC,CAACsB,KAAK;EAE5C,CAAC,EAAE,CAAChC,QAAQ,EAAE8B,uBAAuB,EAAEpB,kCAAkC,CAAC,CAAC;EAE3E,MAAM0I,gBAAgB,GAAG,IAAA5G,kBAAW,EAAC,MAAM;IACzC,SAAS;;IAET,OAAOxC,QAAQ,CAACgC,KAAK,GAAGvB,gCAAgC,CAACuB,KAAK;EAChE,CAAC,EAAE,CAAChC,QAAQ,EAAES,gCAAgC,CAAC,CAAC;EAEhD,MAAM4I,eAAe,GAAG,IAAA7G,kBAAW,EAAC,MAAM;IACxC,SAAS;;IAET,MAAM8G,kBAAkB,GAAGH,qBAAqB,CAAC,CAAC;IAClD,IAAIH,qBAAqB,CAACM,kBAAkB,CAAC,EAAE;MAC7C,MAAML,sBAAsB,GAAGH,6BAA6B,CAAC,CAAC;MAC9D,IAAIQ,kBAAkB,IAAIL,sBAAsB,CAACZ,GAAG,EAAE;QACpD,OAAO,CAAC,CAAC;MACX;MAEA,IAAIiB,kBAAkB,IAAIL,sBAAsB,CAACX,MAAM,EAAE;QACvD,OAAO,CAAC;MACV;IACF,CAAC,MAAM,IAAIvJ,UAAU,EAAE;MACrB,MAAMwK,aAAa,GAAGH,gBAAgB,CAAC,CAAC;MACxC,MAAMI,aAAa,GAAGjB,oBAAoB,CAAC,CAAC;MAE5C,IAAIgB,aAAa,IAAIC,aAAa,CAACnB,GAAG,EAAE;QACtC,OAAO,CAAC,CAAC;MACX;MAEA,IAAIkB,aAAa,IAAIC,aAAa,CAAClB,MAAM,EAAE;QACzC,OAAO,CAAC;MACV;IACF;IAEA,OAAO,CAAC;EACV,CAAC,EAAE,CACDU,qBAAqB,EACrBT,oBAAoB,EACpBO,6BAA6B,EAC7BK,qBAAqB,EACrBC,gBAAgB,EAChBrK,UAAU,CACX,CAAC;EAEF,IAAAkI,0CAAmB,EACjB,MAAMjH,QAAQ,CAACgC,KAAK,EACpB,MAAM;IACJ,IACEb,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACoC,OAAO,IAC5CrC,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,EAC/C;MACAd,eAAe,CAAC,CAAC;;MAEjB;MACA;MACA;MACA;MACA,IAAI3E,aAAa,CAACK,KAAK,KAAKqH,eAAe,CAAC,CAAC,EAAE;QAC7C;QACA,IAAIlI,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,EAAE;UACnDjG,KAAK,CAACa,KAAK,GAAGZ,2BAAoB,CAACgG,UAAU;UAC7CrG,qBAAqB,CAACiB,KAAK,GAAGlB,iBAAiB,CAACkB,KAAK;UACrDlB,iBAAiB,CAACkB,KAAK,IAAI,CAAC,CAAC;QAC/B;MACF,CAAC,MAAM,IAAIb,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,EAAE;QAC1DjG,KAAK,CAACa,KAAK,GAAGZ,2BAAoB,CAACoC,OAAO;MAC5C;IACF;EACF,CACF,CAAC;EAED,IAAAyD,0CAAmB,EACjB,MAAMnG,iBAAiB,CAACkB,KAAK,EAC7B,MAAM;IACJ,IACElB,iBAAiB,CAACkB,KAAK,KAAKjB,qBAAqB,CAACiB,KAAK,IACvDb,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,EAC/C;MACA,MAAMqC,mBAAmB,GACvB9H,aAAa,CAACK,KAAK,GACnB0H,mCAAiB,CAACC,SAAS,GAC3B1L,oBAAoB;MAEtB,IAAIwL,mBAAmB,KAAK,CAAC,EAAE;QAC7B,IAAIG,YAAY,GAAGxJ,qBAAqB,CAAC4B,KAAK;QAC9C,IAAI6H,OAAO,GACTvK,WAA0D;;QAE5D;QACA;QACA;QACA,IACET,uBAAuB,IACvBmK,qBAAqB,CAACG,qBAAqB,CAAC,CAAC,CAAC,EAC9C;UACAS,YAAY,GAAG/K,uBAAuB,CAACmD,KAAK;UAC5C6H,OAAO,GACLnL,sBAAqE;QACzE;QAEA,IAAAoL,+BAAQ,EAACD,OAAO,EAAE,CAAC,EAAED,YAAY,GAAGH,mBAAmB,EAAE,IAAI,CAAC;MAChE;;MAEA;MACA;MACAnD,eAAe,CAAC,CAAC;IACnB;EACF,CACF,CAAC;;EAED;EACA,MAAMyD,YAAY,GAAG,IAAAC,+CAAwB,EAAC5N,CAAC,IAAI;IACjDgE,qBAAqB,CAAC4B,KAAK,GAAG5F,CAAC,CAAC6N,aAAa,CAAC3G,CAAC;;IAE/C;IACA;IACA;IACA,IAAI,CAAC3D,aAAa,CAACqC,KAAK,EAAE;MACxBzB,sBAAsB,CAACyB,KAAK,GAC1B5B,qBAAqB,CAAC4B,KAAK,GAAGxB,wBAAwB,CAACwB,KAAK;IAChE;IAEA,IAAIb,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,EAAE;MACnDpG,KAAK,CAACgB,KAAK,GACT/B,mBAAmB,CAAC+B,KAAK,GACzBzB,sBAAsB,CAACyB,KAAK,GAC5BvB,gCAAgC,CAACuB,KAAK;MAExCjB,qBAAqB,CAACiB,KAAK,GAAGlB,iBAAiB,CAACkB,KAAK;MACrDlB,iBAAiB,CAACkB,KAAK,GAAG,IAAAkI,gCAAS,EACjChM,eAAe,EACf,IAAA2I,iCAAU,EAAC/F,iBAAiB,CAACkB,KAAK,GAAG,CAAC,CAAC,EAAE;QAACR,QAAQ,EAAE;MAAC,CAAC,CACxD,CAAC;IACH;EACF,CAAC,CAAC;;EAEF;EACA,IAAAyF,0CAAmB,EACjB,MAAMpI,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEmD,KAAK,EACpCA,KAAK,IAAI;IACP,IAAIA,KAAK,IAAIlD,uBAAuB,EAAE;MACpC;MACA;MACA,IAAI,CAACA,uBAAuB,CAACkD,KAAK,EAAE;QAClCvB,gCAAgC,CAACuB,KAAK,GACpCA,KAAK,GAAGtB,kCAAkC,CAACsB,KAAK;MACpD;MAEA,IAAIb,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACgG,UAAU,EAAE;QACnDpG,KAAK,CAACgB,KAAK,GACT/B,mBAAmB,CAAC+B,KAAK,GAAGvB,gCAAgC,CAACuB,KAAK;QAEpEjB,qBAAqB,CAACiB,KAAK,GAAGlB,iBAAiB,CAACkB,KAAK;QACrDlB,iBAAiB,CAACkB,KAAK,GAAG,IAAAkI,gCAAS,EACjChM,eAAe,EACf,IAAA2I,iCAAU,EAAC/F,iBAAiB,CAACkB,KAAK,GAAG,CAAC,CAAC,EAAE;UAACR,QAAQ,EAAE;QAAC,CAAC,CACxD,CAAC;MACH;IACF;EACF,CACF,CAAC;EAED,MAAM2I,SAAS,GAAG,IAAA3H,kBAAW,EAC1BgE,KAAa,IAAK;IACjB,SAAS;;IAET;IACA,IAAIrF,KAAK,CAACa,KAAK,KAAKZ,2BAAoB,CAACC,IAAI,EAAE;MAC7C;MACA;MACAkD,iBAAiB,CAAC,CAAC;MAEnB,IAAIpF,sBAAsB,EAAE;QAC1B,IAAAkI,8BAAO,EAAC5H,cAAc,CAAC,CAAC+G,KAAK,CAAC;MAChC;MAEAhG,wBAAwB,CAACwB,KAAK,GAAG5B,qBAAqB,CAAC4B,KAAK;MAC5DtB,kCAAkC,CAACsB,KAAK,GACtC,CAAAnD,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEmD,KAAK,KAAI,CAAC;MAErCrB,aAAa,CAACqB,KAAK,GAAGnB,UAAU,CAACmB,KAAK,CAACwE,KAAK,CAAC;MAC7CtF,YAAY,CAACc,KAAK,GAAGwE,KAAK;MAC1BvF,YAAY,CAACe,KAAK,GAAGwE,KAAK;MAC1BrF,KAAK,CAACa,KAAK,GAAGZ,2BAAoB,CAACoC,OAAO;MAE1C,IAAA6D,8BAAO,EAACnD,gBAAgB,CAAC,CAAC,KAAK,CAAC;;MAEhC;MACAuC,wBAAwB,CAAC,OAAO,CAAC;MACjCnI,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG;QAACkI;MAAK,CAAC,CAAC;IACxB;EACF,CAAC,EACD,CACEjC,iBAAiB,EACjBpF,sBAAsB,EACtBqB,wBAAwB,EACxB3B,uBAAuB,EACvB6B,kCAAkC,EAClCwD,gBAAgB,EAChBjD,YAAY,EACZN,aAAa,EACbO,YAAY,EACZC,KAAK,EACLf,qBAAqB,EACrBS,UAAU,EACVvC,WAAW,EACXmI,wBAAwB,CAE5B,CAAC;EAED,MAAM2D,oBAAoB,GAAG,IAAA5H,kBAAW,EACrCpG,CAAoB,IAAK;IACxBiE,eAAe,CAAC2B,KAAK,GAAG5F,CAAC,CAACiO,WAAW,CAACC,MAAM,CAACC,MAAM;;IAEnD;IACA,IAAI1L,uBAAuB,EAAE;MAC3B;MACA4F,UAAU,CAAC,MAAM;QACf,IAAAC,8BAAO,EAAC,MAAM;UACZ,MAAM8F,WAAW,GAAG,IAAAC,8BAAO,EAACnL,WAAW,CAAC;UACxC,IAAI,CAACkL,WAAW,EAAE;YAChB;UACF;UAEAlK,aAAa,CAAC0B,KAAK,GAAGwI,WAAW,CAACE,KAAK;QACzC,CAAC,CAAC,CAAC,CAAC;MACN,CAAC,EAAE,GAAG,CAAC;IACT;IAEAlM,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGpC,CAAC,CAAC;EACf,CAAC,EACD,CACEkD,WAAW,EACXgB,aAAa,EACbD,eAAe,EACfxB,uBAAuB,EACvBL,QAAQ,CAEZ,CAAC;EAED,MAAMmM,SAAS,GAAI3I,KAAkB,IAAK;IACxC1C,WAAW,CAAC0C,KAAK,CAAC;IAElB,IAAI,OAAOlE,GAAG,KAAK,UAAU,EAAE;MAC7BA,GAAG,CAACkE,KAAK,CAAC;IACZ,CAAC,MAAM,IAAIlE,GAAG,EAAE;MACdA,GAAG,CAACsG,OAAO,GAAGpC,KAAK;IACrB;EACF,CAAC;EAED,OAAO;IACL+B,cAAc;IACdgG,YAAY;IACZK,oBAAoB;IACpBO,SAAS;IACTR,SAAS;IACTjI,gBAAgB;IAChBtB,UAAU;IACVC,UAAU;IACVK,YAAY;IACZF,KAAK;IACLQ;EACF,CAAC;AACH,CAAC;AAACoJ,OAAA,CAAA/M,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -20,6 +20,7 @@ const ScrollViewContainer = ({
|
|
|
20
20
|
const scrollViewScrollEnabled = (0, _reactNativeReanimated.useSharedValue)(scrollEnabled);
|
|
21
21
|
const scrollViewContainerRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
22
22
|
const scrollViewScrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
23
|
+
const scrollViewPageY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
23
24
|
const scrollViewHeightY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
24
25
|
const outerScrollGesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Native(), []);
|
|
25
26
|
const handleScroll = (0, _reactNativeReanimated.useAnimatedScrollHandler)(e => {
|
|
@@ -28,16 +29,26 @@ const ScrollViewContainer = ({
|
|
|
28
29
|
const composedScrollHandler = (0, _reactNativeReanimated.useComposedEventHandler)([handleScroll, onScroll || null]);
|
|
29
30
|
const contextValue = (0, _react.useMemo)(() => ({
|
|
30
31
|
scrollViewContainerRef,
|
|
32
|
+
scrollViewPageY,
|
|
31
33
|
scrollViewHeightY,
|
|
32
34
|
scrollViewScrollOffsetY,
|
|
33
35
|
scrollViewScrollEnabled,
|
|
34
36
|
outerScrollGesture,
|
|
35
37
|
initialScrollViewScrollEnabled: scrollEnabled
|
|
36
|
-
}), [scrollViewContainerRef, scrollViewHeightY, scrollViewScrollOffsetY, scrollViewScrollEnabled, outerScrollGesture, scrollEnabled]);
|
|
37
|
-
const handleLayout = e => {
|
|
38
|
+
}), [scrollViewContainerRef, scrollViewPageY, scrollViewHeightY, scrollViewScrollOffsetY, scrollViewScrollEnabled, outerScrollGesture, scrollEnabled]);
|
|
39
|
+
const handleLayout = (0, _react.useCallback)(e => {
|
|
38
40
|
scrollViewHeightY.value = e.nativeEvent.layout.height;
|
|
41
|
+
|
|
42
|
+
// measuring pageY allows wrapping nested lists in other views
|
|
43
|
+
(0, _reactNativeReanimated.runOnUI)(() => {
|
|
44
|
+
const measurement = (0, _reactNativeReanimated.measure)(scrollViewContainerRef);
|
|
45
|
+
if (!measurement) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
scrollViewPageY.value = measurement.pageY;
|
|
49
|
+
})();
|
|
39
50
|
onLayout === null || onLayout === void 0 || onLayout(e);
|
|
40
|
-
};
|
|
51
|
+
}, [onLayout, scrollViewContainerRef, scrollViewHeightY, scrollViewPageY]);
|
|
41
52
|
return /*#__PURE__*/_react.default.createElement(_ScrollViewContainerContext.ScrollViewContainerContext.Provider, {
|
|
42
53
|
value: contextValue
|
|
43
54
|
}, /*#__PURE__*/_react.default.createElement(_reactNativeGestureHandler.GestureDetector, {
|