react-native-drawer-layout 5.0.0-alpha.15 → 5.0.0-alpha.16

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.
@@ -43,7 +43,7 @@ export function Drawer({
43
43
  }
44
44
  });
45
45
  React.useEffect(() => {
46
- const element = drawerRef.current;
46
+ const element = typeof HTMLElement !== 'undefined' && drawerRef.current instanceof HTMLElement ? drawerRef.current : null;
47
47
  element?.addEventListener('transitionstart', onTransitionStartLatest);
48
48
  element?.addEventListener('transitionend', onTransitionEndLatest);
49
49
  return () => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","useLatestCallback","DrawerProgressContext","getDrawerWidthWeb","useFakeSharedValue","Overlay","jsx","_jsx","jsxs","_jsxs","Drawer","direction","drawerPosition","drawerStyle","drawerType","onClose","onTransitionStart","onTransitionEnd","open","overlayStyle","overlayAccessibilityLabel","renderDrawerContent","children","style","flattenedDrawerStyle","flatten","drawerWidth","progress","useEffect","set","drawerRef","useRef","onTransitionStartLatest","e","target","currentTarget","propertyName","onTransitionEndLatest","element","current","addEventListener","removeEventListener","isOpen","isRight","drawerTranslateX","drawerAnimatedStyle","transition","transform","contentTranslateX","contentAnimatedStyle","drawerElement","ref","styles","drawer","position","zIndex","width","right","left","Inert","enabled","mainContent","content","onPress","accessibilityLabel","Provider","value","container","inert","display","flexDirection","flexGrow","flexShrink","flexBasis","create","flex","top","bottom","maxWidth","backgroundColor"],"sourceRoot":"../../../src","sources":["views/Drawer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","useLatestCallback","DrawerProgressContext","getDrawerWidthWeb","useFakeSharedValue","Overlay","jsx","_jsx","jsxs","_jsxs","Drawer","direction","drawerPosition","drawerStyle","drawerType","onClose","onTransitionStart","onTransitionEnd","open","overlayStyle","overlayAccessibilityLabel","renderDrawerContent","children","style","flattenedDrawerStyle","flatten","drawerWidth","progress","useEffect","set","drawerRef","useRef","onTransitionStartLatest","e","target","currentTarget","propertyName","onTransitionEndLatest","element","HTMLElement","current","addEventListener","removeEventListener","isOpen","isRight","drawerTranslateX","drawerAnimatedStyle","transition","transform","contentTranslateX","contentAnimatedStyle","drawerElement","ref","styles","drawer","position","zIndex","width","right","left","Inert","enabled","mainContent","content","onPress","accessibilityLabel","Provider","value","container","inert","display","flexDirection","flexGrow","flexShrink","flexBasis","create","flex","top","bottom","maxWidth","backgroundColor"],"sourceRoot":"../../../src","sources":["views/Drawer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
- import { Dimensions, I18nManager, Keyboard, Platform, StatusBar, StyleSheet, View } from 'react-native';
5
- import Animated, { interpolate, ReduceMotion, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
4
+ import { Dimensions, I18nManager, Keyboard, Platform, StatusBar, StyleSheet } from 'react-native';
5
+ import Animated, { interpolate, ReduceMotion, useAnimatedProps, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
6
6
  import { scheduleOnRN } from 'react-native-worklets';
7
7
  import useLatestCallback from 'use-latest-callback';
8
8
  import { DrawerGestureContext } from "../utils/DrawerGestureContext.js";
9
9
  import { DrawerProgressContext } from "../utils/DrawerProgressContext.js";
10
10
  import { getDrawerWidthNative } from "../utils/getDrawerWidth.js";
11
- import { GestureDetector, GestureHandlerRootView, usePanGesture } from './GestureHandler';
11
+ import { GestureDetector, GestureHandlerRootView, useLongPressGesture, usePanGesture, useSimultaneousGestures } from './GestureHandler';
12
12
  import { Overlay } from './Overlay';
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  const SWIPE_EDGE_WIDTH = 32;
15
15
  const SWIPE_MIN_OFFSET = 5;
16
16
  const SWIPE_MIN_DISTANCE = 60;
17
17
  const SWIPE_MIN_VELOCITY = 500;
18
+ const PEEK_DELAY = 160;
19
+ const PROGRESS_EPSILON = 0.05;
20
+ const SPRING_CONFIG = {
21
+ stiffness: 500,
22
+ damping: 40,
23
+ mass: 1,
24
+ overshootClamping: true,
25
+ reduceMotion: ReduceMotion.Never
26
+ };
18
27
  const minmax = (value, start, end) => {
19
28
  'worklet';
20
29
 
@@ -143,6 +152,7 @@ export function Drawer({
143
152
  const touchStartX = useSharedValue(0);
144
153
  const touchX = useSharedValue(0);
145
154
  const isGestureActive = useSharedValue(false);
155
+ const isPeeking = useSharedValue(false);
146
156
  const onAnimationStart = useLatestCallback(open => {
147
157
  onTransitionStart?.(!open);
148
158
  });
@@ -158,6 +168,7 @@ export function Drawer({
158
168
 
159
169
  touchStartX.set(0);
160
170
  touchX.set(0);
171
+ isPeeking.set(false);
161
172
  const containerWidth = layoutWidth.get();
162
173
  const toValue = getDrawerTranslationX(open, containerWidth);
163
174
  if (translationX.get() === toValue) {
@@ -191,30 +202,32 @@ export function Drawer({
191
202
  } else {
192
203
  scheduleOnRN(onClose);
193
204
  }
194
- }, [touchStartX, touchX, layoutWidth, getDrawerTranslationX, translationX, animatingTo, onAnimationStart, onAnimationEnd, onOpen, onClose]);
205
+ }, [touchStartX, touchX, isPeeking, layoutWidth, getDrawerTranslationX, translationX, animatingTo, onAnimationStart, onAnimationEnd, onOpen, onClose]);
195
206
  React.useLayoutEffect(() => {
196
207
  toggleDrawer(open);
197
208
  }, [animatingTo, open, toggleDrawer]);
198
- const startX = useSharedValue(0);
199
209
  const panGestureConfig = React.useMemo(() => {
200
210
  const config = {
201
211
  onBegin: event => {
202
212
  'worklet';
203
213
 
204
- startX.set(translationX.get());
205
214
  touchStartX.set(event.x);
206
215
  },
207
- onActivate: () => {
216
+ onActivate: event => {
208
217
  'worklet';
209
218
 
219
+ translationX.set(translationX.get() + event.translationX);
220
+ isPeeking.set(false);
210
221
  isGestureActive.set(true);
211
222
  scheduleOnRN(onGestureBegin);
212
223
  },
213
224
  onUpdate: event => {
214
225
  'worklet';
215
226
 
227
+ isPeeking.set(false);
228
+ isGestureActive.set(true);
216
229
  touchX.set(event.x);
217
- translationX.set(startX.get() + event.translationX);
230
+ translationX.set(translationX.get() + event.changeX);
218
231
  },
219
232
  onDeactivate: event => {
220
233
  'worklet';
@@ -239,8 +252,42 @@ export function Drawer({
239
252
  enabled: drawerType !== 'permanent' && swipeEnabled
240
253
  };
241
254
  return configureGestureHandler?.(config) ?? config;
242
- }, [configureGestureHandler, drawerPosition, drawerType, hitSlop, isGestureActive, onGestureBegin, onGestureAbort, onGestureFinish, open, startX, swipeEnabled, swipeMinDistance, swipeMinVelocity, toggleDrawer, touchStartX, touchX, translationX]);
255
+ }, [configureGestureHandler, drawerPosition, drawerType, hitSlop, isGestureActive, isPeeking, onGestureBegin, onGestureAbort, onGestureFinish, open, swipeEnabled, swipeMinDistance, swipeMinVelocity, toggleDrawer, touchStartX, touchX, translationX]);
243
256
  const pan = usePanGesture(panGestureConfig);
257
+ const longPress = useLongPressGesture({
258
+ enabled: !isOpen && panGestureConfig.enabled,
259
+ hitSlop: panGestureConfig.hitSlop,
260
+ minDuration: PEEK_DELAY,
261
+ onActivate: () => {
262
+ 'worklet';
263
+
264
+ if (isGestureActive.get()) {
265
+ return;
266
+ }
267
+ const containerWidth = layoutWidth.get();
268
+ const closedTranslation = getDrawerTranslationX(false, containerWidth);
269
+ if (translationX.get() !== closedTranslation) {
270
+ return;
271
+ }
272
+ const peekDistance = Math.min(swipeEdgeWidth, Math.abs(closedTranslation));
273
+ if (peekDistance <= 0) {
274
+ return;
275
+ }
276
+ const peekTranslation = closedTranslation + peekDistance * (drawerPosition === 'left' ? 1 : -1);
277
+ isPeeking.set(true);
278
+ translationX.set(withSpring(peekTranslation, SPRING_CONFIG));
279
+ },
280
+ onDeactivate: () => {
281
+ 'worklet';
282
+
283
+ if (isPeeking.get()) {
284
+ isPeeking.set(false);
285
+ const containerWidth = layoutWidth.get();
286
+ translationX.set(withSpring(getDrawerTranslationX(false, containerWidth), SPRING_CONFIG));
287
+ }
288
+ }
289
+ });
290
+ const gesture = useSimultaneousGestures(pan, longPress);
244
291
  const translateX = useDerivedValue(() => {
245
292
  const drawerWidth = getDrawerWidthNative({
246
293
  containerWidth: layoutWidth.get(),
@@ -322,6 +369,30 @@ export function Drawer({
322
369
  const containerWidth = layoutWidth.get();
323
370
  return drawerType === 'permanent' ? 1 : interpolate(translateX.get(), [getDrawerTranslationX(false, containerWidth), getDrawerTranslationX(true, containerWidth)], [0, 1]);
324
371
  });
372
+ const contentAnimatedProps = useAnimatedProps(() => {
373
+ const hidden = drawerType !== 'permanent' && progress.value >= 1 - PROGRESS_EPSILON;
374
+ if (Platform.OS === 'android') {
375
+ const importantForAccessibility = hidden ? 'no-hide-descendants' : 'auto';
376
+ return {
377
+ importantForAccessibility
378
+ };
379
+ }
380
+ return {
381
+ accessibilityElementsHidden: hidden
382
+ };
383
+ }, [drawerType, progress]);
384
+ const drawerContentAnimatedProps = useAnimatedProps(() => {
385
+ const hidden = drawerType !== 'permanent' && progress.value < 1 - PROGRESS_EPSILON;
386
+ if (Platform.OS === 'android') {
387
+ const importantForAccessibility = hidden ? 'no-hide-descendants' : 'auto';
388
+ return {
389
+ importantForAccessibility
390
+ };
391
+ }
392
+ return {
393
+ accessibilityElementsHidden: hidden
394
+ };
395
+ }, [drawerType, progress]);
325
396
  return /*#__PURE__*/_jsx(GestureHandlerRootView, {
326
397
  style: [styles.container, style],
327
398
  children: /*#__PURE__*/_jsx(DrawerProgressContext.Provider, {
@@ -329,7 +400,7 @@ export function Drawer({
329
400
  children: /*#__PURE__*/_jsx(DrawerGestureContext.Provider, {
330
401
  value: pan,
331
402
  children: /*#__PURE__*/_jsx(GestureDetector, {
332
- gesture: pan,
403
+ gesture: gesture,
333
404
  children: /*#__PURE__*/_jsxs(Animated.View, {
334
405
  style: [styles.main, {
335
406
  flexDirection: drawerType === 'permanent' ? isRight && direction === 'ltr' || !isRight && direction === 'rtl' ? 'row' : 'row-reverse' : 'row'
@@ -338,8 +409,8 @@ export function Drawer({
338
409
  ref: contentRef,
339
410
  onLayout: onLayout,
340
411
  style: [styles.content, contentAnimatedStyle],
341
- children: [/*#__PURE__*/_jsx(View, {
342
- "aria-hidden": isOpen && drawerType !== 'permanent',
412
+ children: [/*#__PURE__*/_jsx(Animated.View, {
413
+ animatedProps: contentAnimatedProps,
343
414
  style: styles.content,
344
415
  children: children
345
416
  }), drawerType !== 'permanent' ? /*#__PURE__*/_jsx(Overlay, {
@@ -350,6 +421,7 @@ export function Drawer({
350
421
  accessibilityLabel: overlayAccessibilityLabel
351
422
  }) : null]
352
423
  }), /*#__PURE__*/_jsx(Animated.View, {
424
+ animatedProps: drawerContentAnimatedProps,
353
425
  removeClippedSubviews: Platform.OS !== 'ios',
354
426
  style: [styles.drawer, {
355
427
  position: drawerType === 'permanent' ? 'relative' : 'absolute'
@@ -1 +1 @@
1
- {"version":3,"names":["React","Dimensions","I18nManager","Keyboard","Platform","StatusBar","StyleSheet","View","Animated","interpolate","ReduceMotion","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnRN","useLatestCallback","DrawerGestureContext","DrawerProgressContext","getDrawerWidthNative","GestureDetector","GestureHandlerRootView","usePanGesture","Overlay","jsx","_jsx","jsxs","_jsxs","SWIPE_EDGE_WIDTH","SWIPE_MIN_OFFSET","SWIPE_MIN_DISTANCE","SWIPE_MIN_VELOCITY","minmax","value","start","end","Math","min","max","Drawer","direction","getConstants","isRTL","drawerPosition","drawerStyle","drawerType","configureGestureHandler","hideStatusBarOnOpen","keyboardDismissMode","onClose","onOpen","onGestureStart","onGestureCancel","onGestureEnd","onTransitionStart","onTransitionEnd","open","overlayStyle","overlayAccessibilityLabel","statusBarAnimation","swipeEnabled","OS","swipeEdgeWidth","swipeMinDistance","swipeMinVelocity","renderDrawerContent","children","style","width","customWidth","flatten","isOpen","isRight","getDrawerTranslationX","useCallback","containerWidth","drawerWidth","hideStatusBar","hide","setHidden","useLayoutEffect","hideKeyboard","dismiss","onGestureBegin","onGestureFinish","onGestureAbort","hitSlop","useMemo","right","undefined","left","initialWidth","useState","get","layoutWidth","translationX","contentRef","useRef","updateLayout","set","measureLayout","current","measure","_x","_y","handle","subscription","addEventListener","requestAnimationFrame","cancelAnimationFrame","remove","onLayout","event","nativeEvent","layout","touchStartX","touchX","isGestureActive","onAnimationStart","onAnimationEnd","finished","animatingTo","toggleDrawer","velocity","toValue","isSameDirection","effectiveVelocity","stiffness","damping","mass","overshootClamping","reduceMotion","Never","startX","panGestureConfig","config","onBegin","x","onActivate","onUpdate","onDeactivate","canceled","velocityX","nextOpen","abs","activeOffsetX","failOffsetY","enabled","pan","translateX","touchDistance","drawerAnimatedStyle","distanceFromEdge","zIndex","transform","contentAnimatedStyle","progress","styles","container","Provider","gesture","main","flexDirection","ref","content","onPress","accessibilityLabel","removeClippedSubviews","drawer","position","create","flex","top","bottom","maxWidth","backgroundColor","select","web","default","overflow"],"sourceRoot":"../../../src","sources":["views/Drawer.native.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Dimensions","I18nManager","Keyboard","Platform","StatusBar","StyleSheet","Animated","interpolate","ReduceMotion","useAnimatedProps","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnRN","useLatestCallback","DrawerGestureContext","DrawerProgressContext","getDrawerWidthNative","GestureDetector","GestureHandlerRootView","useLongPressGesture","usePanGesture","useSimultaneousGestures","Overlay","jsx","_jsx","jsxs","_jsxs","SWIPE_EDGE_WIDTH","SWIPE_MIN_OFFSET","SWIPE_MIN_DISTANCE","SWIPE_MIN_VELOCITY","PEEK_DELAY","PROGRESS_EPSILON","SPRING_CONFIG","stiffness","damping","mass","overshootClamping","reduceMotion","Never","minmax","value","start","end","Math","min","max","Drawer","direction","getConstants","isRTL","drawerPosition","drawerStyle","drawerType","configureGestureHandler","hideStatusBarOnOpen","keyboardDismissMode","onClose","onOpen","onGestureStart","onGestureCancel","onGestureEnd","onTransitionStart","onTransitionEnd","open","overlayStyle","overlayAccessibilityLabel","statusBarAnimation","swipeEnabled","OS","swipeEdgeWidth","swipeMinDistance","swipeMinVelocity","renderDrawerContent","children","style","width","customWidth","flatten","isOpen","isRight","getDrawerTranslationX","useCallback","containerWidth","drawerWidth","hideStatusBar","hide","setHidden","useLayoutEffect","hideKeyboard","dismiss","onGestureBegin","onGestureFinish","onGestureAbort","hitSlop","useMemo","right","undefined","left","initialWidth","useState","get","layoutWidth","translationX","contentRef","useRef","updateLayout","set","measureLayout","current","measure","_x","_y","handle","subscription","addEventListener","requestAnimationFrame","cancelAnimationFrame","remove","onLayout","event","nativeEvent","layout","touchStartX","touchX","isGestureActive","isPeeking","onAnimationStart","onAnimationEnd","finished","animatingTo","toggleDrawer","velocity","toValue","isSameDirection","effectiveVelocity","panGestureConfig","config","onBegin","x","onActivate","onUpdate","changeX","onDeactivate","canceled","velocityX","nextOpen","abs","activeOffsetX","failOffsetY","enabled","pan","longPress","minDuration","closedTranslation","peekDistance","peekTranslation","gesture","translateX","touchDistance","drawerAnimatedStyle","distanceFromEdge","zIndex","transform","contentAnimatedStyle","progress","contentAnimatedProps","hidden","importantForAccessibility","accessibilityElementsHidden","drawerContentAnimatedProps","styles","container","Provider","View","main","flexDirection","ref","content","animatedProps","onPress","accessibilityLabel","removeClippedSubviews","drawer","position","create","flex","top","bottom","maxWidth","backgroundColor","select","web","default","overflow"],"sourceRoot":"../../../src","sources":["views/Drawer.native.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,UAAU,EACVC,WAAW,EACXC,QAAQ,EAERC,QAAQ,EACRC,SAAS,EACTC,UAAU,QAGL,cAAc;AACrB,OAAOC,QAAQ,IACbC,WAAW,EACXC,YAAY,EACZC,gBAAgB,EAChBC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAChC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,OAAOC,iBAAiB,MAAM,qBAAqB;AAGnD,SAASC,oBAAoB,QAAQ,kCAA+B;AACpE,SAASC,qBAAqB,QAAQ,mCAAgC;AACtE,SAASC,oBAAoB,QAAQ,4BAAyB;AAC9D,SACEC,eAAe,EACfC,sBAAsB,EAEtBC,mBAAmB,EACnBC,aAAa,EACbC,uBAAuB,QAClB,kBAAkB;AACzB,SAASC,OAAO,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,MAAMC,gBAAgB,GAAG,EAAE;AAC3B,MAAMC,gBAAgB,GAAG,CAAC;AAC1B,MAAMC,kBAAkB,GAAG,EAAE;AAC7B,MAAMC,kBAAkB,GAAG,GAAG;AAC9B,MAAMC,UAAU,GAAG,GAAG;AACtB,MAAMC,gBAAgB,GAAG,IAAI;AAE7B,MAAMC,aAAa,GAAG;EACpBC,SAAS,EAAE,GAAG;EACdC,OAAO,EAAE,EAAE;EACXC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE,IAAI;EACvBC,YAAY,EAAEhC,YAAY,CAACiC;AAC7B,CAAC;AAED,MAAMC,MAAM,GAAGA,CAACC,KAAa,EAAEC,KAAa,EAAEC,GAAW,KAAK;EAC5D,SAAS;;EAET,OAAOC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAACL,KAAK,EAAEC,KAAK,CAAC,EAAEC,GAAG,CAAC;AAC9C,CAAC;AAED,OAAO,SAASI,MAAMA,CAAC;EACrBC,SAAS,GAAGjD,WAAW,CAACkD,YAAY,CAAC,CAAC,CAACC,KAAK,GAAG,KAAK,GAAG,KAAK;EAC5DC,cAAc,GAAGH,SAAS,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM;EACvDI,WAAW;EACXC,UAAU,GAAG,OAAO;EACpBC,uBAAuB;EACvBC,mBAAmB,GAAG,KAAK;EAC3BC,mBAAmB,GAAG,SAAS;EAC/BC,OAAO;EACPC,MAAM;EACNC,cAAc;EACdC,eAAe;EACfC,YAAY;EACZC,iBAAiB;EACjBC,eAAe;EACfC,IAAI;EACJC,YAAY;EACZC,yBAAyB;EACzBC,kBAAkB,GAAG,OAAO;EAC5BC,YAAY,GAAGnE,QAAQ,CAACoE,EAAE,KAAK,KAAK,IAClCpE,QAAQ,CAACoE,EAAE,KAAK,SAAS,IACzBpE,QAAQ,CAACoE,EAAE,KAAK,OAAO;EACzBC,cAAc,GAAG3C,gBAAgB;EACjC4C,gBAAgB,GAAG1C,kBAAkB;EACrC2C,gBAAgB,GAAG1C,kBAAkB;EACrC2C,mBAAmB;EACnBC,QAAQ;EACRC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK,EAAEC;EAAY,CAAC,GAAG1E,UAAU,CAAC2E,OAAO,CAAC1B,WAAW,CAAC,IAAI,CAAC,CAAC;EAEpE,MAAM2B,MAAM,GAAG1B,UAAU,KAAK,WAAW,GAAG,IAAI,GAAGW,IAAI;EACvD,MAAMgB,OAAO,GAAG7B,cAAc,KAAK,OAAO;EAE1C,MAAM8B,qBAAqB,GAAGpF,KAAK,CAACqF,WAAW,CAC7C,CAAClB,IAAa,EAAEmB,cAAsB,KAAK;IACzC,SAAS;;IAET,MAAMC,WAAW,GAAGpE,oBAAoB,CAAC;MACvCmE,cAAc;MACdN;IACF,CAAC,CAAC;IAEF,IAAI1B,cAAc,KAAK,MAAM,EAAE;MAC7B,OAAOa,IAAI,GAAG,CAAC,GAAG,CAACoB,WAAW;IAChC;IAEA,OAAOpB,IAAI,GAAG,CAAC,GAAGoB,WAAW;EAC/B,CAAC,EACD,CAACP,WAAW,EAAE1B,cAAc,CAC9B,CAAC;EAED,MAAMkC,aAAa,GAAGxF,KAAK,CAACqF,WAAW,CACpCI,IAAa,IAAK;IACjB,IAAI/B,mBAAmB,EAAE;MACvBrD,SAAS,CAACqF,SAAS,CAACD,IAAI,EAAEnB,kBAAkB,CAAC;IAC/C;EACF,CAAC,EACD,CAACZ,mBAAmB,EAAEY,kBAAkB,CAC1C,CAAC;EAEDtE,KAAK,CAAC2F,eAAe,CAAC,MAAM;IAC1BH,aAAa,CAACN,MAAM,CAAC;IAErB,OAAO,MAAMM,aAAa,CAAC,KAAK,CAAC;EACnC,CAAC,EAAE,CAACN,MAAM,EAAExB,mBAAmB,EAAEY,kBAAkB,EAAEkB,aAAa,CAAC,CAAC;EAEpE,MAAMI,YAAY,GAAG5E,iBAAiB,CAAC,MAAM;IAC3C,IAAI2C,mBAAmB,KAAK,SAAS,EAAE;MACrCxD,QAAQ,CAAC0F,OAAO,CAAC,CAAC;IACpB;EACF,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG9E,iBAAiB,CAAC,MAAM;IAC7C8C,cAAc,GAAG,CAAC;IAClB8B,YAAY,CAAC,CAAC;IACdJ,aAAa,CAAC,IAAI,CAAC;EACrB,CAAC,CAAC;EAEF,MAAMO,eAAe,GAAG/E,iBAAiB,CAAC,MAAM;IAC9CgD,YAAY,GAAG,CAAC;EAClB,CAAC,CAAC;EAEF,MAAMgC,cAAc,GAAGhF,iBAAiB,CAAC,MAAM;IAC7C+C,eAAe,GAAG,CAAC;EACrB,CAAC,CAAC;EAEF,MAAMkC,OAAO,GAAGjG,KAAK,CAACkG,OAAO,CAC3B,MACEf,OAAO;EACH;EACA;EACA;IAAEgB,KAAK,EAAE,CAAC;IAAEpB,KAAK,EAAEG,MAAM,GAAGkB,SAAS,GAAG3B;EAAe,CAAC,GACxD;IAAE4B,IAAI,EAAE,CAAC;IAAEtB,KAAK,EAAEG,MAAM,GAAGkB,SAAS,GAAG3B;EAAe,CAAC,EAC7D,CAACU,OAAO,EAAED,MAAM,EAAET,cAAc,CAClC,CAAC;EAED,MAAM,CAAC6B,YAAY,CAAC,GAAGtG,KAAK,CAACuG,QAAQ,CAAC,MAAMtG,UAAU,CAACuG,GAAG,CAAC,QAAQ,CAAC,CAACzB,KAAK,CAAC;EAE3E,MAAM0B,WAAW,GAAG5F,cAAc,CAACyF,YAAY,CAAC;EAChD,MAAMI,YAAY,GAAG7F,cAAc,CACjCuE,qBAAqB,CAACjB,IAAI,EAAEmC,YAAY,CAC1C,CAAC;EAED,MAAMK,UAAU,GAAG3G,KAAK,CAAC4G,MAAM,CAAkC,IAAI,CAAC;EAEtE,MAAMC,YAAY,GAAG7F,iBAAiB,CAAE+D,KAAa,IAAK;IACxD0B,WAAW,CAACK,GAAG,CAAC/B,KAAK,CAAC;IACtB2B,YAAY,CAACI,GAAG,CAAC1B,qBAAqB,CAACjB,IAAI,EAAEY,KAAK,CAAC,CAAC;EACtD,CAAC,CAAC;EAEF/E,KAAK,CAAC2F,eAAe,CAAC,MAAM;IAC1B,MAAMoB,aAAa,GAAGA,CAAA,KAAM;MAC1BJ,UAAU,CAACK,OAAO,EAAEC,OAAO,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEpC,KAAK,KAAK;QAC7C8B,YAAY,CAAC9B,KAAK,CAAC;MACrB,CAAC,CAAC;IACJ,CAAC;IAEDgC,aAAa,CAAC,CAAC;;IAEf;IACA;IACA,IAAIK,MAA0B;;IAE9B;IACA,MAAMC,YAAY,GAAGpH,UAAU,CAACqH,gBAAgB,CAAC,QAAQ,EAAE,MAAM;MAC/D;MACAF,MAAM,GAAGG,qBAAqB,CAAC,MAAM;QACnCR,aAAa,CAAC,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAM;MACX,IAAIK,MAAM,IAAI,IAAI,EAAE;QAClBI,oBAAoB,CAACJ,MAAM,CAAC;MAC9B;MAEAC,YAAY,CAACI,MAAM,CAAC,CAAC;IACvB,CAAC;;IAED;IACA;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,QAAQ,GAAG1H,KAAK,CAACqF,WAAW,CAC/BsC,KAAwB,IAAK;IAC5Bd,YAAY,CAACc,KAAK,CAACC,WAAW,CAACC,MAAM,CAAC9C,KAAK,CAAC;EAC9C,CAAC,EACD,CAAC8B,YAAY,CACf,CAAC;EAED,MAAMiB,WAAW,GAAGjH,cAAc,CAAC,CAAC,CAAC;EACrC,MAAMkH,MAAM,GAAGlH,cAAc,CAAC,CAAC,CAAC;EAChC,MAAMmH,eAAe,GAAGnH,cAAc,CAAC,KAAK,CAAC;EAC7C,MAAMoH,SAAS,GAAGpH,cAAc,CAAC,KAAK,CAAC;EAEvC,MAAMqH,gBAAgB,GAAGlH,iBAAiB,CAAEmD,IAAa,IAAK;IAC5DF,iBAAiB,GAAG,CAACE,IAAI,CAAC;EAC5B,CAAC,CAAC;EAEF,MAAMgE,cAAc,GAAGnH,iBAAiB,CACtC,CAACmD,IAAa,EAAEiE,QAAkB,KAAK;IACrC,IAAI,CAACA,QAAQ,EAAE;MACb;IACF;IAEAlE,eAAe,GAAG,CAACC,IAAI,CAAC;EAC1B,CACF,CAAC;EAED,MAAMkE,WAAW,GAAGxH,cAAc,CAA0B,IAAI,CAAC;EAEjE,MAAMyH,YAAY,GAAGtI,KAAK,CAACqF,WAAW,CACpC,CAAClB,IAAa,EAAEoE,QAAiB,KAAK;IACpC,SAAS;;IAETT,WAAW,CAAChB,GAAG,CAAC,CAAC,CAAC;IAClBiB,MAAM,CAACjB,GAAG,CAAC,CAAC,CAAC;IACbmB,SAAS,CAACnB,GAAG,CAAC,KAAK,CAAC;IAEpB,MAAMxB,cAAc,GAAGmB,WAAW,CAACD,GAAG,CAAC,CAAC;IACxC,MAAMgC,OAAO,GAAGpD,qBAAqB,CAACjB,IAAI,EAAEmB,cAAc,CAAC;IAE3D,IAAIoB,YAAY,CAACF,GAAG,CAAC,CAAC,KAAKgC,OAAO,EAAE;MAClC;IACF;IAEA,IAAIH,WAAW,CAAC7B,GAAG,CAAC,CAAC,MAAMrC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE;MACnD;IACF;IAEA,IAAIoE,QAAQ,KAAKnC,SAAS,EAAE;MAC1BrF,YAAY,CAACmH,gBAAgB,EAAE/D,IAAI,CAAC;IACtC;;IAEA;IACA;IACA,MAAMsE,eAAe,GACnBF,QAAQ,KAAKnC,SAAS,KACpBoC,OAAO,GAAG9B,YAAY,CAACF,GAAG,CAAC,CAAC,IAAI+B,QAAQ,GAAG,CAAC,IAC3CC,OAAO,GAAG9B,YAAY,CAACF,GAAG,CAAC,CAAC,IAAI+B,QAAQ,GAAG,CAAE,CAAC;IAEnD,MAAMG,iBAAiB,GAAGD,eAAe,GAAGF,QAAQ,GAAG,CAAC;IAExDF,WAAW,CAACvB,GAAG,CAAC3C,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;IACxCuC,YAAY,CAACI,GAAG,CACdhG,UAAU,CACR0H,OAAO,EACP;MACED,QAAQ,EAAEG,iBAAiB;MAC3BrG,SAAS,EAAE,GAAG;MACdC,OAAO,EAAE,EAAE;MACXC,IAAI,EAAE,CAAC;MACPC,iBAAiB,EAAE,IAAI;MACvBC,YAAY,EAAEhC,YAAY,CAACiC;IAC7B,CAAC,EACA0F,QAAQ,IAAK;MACZC,WAAW,CAACvB,GAAG,CAAC,IAAI,CAAC;MACrB/F,YAAY,CAACoH,cAAc,EAAEhE,IAAI,EAAEiE,QAAQ,CAAC;IAC9C,CACF,CACF,CAAC;IAED,IAAIjE,IAAI,EAAE;MACRpD,YAAY,CAAC8C,MAAM,CAAC;IACtB,CAAC,MAAM;MACL9C,YAAY,CAAC6C,OAAO,CAAC;IACvB;EACF,CAAC,EACD,CACEkE,WAAW,EACXC,MAAM,EACNE,SAAS,EACTxB,WAAW,EACXrB,qBAAqB,EACrBsB,YAAY,EACZ2B,WAAW,EACXH,gBAAgB,EAChBC,cAAc,EACdtE,MAAM,EACND,OAAO,CAEX,CAAC;EAED5D,KAAK,CAAC2F,eAAe,CAAC,MAAM;IAC1B2C,YAAY,CAACnE,IAAI,CAAC;EACpB,CAAC,EAAE,CAACkE,WAAW,EAAElE,IAAI,EAAEmE,YAAY,CAAC,CAAC;EAErC,MAAMK,gBAAgB,GAAG3I,KAAK,CAACkG,OAAO,CAAC,MAAM;IAC3C,MAAM0C,MAAwB,GAAG;MAC/BC,OAAO,EAAGlB,KAAK,IAAK;QAClB,SAAS;;QAETG,WAAW,CAAChB,GAAG,CAACa,KAAK,CAACmB,CAAC,CAAC;MAC1B,CAAC;MACDC,UAAU,EAAGpB,KAAK,IAAK;QACrB,SAAS;;QAETjB,YAAY,CAACI,GAAG,CAACJ,YAAY,CAACF,GAAG,CAAC,CAAC,GAAGmB,KAAK,CAACjB,YAAY,CAAC;QACzDuB,SAAS,CAACnB,GAAG,CAAC,KAAK,CAAC;QACpBkB,eAAe,CAAClB,GAAG,CAAC,IAAI,CAAC;QACzB/F,YAAY,CAAC+E,cAAc,CAAC;MAC9B,CAAC;MACDkD,QAAQ,EAAGrB,KAAK,IAAK;QACnB,SAAS;;QAETM,SAAS,CAACnB,GAAG,CAAC,KAAK,CAAC;QACpBkB,eAAe,CAAClB,GAAG,CAAC,IAAI,CAAC;QACzBiB,MAAM,CAACjB,GAAG,CAACa,KAAK,CAACmB,CAAC,CAAC;QACnBpC,YAAY,CAACI,GAAG,CAACJ,YAAY,CAACF,GAAG,CAAC,CAAC,GAAGmB,KAAK,CAACsB,OAAO,CAAC;MACtD,CAAC;MACDC,YAAY,EAAGvB,KAAK,IAAK;QACvB,SAAS;;QAETK,eAAe,CAAClB,GAAG,CAAC,KAAK,CAAC;QAE1B,IAAIa,KAAK,CAACwB,QAAQ,EAAE;UAClBb,YAAY,CAACnE,IAAI,EAAEwD,KAAK,CAACyB,SAAS,CAAC;UACnCrI,YAAY,CAACiF,cAAc,CAAC;UAE5B;QACF;QAEA,MAAMqD,QAAQ,GACXtG,IAAI,CAACuG,GAAG,CAAC3B,KAAK,CAACjB,YAAY,CAAC,GAAG3E,gBAAgB,IAC9CgB,IAAI,CAACuG,GAAG,CAAC3B,KAAK,CAACyB,SAAS,CAAC,GAAGzE,gBAAgB,IAC9C5B,IAAI,CAACuG,GAAG,CAAC3B,KAAK,CAACjB,YAAY,CAAC,GAAGhC,gBAAgB,GAC3CpB,cAAc,KAAK,MAAM;QACvB;QACA,CAACqE,KAAK,CAACyB,SAAS,KAAK,CAAC,GAAGzB,KAAK,CAACjB,YAAY,GAAGiB,KAAK,CAACyB,SAAS,IAC7D,CAAC;QACD;QACA,CAACzB,KAAK,CAACyB,SAAS,KAAK,CAAC,GAAGzB,KAAK,CAACjB,YAAY,GAAGiB,KAAK,CAACyB,SAAS,IAC7D,CAAC,GACHjF,IAAI;QAEVmE,YAAY,CAACe,QAAQ,EAAE1B,KAAK,CAACyB,SAAS,CAAC;QACvCrI,YAAY,CAACgF,eAAe,CAAC;MAC/B,CAAC;MACDwD,aAAa,EAAE,CAAC,CAACxH,gBAAgB,EAAEA,gBAAgB,CAAC;MACpDyH,WAAW,EAAE,CAAC,CAACzH,gBAAgB,EAAEA,gBAAgB,CAAC;MAClDkE,OAAO;MACPwD,OAAO,EAAEjG,UAAU,KAAK,WAAW,IAAIe;IACzC,CAAC;IAED,OAAOd,uBAAuB,GAAGmF,MAAM,CAAC,IAAIA,MAAM;EACpD,CAAC,EAAE,CACDnF,uBAAuB,EACvBH,cAAc,EACdE,UAAU,EACVyC,OAAO,EACP+B,eAAe,EACfC,SAAS,EACTnC,cAAc,EACdE,cAAc,EACdD,eAAe,EACf5B,IAAI,EACJI,YAAY,EACZG,gBAAgB,EAChBC,gBAAgB,EAChB2D,YAAY,EACZR,WAAW,EACXC,MAAM,EACNrB,YAAY,CACb,CAAC;EAEF,MAAMgD,GAAG,GAAGnI,aAAa,CAACoH,gBAAgB,CAAC;EAE3C,MAAMgB,SAAS,GAAGrI,mBAAmB,CAAC;IACpCmI,OAAO,EAAE,CAACvE,MAAM,IAAIyD,gBAAgB,CAACc,OAAO;IAC5CxD,OAAO,EAAE0C,gBAAgB,CAAC1C,OAAO;IACjC2D,WAAW,EAAE1H,UAAU;IACvB6G,UAAU,EAAEA,CAAA,KAAM;MAChB,SAAS;;MAET,IAAIf,eAAe,CAACxB,GAAG,CAAC,CAAC,EAAE;QACzB;MACF;MAEA,MAAMlB,cAAc,GAAGmB,WAAW,CAACD,GAAG,CAAC,CAAC;MACxC,MAAMqD,iBAAiB,GAAGzE,qBAAqB,CAAC,KAAK,EAAEE,cAAc,CAAC;MAEtE,IAAIoB,YAAY,CAACF,GAAG,CAAC,CAAC,KAAKqD,iBAAiB,EAAE;QAC5C;MACF;MAEA,MAAMC,YAAY,GAAG/G,IAAI,CAACC,GAAG,CAC3ByB,cAAc,EACd1B,IAAI,CAACuG,GAAG,CAACO,iBAAiB,CAC5B,CAAC;MAED,IAAIC,YAAY,IAAI,CAAC,EAAE;QACrB;MACF;MAEA,MAAMC,eAAe,GACnBF,iBAAiB,GAAGC,YAAY,IAAIxG,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MAEzE2E,SAAS,CAACnB,GAAG,CAAC,IAAI,CAAC;MACnBJ,YAAY,CAACI,GAAG,CAAChG,UAAU,CAACiJ,eAAe,EAAE3H,aAAa,CAAC,CAAC;IAC9D,CAAC;IACD8G,YAAY,EAAEA,CAAA,KAAM;MAClB,SAAS;;MAET,IAAIjB,SAAS,CAACzB,GAAG,CAAC,CAAC,EAAE;QACnByB,SAAS,CAACnB,GAAG,CAAC,KAAK,CAAC;QAEpB,MAAMxB,cAAc,GAAGmB,WAAW,CAACD,GAAG,CAAC,CAAC;QAExCE,YAAY,CAACI,GAAG,CACdhG,UAAU,CACRsE,qBAAqB,CAAC,KAAK,EAAEE,cAAc,CAAC,EAC5ClD,aACF,CACF,CAAC;MACH;IACF;EACF,CAAC,CAAC;EAEF,MAAM4H,OAAO,GAAGxI,uBAAuB,CAACkI,GAAG,EAAEC,SAAS,CAAC;EAEvD,MAAMM,UAAU,GAAGrJ,eAAe,CAAC,MAAM;IACvC,MAAM2E,WAAW,GAAGpE,oBAAoB,CAAC;MACvCmE,cAAc,EAAEmB,WAAW,CAACD,GAAG,CAAC,CAAC;MACjCxB;IACF,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMkF,aAAa,GACjB1G,UAAU,KAAK,OAAO,IAAIwE,eAAe,CAACxB,GAAG,CAAC,CAAC,GAC3C7D,MAAM,CACJW,cAAc,KAAK,MAAM,GACrBwE,WAAW,CAACtB,GAAG,CAAC,CAAC,GAAGjB,WAAW,GAC/BkB,WAAW,CAACD,GAAG,CAAC,CAAC,GAAGjB,WAAW,GAAGuC,WAAW,CAACtB,GAAG,CAAC,CAAC,EACvD,CAAC,EACDC,WAAW,CAACD,GAAG,CAAC,CAClB,CAAC,GACD,CAAC;IAEP,MAAMyD,UAAU,GACd3G,cAAc,KAAK,MAAM,GACrBX,MAAM,CAAC+D,YAAY,CAACF,GAAG,CAAC,CAAC,GAAG0D,aAAa,EAAE,CAAC3E,WAAW,EAAE,CAAC,CAAC,GAC3D5C,MAAM,CAAC+D,YAAY,CAACF,GAAG,CAAC,CAAC,GAAG0D,aAAa,EAAE,CAAC,EAAE3E,WAAW,CAAC;IAEhE,OAAO0E,UAAU;EACnB,CAAC,CAAC;EAEF,MAAME,mBAAmB,GAAGxJ,gBAAgB,CAAC,MAAM;IACjD,MAAM4E,WAAW,GAAGpE,oBAAoB,CAAC;MACvCmE,cAAc,EAAEmB,WAAW,CAACD,GAAG,CAAC,CAAC;MACjCxB;IACF,CAAC,CAAC;IAEF,MAAMoF,gBAAgB,GAAG3D,WAAW,CAACD,GAAG,CAAC,CAAC,GAAGjB,WAAW;IAExD,OAAO;MACLR,KAAK,EAAEQ,WAAW;MAClB;MACA;MACA;MACA;MACA;MACA8E,MAAM,EACJ7G,UAAU,KAAK,MAAM,GACjByG,UAAU,CAACzD,GAAG,CAAC,CAAC,KAAK,CAAC,GACpB,CAAC,CAAC,GACF,CAAC,GACHyD,UAAU,CAACzD,GAAG,CAAC,CAAC,KAAK,CAAC,GACpB,CAAC,GACD,CAAC;MACT8D,SAAS,EACP9G,UAAU,KAAK,WAAW;MACtB;MACA;MACA,EAAE,GACF,CACE;QACEyG,UAAU;QACR;QACA,CAACzG,UAAU,KAAK,MAAM,GAAG,CAAC,GAAGyG,UAAU,CAACzD,GAAG,CAAC,CAAC,KAC5CrD,SAAS,KAAK,KAAK,GAChBG,cAAc,KAAK,MAAM,GACvB,CAAC8G,gBAAgB,GACjB,CAAC,GACH9G,cAAc,KAAK,MAAM,GACvB,CAAC,GACD8G,gBAAgB;MAC1B,CAAC;IAEX,CAAC;EACH,CAAC,EAAE,CACDpF,WAAW,EACX7B,SAAS,EACTG,cAAc,EACdE,UAAU,EACViD,WAAW,EACXwD,UAAU,CACX,CAAC;EAEF,MAAMM,oBAAoB,GAAG5J,gBAAgB,CAAC,MAAM;IAClD,MAAM4E,WAAW,GAAGpE,oBAAoB,CAAC;MACvCmE,cAAc,EAAEmB,WAAW,CAACD,GAAG,CAAC,CAAC;MACjCxB;IACF,CAAC,CAAC;IAEF,OAAO;MACL;MACAqF,MAAM,EAAEJ,UAAU,CAACzD,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAGhD,UAAU,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;MAClE8G,SAAS,EACP9G,UAAU,KAAK,WAAW;MACtB;MACA;MACA,EAAE,GACF,CACE;QACEyG,UAAU;QACR;QACAzG,UAAU,KAAK,OAAO,GAClB,CAAC,GACDyG,UAAU,CAACzD,GAAG,CAAC,CAAC,GAChBjB,WAAW,IAAIjC,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;MACzD,CAAC;IAEX,CAAC;EACH,CAAC,EAAE,CAAC0B,WAAW,EAAE1B,cAAc,EAAEE,UAAU,EAAEiD,WAAW,EAAEwD,UAAU,CAAC,CAAC;EAEtE,MAAMO,QAAQ,GAAG5J,eAAe,CAAC,MAAM;IACrC,MAAM0E,cAAc,GAAGmB,WAAW,CAACD,GAAG,CAAC,CAAC;IAExC,OAAOhD,UAAU,KAAK,WAAW,GAC7B,CAAC,GACDhD,WAAW,CACTyJ,UAAU,CAACzD,GAAG,CAAC,CAAC,EAChB,CACEpB,qBAAqB,CAAC,KAAK,EAAEE,cAAc,CAAC,EAC5CF,qBAAqB,CAAC,IAAI,EAAEE,cAAc,CAAC,CAC5C,EACD,CAAC,CAAC,EAAE,CAAC,CACP,CAAC;EACP,CAAC,CAAC;EAEF,MAAMmF,oBAAoB,GAAG/J,gBAAgB,CAAY,MAAM;IAC7D,MAAMgK,MAAM,GACVlH,UAAU,KAAK,WAAW,IAAIgH,QAAQ,CAAC5H,KAAK,IAAI,CAAC,GAAGT,gBAAgB;IAEtE,IAAI/B,QAAQ,CAACoE,EAAE,KAAK,SAAS,EAAE;MAC7B,MAAMmG,yBAAiE,GACrED,MAAM,GAAG,qBAAqB,GAAG,MAAM;MAEzC,OAAO;QAAEC;MAA0B,CAAC;IACtC;IAEA,OAAO;MAAEC,2BAA2B,EAAEF;IAAO,CAAC;EAChD,CAAC,EAAE,CAAClH,UAAU,EAAEgH,QAAQ,CAAC,CAAC;EAE1B,MAAMK,0BAA0B,GAAGnK,gBAAgB,CAAY,MAAM;IACnE,MAAMgK,MAAM,GACVlH,UAAU,KAAK,WAAW,IAAIgH,QAAQ,CAAC5H,KAAK,GAAG,CAAC,GAAGT,gBAAgB;IAErE,IAAI/B,QAAQ,CAACoE,EAAE,KAAK,SAAS,EAAE;MAC7B,MAAMmG,yBAAiE,GACrED,MAAM,GAAG,qBAAqB,GAAG,MAAM;MAEzC,OAAO;QAAEC;MAA0B,CAAC;IACtC;IAEA,OAAO;MAAEC,2BAA2B,EAAEF;IAAO,CAAC;EAChD,CAAC,EAAE,CAAClH,UAAU,EAAEgH,QAAQ,CAAC,CAAC;EAE1B,oBACE7I,IAAA,CAACN,sBAAsB;IAACyD,KAAK,EAAE,CAACgG,MAAM,CAACC,SAAS,EAAEjG,KAAK,CAAE;IAAAD,QAAA,eACvDlD,IAAA,CAACT,qBAAqB,CAAC8J,QAAQ;MAACpI,KAAK,EAAE4H,QAAS;MAAA3F,QAAA,eAC9ClD,IAAA,CAACV,oBAAoB,CAAC+J,QAAQ;QAACpI,KAAK,EAAE8G,GAAI;QAAA7E,QAAA,eACxClD,IAAA,CAACP,eAAe;UAAC4I,OAAO,EAAEA,OAAQ;UAAAnF,QAAA,eAEhChD,KAAA,CAACtB,QAAQ,CAAC0K,IAAI;YACZnG,KAAK,EAAE,CACLgG,MAAM,CAACI,IAAI,EACX;cACEC,aAAa,EACX3H,UAAU,KAAK,WAAW,GACrB2B,OAAO,IAAIhC,SAAS,KAAK,KAAK,IAC9B,CAACgC,OAAO,IAAIhC,SAAS,KAAK,KAAM,GAC/B,KAAK,GACL,aAAa,GACf;YACR,CAAC,CACD;YAAA0B,QAAA,gBAEFhD,KAAA,CAACtB,QAAQ,CAAC0K,IAAI;cACZG,GAAG,EAAEzE,UAAW;cAChBe,QAAQ,EAAEA,QAAS;cACnB5C,KAAK,EAAE,CAACgG,MAAM,CAACO,OAAO,EAAEd,oBAAoB,CAAE;cAAA1F,QAAA,gBAE9ClD,IAAA,CAACpB,QAAQ,CAAC0K,IAAI;gBACZK,aAAa,EAAEb,oBAAqB;gBACpC3F,KAAK,EAAEgG,MAAM,CAACO,OAAQ;gBAAAxG,QAAA,EAErBA;cAAQ,CACI,CAAC,EACfrB,UAAU,KAAK,WAAW,gBACzB7B,IAAA,CAACF,OAAO;gBACN0C,IAAI,EAAEA,IAAK;gBACXqG,QAAQ,EAAEA,QAAS;gBACnBe,OAAO,EAAEA,CAAA,KAAMjD,YAAY,CAAC,KAAK,CAAE;gBACnCxD,KAAK,EAAEV,YAAa;gBACpBoH,kBAAkB,EAAEnH;cAA0B,CAC/C,CAAC,GACA,IAAI;YAAA,CACK,CAAC,eAChB1C,IAAA,CAACpB,QAAQ,CAAC0K,IAAI;cACZK,aAAa,EAAET,0BAA2B;cAC1CY,qBAAqB,EAAErL,QAAQ,CAACoE,EAAE,KAAK,KAAM;cAC7CM,KAAK,EAAE,CACLgG,MAAM,CAACY,MAAM,EACb;gBACEC,QAAQ,EACNnI,UAAU,KAAK,WAAW,GAAG,UAAU,GAAG;cAC9C,CAAC,EACD2G,mBAAmB,EACnB5G,WAAW,CACX;cAAAsB,QAAA,EAEDD,mBAAmB,CAAC;YAAC,CACT,CAAC;UAAA,CACH;QAAC,CACD;MAAC,CACW;IAAC,CACF;EAAC,CACX,CAAC;AAE7B;AAEA,MAAMkG,MAAM,GAAGxK,UAAU,CAACsL,MAAM,CAAC;EAC/Bb,SAAS,EAAE;IACTc,IAAI,EAAE;EACR,CAAC;EACDH,MAAM,EAAE;IACNI,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,MAAM;IAChBC,eAAe,EAAE;EACnB,CAAC;EACDZ,OAAO,EAAE;IACPQ,IAAI,EAAE;EACR,CAAC;EACDX,IAAI,EAAE;IACJW,IAAI,EAAE,CAAC;IACP,GAAGzL,QAAQ,CAAC8L,MAAM,CAAC;MACjB;MACA;MACAC,GAAG,EAAE,IAAI;MACTC,OAAO,EAAE;QAAEC,QAAQ,EAAE;MAAS;IAChC,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
@@ -17,4 +17,12 @@ export function usePanGesture(config) {
17
17
  React.useDebugValue(config);
18
18
  return undefined;
19
19
  }
20
+ export function useLongPressGesture(config) {
21
+ React.useDebugValue(config);
22
+ return undefined;
23
+ }
24
+ export function useSimultaneousGestures(...gestures) {
25
+ React.useDebugValue(gestures);
26
+ return undefined;
27
+ }
20
28
  //# sourceMappingURL=GestureHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Fragment","_Fragment","jsx","_jsx","GestureDetector","gesture","_0","userSelect","_1","children","GestureHandlerRootView","usePanGesture","config","useDebugValue","undefined"],"sourceRoot":"../../../src","sources":["views/GestureHandler.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAYpC,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,OAAO,EAAEC,EAAE;EACXC,UAAU,EAAEC,EAAE;EACdC;AACoB,CAAC,KAAK;EAC1B,oBAAON,IAAA,CAAAF,SAAA;IAAAQ,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGX,IAAI;AAE1C,OAAO,SAASY,aAAaA,CAACC,MAAwB,EAAE;EACtDd,KAAK,CAACe,aAAa,CAACD,MAAM,CAAC;EAE3B,OAAOE,SAAS;AAClB","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Fragment","_Fragment","jsx","_jsx","GestureDetector","gesture","_0","userSelect","_1","children","GestureHandlerRootView","usePanGesture","config","useDebugValue","undefined","useLongPressGesture","useSimultaneousGestures","gestures"],"sourceRoot":"../../../src","sources":["views/GestureHandler.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAepC,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,OAAO,EAAEC,EAAE;EACXC,UAAU,EAAEC,EAAE;EACdC;AACoB,CAAC,KAAK;EAC1B,oBAAON,IAAA,CAAAF,SAAA;IAAAQ,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGX,IAAI;AAE1C,OAAO,SAASY,aAAaA,CAACC,MAAwB,EAAE;EACtDd,KAAK,CAACe,aAAa,CAACD,MAAM,CAAC;EAE3B,OAAOE,SAAS;AAClB;AAEA,OAAO,SAASC,mBAAmBA,CAACH,MAA8B,EAAE;EAClEd,KAAK,CAACe,aAAa,CAACD,MAAM,CAAC;EAE3B,OAAOE,SAAS;AAClB;AAEA,OAAO,SAASE,uBAAuBA,CACrC,GAAGC,QAAuD,EAC1D;EACAnB,KAAK,CAACe,aAAa,CAACI,QAAQ,CAAC;EAE7B,OAAOH,SAAS;AAClB","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export { GestureDetector, GestureHandlerRootView, usePanGesture } from 'react-native-gesture-handler';
3
+ export { GestureDetector, GestureHandlerRootView, useLongPressGesture, usePanGesture, useSimultaneousGestures } from 'react-native-gesture-handler';
4
4
  //# sourceMappingURL=GestureHandlerNative.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GestureDetector","GestureHandlerRootView","usePanGesture"],"sourceRoot":"../../../src","sources":["views/GestureHandlerNative.tsx"],"mappings":";;AAIA,SACEA,eAAe,EACfC,sBAAsB,EACtBC,aAAa,QACR,8BAA8B","ignoreList":[]}
1
+ {"version":3,"names":["GestureDetector","GestureHandlerRootView","useLongPressGesture","usePanGesture","useSimultaneousGestures"],"sourceRoot":"../../../src","sources":["views/GestureHandlerNative.tsx"],"mappings":";;AAIA,SACEA,eAAe,EACfC,sBAAsB,EACtBC,mBAAmB,EACnBC,aAAa,EACbC,uBAAuB,QAClB,8BAA8B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../src/views/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAU,CAAC;AAM5C,wBAAgB,MAAM,CAAC,EACrB,SAAiB,EACjB,cAAuD,EACvD,WAAW,EACX,UAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACN,EAAE,WAAW,qBA+Hb"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../src/views/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAU,CAAC;AAM5C,wBAAgB,MAAM,CAAC,EACrB,SAAiB,EACjB,cAAuD,EACvD,WAAW,EACX,UAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACN,EAAE,WAAW,qBAmIb"}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.native.d.ts","sourceRoot":"","sources":["../../../../src/views/Drawer.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAU,CAAC;AAuB5C,wBAAgB,MAAM,CAAC,EACrB,SAA4D,EAC5D,cAAuD,EACvD,WAAW,EACX,UAAoB,EACpB,uBAAuB,EACvB,mBAA2B,EAC3B,mBAA+B,EAC/B,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,yBAAyB,EACzB,kBAA4B,EAC5B,YAEyB,EACzB,cAAiC,EACjC,gBAAqC,EACrC,gBAAqC,EACrC,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACN,EAAE,WAAW,qBAsfb"}
1
+ {"version":3,"file":"Drawer.native.d.ts","sourceRoot":"","sources":["../../../../src/views/Drawer.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAU,CAAC;AAmC5C,wBAAgB,MAAM,CAAC,EACrB,SAA4D,EAC5D,cAAuD,EACvD,WAAW,EACX,UAAoB,EACpB,uBAAuB,EACvB,mBAA2B,EAC3B,mBAA+B,EAC/B,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,yBAAyB,EACzB,kBAA4B,EAC5B,YAEyB,EACzB,cAAiC,EACjC,gBAAqC,EACrC,gBAAqC,EACrC,mBAAmB,EACnB,QAAQ,EACR,KAAK,GACN,EAAE,WAAW,qBA4kBb"}
@@ -1,13 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { View } from 'react-native';
3
- import type { PanGesture, PanGestureConfig } from 'react-native-gesture-handler';
3
+ import type { ComposedGesture, LongPressGesture, LongPressGestureConfig, PanGesture, PanGestureConfig } from 'react-native-gesture-handler';
4
4
  type GestureDetectorProps = {
5
- gesture: PanGesture | undefined;
5
+ gesture: ComposedGesture | PanGesture | undefined;
6
6
  userSelect?: 'none' | 'auto' | 'text';
7
7
  children: React.ReactNode;
8
8
  };
9
9
  export declare const GestureDetector: ({ gesture: _0, userSelect: _1, children, }: GestureDetectorProps) => React.JSX.Element;
10
10
  export declare const GestureHandlerRootView: typeof View;
11
11
  export declare function usePanGesture(config: PanGestureConfig): undefined;
12
+ export declare function useLongPressGesture(config: LongPressGestureConfig): undefined;
13
+ export declare function useSimultaneousGestures(...gestures: (LongPressGesture | PanGesture | undefined)[]): undefined;
12
14
  export type { PanGesture, PanGestureConfig, } from 'react-native-gesture-handler';
13
15
  //# sourceMappingURL=GestureHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GestureHandler.d.ts","sourceRoot":"","sources":["../../../../src/views/GestureHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,4CAI7B,oBAAoB,sBAEtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAO,CAAC;AAE3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,aAIrD;AAED,YAAY,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"GestureHandler.d.ts","sourceRoot":"","sources":["../../../../src/views/GestureHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,4CAI7B,oBAAoB,sBAEtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAO,CAAC;AAE3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,aAIrD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,aAIjE;AAED,wBAAgB,uBAAuB,CACrC,GAAG,QAAQ,EAAE,CAAC,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,aAK3D;AAED,YAAY,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,8BAA8B,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export type { PanGesture, PanGestureConfig, } from 'react-native-gesture-handler';
2
- export { GestureDetector, GestureHandlerRootView, usePanGesture, } from 'react-native-gesture-handler';
2
+ export { GestureDetector, GestureHandlerRootView, useLongPressGesture, usePanGesture, useSimultaneousGestures, } from 'react-native-gesture-handler';
3
3
  //# sourceMappingURL=GestureHandlerNative.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GestureHandlerNative.d.ts","sourceRoot":"","sources":["../../../../src/views/GestureHandlerNative.tsx"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,GACd,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"GestureHandlerNative.d.ts","sourceRoot":"","sources":["../../../../src/views/GestureHandlerNative.tsx"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,GACxB,MAAM,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-drawer-layout",
3
3
  "description": "Drawer component for React Native",
4
- "version": "5.0.0-alpha.15",
4
+ "version": "5.0.0-alpha.16",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -51,8 +51,8 @@
51
51
  "react-native": "0.85.3",
52
52
  "react-native-builder-bob": "^0.43.0",
53
53
  "react-native-gesture-handler": "^3.0.2",
54
- "react-native-reanimated": "4.3.1",
55
- "react-native-worklets": "0.8.3",
54
+ "react-native-reanimated": "4.5.3",
55
+ "react-native-worklets": "0.11.3",
56
56
  "typescript": "^6.0.3"
57
57
  },
58
58
  "peerDependencies": {
@@ -80,5 +80,5 @@
80
80
  ]
81
81
  ]
82
82
  },
83
- "gitHead": "f8dd4e8fa7b0c7ec159f9f58ab31660aca8f1bf6"
83
+ "gitHead": "a92d33a7bff634f9a217a9b017afe4c920696b89"
84
84
  }
@@ -8,10 +8,12 @@ import {
8
8
  StatusBar,
9
9
  StyleSheet,
10
10
  View,
11
+ type ViewProps,
11
12
  } from 'react-native';
12
13
  import Animated, {
13
14
  interpolate,
14
15
  ReduceMotion,
16
+ useAnimatedProps,
15
17
  useAnimatedStyle,
16
18
  useDerivedValue,
17
19
  useSharedValue,
@@ -28,7 +30,9 @@ import {
28
30
  GestureDetector,
29
31
  GestureHandlerRootView,
30
32
  type PanGestureConfig,
33
+ useLongPressGesture,
31
34
  usePanGesture,
35
+ useSimultaneousGestures,
32
36
  } from './GestureHandler';
33
37
  import { Overlay } from './Overlay';
34
38
 
@@ -36,6 +40,16 @@ const SWIPE_EDGE_WIDTH = 32;
36
40
  const SWIPE_MIN_OFFSET = 5;
37
41
  const SWIPE_MIN_DISTANCE = 60;
38
42
  const SWIPE_MIN_VELOCITY = 500;
43
+ const PEEK_DELAY = 160;
44
+ const PROGRESS_EPSILON = 0.05;
45
+
46
+ const SPRING_CONFIG = {
47
+ stiffness: 500,
48
+ damping: 40,
49
+ mass: 1,
50
+ overshootClamping: true,
51
+ reduceMotion: ReduceMotion.Never,
52
+ };
39
53
 
40
54
  const minmax = (value: number, start: number, end: number) => {
41
55
  'worklet';
@@ -147,7 +161,7 @@ export function Drawer({
147
161
  getDrawerTranslationX(open, initialWidth)
148
162
  );
149
163
 
150
- const contentRef = React.useRef<View>(null);
164
+ const contentRef = React.useRef<React.ComponentRef<typeof View>>(null);
151
165
 
152
166
  const updateLayout = useLatestCallback((width: number) => {
153
167
  layoutWidth.set(width);
@@ -198,6 +212,7 @@ export function Drawer({
198
212
  const touchStartX = useSharedValue(0);
199
213
  const touchX = useSharedValue(0);
200
214
  const isGestureActive = useSharedValue(false);
215
+ const isPeeking = useSharedValue(false);
201
216
 
202
217
  const onAnimationStart = useLatestCallback((open: boolean) => {
203
218
  onTransitionStart?.(!open);
@@ -221,6 +236,7 @@ export function Drawer({
221
236
 
222
237
  touchStartX.set(0);
223
238
  touchX.set(0);
239
+ isPeeking.set(false);
224
240
 
225
241
  const containerWidth = layoutWidth.get();
226
242
  const toValue = getDrawerTranslationX(open, containerWidth);
@@ -274,6 +290,7 @@ export function Drawer({
274
290
  [
275
291
  touchStartX,
276
292
  touchX,
293
+ isPeeking,
277
294
  layoutWidth,
278
295
  getDrawerTranslationX,
279
296
  translationX,
@@ -289,27 +306,28 @@ export function Drawer({
289
306
  toggleDrawer(open);
290
307
  }, [animatingTo, open, toggleDrawer]);
291
308
 
292
- const startX = useSharedValue(0);
293
-
294
309
  const panGestureConfig = React.useMemo(() => {
295
310
  const config: PanGestureConfig = {
296
311
  onBegin: (event) => {
297
312
  'worklet';
298
313
 
299
- startX.set(translationX.get());
300
314
  touchStartX.set(event.x);
301
315
  },
302
- onActivate: () => {
316
+ onActivate: (event) => {
303
317
  'worklet';
304
318
 
319
+ translationX.set(translationX.get() + event.translationX);
320
+ isPeeking.set(false);
305
321
  isGestureActive.set(true);
306
322
  scheduleOnRN(onGestureBegin);
307
323
  },
308
324
  onUpdate: (event) => {
309
325
  'worklet';
310
326
 
327
+ isPeeking.set(false);
328
+ isGestureActive.set(true);
311
329
  touchX.set(event.x);
312
- translationX.set(startX.get() + event.translationX);
330
+ translationX.set(translationX.get() + event.changeX);
313
331
  },
314
332
  onDeactivate: (event) => {
315
333
  'worklet';
@@ -352,11 +370,11 @@ export function Drawer({
352
370
  drawerType,
353
371
  hitSlop,
354
372
  isGestureActive,
373
+ isPeeking,
355
374
  onGestureBegin,
356
375
  onGestureAbort,
357
376
  onGestureFinish,
358
377
  open,
359
- startX,
360
378
  swipeEnabled,
361
379
  swipeMinDistance,
362
380
  swipeMinVelocity,
@@ -368,6 +386,59 @@ export function Drawer({
368
386
 
369
387
  const pan = usePanGesture(panGestureConfig);
370
388
 
389
+ const longPress = useLongPressGesture({
390
+ enabled: !isOpen && panGestureConfig.enabled,
391
+ hitSlop: panGestureConfig.hitSlop,
392
+ minDuration: PEEK_DELAY,
393
+ onActivate: () => {
394
+ 'worklet';
395
+
396
+ if (isGestureActive.get()) {
397
+ return;
398
+ }
399
+
400
+ const containerWidth = layoutWidth.get();
401
+ const closedTranslation = getDrawerTranslationX(false, containerWidth);
402
+
403
+ if (translationX.get() !== closedTranslation) {
404
+ return;
405
+ }
406
+
407
+ const peekDistance = Math.min(
408
+ swipeEdgeWidth,
409
+ Math.abs(closedTranslation)
410
+ );
411
+
412
+ if (peekDistance <= 0) {
413
+ return;
414
+ }
415
+
416
+ const peekTranslation =
417
+ closedTranslation + peekDistance * (drawerPosition === 'left' ? 1 : -1);
418
+
419
+ isPeeking.set(true);
420
+ translationX.set(withSpring(peekTranslation, SPRING_CONFIG));
421
+ },
422
+ onDeactivate: () => {
423
+ 'worklet';
424
+
425
+ if (isPeeking.get()) {
426
+ isPeeking.set(false);
427
+
428
+ const containerWidth = layoutWidth.get();
429
+
430
+ translationX.set(
431
+ withSpring(
432
+ getDrawerTranslationX(false, containerWidth),
433
+ SPRING_CONFIG
434
+ )
435
+ );
436
+ }
437
+ },
438
+ });
439
+
440
+ const gesture = useSimultaneousGestures(pan, longPress);
441
+
371
442
  const translateX = useDerivedValue(() => {
372
443
  const drawerWidth = getDrawerWidthNative({
373
444
  containerWidth: layoutWidth.get(),
@@ -512,11 +583,39 @@ export function Drawer({
512
583
  );
513
584
  });
514
585
 
586
+ const contentAnimatedProps = useAnimatedProps<ViewProps>(() => {
587
+ const hidden =
588
+ drawerType !== 'permanent' && progress.value >= 1 - PROGRESS_EPSILON;
589
+
590
+ if (Platform.OS === 'android') {
591
+ const importantForAccessibility: ViewProps['importantForAccessibility'] =
592
+ hidden ? 'no-hide-descendants' : 'auto';
593
+
594
+ return { importantForAccessibility };
595
+ }
596
+
597
+ return { accessibilityElementsHidden: hidden };
598
+ }, [drawerType, progress]);
599
+
600
+ const drawerContentAnimatedProps = useAnimatedProps<ViewProps>(() => {
601
+ const hidden =
602
+ drawerType !== 'permanent' && progress.value < 1 - PROGRESS_EPSILON;
603
+
604
+ if (Platform.OS === 'android') {
605
+ const importantForAccessibility: ViewProps['importantForAccessibility'] =
606
+ hidden ? 'no-hide-descendants' : 'auto';
607
+
608
+ return { importantForAccessibility };
609
+ }
610
+
611
+ return { accessibilityElementsHidden: hidden };
612
+ }, [drawerType, progress]);
613
+
515
614
  return (
516
615
  <GestureHandlerRootView style={[styles.container, style]}>
517
616
  <DrawerProgressContext.Provider value={progress}>
518
617
  <DrawerGestureContext.Provider value={pan}>
519
- <GestureDetector gesture={pan}>
618
+ <GestureDetector gesture={gesture}>
520
619
  {/* Immediate child of gesture handler needs to be an Animated.View */}
521
620
  <Animated.View
522
621
  style={[
@@ -537,12 +636,12 @@ export function Drawer({
537
636
  onLayout={onLayout}
538
637
  style={[styles.content, contentAnimatedStyle]}
539
638
  >
540
- <View
541
- aria-hidden={isOpen && drawerType !== 'permanent'}
639
+ <Animated.View
640
+ animatedProps={contentAnimatedProps}
542
641
  style={styles.content}
543
642
  >
544
643
  {children}
545
- </View>
644
+ </Animated.View>
546
645
  {drawerType !== 'permanent' ? (
547
646
  <Overlay
548
647
  open={open}
@@ -554,6 +653,7 @@ export function Drawer({
554
653
  ) : null}
555
654
  </Animated.View>
556
655
  <Animated.View
656
+ animatedProps={drawerContentAnimatedProps}
557
657
  removeClippedSubviews={Platform.OS !== 'ios'}
558
658
  style={[
559
659
  styles.drawer,
@@ -34,7 +34,7 @@ export function Drawer({
34
34
  progress.set(open ? 1 : 0);
35
35
  }, [open, progress]);
36
36
 
37
- const drawerRef = React.useRef<View>(null);
37
+ const drawerRef = React.useRef<React.ComponentRef<typeof View>>(null);
38
38
 
39
39
  const onTransitionStartLatest = useLatestCallback((e: TransitionEvent) => {
40
40
  if (e.target === e.currentTarget && e.propertyName === 'transform') {
@@ -49,7 +49,11 @@ export function Drawer({
49
49
  });
50
50
 
51
51
  React.useEffect(() => {
52
- const element = drawerRef.current as HTMLDivElement | null;
52
+ const element =
53
+ typeof HTMLElement !== 'undefined' &&
54
+ drawerRef.current instanceof HTMLElement
55
+ ? drawerRef.current
56
+ : null;
53
57
 
54
58
  element?.addEventListener('transitionstart', onTransitionStartLatest);
55
59
  element?.addEventListener('transitionend', onTransitionEndLatest);
@@ -1,12 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { View } from 'react-native';
3
3
  import type {
4
+ ComposedGesture,
5
+ LongPressGesture,
6
+ LongPressGestureConfig,
4
7
  PanGesture,
5
8
  PanGestureConfig,
6
9
  } from 'react-native-gesture-handler';
7
10
 
8
11
  type GestureDetectorProps = {
9
- gesture: PanGesture | undefined;
12
+ gesture: ComposedGesture | PanGesture | undefined;
10
13
  userSelect?: 'none' | 'auto' | 'text';
11
14
  children: React.ReactNode;
12
15
  };
@@ -27,6 +30,20 @@ export function usePanGesture(config: PanGestureConfig) {
27
30
  return undefined;
28
31
  }
29
32
 
33
+ export function useLongPressGesture(config: LongPressGestureConfig) {
34
+ React.useDebugValue(config);
35
+
36
+ return undefined;
37
+ }
38
+
39
+ export function useSimultaneousGestures(
40
+ ...gestures: (LongPressGesture | PanGesture | undefined)[]
41
+ ) {
42
+ React.useDebugValue(gestures);
43
+
44
+ return undefined;
45
+ }
46
+
30
47
  export type {
31
48
  PanGesture,
32
49
  PanGestureConfig,
@@ -5,5 +5,7 @@ export type {
5
5
  export {
6
6
  GestureDetector,
7
7
  GestureHandlerRootView,
8
+ useLongPressGesture,
8
9
  usePanGesture,
10
+ useSimultaneousGestures,
9
11
  } from 'react-native-gesture-handler';