@draftbit/core 49.0.1-c3bbf3.2 → 49.0.1-ecd6ba.2

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.
@@ -1,176 +0,0 @@
1
- /**
2
- * TODO: Replace with https://github.com/gorhom/react-native-bottom-sheet. (@gorhom/bottom-sheet)
3
- * @gorhom/bottom-sheet v5 (which is not ready yet) will support web, allowing us to transition to that better supported library
4
- *
5
- * This legacy component uses an outdated reanimated v1, under a self published version (@youssefhenna/react-native-reanimated2) since
6
- * the latest reanimated version removes the v1 APIs
7
- */
8
- /**
9
- * Slightly modfied version as taken from https://github.com/rgommezz/react-native-scroll-bottom-sheet
10
- * Main previously breaking change:
11
- * const node = this.props.innerRef.current?.getNode() ==> const node = this.props.innerRef.current as any
12
- */
13
- /**
14
- * Copyright (c) 2020 Raul Gomez Acuna
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE file in the root directory of this source tree.
18
- *
19
- */
20
- import React, { Component, RefObject } from "react";
21
- import { FlatList, FlatListProps, ScrollView, ScrollViewProps, SectionList, SectionListProps, ViewStyle } from "react-native";
22
- import Animated from "@youssefhenna/react-native-reanimated2";
23
- import { Assign } from "utility-types";
24
- declare const FlatListComponentType: "FlatList";
25
- declare const ScrollViewComponentType: "ScrollView";
26
- declare const SectionListComponentType: "SectionList";
27
- declare const TimingAnimationType: "timing";
28
- declare const SpringAnimationType: "spring";
29
- declare type AnimatedScrollableComponent = FlatList | ScrollView | SectionList;
30
- declare type FlatListOption<T> = Assign<{
31
- componentType: typeof FlatListComponentType;
32
- }, FlatListProps<T>>;
33
- declare type ScrollViewOption = Assign<{
34
- componentType: typeof ScrollViewComponentType;
35
- }, ScrollViewProps>;
36
- declare type SectionListOption<T> = Assign<{
37
- componentType: typeof SectionListComponentType;
38
- }, SectionListProps<T>>;
39
- declare type CommonProps = {
40
- /**
41
- * Array of numbers that indicate the different resting positions of the bottom sheet (in dp or %), starting from the top.
42
- * If a percentage is used, that would translate to the relative amount of the total window height.
43
- * For instance, if 50% is used, that'd be windowHeight * 0.5. If you wanna take into account safe areas during
44
- * the calculation, such as status bars and notches, please use 'topInset' prop
45
- */
46
- snapPoints: Array<string | number>;
47
- /**
48
- * Index that references the initial resting position of the drawer, starting from the top
49
- */
50
- initialSnapIndex: number;
51
- /**
52
- * Render prop for the handle
53
- */
54
- renderHandle: () => React.ReactNode;
55
- /**
56
- * Callback that is executed right after the drawer settles on one of the snapping points.
57
- * The new index is provided on the callback
58
- * @param index
59
- */
60
- onSettle?: (index: number) => void;
61
- /**
62
- * Animated value that tracks the position of the drawer, being:
63
- * 0 => closed
64
- * 1 => fully opened
65
- */
66
- animatedPosition?: Animated.Value<number>;
67
- /**
68
- * This value is useful if you want to take into consideration safe area insets
69
- * when applying percentages for snapping points. We recommend using react-native-safe-area-context
70
- * library for that.
71
- * @see https://github.com/th3rdwave/react-native-safe-area-context#usage, insets.top
72
- */
73
- topInset: number;
74
- /**
75
- * Reference to FlatList, ScrollView or SectionList in order to execute its imperative methods.
76
- */
77
- innerRef: RefObject<FlatList | ScrollView | SectionList>;
78
- containerStyle?: Animated.AnimateStyle<ViewStyle>;
79
- friction: number;
80
- enableOverScroll: boolean;
81
- };
82
- declare type TimingAnimationProps = {
83
- animationType: typeof TimingAnimationType;
84
- /**
85
- * Configuration for the timing reanimated function
86
- */
87
- animationConfig?: Partial<Animated.TimingConfig>;
88
- };
89
- declare type SpringAnimationProps = {
90
- animationType: typeof SpringAnimationType;
91
- /**
92
- * Configuration for the spring reanimated function
93
- */
94
- animationConfig?: Partial<Animated.SpringConfig>;
95
- };
96
- declare type Props<T> = CommonProps & (FlatListOption<T> | ScrollViewOption | SectionListOption<T>) & (TimingAnimationProps | SpringAnimationProps);
97
- export declare class ScrollBottomSheet<T extends any> extends Component<Props<T>> {
98
- static defaultProps: {
99
- topInset: number;
100
- friction: number;
101
- animationType: string;
102
- innerRef: React.RefObject<AnimatedScrollableComponent>;
103
- enableOverScroll: boolean;
104
- };
105
- /**
106
- * Gesture Handler references
107
- */
108
- private masterDrawer;
109
- private drawerHandleRef;
110
- private drawerContentRef;
111
- private scrollComponentRef;
112
- /**
113
- * ScrollView prop
114
- */
115
- private onScrollBeginDrag;
116
- /**
117
- * Pan gesture handler events for drawer handle and content
118
- */
119
- private onHandleGestureEvent;
120
- private onDrawerGestureEvent;
121
- /**
122
- * Main Animated Value that drives the top position of the UI drawer at any point in time
123
- */
124
- private translateY;
125
- /**
126
- * Animated value that keeps track of the position: 0 => closed, 1 => opened
127
- */
128
- private position;
129
- /**
130
- * Flag to indicate imperative snapping
131
- */
132
- private isManuallySetValue;
133
- /**
134
- * Manual snapping amount
135
- */
136
- private manualYOffset;
137
- /**
138
- * Keeps track of the current index
139
- */
140
- private nextSnapIndex;
141
- /**
142
- * Deceleration rate of the scroll component. This is used only on Android to
143
- * compensate the unexpected glide it gets sometimes.
144
- */
145
- private decelerationRate;
146
- private prevSnapIndex;
147
- private dragY;
148
- private prevDragY;
149
- private tempDestSnapPoint;
150
- private isAndroid;
151
- private animationClock;
152
- private animationPosition;
153
- private animationFinished;
154
- private animationFrameTime;
155
- private velocityY;
156
- private lastStartScrollY;
157
- private prevTranslateYOffset;
158
- private translationY;
159
- private destSnapPoint;
160
- private lastSnap;
161
- private dragWithHandle;
162
- private scrollUpAndPullDown;
163
- private didGestureFinish;
164
- private didScrollUpAndPullDown;
165
- private setTranslationY;
166
- private extraOffset;
167
- private calculateNextSnapPoint;
168
- private scrollComponent;
169
- convertPercentageToDp: (str: string) => number;
170
- constructor(props: Props<T>);
171
- private getNormalisedSnapPoints;
172
- private getScrollComponent;
173
- snapTo: (index: number) => void;
174
- render(): React.JSX.Element;
175
- }
176
- export default ScrollBottomSheet;
@@ -1,445 +0,0 @@
1
- /**
2
- * TODO: Replace with https://github.com/gorhom/react-native-bottom-sheet. (@gorhom/bottom-sheet)
3
- * @gorhom/bottom-sheet v5 (which is not ready yet) will support web, allowing us to transition to that better supported library
4
- *
5
- * This legacy component uses an outdated reanimated v1, under a self published version (@youssefhenna/react-native-reanimated2) since
6
- * the latest reanimated version removes the v1 APIs
7
- */
8
- /**
9
- * Slightly modfied version as taken from https://github.com/rgommezz/react-native-scroll-bottom-sheet
10
- * Main previously breaking change:
11
- * const node = this.props.innerRef.current?.getNode() ==> const node = this.props.innerRef.current as any
12
- */
13
- /**
14
- * Copyright (c) 2020 Raul Gomez Acuna
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE file in the root directory of this source tree.
18
- *
19
- */
20
- import React, { Component } from "react";
21
- import { Dimensions, FlatList, Platform, ScrollView, SectionList, StyleSheet, View, } from "react-native";
22
- import Animated, { abs, add, and, call, Clock, clockRunning, cond, Easing as EasingDeprecated,
23
- // @ts-ignore: this property is only present in Reanimated 2
24
- EasingNode, eq, event, Extrapolate, greaterOrEq, greaterThan, multiply, not, onChange, or, set, startClock, stopClock, sub, spring, timing, Value, } from "@youssefhenna/react-native-reanimated2";
25
- import { NativeViewGestureHandler, PanGestureHandler, State as GestureState, TapGestureHandler, } from "react-native-gesture-handler";
26
- const {
27
- //@ts-ignore
28
- interpolate: interpolateDeprecated,
29
- // @ts-ignore: this property is only present in Reanimated 2
30
- interpolateNode, } = Animated;
31
- const interpolate = interpolateNode !== null && interpolateNode !== void 0 ? interpolateNode : interpolateDeprecated;
32
- //@ts-ignore
33
- const Easing = EasingNode !== null && EasingNode !== void 0 ? EasingNode : EasingDeprecated;
34
- const FlatListComponentType = "FlatList";
35
- const ScrollViewComponentType = "ScrollView";
36
- const SectionListComponentType = "SectionList";
37
- const TimingAnimationType = "timing";
38
- const SpringAnimationType = "spring";
39
- const DEFAULT_SPRING_PARAMS = {
40
- damping: 50,
41
- mass: 0.3,
42
- stiffness: 121.6,
43
- overshootClamping: true,
44
- restSpeedThreshold: 0.3,
45
- restDisplacementThreshold: 0.3,
46
- };
47
- const { height: windowHeight } = Dimensions.get("window");
48
- const IOS_NORMAL_DECELERATION_RATE = 0.998;
49
- const ANDROID_NORMAL_DECELERATION_RATE = 0.985;
50
- const DEFAULT_ANIMATION_DURATION = 250;
51
- const DEFAULT_EASING = Easing.inOut(Easing.linear);
52
- const imperativeScrollOptions = {
53
- [FlatListComponentType]: {
54
- method: "scrollToIndex",
55
- args: {
56
- index: 0,
57
- viewPosition: 0,
58
- viewOffset: 1000,
59
- animated: true,
60
- },
61
- },
62
- [ScrollViewComponentType]: {
63
- method: "scrollTo",
64
- args: {
65
- x: 0,
66
- y: 0,
67
- animated: true,
68
- },
69
- },
70
- [SectionListComponentType]: {
71
- method: "scrollToLocation",
72
- args: {
73
- itemIndex: 0,
74
- sectionIndex: 0,
75
- viewPosition: 0,
76
- viewOffset: 1000,
77
- animated: true,
78
- },
79
- },
80
- };
81
- export class ScrollBottomSheet extends Component {
82
- constructor(props) {
83
- var _a;
84
- super(props);
85
- /**
86
- * Gesture Handler references
87
- */
88
- this.masterDrawer = React.createRef();
89
- this.drawerHandleRef = React.createRef();
90
- this.drawerContentRef = React.createRef();
91
- this.scrollComponentRef = React.createRef();
92
- /**
93
- * Flag to indicate imperative snapping
94
- */
95
- this.isManuallySetValue = new Value(0);
96
- /**
97
- * Manual snapping amount
98
- */
99
- this.manualYOffset = new Value(0);
100
- this.prevSnapIndex = -1;
101
- this.dragY = new Value(0);
102
- this.prevDragY = new Value(0);
103
- this.tempDestSnapPoint = new Value(0);
104
- this.isAndroid = new Value(Number(Platform.OS === "android"));
105
- this.animationClock = new Clock();
106
- this.animationPosition = new Value(0);
107
- this.animationFinished = new Value(0);
108
- this.animationFrameTime = new Value(0);
109
- this.velocityY = new Value(0);
110
- this.lastStartScrollY = new Value(0);
111
- this.destSnapPoint = new Value(0);
112
- this.dragWithHandle = new Value(0);
113
- this.scrollUpAndPullDown = new Value(0);
114
- this.convertPercentageToDp = (str) => (Number(str.split("%")[0]) * (windowHeight - this.props.topInset)) / 100;
115
- this.getNormalisedSnapPoints = () => {
116
- return this.props.snapPoints.map((p) => {
117
- if (typeof p === "string") {
118
- return this.convertPercentageToDp(p);
119
- }
120
- else if (typeof p === "number") {
121
- return p;
122
- }
123
- throw new Error(`Invalid type for value ${p}: ${typeof p}. It should be either a percentage string or a number`);
124
- });
125
- };
126
- this.getScrollComponent = () => {
127
- switch (this.props.componentType) {
128
- case "FlatList":
129
- return FlatList;
130
- case "ScrollView":
131
- return ScrollView;
132
- case "SectionList":
133
- return SectionList;
134
- default:
135
- throw new Error("Component type not supported: it should be one of `FlatList`, `ScrollView` or `SectionList`");
136
- }
137
- };
138
- this.snapTo = (index) => {
139
- const snapPoints = this.getNormalisedSnapPoints();
140
- this.isManuallySetValue.setValue(1);
141
- this.manualYOffset.setValue(snapPoints[index]);
142
- this.nextSnapIndex.setValue(index);
143
- };
144
- const { initialSnapIndex, animationType } = props;
145
- const animationDriver = animationType === "timing" ? 0 : 1;
146
- const animationDuration = (props.animationType === "timing" && ((_a = props.animationConfig) === null || _a === void 0 ? void 0 : _a.duration)) ||
147
- DEFAULT_ANIMATION_DURATION;
148
- const ScrollComponent = this.getScrollComponent();
149
- // @ts-ignore
150
- this.scrollComponent = Animated.createAnimatedComponent(ScrollComponent);
151
- const snapPoints = this.getNormalisedSnapPoints();
152
- const openPosition = snapPoints[0];
153
- const closedPosition = this.props.enableOverScroll
154
- ? windowHeight
155
- : snapPoints[snapPoints.length - 1];
156
- const initialSnap = snapPoints[initialSnapIndex];
157
- this.nextSnapIndex = new Value(initialSnapIndex);
158
- const initialDecelerationRate = Platform.select({
159
- android: props.initialSnapIndex === 0 ? ANDROID_NORMAL_DECELERATION_RATE : 0,
160
- ios: IOS_NORMAL_DECELERATION_RATE,
161
- });
162
- this.decelerationRate = new Value(initialDecelerationRate);
163
- //@ts-ignore
164
- const handleGestureState = new Value(-1);
165
- //@ts-ignore
166
- const handleOldGestureState = new Value(-1);
167
- //@ts-ignore
168
- const drawerGestureState = new Value(-1);
169
- //@ts-ignore
170
- const drawerOldGestureState = new Value(-1);
171
- const lastSnapInRange = new Value(1);
172
- this.prevTranslateYOffset = new Value(initialSnap);
173
- this.translationY = new Value(initialSnap);
174
- this.lastSnap = new Value(initialSnap);
175
- this.onHandleGestureEvent = event([
176
- {
177
- nativeEvent: {
178
- translationY: this.dragY,
179
- oldState: handleOldGestureState,
180
- state: handleGestureState,
181
- velocityY: this.velocityY,
182
- },
183
- },
184
- ]);
185
- this.onDrawerGestureEvent = event([
186
- {
187
- nativeEvent: {
188
- translationY: this.dragY,
189
- oldState: drawerOldGestureState,
190
- state: drawerGestureState,
191
- velocityY: this.velocityY,
192
- },
193
- },
194
- ]);
195
- this.onScrollBeginDrag = event([
196
- {
197
- nativeEvent: {
198
- contentOffset: { y: this.lastStartScrollY },
199
- },
200
- },
201
- ]);
202
- const didHandleGestureBegin = eq(handleGestureState, GestureState.ACTIVE);
203
- const isAnimationInterrupted = and(or(eq(handleGestureState, GestureState.BEGAN), eq(drawerGestureState, GestureState.BEGAN), and(eq(this.isAndroid, 0), eq(animationDriver, 1), or(eq(drawerGestureState, GestureState.ACTIVE), eq(handleGestureState, GestureState.ACTIVE)))), clockRunning(this.animationClock));
204
- this.didGestureFinish = or(and(eq(handleOldGestureState, GestureState.ACTIVE), eq(handleGestureState, GestureState.END)), and(eq(drawerOldGestureState, GestureState.ACTIVE), eq(drawerGestureState, GestureState.END)));
205
- // Function that determines if the last snap point is in the range {snapPoints}
206
- // In the case of interruptions in the middle of an animation, we'll get
207
- // lastSnap values outside the range
208
- const isLastSnapPointInRange = (i = 0) => i === snapPoints.length
209
- ? lastSnapInRange
210
- : cond(eq(this.lastSnap, snapPoints[i]), [set(lastSnapInRange, 1)], isLastSnapPointInRange(i + 1));
211
- const scrollY = [
212
- set(lastSnapInRange, 0),
213
- isLastSnapPointInRange(),
214
- cond(or(didHandleGestureBegin, and(this.isManuallySetValue, not(eq(this.manualYOffset, snapPoints[0])))), [set(this.dragWithHandle, 1), 0]),
215
- cond(
216
- // This is to account for a continuous scroll on the drawer from a snap point
217
- // Different than top, bringing the drawer to the top position, so that if we
218
- // change scroll direction without releasing the gesture, it doesn't pull down the drawer again
219
- and(eq(this.dragWithHandle, 1), greaterThan(snapPoints[0], add(this.lastSnap, this.dragY)), and(not(eq(this.lastSnap, snapPoints[0])), lastSnapInRange)), [
220
- set(this.lastSnap, snapPoints[0]),
221
- set(this.dragWithHandle, 0),
222
- this.lastStartScrollY,
223
- ], cond(eq(this.dragWithHandle, 1), 0, this.lastStartScrollY)),
224
- ];
225
- this.didScrollUpAndPullDown = cond(and(greaterOrEq(this.dragY, this.lastStartScrollY), greaterThan(this.lastStartScrollY, 0)), set(this.scrollUpAndPullDown, 1));
226
- this.setTranslationY = cond(and(not(this.dragWithHandle), not(greaterOrEq(this.dragY, this.lastStartScrollY))), set(this.translationY, sub(this.dragY, this.lastStartScrollY)), set(this.translationY, this.dragY));
227
- this.extraOffset = cond(eq(this.scrollUpAndPullDown, 1), this.lastStartScrollY, 0);
228
- const endOffsetY = add(this.lastSnap, this.translationY, multiply(1 - props.friction, this.velocityY));
229
- this.calculateNextSnapPoint = (i = 0) => i === snapPoints.length
230
- ? this.tempDestSnapPoint
231
- : cond(greaterThan(abs(sub(this.tempDestSnapPoint, endOffsetY)), abs(sub(add(snapPoints[i], this.extraOffset), endOffsetY))), [
232
- set(this.tempDestSnapPoint, add(snapPoints[i], this.extraOffset)),
233
- set(this.nextSnapIndex, i),
234
- this.calculateNextSnapPoint(i + 1),
235
- ], this.calculateNextSnapPoint(i + 1));
236
- const runAnimation = ({ clock, from, to, position, finished, velocity, frameTime, }) => {
237
- var _a;
238
- const state = {
239
- finished,
240
- velocity: new Value(0),
241
- position,
242
- time: new Value(0),
243
- frameTime,
244
- };
245
- const timingConfig = {
246
- duration: animationDuration,
247
- easing: (props.animationType === "timing" && ((_a = props.animationConfig) === null || _a === void 0 ? void 0 : _a.easing)) ||
248
- DEFAULT_EASING,
249
- toValue: new Value(0),
250
- };
251
- const springConfig = {
252
- ...DEFAULT_SPRING_PARAMS,
253
- ...((props.animationType === "spring" && props.animationConfig) || {}),
254
- toValue: new Value(0),
255
- };
256
- return [
257
- cond(and(not(clockRunning(clock)), not(eq(finished, 1))), [
258
- // If the clock isn't running, we reset all the animation params and start the clock
259
- set(state.finished, 0),
260
- set(state.velocity, velocity),
261
- set(state.time, 0),
262
- set(state.position, from),
263
- set(state.frameTime, 0),
264
- set(timingConfig.toValue, to),
265
- set(springConfig.toValue, to),
266
- startClock(clock),
267
- ]),
268
- // We run the step here that is going to update position
269
- cond(eq(animationDriver, 0),
270
- //@ts-ignore
271
- timing(clock, state, timingConfig), spring(clock, state, springConfig)),
272
- cond(state.finished, [
273
- call([this.nextSnapIndex], ([value]) => {
274
- var _a, _b;
275
- if (value !== this.prevSnapIndex) {
276
- (_b = (_a = this.props).onSettle) === null || _b === void 0 ? void 0 : _b.call(_a, value);
277
- }
278
- this.prevSnapIndex = value;
279
- }),
280
- // Resetting appropriate values
281
- set(drawerOldGestureState, GestureState.END),
282
- set(handleOldGestureState, GestureState.END),
283
- set(this.prevTranslateYOffset, state.position),
284
- cond(eq(this.scrollUpAndPullDown, 1), [
285
- set(this.prevTranslateYOffset, sub(this.prevTranslateYOffset, this.lastStartScrollY)),
286
- set(this.lastStartScrollY, 0),
287
- set(this.scrollUpAndPullDown, 0),
288
- ]),
289
- cond(eq(this.destSnapPoint, snapPoints[0]), [
290
- set(this.dragWithHandle, 0),
291
- ]),
292
- set(this.isManuallySetValue, 0),
293
- set(this.manualYOffset, 0),
294
- stopClock(clock),
295
- this.prevTranslateYOffset,
296
- ],
297
- // We made the block return the updated position,
298
- state.position),
299
- ];
300
- };
301
- const translateYOffset = cond(isAnimationInterrupted, [
302
- // set(prevTranslateYOffset, animationPosition) should only run if we are
303
- // interrupting an animation when the drawer is currently in a different
304
- // position than the top
305
- cond(or(this.dragWithHandle, greaterOrEq(abs(this.prevDragY), this.lastStartScrollY)), set(this.prevTranslateYOffset, this.animationPosition)),
306
- set(this.animationFinished, 1),
307
- set(this.translationY, 0),
308
- // Resetting appropriate values
309
- set(drawerOldGestureState, GestureState.END),
310
- set(handleOldGestureState, GestureState.END),
311
- // By forcing that frameTime exceeds duration, it has the effect of stopping the animation
312
- set(this.animationFrameTime, add(animationDuration, 1000)),
313
- set(this.velocityY, 0),
314
- stopClock(this.animationClock),
315
- this.prevTranslateYOffset,
316
- ], cond(or(this.didGestureFinish, this.isManuallySetValue, clockRunning(this.animationClock)), [
317
- runAnimation({
318
- clock: this.animationClock,
319
- from: cond(this.isManuallySetValue, this.prevTranslateYOffset, add(this.prevTranslateYOffset, this.translationY)),
320
- to: this.destSnapPoint,
321
- position: this.animationPosition,
322
- finished: this.animationFinished,
323
- frameTime: this.animationFrameTime,
324
- velocity: this.velocityY,
325
- }),
326
- ], [
327
- set(this.animationFrameTime, 0),
328
- set(this.animationFinished, 0),
329
- // @ts-ignore
330
- this.prevTranslateYOffset,
331
- ]));
332
- this.translateY = interpolate(add(translateYOffset, this.dragY, multiply(scrollY, -1)), {
333
- inputRange: [openPosition, closedPosition],
334
- outputRange: [openPosition, closedPosition],
335
- extrapolate: Extrapolate.CLAMP,
336
- });
337
- this.position = interpolate(this.translateY, {
338
- inputRange: [openPosition, snapPoints[snapPoints.length - 1]],
339
- outputRange: [1, 0],
340
- extrapolate: Extrapolate.CLAMP,
341
- });
342
- }
343
- render() {
344
- const { renderHandle, initialSnapIndex, containerStyle, ...rest } = this.props;
345
- const AnimatedScrollableComponent = this.scrollComponent;
346
- const normalisedSnapPoints = this.getNormalisedSnapPoints();
347
- const initialSnap = normalisedSnapPoints[initialSnapIndex];
348
- const Content = (React.createElement(Animated.View, { style: [
349
- StyleSheet.absoluteFillObject,
350
- containerStyle,
351
- // @ts-ignore
352
- {
353
- transform: [{ translateY: this.translateY }],
354
- },
355
- ] },
356
- React.createElement(PanGestureHandler, { ref: this.drawerHandleRef, shouldCancelWhenOutside: false, simultaneousHandlers: this.masterDrawer, onGestureEvent: this.onHandleGestureEvent, onHandlerStateChange: this.onHandleGestureEvent },
357
- React.createElement(Animated.View, null, renderHandle())),
358
- React.createElement(PanGestureHandler, { ref: this.drawerContentRef, simultaneousHandlers: [this.scrollComponentRef, this.masterDrawer], shouldCancelWhenOutside: false, onGestureEvent: this.onDrawerGestureEvent, onHandlerStateChange: this.onDrawerGestureEvent },
359
- React.createElement(Animated.View, { style: styles.container },
360
- React.createElement(NativeViewGestureHandler, { ref: this.scrollComponentRef, waitFor: this.masterDrawer, simultaneousHandlers: this.drawerContentRef },
361
- React.createElement(AnimatedScrollableComponent, { overScrollMode: "never", bounces: false, ...rest, ref: this.props.innerRef,
362
- // @ts-ignore
363
- decelerationRate: this.decelerationRate, onScrollBeginDrag: this.onScrollBeginDrag, scrollEventThrottle: 1, contentContainerStyle: [
364
- rest.contentContainerStyle,
365
- { paddingBottom: this.getNormalisedSnapPoints()[0] },
366
- ] })))),
367
- this.props.animatedPosition && (React.createElement(Animated.Code, { exec: onChange(this.position, set(this.props.animatedPosition, this.position)) })),
368
- React.createElement(Animated.Code, { exec: onChange(this.dragY, cond(not(eq(this.dragY, 0)), set(this.prevDragY, this.dragY))) }),
369
- React.createElement(Animated.Code, { exec: onChange(this.didGestureFinish, cond(this.didGestureFinish, [
370
- this.didScrollUpAndPullDown,
371
- this.setTranslationY,
372
- set(this.tempDestSnapPoint, add(normalisedSnapPoints[0], this.extraOffset)),
373
- set(this.nextSnapIndex, 0),
374
- set(this.destSnapPoint, this.calculateNextSnapPoint()),
375
- cond(and(greaterThan(this.dragY, this.lastStartScrollY), this.isAndroid, not(this.dragWithHandle)), call([], () => {
376
- var _a, _b;
377
- // This prevents the scroll glide from happening on Android when pulling down with inertia.
378
- // It's not perfect, but does the job for now
379
- const { method, args } = imperativeScrollOptions[this.props.componentType];
380
- // @ts-ignore
381
- const node = this.props.innerRef.current;
382
- if (node &&
383
- node[method] &&
384
- ((this.props.componentType === "FlatList" &&
385
- (((_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0) ||
386
- (this.props.componentType === "SectionList" &&
387
- this.props.sections.length > 0) ||
388
- this.props.componentType === "ScrollView")) {
389
- node[method](args);
390
- }
391
- })),
392
- set(this.dragY, 0),
393
- set(this.velocityY, 0),
394
- set(this.lastSnap, sub(this.destSnapPoint, cond(eq(this.scrollUpAndPullDown, 1), this.lastStartScrollY, 0))),
395
- call([this.lastSnap], ([value]) => {
396
- var _a, _b;
397
- // This is the TapGHandler trick
398
- // @ts-ignore
399
- (_b = (_a = this.masterDrawer) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.setNativeProps({
400
- maxDeltaY: value - this.getNormalisedSnapPoints()[0],
401
- });
402
- }),
403
- set(this.decelerationRate, cond(eq(this.isAndroid, 1), cond(eq(this.lastSnap, normalisedSnapPoints[0]), ANDROID_NORMAL_DECELERATION_RATE, 0), IOS_NORMAL_DECELERATION_RATE)),
404
- ])) }),
405
- React.createElement(Animated.Code, { exec: onChange(this.isManuallySetValue, [
406
- cond(this.isManuallySetValue, [
407
- set(this.destSnapPoint, this.manualYOffset),
408
- set(this.animationFinished, 0),
409
- set(this.lastSnap, this.manualYOffset),
410
- call([this.lastSnap], ([value]) => {
411
- var _a, _b;
412
- // This is the TapGHandler trick
413
- // @ts-ignore
414
- (_b = (_a = this.masterDrawer) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.setNativeProps({
415
- maxDeltaY: value - this.getNormalisedSnapPoints()[0],
416
- });
417
- }),
418
- ], [set(this.nextSnapIndex, 0)]),
419
- ]) })));
420
- // On Android, having an intermediary view with pointerEvents="box-none", breaks the
421
- // waitFor logic
422
- if (Platform.OS === "android") {
423
- return (React.createElement(TapGestureHandler, { maxDurationMs: 100000, ref: this.masterDrawer, maxDeltaY: initialSnap - this.getNormalisedSnapPoints()[0], shouldCancelWhenOutside: false }, Content));
424
- }
425
- // On iOS, We need to wrap the content on a view with PointerEvents box-none
426
- // So that we can start scrolling automatically when reaching the top without
427
- // Stopping the gesture
428
- return (React.createElement(TapGestureHandler, { maxDurationMs: 100000, ref: this.masterDrawer, maxDeltaY: initialSnap - this.getNormalisedSnapPoints()[0] },
429
- React.createElement(View, { style: StyleSheet.absoluteFillObject, pointerEvents: "box-none" }, Content)));
430
- }
431
- }
432
- ScrollBottomSheet.defaultProps = {
433
- topInset: 0,
434
- friction: 0.95,
435
- animationType: "timing",
436
- innerRef: React.createRef(),
437
- enableOverScroll: false,
438
- };
439
- export default ScrollBottomSheet;
440
- const styles = StyleSheet.create({
441
- container: {
442
- flex: 1,
443
- },
444
- });
445
- //# sourceMappingURL=BottomSheetComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BottomSheetComponent.js","sourceRoot":"","sources":["../../../../../src/components/BottomSheet/BottomSheetComponent.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AACpD,OAAO,EACL,UAAU,EACV,QAAQ,EAER,QAAQ,EACR,UAAU,EAEV,WAAW,EAEX,UAAU,EACV,IAAI,GAEL,MAAM,cAAc,CAAC;AACtB,OAAO,QAAQ,EAAE,EACf,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,MAAM,IAAI,gBAAgB;AAC1B,4DAA4D;AAC5D,UAAU,EACV,EAAE,EACF,KAAK,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,GAAG,EACH,QAAQ,EACR,EAAE,EACF,GAAG,EACH,UAAU,EACV,SAAS,EACT,GAAG,EACH,MAAM,EACN,MAAM,EACN,KAAK,GACN,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EAEjB,KAAK,IAAI,YAAY,EACrB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,MAAM;AACJ,YAAY;AACZ,WAAW,EAAE,qBAAqB;AAClC,4DAA4D;AAC5D,eAAe,GAChB,GAAG,QAAQ,CAAC;AAEb,MAAM,WAAW,GACf,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,qBAAqB,CAAC;AAC3C,YAAY;AACZ,MAAM,MAAM,GAA4B,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,gBAAgB,CAAC;AAEvE,MAAM,qBAAqB,GAAG,UAAmB,CAAC;AAClD,MAAM,uBAAuB,GAAG,YAAqB,CAAC;AACtD,MAAM,wBAAwB,GAAG,aAAsB,CAAC;AACxD,MAAM,mBAAmB,GAAG,QAAiB,CAAC;AAC9C,MAAM,mBAAmB,GAAG,QAAiB,CAAC;AAE9C,MAAM,qBAAqB,GAAG;IAC5B,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,GAAG;IACvB,yBAAyB,EAAE,GAAG;CAC/B,CAAC;AAEF,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1D,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAC3C,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAC/C,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnD,MAAM,uBAAuB,GAAG;IAC9B,CAAC,qBAAqB,CAAC,EAAE;QACvB,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;SACf;KACF;IACD,CAAC,uBAAuB,CAAC,EAAE;QACzB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE;YACJ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,QAAQ,EAAE,IAAI;SACf;KACF;IACD,CAAC,wBAAwB,CAAC,EAAE;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE;YACJ,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC;AAqGF,MAAM,OAAO,iBAAiC,SAAQ,SAAmB;IAoFvE,YAAY,KAAe;;QACzB,KAAK,CAAC,KAAK,CAAC,CAAC;QA5Ef;;WAEG;QACK,iBAAY,GAAG,KAAK,CAAC,SAAS,EAAqB,CAAC;QACpD,oBAAe,GAAG,KAAK,CAAC,SAAS,EAAqB,CAAC;QACvD,qBAAgB,GAAG,KAAK,CAAC,SAAS,EAAqB,CAAC;QACxD,uBAAkB,GAAG,KAAK,CAAC,SAAS,EAA4B,CAAC;QAmBzE;;WAEG;QACK,uBAAkB,GAA2B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAClE;;WAEG;QACK,kBAAa,GAA2B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAUrD,kBAAa,GAAG,CAAC,CAAC,CAAC;QACnB,UAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,cAAS,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,sBAAiB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,cAAS,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC;QACzD,mBAAc,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,sBAAiB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,sBAAiB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,uBAAkB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,cAAS,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,qBAAgB,GAA2B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAGxD,kBAAa,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAG7B,mBAAc,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,wBAAmB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAa3C,0BAAqB,GAAG,CAAC,GAAW,EAAE,EAAE,CACtC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;QAwVnE,4BAAuB,GAAG,GAAG,EAAE;YACrC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACzB,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;iBACtC;qBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBAChC,OAAO,CAAC,CAAC;iBACV;gBAED,MAAM,IAAI,KAAK,CACb,0BAA0B,CAAC,KAAK,OAAO,CAAC,uDAAuD,CAChG,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,uBAAkB,GAAG,GAAG,EAAE;YAChC,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBAChC,KAAK,UAAU;oBACb,OAAO,QAAQ,CAAC;gBAClB,KAAK,YAAY;oBACf,OAAO,UAAU,CAAC;gBACpB,KAAK,aAAa;oBAChB,OAAO,WAAW,CAAC;gBACrB;oBACE,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;aACL;QACH,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,KAAa,EAAE,EAAE;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC;QAtXA,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAElD,MAAM,eAAe,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,KAAI,MAAA,KAAK,CAAC,eAAe,0CAAE,QAAQ,CAAA,CAAC;YACrE,0BAA0B,CAAC;QAE7B,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,aAAa;QACb,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAChD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEjD,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC9C,OAAO,EACL,KAAK,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC;YACrE,GAAG,EAAE,4BAA4B;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAE3D,YAAY;QACZ,MAAM,kBAAkB,GAAG,IAAI,KAAK,CAAe,CAAC,CAAC,CAAC,CAAC;QACvD,YAAY;QACZ,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAAe,CAAC,CAAC,CAAC,CAAC;QAC1D,YAAY;QACZ,MAAM,kBAAkB,GAAG,IAAI,KAAK,CAAe,CAAC,CAAC,CAAC,CAAC;QACvD,YAAY;QACZ,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAAe,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAChC;gBACE,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,QAAQ,EAAE,qBAAqB;oBAC/B,KAAK,EAAE,kBAAkB;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B;aACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAChC;gBACE,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,QAAQ,EAAE,qBAAqB;oBAC/B,KAAK,EAAE,kBAAkB;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B;aACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC7B;gBACE,WAAW,EAAE;oBACX,aAAa,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE;iBAC5C;aACF;SACF,CAAC,CAAC;QAEH,MAAM,qBAAqB,GAAG,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,MAAM,sBAAsB,GAAG,GAAG,CAChC,EAAE,CACA,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1C,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1C,GAAG,CACD,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EACrB,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,EACtB,EAAE,CACA,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,EAC3C,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAAC,CAC5C,CACF,CACF,EACD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAClC,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,EAAE,CACxB,GAAG,CACD,EAAE,CAAC,qBAAqB,EAAE,YAAY,CAAC,MAAM,CAAC,EAC9C,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,GAAG,CAAC,CACzC,EACD,GAAG,CACD,EAAE,CAAC,qBAAqB,EAAE,YAAY,CAAC,MAAM,CAAC,EAC9C,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,GAAG,CAAC,CACzC,CACF,CAAC;QAEF,+EAA+E;QAC/E,wEAAwE;QACxE,oCAAoC;QACpC,MAAM,sBAAsB,GAAG,CAAC,IAAY,CAAC,EAAyB,EAAE,CACtE,CAAC,KAAK,UAAU,CAAC,MAAM;YACrB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,CACF,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAChC,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EACzB,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAC9B,CAAC;QAER,MAAM,OAAO,GAAG;YACd,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;YACvB,sBAAsB,EAAE;YACxB,IAAI,CACF,EAAE,CACA,qBAAqB,EACrB,GAAG,CACD,IAAI,CAAC,kBAAkB,EACvB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3C,CACF,EACD,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACjC;YACD,IAAI;YACF,6EAA6E;YAC7E,6EAA6E;YAC7E,+FAA+F;YAC/F,GAAG,CACD,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,EAC1B,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAC1D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAC5D,EACD;gBACE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC3B,IAAI,CAAC,gBAAgB;aACtB,EACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAC3D;SACF,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAChC,GAAG,CACD,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAC9C,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CACtC,EACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CACjC,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CACzB,GAAG,CACD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EACxB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CACpD,EACD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAC9D,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CACnC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CACrB,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAC/B,IAAI,CAAC,gBAAgB,EACrB,CAAC,CACF,CAAC;QACF,MAAM,UAAU,GAAG,GAAG,CACpB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAC7C,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,GAAG,CAAC,EAAkC,EAAE,CACtE,CAAC,KAAK,UAAU,CAAC,MAAM;YACrB,CAAC,CAAC,IAAI,CAAC,iBAAiB;YACxB,CAAC,CAAC,IAAI,CACF,WAAW,CACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,EAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAC3D,EACD;gBACE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC1B,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC;aACnC,EACD,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CACnC,CAAC;QAER,MAAM,YAAY,GAAG,CAAC,EACpB,KAAK,EACL,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACI,EAAE,EAAE;;YACjB,MAAM,KAAK,GAAG;gBACZ,QAAQ;gBACR,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;gBACtB,QAAQ;gBACR,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;gBAClB,SAAS;aACV,CAAC;YAEF,MAAM,YAAY,GAAG;gBACnB,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EACJ,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,KAAI,MAAA,KAAK,CAAC,eAAe,0CAAE,MAAM,CAAA,CAAC;oBACnE,cAAc;gBAChB,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;aACtB,CAAC;YAEF,MAAM,YAAY,GAAG;gBACnB,GAAG,qBAAqB;gBACxB,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;aACtB,CAAC;YAEF,OAAO;gBACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;oBACxD,oFAAoF;oBACpF,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtB,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClB,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;oBACzB,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBACvB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC7B,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC7B,UAAU,CAAC,KAAK,CAAC;iBAClB,CAAC;gBACF,wDAAwD;gBACxD,IAAI,CACF,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;gBACtB,YAAY;gBACZ,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CACnC;gBACD,IAAI,CACF,KAAK,CAAC,QAAQ,EACd;oBACE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;;wBACrC,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;4BAChC,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,KAAK,CAAC,CAAC;yBAC9B;wBACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC7B,CAAC,CAAC;oBACF,+BAA+B;oBAC/B,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC;oBAC5C,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC;oBAC5C,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC;oBAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;wBACpC,GAAG,CACD,IAAI,CAAC,oBAAoB,EACzB,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CACtD;wBACD,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;wBAC7B,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;qBACjC,CAAC;oBACF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC1C,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC1B,SAAS,CAAC,KAAK,CAAC;oBAChB,IAAI,CAAC,oBAAoB;iBAC1B;gBACD,iDAAiD;gBACjD,KAAK,CAAC,QAAQ,CACf;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAC3B,sBAAsB,EACtB;YACE,yEAAyE;YACzE,wEAAwE;YACxE,wBAAwB;YACxB,IAAI,CACF,EAAE,CACA,IAAI,CAAC,cAAc,EACnB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CACxD,EACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CACvD;YACD,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACzB,+BAA+B;YAC/B,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC;YAC5C,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC;YAC5C,0FAA0F;YAC1F,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9B,IAAI,CAAC,oBAAoB;SAC1B,EACD,IAAI,CACF,EAAE,CACA,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,kBAAkB,EACvB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAClC,EACD;YACE,YAAY,CAAC;gBACX,KAAK,EAAE,IAAI,CAAC,cAAc;gBAC1B,IAAI,EAAE,IAAI,CACR,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,oBAAoB,EACzB,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,CAClD;gBACD,EAAE,EAAE,IAAI,CAAC,aAAa;gBACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;gBAChC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;gBAChC,SAAS,EAAE,IAAI,CAAC,kBAAkB;gBAClC,QAAQ,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC;SACH,EACD;YACE,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC9B,aAAa;YACb,IAAI,CAAC,oBAAoB;SAC1B,CACF,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,WAAW,CAC3B,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EACxD;YACE,UAAU,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;YAC1C,WAAW,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;YAC3C,WAAW,EAAE,WAAW,CAAC,KAAK;SAC/B,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;YAC3C,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7D,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,WAAW,EAAE,WAAW,CAAC,KAAK;SAC/B,CAAC,CAAC;IACL,CAAC;IAsCD,MAAM;QACJ,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAC/D,IAAI,CAAC,KAAK,CAAC;QACb,MAAM,2BAA2B,GAAG,IAAI,CAAC,eAAe,CAAC;QACzD,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,CACd,oBAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE;gBACL,UAAU,CAAC,kBAAkB;gBAC7B,cAAc;gBACd,aAAa;gBACb;oBACE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;iBAC7C;aACF;YAED,oBAAC,iBAAiB,IAChB,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,uBAAuB,EAAE,KAAK,EAC9B,oBAAoB,EAAE,IAAI,CAAC,YAAY,EACvC,cAAc,EAAE,IAAI,CAAC,oBAAoB,EACzC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAE/C,oBAAC,QAAQ,CAAC,IAAI,QAAE,YAAY,EAAE,CAAiB,CAC7B;YACpB,oBAAC,iBAAiB,IAChB,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAC1B,oBAAoB,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,EAClE,uBAAuB,EAAE,KAAK,EAC9B,cAAc,EAAE,IAAI,CAAC,oBAAoB,EACzC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAE/C,oBAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS;oBACpC,oBAAC,wBAAwB,IACvB,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAC5B,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,oBAAoB,EAAE,IAAI,CAAC,gBAAgB;wBAE3C,oBAAC,2BAA2B,IAC1B,cAAc,EAAC,OAAO,EACtB,OAAO,EAAE,KAAK,KACV,IAAI,EACR,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;4BACxB,aAAa;4BACb,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,mBAAmB,EAAE,CAAC,EACtB,qBAAqB,EAAE;gCACrB,IAAI,CAAC,qBAAqB;gCAC1B,EAAE,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE;6BACrD,GACD,CACuB,CACb,CACE;YACnB,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAC9B,oBAAC,QAAQ,CAAC,IAAI,IACZ,IAAI,EAAE,QAAQ,CACZ,IAAI,CAAC,QAAQ,EACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAChD,GACD,CACH;YACD,oBAAC,QAAQ,CAAC,IAAI,IACZ,IAAI,EAAE,QAAQ,CACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC9D,GACD;YACF,oBAAC,QAAQ,CAAC,IAAI,IACZ,IAAI,EAAE,QAAQ,CACZ,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBAC1B,IAAI,CAAC,sBAAsB;oBAC3B,IAAI,CAAC,eAAe;oBACpB,GAAG,CACD,IAAI,CAAC,iBAAiB,EACtB,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAC/C;oBACD,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBACtD,IAAI,CACF,GAAG,CACD,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAC9C,IAAI,CAAC,SAAS,EACd,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CACzB,EACD,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE;;wBACZ,2FAA2F;wBAC3F,6CAA6C;wBAC7C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GACpB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;wBACpD,aAAa;wBACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAc,CAAC;wBAEhD,IACE,IAAI;4BACJ,IAAI,CAAC,MAAM,CAAC;4BACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,UAAU;gCACvC,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,0CAAE,MAAM,KAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gCACpC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,aAAa;oCACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gCACjC,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,YAAY,CAAC,EAC5C;4BACA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;yBACpB;oBACH,CAAC,CAAC,CACH;oBACD,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBAClB,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;oBACtB,GAAG,CACD,IAAI,CAAC,QAAQ,EACb,GAAG,CACD,IAAI,CAAC,aAAa,EAClB,IAAI,CACF,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAC/B,IAAI,CAAC,gBAAgB,EACrB,CAAC,CACF,CACF,CACF;oBACD,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;;wBAChC,gCAAgC;wBAChC,aAAa;wBACb,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,0CAAE,cAAc,CAAC;4BACzC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;yBACrD,CAAC,CAAC;oBACL,CAAC,CAAC;oBACF,GAAG,CACD,IAAI,CAAC,gBAAgB,EACrB,IAAI,CACF,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EACrB,IAAI,CACF,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC1C,gCAAgC,EAChC,CAAC,CACF,EACD,4BAA4B,CAC7B,CACF;iBACF,CAAC,CACH,GACD;YACF,oBAAC,QAAQ,CAAC,IAAI,IACZ,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBACtC,IAAI,CACF,IAAI,CAAC,kBAAkB,EACvB;wBACE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;wBAC3C,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;wBAC9B,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC;wBACtC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;;4BAChC,gCAAgC;4BAChC,aAAa;4BACb,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,0CAAE,cAAc,CAAC;gCACzC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;6BACrD,CAAC,CAAC;wBACL,CAAC,CAAC;qBACH,EACD,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAC7B;iBACF,CAAC,GACF,CACY,CACjB,CAAC;QAEF,oFAAoF;QACpF,gBAAgB;QAChB,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;YAC7B,OAAO,CACL,oBAAC,iBAAiB,IAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAC1D,uBAAuB,EAAE,KAAK,IAE7B,OAAO,CACU,CACrB,CAAC;SACH;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,uBAAuB;QACvB,OAAO,CACL,oBAAC,iBAAiB,IAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAE1D,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,kBAAkB,EAAE,aAAa,EAAC,UAAU,IACjE,OAAO,CACH,CACW,CACrB,CAAC;IACJ,CAAC;;AAlpBM,8BAAY,GAAG;IACpB,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,EAA+B;IACxD,gBAAgB,EAAE,KAAK;CACxB,CAAC;AA+oBJ,eAAe,iBAAiB,CAAC;AAEjC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC"}