@niibase/bottom-sheet-manager 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +371 -37
  2. package/lib/commonjs/events.js +100 -15
  3. package/lib/commonjs/events.js.map +1 -1
  4. package/lib/commonjs/index.js +7 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/manager.js +107 -29
  7. package/lib/commonjs/manager.js.map +1 -1
  8. package/lib/commonjs/provider.js +69 -28
  9. package/lib/commonjs/provider.js.map +1 -1
  10. package/lib/commonjs/router/index.js +50 -21
  11. package/lib/commonjs/router/index.js.map +1 -1
  12. package/lib/commonjs/router/router.js +137 -12
  13. package/lib/commonjs/router/router.js.map +1 -1
  14. package/lib/commonjs/router/view.js +194 -84
  15. package/lib/commonjs/router/view.js.map +1 -1
  16. package/lib/commonjs/sheet.js +124 -76
  17. package/lib/commonjs/sheet.js.map +1 -1
  18. package/lib/module/events.js +100 -15
  19. package/lib/module/events.js.map +1 -1
  20. package/lib/module/index.js +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/manager.js +108 -29
  23. package/lib/module/manager.js.map +1 -1
  24. package/lib/module/provider.js +65 -25
  25. package/lib/module/provider.js.map +1 -1
  26. package/lib/module/router/index.js +34 -18
  27. package/lib/module/router/index.js.map +1 -1
  28. package/lib/module/router/router.js +135 -11
  29. package/lib/module/router/router.js.map +1 -1
  30. package/lib/module/router/view.js +194 -84
  31. package/lib/module/router/view.js.map +1 -1
  32. package/lib/module/sheet.js +126 -78
  33. package/lib/module/sheet.js.map +1 -1
  34. package/lib/typescript/events.d.ts +46 -12
  35. package/lib/typescript/events.d.ts.map +1 -1
  36. package/lib/typescript/index.d.ts +1 -1
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/manager.d.ts +57 -7
  39. package/lib/typescript/manager.d.ts.map +1 -1
  40. package/lib/typescript/provider.d.ts +22 -3
  41. package/lib/typescript/provider.d.ts.map +1 -1
  42. package/lib/typescript/router/index.d.ts +33 -17
  43. package/lib/typescript/router/index.d.ts.map +1 -1
  44. package/lib/typescript/router/router.d.ts +44 -5
  45. package/lib/typescript/router/router.d.ts.map +1 -1
  46. package/lib/typescript/router/types.d.ts +113 -17
  47. package/lib/typescript/router/types.d.ts.map +1 -1
  48. package/lib/typescript/router/view.d.ts +1 -1
  49. package/lib/typescript/router/view.d.ts.map +1 -1
  50. package/lib/typescript/sheet.d.ts.map +1 -1
  51. package/lib/typescript/types.d.ts +25 -11
  52. package/lib/typescript/types.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/events.ts +118 -27
  55. package/src/index.ts +6 -5
  56. package/src/manager.ts +156 -33
  57. package/src/provider.tsx +98 -44
  58. package/src/router/index.tsx +38 -31
  59. package/src/router/router.ts +184 -15
  60. package/src/router/types.ts +119 -22
  61. package/src/router/view.tsx +252 -132
  62. package/src/sheet.tsx +175 -95
  63. package/src/types.ts +144 -130
@@ -1,23 +1,63 @@
1
- import { StackActions, StackRouter } from "@react-navigation/native";
1
+ import { StackActions, StackRouter, useNavigation } from "@react-navigation/native";
2
2
  import { nanoid } from "nanoid/non-secure";
3
3
  export const BottomSheetActions = {
4
4
  ...StackActions,
5
- snapTo(index) {
5
+ /**
6
+ * Snap the bottom sheet to a specific index.
7
+ */
8
+ snapTo: index => ({
9
+ type: "SNAP_TO",
10
+ index
11
+ }),
12
+ /**
13
+ * Dismiss the current bottom sheet.
14
+ */
15
+ dismiss: () => ({
16
+ type: "DISMISS"
17
+ }),
18
+ /**
19
+ * Remove the sheet from navigation state after dismiss animation completes.
20
+ */
21
+ remove: () => ({
22
+ type: "REMOVE"
23
+ })
24
+ };
25
+
26
+ /**
27
+ * Ensures the base route (first screen) exists in the navigation state.
28
+ * This is important because the first screen is the main content,
29
+ * and subsequent screens are rendered as bottom sheets.
30
+ */
31
+ const ensureBaseRoute = (state, baseRouteName, routeParamList) => {
32
+ if (!baseRouteName) {
33
+ return state;
34
+ }
35
+ const hasBaseRoute = state.routes.some(r => r.name === baseRouteName);
36
+ if (!hasBaseRoute) {
37
+ const baseRoute = {
38
+ key: `${baseRouteName}-${nanoid()}`,
39
+ name: baseRouteName,
40
+ params: routeParamList?.[baseRouteName]
41
+ };
6
42
  return {
7
- type: "SNAP_TO",
8
- index
43
+ ...state,
44
+ index: state.routes.length,
45
+ routes: [baseRoute, ...state.routes]
9
46
  };
10
47
  }
48
+ return state;
11
49
  };
12
- export function BottomSheetRouter(routerOptions) {
50
+ export const BottomSheetRouter = routerOptions => {
13
51
  const baseRouter = StackRouter(routerOptions);
14
52
  return {
15
53
  ...baseRouter,
16
54
  type: "bottom-sheet",
17
55
  getInitialState(options) {
18
56
  const state = baseRouter.getInitialState(options);
57
+ const baseRouteName = routerOptions.initialRouteName ?? options.routeNames[0];
58
+ const stateWithBaseRoute = ensureBaseRoute(state, baseRouteName, options.routeParamList);
19
59
  return {
20
- ...state,
60
+ ...stateWithBaseRoute,
21
61
  stale: false,
22
62
  type: "bottom-sheet",
23
63
  key: `bottom-sheet-${nanoid()}`
@@ -27,15 +67,76 @@ export function BottomSheetRouter(routerOptions) {
27
67
  switch (action.type) {
28
68
  case "SNAP_TO":
29
69
  {
30
- const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
70
+ const routeIndex = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
71
+ return {
72
+ ...state,
73
+ routes: state.routes.map((route, i) => i === routeIndex ? {
74
+ ...route,
75
+ snapToIndex: action.index,
76
+ snapToKey: (route.snapToKey ?? 0) + 1
77
+ } : route)
78
+ };
79
+ }
80
+ case "GO_BACK":
81
+ case "DISMISS":
82
+ {
83
+ return this.getStateForAction(state, StackActions.pop(1), options);
84
+ }
85
+ case "POP":
86
+ {
87
+ // Only base screen remains - let parent navigator handle it
88
+ if (state.routes.length <= 1) {
89
+ return null;
90
+ }
91
+ const count = "payload" in action && typeof action.payload?.count === "number" ? action.payload.count : 1;
92
+
93
+ // Calculate how many routes we can actually pop (don't pop base screen)
94
+ const maxPopCount = state.routes.length - 1;
95
+ const actualCount = Math.min(count, maxPopCount);
96
+
97
+ // Base screen - let parent navigator handle it
98
+ if (actualCount <= 0) {
99
+ return null;
100
+ }
101
+
102
+ // Target index is the route we want to stay on (land on after pop)
103
+ // closingIndex is the first route to be dismissed (the one after target)
104
+ const targetIndex = state.routes.length - 1 - actualCount;
105
+ const closingIndex = targetIndex + 1;
106
+
107
+ // Mark only the bottom-most route to pop as closing
108
+ // The sheet's dismiss() will handle dismissing sheets above it first
31
109
  return {
32
110
  ...state,
33
- routes: state.routes.map((route, i) => i === index ? {
111
+ index: closingIndex,
112
+ routes: state.routes.map((route, i) => i === closingIndex ? {
34
113
  ...route,
35
- snapToIndex: action.index
114
+ closing: true
36
115
  } : route)
37
116
  };
38
117
  }
118
+ case "POP_TO_TOP":
119
+ {
120
+ const popCount = state.routes.length - 1;
121
+ return this.getStateForAction(state, StackActions.pop(popCount), options);
122
+ }
123
+ case "REMOVE":
124
+ {
125
+ // Actually remove the closing route and all routes above it
126
+ const routeKey = action.source;
127
+ const routeIndex = routeKey ? state.routes.findIndex(r => r.key === routeKey) : state.routes.findIndex(r => r.closing);
128
+ if (routeIndex === -1) {
129
+ return state;
130
+ }
131
+
132
+ // Remove the route and all routes above it (they were dismissed together)
133
+ const routes = state.routes.filter((_, i) => i < routeIndex);
134
+ return {
135
+ ...state,
136
+ index: Math.min(state.index, routes.length - 1),
137
+ routes
138
+ };
139
+ }
39
140
  default:
40
141
  return baseRouter.getStateForAction(state, action, options);
41
142
  }
@@ -53,13 +154,36 @@ export function BottomSheetRouter(routerOptions) {
53
154
  routeParamList,
54
155
  routeGetIdList
55
156
  });
157
+ const baseRouteName = routerOptions.initialRouteName ?? routeNames[0];
158
+ const stateWithBaseRoute = ensureBaseRoute(state, baseRouteName, routeParamList);
56
159
  return {
57
- ...state,
160
+ ...stateWithBaseRoute,
58
161
  type: "bottom-sheet",
59
162
  key: `bottom-sheet-${nanoid()}`
60
163
  };
61
164
  },
62
165
  actionCreators: BottomSheetActions
63
166
  };
64
- }
167
+ };
168
+
169
+ /**
170
+ * Hook to access BottomSheet navigation with the snapTo helper.
171
+ *
172
+ * @example
173
+ * ```tsx
174
+ * function MySheet() {
175
+ * const navigation = useBottomSheetNavigation();
176
+ *
177
+ * // Snap to a specific index
178
+ * const handleExpand = () => {
179
+ * navigation.snapTo(1); // Snap to second index
180
+ * };
181
+ *
182
+ * return (
183
+ * <Button title="Expand" onPress={handleExpand} />
184
+ * );
185
+ * }
186
+ * ```
187
+ */
188
+ export const useBottomSheetNavigation = () => useNavigation();
65
189
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StackActions","StackRouter","nanoid","BottomSheetActions","snapTo","index","type","BottomSheetRouter","routerOptions","baseRouter","getInitialState","options","state","stale","key","getStateForAction","action","target","source","routes","findIndex","r","map","route","i","snapToIndex","getRehydratedState","partialState","routeNames","routeParamList","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["router/router.ts"],"mappings":"AAAA,SAGIA,YAAY,EAEZC,WAAW,QAER,0BAA0B;AACjC,SAASC,MAAM,QAAQ,mBAAmB;AAe1C,OAAO,MAAMC,kBAAkB,GAAG;EAC9B,GAAGH,YAAY;EACfI,MAAMA,CAACC,KAAa,EAAyB;IACzC,OAAO;MAAEC,IAAI,EAAE,SAAS;MAAED;IAAM,CAAC;EACrC;AACJ,CAAC;AAED,OAAO,SAASE,iBAAiBA,CAC7BC,aAAiC,EACuC;EACxE,MAAMC,UAAU,GAAGR,WAAW,CAACO,aAAa,CAG3C;EACD,OAAO;IACH,GAAGC,UAAU;IACbH,IAAI,EAAE,cAAc;IACpBI,eAAeA,CAACC,OAAO,EAAE;MACrB,MAAMC,KAAK,GAAGH,UAAU,CAACC,eAAe,CAACC,OAAO,CAAC;MAEjD,OAAO;QACH,GAAGC,KAAK;QACRC,KAAK,EAAE,KAAK;QACZP,IAAI,EAAE,cAAc;QACpBQ,GAAG,EAAE,gBAAgBZ,MAAM,CAAC,CAAC;MACjC,CAAC;IACL,CAAC;IACDa,iBAAiBA,CAACH,KAAK,EAAEI,MAAM,EAAEL,OAAO,EAAE;MACtC,QAAQK,MAAM,CAACV,IAAI;QACf,KAAK,SAAS;UAAE;YACZ,MAAMD,KAAK,GACPW,MAAM,CAACC,MAAM,KAAKL,KAAK,CAACE,GAAG,IAAIE,MAAM,CAACE,MAAM,GACtCN,KAAK,CAACO,MAAM,CAACC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACP,GAAG,KAAKE,MAAM,CAACE,MAAM,CAAC,GACtDN,KAAK,CAACP,KAAK;YAErB,OAAO;cACH,GAAGO,KAAK;cACRO,MAAM,EAAEP,KAAK,CAACO,MAAM,CAACG,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,KAC9BA,CAAC,KAAKnB,KAAK,GACL;gBACI,GAAGkB,KAAK;gBACRE,WAAW,EAAET,MAAM,CAACX;cACxB,CAAC,GACDkB,KACV;YACJ,CAAC;UACL;QACA;UACI,OAAOd,UAAU,CAACM,iBAAiB,CAACH,KAAK,EAAEI,MAAM,EAAEL,OAAO,CAAC;MACnE;IACJ,CAAC;IACDe,kBAAkBA,CAACC,YAAY,EAAE;MAAEC,UAAU;MAAEC,cAAc;MAAEC;IAAe,CAAC,EAAE;MAC7E,IAAIH,YAAY,CAACd,KAAK,KAAK,KAAK,EAAE;QAC9B,OAAOc,YAAY;MACvB;MAEA,MAAMf,KAAK,GAAGH,UAAU,CAACiB,kBAAkB,CAACC,YAAY,EAAE;QACtDC,UAAU;QACVC,cAAc;QACdC;MACJ,CAAC,CAAC;MAEF,OAAO;QACH,GAAGlB,KAAK;QACRN,IAAI,EAAE,cAAc;QACpBQ,GAAG,EAAE,gBAAgBZ,MAAM,CAAC,CAAC;MACjC,CAAC;IACL,CAAC;IACD6B,cAAc,EAAE5B;EACpB,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["StackActions","StackRouter","useNavigation","nanoid","BottomSheetActions","snapTo","index","type","dismiss","remove","ensureBaseRoute","state","baseRouteName","routeParamList","hasBaseRoute","routes","some","r","name","baseRoute","key","params","length","BottomSheetRouter","routerOptions","baseRouter","getInitialState","options","initialRouteName","routeNames","stateWithBaseRoute","stale","getStateForAction","action","routeIndex","target","source","findIndex","map","route","i","snapToIndex","snapToKey","pop","count","payload","maxPopCount","actualCount","Math","min","targetIndex","closingIndex","closing","popCount","routeKey","filter","_","getRehydratedState","partialState","routeGetIdList","actionCreators","useBottomSheetNavigation"],"sourceRoot":"../../../src","sources":["router/router.ts"],"mappings":"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","ignoreList":[]}
@@ -1,104 +1,237 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import Animated, { Easing, interpolate, interpolateColor, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
2
3
  import { BottomSheetBackdrop, BottomSheetModal, BottomSheetModalProvider } from "@gorhom/bottom-sheet";
4
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
3
5
  import { useTheme } from "@react-navigation/native";
4
- import * as React from "react";
5
6
  import { StatusBar } from "react-native";
6
- import Animated, { Easing, interpolate, interpolateColor, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated";
7
- import { useSafeAreaInsets } from "react-native-safe-area-context";
7
+ import * as React from "react";
8
+ import { BottomSheetActions } from "./router";
9
+ const DEFAULT_SNAP_POINTS = ["66%"];
10
+ function AnimatedSheetWrapper({
11
+ route,
12
+ navigation,
13
+ descriptor,
14
+ isFullScreen,
15
+ previousIndex,
16
+ defaultStyle,
17
+ themeBackgroundStyle,
18
+ themeHandleIndicatorStyle
19
+ }) {
20
+ const {
21
+ options,
22
+ render
23
+ } = descriptor;
24
+ const {
25
+ index = 0,
26
+ snapPoints = DEFAULT_SNAP_POINTS,
27
+ animatedIndex: defaultAnimatedIndex,
28
+ onAnimate,
29
+ handleStyle,
30
+ backgroundStyle,
31
+ handleIndicatorStyle,
32
+ enableDynamicSizing,
33
+ iosModalSheetTypeOfAnimation,
34
+ clickThrough,
35
+ style,
36
+ ...sheetProps
37
+ } = options;
38
+
39
+ // Calculate safe index
40
+ const safeIndex = Math.min(route.snapToIndex ?? index, snapPoints.length - 1);
41
+
42
+ // Create animatedIndex for this sheet
43
+ const animatedIndex = useSharedValue(0);
44
+
45
+ // Use animated reaction to watch animatedIndex and update isFullScreen reactively
46
+ useAnimatedReaction(() => animatedIndex.value, index => {
47
+ "worklet";
48
+
49
+ if (defaultAnimatedIndex) {
50
+ defaultAnimatedIndex.set(index);
51
+ }
52
+ if (!iosModalSheetTypeOfAnimation) {
53
+ if (isFullScreen.value > 0) isFullScreen.set(0);
54
+ previousIndex.set(index);
55
+ return;
56
+ }
57
+ if (isFullScreen.value < 0) {
58
+ isFullScreen.set(0);
59
+ }
60
+ const isClosing = index < 0 || previousIndex.value >= 0 && index < previousIndex.value - 0.05;
61
+ previousIndex.set(index);
62
+ if (isClosing) {
63
+ if (isFullScreen.value > 0.01) {
64
+ isFullScreen.set(withTiming(0, {
65
+ duration: 150 * 0.85,
66
+ easing: Easing.bezier(0.25, 0.1, 0.25, 1)
67
+ }));
68
+ }
69
+ return;
70
+ }
71
+ const points = ["%90", "90%"];
72
+ const fullScreenIndex = snapPoints.findIndex(p => points.includes(p));
73
+ if (index >= fullScreenIndex - 0.5 && index <= fullScreenIndex + 0.5) {
74
+ isFullScreen.set(1);
75
+ } else if (index >= 0) {
76
+ isFullScreen.set(0);
77
+ }
78
+ }, [snapPoints, iosModalSheetTypeOfAnimation]);
79
+ return /*#__PURE__*/React.createElement(BottomSheetModalScreen, _extends({
80
+ route: route,
81
+ navigation: navigation,
82
+ index: safeIndex,
83
+ snapPoints: enableDynamicSizing ? undefined : snapPoints,
84
+ enableDynamicSizing: enableDynamicSizing,
85
+ animatedIndex: animatedIndex,
86
+ clickThrough: clickThrough,
87
+ animationConfigs: {
88
+ duration: 300,
89
+ easing: Easing.bezier(0.25, 0.1, 0.25, 1)
90
+ },
91
+ onAnimate: (from, to, ...args) => {
92
+ if (to >= isFullScreen.value && to > snapPoints.length - 1) {
93
+ isFullScreen.set(0);
94
+ } else if (to > 0 && to === previousIndex.value && isFullScreen.value === 0) {
95
+ isFullScreen.set(1);
96
+ }
97
+ onAnimate?.(from, to, ...args);
98
+ },
99
+ topInset: 0,
100
+ bottomInset: 0,
101
+ style: [defaultStyle, style],
102
+ backgroundStyle: [themeBackgroundStyle, backgroundStyle],
103
+ handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
104
+ handleStyle: [themeBackgroundStyle, {
105
+ borderRadius: 24
106
+ }, handleStyle]
107
+ }, sheetProps), render?.());
108
+ }
8
109
  function BottomSheetModalScreen({
9
- index,
110
+ route,
10
111
  navigation,
11
112
  clickThrough,
12
- iosModalSheetTypeOfAnimation,
13
113
  opacity,
114
+ animatedIndex,
115
+ onChange,
14
116
  children,
15
117
  ...props
16
118
  }) {
17
119
  const ref = React.useRef(null);
18
- const lastIndexRef = React.useRef(index);
120
+ const lastSnapIndexRef = React.useRef(route.snapToIndex ?? props.index ?? 0);
19
121
 
20
122
  // Present on mount.
21
123
  React.useEffect(() => {
22
124
  ref.current?.present();
23
125
  }, []);
126
+
127
+ // Track mount state to avoid dismissing on unmount
24
128
  const isMounted = React.useRef(true);
25
129
  React.useEffect(() => {
26
130
  return () => {
27
131
  isMounted.current = false;
28
132
  };
29
133
  }, []);
134
+
135
+ // Handle route closing state
30
136
  React.useEffect(() => {
31
- if (index != null && lastIndexRef.current !== index) {
32
- ref.current?.snapToIndex(index);
137
+ if (route.closing) {
138
+ ref.current?.dismiss();
33
139
  }
34
- }, [index]);
35
- const onChange = React.useCallback(newIndex => {
36
- const currentIndex = lastIndexRef.current;
37
- lastIndexRef.current = newIndex;
140
+ }, [route.closing]);
141
+
142
+ // Handle snap point changes from navigation actions
143
+ React.useEffect(() => {
144
+ if (route.snapToIndex != null && route.snapToIndex !== lastSnapIndexRef.current) {
145
+ ref.current?.snapToIndex(route.snapToIndex);
146
+ lastSnapIndexRef.current = route.snapToIndex;
147
+ }
148
+ }, [route.snapToIndex, route.snapToKey]);
149
+ const handleChange = React.useCallback(newIndex => {
150
+ const currentIndex = lastSnapIndexRef.current;
151
+ lastSnapIndexRef.current = newIndex;
38
152
  if (newIndex >= 0 && newIndex !== currentIndex) {
39
- navigation.snapTo(newIndex);
153
+ navigation.dispatch(BottomSheetActions.snapTo(newIndex));
40
154
  }
41
155
  }, [navigation]);
42
- const onDismiss = React.useCallback(() => {
43
- // BottomSheetModal will call onDismiss on unmount, be we do not want that since
44
- // we already popped the screen.
156
+ const handleDismiss = React.useCallback(() => {
157
+ // BottomSheetModal will call onDismiss on unmount, but we don't want that
158
+ // since we handle navigation state separately
45
159
  if (isMounted.current) {
46
- navigation.goBack();
160
+ navigation.dispatch({
161
+ ...BottomSheetActions.remove(),
162
+ source: route.key
163
+ });
47
164
  }
48
- }, [navigation]);
49
- return /*#__PURE__*/React.createElement(BottomSheetModal, _extends({
165
+ }, [navigation, route.key]);
166
+ return /*#__PURE__*/React.createElement(BottomSheetModal, _extends({}, props, {
50
167
  ref: ref,
51
- onDismiss: onDismiss,
52
- onChange: onChange,
53
- index: index,
54
- backdropComponent: props => /*#__PURE__*/React.createElement(BottomSheetBackdrop, _extends({}, props, {
168
+ onDismiss: handleDismiss,
169
+ onChange: handleChange,
170
+ animatedIndex: animatedIndex,
171
+ index: props.index,
172
+ backdropComponent: backdropProps => /*#__PURE__*/React.createElement(BottomSheetBackdrop, _extends({}, backdropProps, {
55
173
  appearsOnIndex: 0,
56
174
  disappearsOnIndex: -1,
57
175
  enableTouchThrough: !!clickThrough,
58
- opacity: opacity || 0.45
176
+ opacity: opacity ?? 0.45
59
177
  }))
60
- }, props), children);
178
+ }), children);
61
179
  }
62
- const DEFAULT_SNAP_POINTS = ["66%"];
63
180
  export function BottomSheetView({
64
181
  state,
182
+ navigation,
65
183
  descriptors
66
184
  }) {
67
185
  const {
68
186
  colors
69
187
  } = useTheme();
70
188
  const {
71
- top
189
+ top,
190
+ bottom,
191
+ left,
192
+ right
72
193
  } = useSafeAreaInsets();
73
194
  const themeBackgroundStyle = React.useMemo(() => ({
74
- backgroundColor: colors.card
195
+ borderCurve: "continuous",
196
+ backgroundColor: colors.card,
197
+ borderTopLeftRadius: 20,
198
+ borderTopRightRadius: 20
75
199
  }), [colors.card]);
76
200
  const themeHandleIndicatorStyle = React.useMemo(() => ({
77
201
  backgroundColor: colors.border,
78
202
  height: 5,
79
203
  width: 50
80
204
  }), [colors.border]);
205
+ const defaultStyle = React.useMemo(() => ({
206
+ paddingBottom: bottom,
207
+ paddingLeft: left,
208
+ paddingRight: right
209
+ }), [bottom, left, right]);
81
210
 
82
211
  // IOS modal sheet type of animation
83
- const isFullScreen = useSharedValue(0);
212
+ const isFullScreen = useSharedValue(-1);
213
+ const previousIndex = useSharedValue(-1);
84
214
  const colorStyle = useAnimatedStyle(() => ({
85
215
  flex: 1,
86
- backgroundColor: interpolateColor(isFullScreen.value, [0, 1], ["transparent", "#000"])
216
+ backgroundColor: withSpring(interpolateColor(isFullScreen.value, [0, 1], ["transparent", "#000"]), {
217
+ duration: 150
218
+ })
87
219
  }));
88
220
  const animatedStyle = useAnimatedStyle(() => ({
89
221
  flex: 1,
222
+ overflow: "hidden",
223
+ borderRadius: interpolate(isFullScreen.value, [0, 0.8, 1], [0, 20, 24], "clamp"),
90
224
  transform: [{
91
- scaleX: withSpring(interpolate(isFullScreen.value, [0, 1], [1, 0.92]), {
92
- damping: 15,
93
- stiffness: 100
225
+ scaleX: withSpring(interpolate(isFullScreen.value, [0, 0.8], [1, 0.92], "clamp"), {
226
+ duration: 150
94
227
  })
95
228
  }, {
96
- translateY: withSpring(interpolate(isFullScreen.value, [0, 1], [0, top + 5]), {
97
- damping: 15,
98
- stiffness: 100
229
+ translateY: withSpring(interpolate(isFullScreen.value, [0, 0.8, 1], [0, top, top + 5], "clamp"), {
230
+ duration: 150,
231
+ dampingRatio: 1.5
99
232
  })
100
233
  }]
101
- }));
234
+ }), [top]);
102
235
 
103
236
  // Since background color is white, we need to set status bar to light
104
237
  const setStatusBar = StatusBar.setBarStyle;
@@ -110,64 +243,41 @@ export function BottomSheetView({
110
243
  }
111
244
  }, []);
112
245
 
113
- // Avoid rendering provider if we only have one screen.
114
- const shouldRenderProvider = React.useRef(false);
115
- shouldRenderProvider.current = shouldRenderProvider.current || state.routes.length > 1;
116
- const firstRoute = state.routes[0];
117
- if (!firstRoute) {
118
- // no routes at all, probably shouldn't happen, but let's be defensive
246
+ // Get the base (first) route - this is the main content
247
+ const baseRoute = state.routes[0];
248
+ if (!baseRoute) {
119
249
  return null;
120
250
  }
121
- const firstDescriptor = descriptors[firstRoute.key];
122
- if (!firstDescriptor) {
123
- // if we don't have a descriptor for the first route, bail out
251
+ const baseDescriptor = descriptors[baseRoute.key];
252
+ if (!baseDescriptor) {
124
253
  return null;
125
254
  }
255
+
256
+ // Sheet routes are all routes after the base route
257
+ const sheetRoutes = state.routes.slice(1);
258
+ const hasSheets = sheetRoutes.length > 0;
126
259
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Animated.View, {
127
260
  style: colorStyle
128
261
  }, /*#__PURE__*/React.createElement(Animated.View, {
129
262
  style: animatedStyle
130
- }, firstDescriptor.render?.())), shouldRenderProvider.current && /*#__PURE__*/React.createElement(BottomSheetModalProvider, null, state.routes.slice(1).map(route => {
263
+ }, baseDescriptor.render?.())), hasSheets && /*#__PURE__*/React.createElement(BottomSheetModalProvider, null, sheetRoutes.map(route => {
264
+ // Skip routes that are being removed
265
+ if (route.closing && !descriptors[route.key]) {
266
+ return null;
267
+ }
131
268
  const descriptor = descriptors[route.key];
132
269
  if (!descriptor) return null;
133
- const {
134
- options,
135
- navigation,
136
- render
137
- } = descriptor;
138
- const {
139
- index,
140
- snapPoints,
141
- handleStyle,
142
- backgroundStyle,
143
- handleIndicatorStyle,
144
- enableDynamicSizing,
145
- ...sheetProps
146
- } = options;
147
- return /*#__PURE__*/React.createElement(BottomSheetModalScreen, _extends({
148
- key: route.key
149
- // Make sure index is in range, it could be out if snapToIndex is persisted
150
- // and snapPoints is changed.
151
- ,
152
- index: Math.min(route.snapToIndex ?? index ?? 0, !!snapPoints ? snapPoints.length - 1 : 0),
153
- snapPoints: !snapPoints && !enableDynamicSizing ? DEFAULT_SNAP_POINTS : snapPoints,
154
- onAnimate: (_, to) => {
155
- // @ts-ignore TODO: Fix types
156
- isFullScreen.value = ["%100", "100%"].includes(snapPoints?.[to]) ? 1 : 0;
157
- },
158
- animationConfigs: {
159
- duration: 300,
160
- easing: Easing.bezier(0.25, 0.1, 0.25, 1)
161
- },
162
- topInset: top + 18,
270
+ return /*#__PURE__*/React.createElement(AnimatedSheetWrapper, {
271
+ key: route.key,
272
+ route: route,
163
273
  navigation: navigation,
164
- enableDynamicSizing: enableDynamicSizing,
165
- backgroundStyle: [themeBackgroundStyle, backgroundStyle],
166
- handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
167
- handleStyle: [themeBackgroundStyle, {
168
- borderRadius: 20
169
- }, handleStyle]
170
- }, sheetProps), render?.());
274
+ descriptor: descriptor,
275
+ isFullScreen: isFullScreen,
276
+ previousIndex: previousIndex,
277
+ defaultStyle: defaultStyle,
278
+ themeBackgroundStyle: themeBackgroundStyle,
279
+ themeHandleIndicatorStyle: themeHandleIndicatorStyle
280
+ });
171
281
  })));
172
282
  }
173
283
  //# sourceMappingURL=view.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BottomSheetBackdrop","BottomSheetModal","BottomSheetModalProvider","useTheme","React","StatusBar","Animated","Easing","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","useSafeAreaInsets","BottomSheetModalScreen","index","navigation","clickThrough","iosModalSheetTypeOfAnimation","opacity","children","props","ref","useRef","lastIndexRef","useEffect","current","present","isMounted","snapToIndex","onChange","useCallback","newIndex","currentIndex","snapTo","onDismiss","goBack","createElement","_extends","backdropComponent","appearsOnIndex","disappearsOnIndex","enableTouchThrough","DEFAULT_SNAP_POINTS","BottomSheetView","state","descriptors","colors","top","themeBackgroundStyle","useMemo","backgroundColor","card","themeHandleIndicatorStyle","border","height","width","isFullScreen","colorStyle","flex","value","animatedStyle","transform","scaleX","damping","stiffness","translateY","setStatusBar","setBarStyle","currentValue","shouldRenderProvider","routes","length","firstRoute","firstDescriptor","key","Fragment","View","style","render","slice","map","route","descriptor","options","snapPoints","handleStyle","backgroundStyle","handleIndicatorStyle","enableDynamicSizing","sheetProps","Math","min","onAnimate","_","to","includes","animationConfigs","duration","easing","bezier","topInset","borderRadius"],"sourceRoot":"../../../src","sources":["router/view.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Animated","Easing","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","BottomSheetBackdrop","BottomSheetModal","BottomSheetModalProvider","useSafeAreaInsets","useTheme","StatusBar","React","BottomSheetActions","DEFAULT_SNAP_POINTS","AnimatedSheetWrapper","route","navigation","descriptor","isFullScreen","previousIndex","defaultStyle","themeBackgroundStyle","themeHandleIndicatorStyle","options","render","index","snapPoints","animatedIndex","defaultAnimatedIndex","onAnimate","handleStyle","backgroundStyle","handleIndicatorStyle","enableDynamicSizing","iosModalSheetTypeOfAnimation","clickThrough","style","sheetProps","safeIndex","Math","min","snapToIndex","length","value","set","isClosing","duration","easing","bezier","points","fullScreenIndex","findIndex","p","includes","createElement","BottomSheetModalScreen","_extends","undefined","animationConfigs","from","to","args","topInset","bottomInset","borderRadius","opacity","onChange","children","props","ref","useRef","lastSnapIndexRef","useEffect","current","present","isMounted","closing","dismiss","snapToKey","handleChange","useCallback","newIndex","currentIndex","dispatch","snapTo","handleDismiss","remove","source","key","onDismiss","backdropComponent","backdropProps","appearsOnIndex","disappearsOnIndex","enableTouchThrough","BottomSheetView","state","descriptors","colors","top","bottom","left","right","useMemo","borderCurve","backgroundColor","card","borderTopLeftRadius","borderTopRightRadius","border","height","width","paddingBottom","paddingLeft","paddingRight","colorStyle","flex","animatedStyle","overflow","transform","scaleX","translateY","dampingRatio","setStatusBar","setBarStyle","currentValue","baseRoute","routes","baseDescriptor","sheetRoutes","slice","hasSheets","Fragment","View","map"],"sourceRoot":"../../../src","sources":["router/view.tsx"],"mappings":";AAAA,OAAOA,QAAQ,IACbC,MAAM,EACNC,WAAW,EACXC,gBAAgB,EAChBC,OAAO,EAEPC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,QACL,yBAAyB;AAChC,SACEC,mBAAmB,EACnBC,gBAAgB,EAChBC,wBAAwB,QACnB,sBAAsB;AAC7B,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAAwBC,QAAQ,QAAQ,0BAA0B;AAClE,SAASC,SAAS,QAAmB,cAAc;AACnD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAW9B,SAASC,kBAAkB,QAAQ,UAAU;AAE7C,MAAMC,mBAAmB,GAAG,CAAC,KAAK,CAAC;AAEnC,SAASC,oBAAoBA,CAAC;EAC5BC,KAAK;EACLC,UAAU;EACVC,UAAU;EACVC,YAAY;EACZC,aAAa;EACbC,YAAY;EACZC,oBAAoB;EACpBC;AAUF,CAAC,EAAE;EACD,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGP,UAAU;EACtC,MAAM;IACJQ,KAAK,GAAG,CAAC;IACTC,UAAU,GAAGb,mBAAmB;IAChCc,aAAa,EAAEC,oBAAoB;IACnCC,SAAS;IACTC,WAAW;IACXC,eAAe;IACfC,oBAAoB;IACpBC,mBAAmB;IACnBC,4BAA4B;IAC5BC,YAAY;IACZC,KAAK;IACL,GAAGC;EACL,CAAC,GAAGd,OAAO;;EAEX;EACA,MAAMe,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACzB,KAAK,CAAC0B,WAAW,IAAIhB,KAAK,EAAEC,UAAU,CAACgB,MAAM,GAAG,CAAC,CAAC;;EAE7E;EACA,MAAMf,aAAa,GAAGzB,cAAc,CAAC,CAAC,CAAC;;EAEvC;EACAF,mBAAmB,CACjB,MAAM2B,aAAa,CAACgB,KAAK,EACxBlB,KAAK,IAAK;IACT,SAAS;;IACT,IAAIG,oBAAoB,EAAE;MACxBA,oBAAoB,CAACgB,GAAG,CAACnB,KAAK,CAAC;IACjC;IAEA,IAAI,CAACS,4BAA4B,EAAE;MACjC,IAAIhB,YAAY,CAACyB,KAAK,GAAG,CAAC,EAAEzB,YAAY,CAAC0B,GAAG,CAAC,CAAC,CAAC;MAC/CzB,aAAa,CAACyB,GAAG,CAACnB,KAAK,CAAC;MACxB;IACF;IAEA,IAAIP,YAAY,CAACyB,KAAK,GAAG,CAAC,EAAE;MAC1BzB,YAAY,CAAC0B,GAAG,CAAC,CAAC,CAAC;IACrB;IAEA,MAAMC,SAAS,GACbpB,KAAK,GAAG,CAAC,IAAKN,aAAa,CAACwB,KAAK,IAAI,CAAC,IAAIlB,KAAK,GAAGN,aAAa,CAACwB,KAAK,GAAG,IAAK;IAC/ExB,aAAa,CAACyB,GAAG,CAACnB,KAAK,CAAC;IAExB,IAAIoB,SAAS,EAAE;MACb,IAAI3B,YAAY,CAACyB,KAAK,GAAG,IAAI,EAAE;QAC7BzB,YAAY,CAAC0B,GAAG,CACdxC,UAAU,CAAC,CAAC,EAAE;UACZ0C,QAAQ,EAAE,GAAG,GAAG,IAAI;UACpBC,MAAM,EAAEnD,MAAM,CAACoD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC,CACH,CAAC;MACH;MACA;IACF;IAEA,MAAMC,MAA2B,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;IAClD,MAAMC,eAAe,GAAGxB,UAAU,CAACyB,SAAS,CAAEC,CAAkB,IAC9DH,MAAM,CAACI,QAAQ,CAACD,CAAC,CACnB,CAAC;IAED,IAAI3B,KAAK,IAAIyB,eAAe,GAAG,GAAG,IAAIzB,KAAK,IAAIyB,eAAe,GAAG,GAAG,EAAE;MACpEhC,YAAY,CAAC0B,GAAG,CAAC,CAAC,CAAC;IACrB,CAAC,MAAM,IAAInB,KAAK,IAAI,CAAC,EAAE;MACrBP,YAAY,CAAC0B,GAAG,CAAC,CAAC,CAAC;IACrB;EACF,CAAC,EACD,CAAClB,UAAU,EAAEQ,4BAA4B,CAC3C,CAAC;EAED,oBACEvB,KAAA,CAAA2C,aAAA,CAACC,sBAAsB,EAAAC,QAAA;IACrBzC,KAAK,EAAEA,KAAM;IACbC,UAAU,EAAEA,UAAW;IACvBS,KAAK,EAAEa,SAAU;IACjBZ,UAAU,EAAEO,mBAAmB,GAAGwB,SAAS,GAAG/B,UAAW;IACzDO,mBAAmB,EAAEA,mBAAoB;IACzCN,aAAa,EAAEA,aAAqB;IACpCQ,YAAY,EAAEA,YAAa;IAC3BuB,gBAAgB,EAAE;MAChBZ,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEnD,MAAM,CAACoD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAE;IACFnB,SAAS,EAAEA,CAAC8B,IAAI,EAAEC,EAAE,EAAE,GAAGC,IAAI,KAAK;MAChC,IAAID,EAAE,IAAI1C,YAAY,CAACyB,KAAK,IAAIiB,EAAE,GAAGlC,UAAU,CAACgB,MAAM,GAAG,CAAC,EAAE;QAC1DxB,YAAY,CAAC0B,GAAG,CAAC,CAAC,CAAC;MACrB,CAAC,MAAM,IAAIgB,EAAE,GAAG,CAAC,IAAIA,EAAE,KAAKzC,aAAa,CAACwB,KAAK,IAAIzB,YAAY,CAACyB,KAAK,KAAK,CAAC,EAAE;QAC3EzB,YAAY,CAAC0B,GAAG,CAAC,CAAC,CAAC;MACrB;MAEAf,SAAS,GAAG8B,IAAI,EAAEC,EAAE,EAAE,GAAGC,IAAI,CAAC;IAChC,CAAE;IACFC,QAAQ,EAAE,CAAE;IACZC,WAAW,EAAE,CAAE;IACf3B,KAAK,EAAE,CAAChB,YAAY,EAAEgB,KAAK,CAAE;IAC7BL,eAAe,EAAE,CAACV,oBAAoB,EAAEU,eAAe,CAAE;IACzDC,oBAAoB,EAAE,CAACV,yBAAyB,EAAEU,oBAAoB,CAAE;IACxEF,WAAW,EAAE,CAACT,oBAAoB,EAAE;MAAE2C,YAAY,EAAE;IAAG,CAAC,EAAElC,WAAW;EAAE,GACnEO,UAAU,GAEbb,MAAM,GAAG,CACY,CAAC;AAE7B;AAEA,SAAS+B,sBAAsBA,CAAC;EAC9BxC,KAAK;EACLC,UAAU;EACVmB,YAAY;EACZ8B,OAAO;EACPtC,aAAa;EACbuC,QAAQ;EACRC,QAAQ;EACR,GAAGC;AACgF,CAAC,EAAE;EACtF,MAAMC,GAAG,GAAG1D,KAAK,CAAC2D,MAAM,CAAmB,IAAI,CAAC;EAChD,MAAMC,gBAAgB,GAAG5D,KAAK,CAAC2D,MAAM,CAACvD,KAAK,CAAC0B,WAAW,IAAI2B,KAAK,CAAC3C,KAAK,IAAI,CAAC,CAAC;;EAE5E;EACAd,KAAK,CAAC6D,SAAS,CAAC,MAAM;IACpBH,GAAG,CAACI,OAAO,EAAEC,OAAO,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMC,SAAS,GAAGhE,KAAK,CAAC2D,MAAM,CAAC,IAAI,CAAC;EACpC3D,KAAK,CAAC6D,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACXG,SAAS,CAACF,OAAO,GAAG,KAAK;IAC3B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA9D,KAAK,CAAC6D,SAAS,CAAC,MAAM;IACpB,IAAIzD,KAAK,CAAC6D,OAAO,EAAE;MACjBP,GAAG,CAACI,OAAO,EAAEI,OAAO,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CAAC9D,KAAK,CAAC6D,OAAO,CAAC,CAAC;;EAEnB;EACAjE,KAAK,CAAC6D,SAAS,CAAC,MAAM;IACpB,IAAIzD,KAAK,CAAC0B,WAAW,IAAI,IAAI,IAAI1B,KAAK,CAAC0B,WAAW,KAAK8B,gBAAgB,CAACE,OAAO,EAAE;MAC/EJ,GAAG,CAACI,OAAO,EAAEhC,WAAW,CAAC1B,KAAK,CAAC0B,WAAW,CAAC;MAC3C8B,gBAAgB,CAACE,OAAO,GAAG1D,KAAK,CAAC0B,WAAW;IAC9C;EACF,CAAC,EAAE,CAAC1B,KAAK,CAAC0B,WAAW,EAAE1B,KAAK,CAAC+D,SAAS,CAAC,CAAC;EAExC,MAAMC,YAAY,GAAGpE,KAAK,CAACqE,WAAW,CACnCC,QAAgB,IAAK;IACpB,MAAMC,YAAY,GAAGX,gBAAgB,CAACE,OAAO;IAC7CF,gBAAgB,CAACE,OAAO,GAAGQ,QAAQ;IAEnC,IAAIA,QAAQ,IAAI,CAAC,IAAIA,QAAQ,KAAKC,YAAY,EAAE;MAC9ClE,UAAU,CAACmE,QAAQ,CAACvE,kBAAkB,CAACwE,MAAM,CAACH,QAAQ,CAAC,CAAC;IAC1D;EACF,CAAC,EACD,CAACjE,UAAU,CACb,CAAC;EAED,MAAMqE,aAAa,GAAG1E,KAAK,CAACqE,WAAW,CAAC,MAAM;IAC5C;IACA;IACA,IAAIL,SAAS,CAACF,OAAO,EAAE;MACrBzD,UAAU,CAACmE,QAAQ,CAAC;QAClB,GAAGvE,kBAAkB,CAAC0E,MAAM,CAAC,CAAC;QAC9BC,MAAM,EAAExE,KAAK,CAACyE;MAChB,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACxE,UAAU,EAAED,KAAK,CAACyE,GAAG,CAAC,CAAC;EAE3B,oBACE7E,KAAA,CAAA2C,aAAA,CAAChD,gBAAgB,EAAAkD,QAAA,KACXY,KAAK;IACTC,GAAG,EAAEA,GAAI;IACToB,SAAS,EAAEJ,aAAc;IACzBnB,QAAQ,EAAEa,YAAa;IACvBpD,aAAa,EAAEA,aAAc;IAC7BF,KAAK,EAAE2C,KAAK,CAAC3C,KAAM;IACnBiE,iBAAiB,EAAGC,aAAa,iBAC/BhF,KAAA,CAAA2C,aAAA,CAACjD,mBAAmB,EAAAmD,QAAA,KACdmC,aAAa;MACjBC,cAAc,EAAE,CAAE;MAClBC,iBAAiB,EAAE,CAAC,CAAE;MACtBC,kBAAkB,EAAE,CAAC,CAAC3D,YAAa;MACnC8B,OAAO,EAAEA,OAAO,IAAI;IAAK,EAC1B;EACD,IAEDE,QACe,CAAC;AAEvB;AAQA,OAAO,SAAS4B,eAAeA,CAAC;EAAEC,KAAK;EAAEhF,UAAU;EAAEiF;AAAmB,CAAC,EAAE;EACzE,MAAM;IAAEC;EAAO,CAAC,GAAGzF,QAAQ,CAAC,CAAC;EAC7B,MAAM;IAAE0F,GAAG;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG9F,iBAAiB,CAAC,CAAC;EAExD,MAAMa,oBAAoB,GAAGV,KAAK,CAAC4F,OAAO,CACxC,OAAO;IACLC,WAAW,EAAE,YAAoC;IACjDC,eAAe,EAAEP,MAAM,CAACQ,IAAI;IAC5BC,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE;EACxB,CAAC,CAAC,EACF,CAACV,MAAM,CAACQ,IAAI,CACd,CAAC;EAED,MAAMpF,yBAAyB,GAAGX,KAAK,CAAC4F,OAAO,CAC7C,OAAO;IACLE,eAAe,EAAEP,MAAM,CAACW,MAAM;IAC9BC,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE;EACT,CAAC,CAAC,EACF,CAACb,MAAM,CAACW,MAAM,CAChB,CAAC;EAED,MAAMzF,YAAY,GAAGT,KAAK,CAAC4F,OAAO,CAChC,OAAO;IACLS,aAAa,EAAEZ,MAAM;IACrBa,WAAW,EAAEZ,IAAI;IACjBa,YAAY,EAAEZ;EAChB,CAAC,CAAC,EACF,CAACF,MAAM,EAAEC,IAAI,EAAEC,KAAK,CACtB,CAAC;;EAED;EACA,MAAMpF,YAAY,GAAGhB,cAAc,CAAC,CAAC,CAAC,CAAC;EACvC,MAAMiB,aAAa,GAAGjB,cAAc,CAAC,CAAC,CAAC,CAAC;EAExC,MAAMiH,UAAU,GAAGlH,gBAAgB,CAAC,OAAO;IACzCmH,IAAI,EAAE,CAAC;IACPX,eAAe,EAAEtG,UAAU,CACzBL,gBAAgB,CAACoB,YAAY,CAACyB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,EACrE;MAAEG,QAAQ,EAAE;IAAI,CAClB;EACF,CAAC,CAAC,CAAC;EACH,MAAMuE,aAAa,GAAGpH,gBAAgB,CACpC,OAAO;IACLmH,IAAI,EAAE,CAAC;IACPE,QAAQ,EAAE,QAAQ;IAClBtD,YAAY,EAAEnE,WAAW,CAACqB,YAAY,CAACyB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAChF4E,SAAS,EAAE,CACT;MACEC,MAAM,EAAErH,UAAU,CAChBN,WAAW,CAACqB,YAAY,CAACyB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,EAC7D;QAAEG,QAAQ,EAAE;MAAI,CAClB;IACF,CAAC,EACD;MACE2E,UAAU,EAAEtH,UAAU,CACpBN,WAAW,CAACqB,YAAY,CAACyB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEwD,GAAG,EAAEA,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EACxE;QAAErD,QAAQ,EAAE,GAAG;QAAE4E,YAAY,EAAE;MAAI,CACrC;IACF,CAAC;EAEL,CAAC,CAAC,EACF,CAACvB,GAAG,CACN,CAAC;;EAED;EACA,MAAMwB,YAAY,GAAGjH,SAAS,CAACkH,WAAW;EAC1C5H,mBAAmB,CACjB,MAAMkB,YAAY,CAACyB,KAAK,EACvBkF,YAAY,IAAK;IAChB,SAAS;;IACT,IAAIA,YAAY,GAAG,CAAC,CAAC,EAAE;MACrB9H,OAAO,CAAC4H,YAAY,CAAC,CAACE,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,SAAS,CAAC;IAC1E;EACF,CAAC,EACD,EACF,CAAC;;EAED;EACA,MAAMC,SAAS,GAAG9B,KAAK,CAAC+B,MAAM,CAAC,CAAC,CAAC;EACjC,IAAI,CAACD,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EAEA,MAAME,cAAc,GAAG/B,WAAW,CAAC6B,SAAS,CAACtC,GAAG,CAAC;EACjD,IAAI,CAACwC,cAAc,EAAE;IACnB,OAAO,IAAI;EACb;;EAEA;EACA,MAAMC,WAAW,GAAGjC,KAAK,CAAC+B,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;EACzC,MAAMC,SAAS,GAAGF,WAAW,CAACvF,MAAM,GAAG,CAAC;EAExC,oBACE/B,KAAA,CAAA2C,aAAA,CAAA3C,KAAA,CAAAyH,QAAA,qBAEEzH,KAAA,CAAA2C,aAAA,CAAC3D,QAAQ,CAAC0I,IAAI;IAACjG,KAAK,EAAE+E;EAAW,gBAC/BxG,KAAA,CAAA2C,aAAA,CAAC3D,QAAQ,CAAC0I,IAAI;IAACjG,KAAK,EAAEiF;EAAc,GAAEW,cAAc,CAACxG,MAAM,GAAG,CAAiB,CAClE,CAAC,EAGf2G,SAAS,iBACRxH,KAAA,CAAA2C,aAAA,CAAC/C,wBAAwB,QACtB0H,WAAW,CAACK,GAAG,CAAEvH,KAAK,IAAK;IAC1B;IACA,IAAIA,KAAK,CAAC6D,OAAO,IAAI,CAACqB,WAAW,CAAClF,KAAK,CAACyE,GAAG,CAAC,EAAE;MAC5C,OAAO,IAAI;IACb;IAEA,MAAMvE,UAAU,GAAGgF,WAAW,CAAClF,KAAK,CAACyE,GAAG,CAAC;IACzC,IAAI,CAACvE,UAAU,EAAE,OAAO,IAAI;IAE5B,oBACEN,KAAA,CAAA2C,aAAA,CAACxC,oBAAoB;MACnB0E,GAAG,EAAEzE,KAAK,CAACyE,GAAI;MACfzE,KAAK,EAAEA,KAAM;MACbC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvBC,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEA,aAAc;MAC7BC,YAAY,EAAEA,YAAa;MAC3BC,oBAAoB,EAAEA,oBAAqB;MAC3CC,yBAAyB,EAAEA;IAA0B,CACtD,CAAC;EAEN,CAAC,CACuB,CAE5B,CAAC;AAEP","ignoreList":[]}