react-native-bottom-sheet-stack 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +82 -0
- package/lib/commonjs/BottomSheet.context.js +14 -0
- package/lib/commonjs/BottomSheet.context.js.map +1 -0
- package/lib/commonjs/BottomSheetHost.js +73 -0
- package/lib/commonjs/BottomSheetHost.js.map +1 -0
- package/lib/commonjs/BottomSheetManaged.js +72 -0
- package/lib/commonjs/BottomSheetManaged.js.map +1 -0
- package/lib/commonjs/BottomSheetManager.provider.js +39 -0
- package/lib/commonjs/BottomSheetManager.provider.js.map +1 -0
- package/lib/commonjs/bottomSheet.store.js +101 -0
- package/lib/commonjs/bottomSheet.store.js.map +1 -0
- package/lib/commonjs/bottomSheetCoordinator.js +43 -0
- package/lib/commonjs/bottomSheetCoordinator.js.map +1 -0
- package/lib/commonjs/index.js +41 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/refsMap.js +8 -0
- package/lib/commonjs/refsMap.js.map +1 -0
- package/lib/commonjs/useBottomSheetManager.js +78 -0
- package/lib/commonjs/useBottomSheetManager.js.map +1 -0
- package/lib/commonjs/useBottomSheetState.js +27 -0
- package/lib/commonjs/useBottomSheetState.js.map +1 -0
- package/lib/typescript/example/src/App.d.ts +4 -0
- package/lib/typescript/example/src/App.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheet.context.d.ts +7 -0
- package/lib/typescript/src/BottomSheet.context.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheetHost.d.ts +5 -0
- package/lib/typescript/src/BottomSheetHost.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheetManaged.d.ts +10 -0
- package/lib/typescript/src/BottomSheetManaged.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheetManager.provider.d.ts +14 -0
- package/lib/typescript/src/BottomSheetManager.provider.d.ts.map +1 -0
- package/lib/typescript/src/bottomSheet.store.d.ts +32 -0
- package/lib/typescript/src/bottomSheet.store.d.ts.map +1 -0
- package/lib/typescript/src/bottomSheetCoordinator.d.ts +2 -0
- package/lib/typescript/src/bottomSheetCoordinator.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +6 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/refsMap.d.ts +3 -0
- package/lib/typescript/src/refsMap.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts +22 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetState.d.ts +6 -0
- package/lib/typescript/src/useBottomSheetState.d.ts.map +1 -0
- package/package.json +130 -0
- package/src/BottomSheet.context.ts +15 -0
- package/src/BottomSheetHost.tsx +70 -0
- package/src/BottomSheetManaged.tsx +89 -0
- package/src/BottomSheetManager.provider.tsx +39 -0
- package/src/bottomSheet.store.ts +107 -0
- package/src/bottomSheetCoordinator.ts +34 -0
- package/src/index.tsx +5 -0
- package/src/refsMap.ts +6 -0
- package/src/useBottomSheetManager.tsx +87 -0
- package/src/useBottomSheetState.ts +31 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Arek Kubaczkowski
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
in the Software without restriction, including without limitation the rights
|
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# 🧩 BottomSheet Stack Manager
|
|
2
|
+
|
|
3
|
+
Manage a stack of [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) components with `push`, `switch`, and `replace` navigation — without unmounting underlying sheets.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🚀 Features
|
|
8
|
+
|
|
9
|
+
- 🧱 `push` — stack a new sheet above the current one
|
|
10
|
+
- 🔄 `switch` — override current sheet temporarily, restore the previous one when closing
|
|
11
|
+
- 🔁 `replace` — fully swap and remove the current sheet
|
|
12
|
+
- 🧠 Underlying sheets remain mounted
|
|
13
|
+
- 🗂️ Group support for isolated stacks
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 📦 Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
yarn add zustand @gorhom/bottom-sheet
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
### 🧠 Important: Use <BottomSheetManaged /> instead of <BottomSheet />
|
|
26
|
+
|
|
27
|
+
To make the stack manager work, you must replace all instances of BottomSheet from @gorhom/bottom-sheet with the provided:
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
import { BottomSheetManaged } from 'react-native-bottom-sheet-stack';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
In your app entry:
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import {
|
|
37
|
+
BottomSheetHost,
|
|
38
|
+
BottomSheetManager,
|
|
39
|
+
initBottomSheetCoordinator,
|
|
40
|
+
} from 'react-native-bottom-sheet-stack';
|
|
41
|
+
|
|
42
|
+
initBottomSheetCoordinator();
|
|
43
|
+
|
|
44
|
+
export default function App() {
|
|
45
|
+
return (
|
|
46
|
+
<BottomSheetManager id="default">
|
|
47
|
+
<BottomSheetHost />
|
|
48
|
+
{/* your app content */}
|
|
49
|
+
</BottomSheetManager>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
In a component:
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import { useBottomSheetManager } from 'react-native-bottom-sheet-stack';
|
|
58
|
+
|
|
59
|
+
export default function YouComponent() {
|
|
60
|
+
const { openBottomSheet } = useBottomSheetManager();
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<TouchableOpacity onPress={() => openBottomSheet(<YourBottomSheet />, { mode: 'switch' })}>
|
|
64
|
+
<Text>Open Bottom Sheet</Text>
|
|
65
|
+
</TouchableOpacity>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Define your bottom sheet:
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
import { BottomSheetManaged } from 'react-native-bottom-sheet-stack';
|
|
74
|
+
|
|
75
|
+
export default function YourBottomSheet() {
|
|
76
|
+
return (
|
|
77
|
+
<BottomSheetManaged snapPoints={['50%']}>
|
|
78
|
+
{/* Sheet content */}
|
|
79
|
+
</BottomSheetManaged>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BottomSheetContext = void 0;
|
|
7
|
+
exports.useMaybeBottomSheetContext = useMaybeBottomSheetContext;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
const BottomSheetContext = exports.BottomSheetContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
10
|
+
function useMaybeBottomSheetContext() {
|
|
11
|
+
const context = (0, _react.useContext)(BottomSheetContext);
|
|
12
|
+
return context;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=BottomSheet.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","BottomSheetContext","exports","createContext","undefined","useMaybeBottomSheetContext","context","useContext"],"sourceRoot":"../../src","sources":["BottomSheet.context.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMO,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,oBAAa,EAE7CC,SAAS,CAAC;AAEL,SAASC,0BAA0BA,CAAA,EAAG;EAC3C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACN,kBAAkB,CAAC;EAE9C,OAAOK,OAAO;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BottomSheetHost = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _BottomSheet = require("./BottomSheet.context");
|
|
10
|
+
var _bottomSheet = require("./bottomSheet.store");
|
|
11
|
+
var _bottomSheetCoordinator = require("./bottomSheetCoordinator");
|
|
12
|
+
var _BottomSheetManager = require("./BottomSheetManager.provider");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
(0, _bottomSheetCoordinator.initBottomSheetCoordinator)();
|
|
17
|
+
function BottomSheetHostComp() {
|
|
18
|
+
const {
|
|
19
|
+
bottomSheetsStack,
|
|
20
|
+
clearAll
|
|
21
|
+
} = (0, _bottomSheet.useBottomSheetStore)(store => ({
|
|
22
|
+
bottomSheetsStack: store.stack,
|
|
23
|
+
clearAll: store.clearAll
|
|
24
|
+
}));
|
|
25
|
+
const {
|
|
26
|
+
width,
|
|
27
|
+
height
|
|
28
|
+
} = (0, _reactNative.useWindowDimensions)();
|
|
29
|
+
const {
|
|
30
|
+
groupId
|
|
31
|
+
} = (0, _BottomSheetManager.useBottomSheetManagerContext)();
|
|
32
|
+
const filteredQueue = (0, _react.useMemo)(() => bottomSheetsStack.filter(bottomSheet => bottomSheet.groupId === groupId), [bottomSheetsStack, groupId]);
|
|
33
|
+
(0, _react.useEffect)(() => {
|
|
34
|
+
return () => {
|
|
35
|
+
clearAll();
|
|
36
|
+
};
|
|
37
|
+
}, [clearAll]);
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
39
|
+
children: filteredQueue.map(({
|
|
40
|
+
id,
|
|
41
|
+
content
|
|
42
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheet.BottomSheetContext.Provider, {
|
|
43
|
+
value: {
|
|
44
|
+
id
|
|
45
|
+
},
|
|
46
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
47
|
+
style: [_reactNative.StyleSheet.absoluteFillObject, styles.container, {
|
|
48
|
+
width,
|
|
49
|
+
height
|
|
50
|
+
}],
|
|
51
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MemoizedContent, {
|
|
52
|
+
id: id,
|
|
53
|
+
children: content
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
}, id))
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const MemoizedContent = /*#__PURE__*/_react.default.memo(({
|
|
60
|
+
children
|
|
61
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
62
|
+
children: children
|
|
63
|
+
}), (prevProps, nextProps) => {
|
|
64
|
+
return prevProps.id === nextProps.id;
|
|
65
|
+
});
|
|
66
|
+
const BottomSheetHost = exports.BottomSheetHost = /*#__PURE__*/_react.default.memo(BottomSheetHostComp);
|
|
67
|
+
const styles = _reactNative.StyleSheet.create({
|
|
68
|
+
container: {
|
|
69
|
+
zIndex: 100_000_000,
|
|
70
|
+
pointerEvents: 'box-none'
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=BottomSheetHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_BottomSheet","_bottomSheet","_bottomSheetCoordinator","_BottomSheetManager","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initBottomSheetCoordinator","BottomSheetHostComp","bottomSheetsStack","clearAll","useBottomSheetStore","store","stack","width","height","useWindowDimensions","groupId","useBottomSheetManagerContext","filteredQueue","useMemo","filter","bottomSheet","useEffect","jsx","Fragment","children","map","id","content","BottomSheetContext","Provider","value","View","style","StyleSheet","absoluteFillObject","styles","container","MemoizedContent","React","memo","prevProps","nextProps","BottomSheetHost","exports","create","zIndex","pointerEvents"],"sourceRoot":"../../src","sources":["BottomSheetHost.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BottomSheetManaged = void 0;
|
|
7
|
+
var _bottomSheet = _interopRequireWildcard(require("@gorhom/bottom-sheet"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _bottomSheet2 = require("./bottomSheet.store");
|
|
10
|
+
var _useBottomSheetState = require("./useBottomSheetState");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
const BottomSheetManaged = exports.BottomSheetManaged = /*#__PURE__*/_react.default.forwardRef(({
|
|
16
|
+
children,
|
|
17
|
+
onAnimate,
|
|
18
|
+
onClose,
|
|
19
|
+
enablePanDownToClose = true,
|
|
20
|
+
...props
|
|
21
|
+
}, ref) => {
|
|
22
|
+
const {
|
|
23
|
+
startClosing,
|
|
24
|
+
finishClosing
|
|
25
|
+
} = _bottomSheet2.useBottomSheetStore.getState();
|
|
26
|
+
const {
|
|
27
|
+
bottomSheetState
|
|
28
|
+
} = (0, _useBottomSheetState.useBottomSheetState)();
|
|
29
|
+
const handleOnAnimate = (from, to) => {
|
|
30
|
+
if (to === -1) {
|
|
31
|
+
if (bottomSheetState.status === 'open' || bottomSheetState.status === 'opening') {
|
|
32
|
+
startClosing(bottomSheetState.id);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (from === -1 && to >= 0) {
|
|
36
|
+
const currentState = _bottomSheet2.useBottomSheetStore.getState();
|
|
37
|
+
_bottomSheet2.useBottomSheetStore.setState({
|
|
38
|
+
stack: currentState.stack.map(s => s.id === bottomSheetState.id ? {
|
|
39
|
+
...s,
|
|
40
|
+
status: 'open'
|
|
41
|
+
} : s)
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
onAnimate?.(from, to);
|
|
45
|
+
};
|
|
46
|
+
const config = (0, _bottomSheet.useBottomSheetSpringConfigs)({
|
|
47
|
+
stiffness: 400,
|
|
48
|
+
damping: 80,
|
|
49
|
+
mass: 0.7
|
|
50
|
+
});
|
|
51
|
+
const handleClose = () => {
|
|
52
|
+
onClose?.();
|
|
53
|
+
if (bottomSheetState.status !== 'hidden') {
|
|
54
|
+
finishClosing(bottomSheetState.id);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_bottomSheet.default, {
|
|
58
|
+
animationConfigs: config,
|
|
59
|
+
ref: ref,
|
|
60
|
+
...props,
|
|
61
|
+
onClose: handleClose,
|
|
62
|
+
onAnimate: handleOnAnimate,
|
|
63
|
+
enablePanDownToClose: enablePanDownToClose,
|
|
64
|
+
backdropComponent: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_bottomSheet.BottomSheetBackdrop, {
|
|
65
|
+
...props,
|
|
66
|
+
disappearsOnIndex: -1,
|
|
67
|
+
appearsOnIndex: 0
|
|
68
|
+
}),
|
|
69
|
+
children: children
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=BottomSheetManaged.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_react","_interopRequireDefault","_bottomSheet2","_useBottomSheetState","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BottomSheetManaged","exports","React","forwardRef","children","onAnimate","onClose","enablePanDownToClose","props","ref","startClosing","finishClosing","useBottomSheetStore","getState","bottomSheetState","useBottomSheetState","handleOnAnimate","from","to","status","id","currentState","setState","stack","map","s","config","useBottomSheetSpringConfigs","stiffness","damping","mass","handleClose","jsx","animationConfigs","backdropComponent","BottomSheetBackdrop","disappearsOnIndex","appearsOnIndex"],"sourceRoot":"../../src","sources":["BottomSheetManaged.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMaybeBottomSheetManagerContext = exports.useBottomSheetManagerContext = exports.BottomSheetManagerProvider = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const Context = /*#__PURE__*/_react.default.createContext(null);
|
|
11
|
+
function BottomSheetManagerProviderComp({
|
|
12
|
+
id,
|
|
13
|
+
children
|
|
14
|
+
}) {
|
|
15
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
|
|
16
|
+
value: {
|
|
17
|
+
groupId: id
|
|
18
|
+
},
|
|
19
|
+
children: children
|
|
20
|
+
}, id);
|
|
21
|
+
}
|
|
22
|
+
const BottomSheetManagerProvider = exports.BottomSheetManagerProvider = /*#__PURE__*/_react.default.memo(BottomSheetManagerProviderComp);
|
|
23
|
+
const useBottomSheetManagerContext = () => {
|
|
24
|
+
const context = _react.default.useContext(Context);
|
|
25
|
+
if (!context) {
|
|
26
|
+
throw new Error('useBottomSheetManagerContext must be used within a BottomSheetManagerProvider');
|
|
27
|
+
}
|
|
28
|
+
return context;
|
|
29
|
+
};
|
|
30
|
+
exports.useBottomSheetManagerContext = useBottomSheetManagerContext;
|
|
31
|
+
const useMaybeBottomSheetManagerContext = () => {
|
|
32
|
+
const context = _react.default.useContext(Context);
|
|
33
|
+
if (!context) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return context;
|
|
37
|
+
};
|
|
38
|
+
exports.useMaybeBottomSheetManagerContext = useMaybeBottomSheetManagerContext;
|
|
39
|
+
//# sourceMappingURL=BottomSheetManager.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","Context","React","createContext","BottomSheetManagerProviderComp","id","children","jsx","Provider","value","groupId","BottomSheetManagerProvider","exports","memo","useBottomSheetManagerContext","context","useContext","Error","useMaybeBottomSheetManagerContext"],"sourceRoot":"../../src","sources":["BottomSheetManager.provider.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAsD,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,OAAO,gBAAGC,cAAK,CAACC,aAAa,CAA6B,IAAI,CAAC;AAMrE,SAASC,8BAA8BA,CAAC;EAAEC,EAAE;EAAEC;AAAgB,CAAC,EAAE;EAC/D,oBACE,IAAAT,WAAA,CAAAU,GAAA,EAACN,OAAO,CAACO,QAAQ;IAAUC,KAAK,EAAE;MAAEC,OAAO,EAAEL;IAAG,CAAE;IAAAC,QAAA,EAC/CA;EAAQ,GADYD,EAEL,CAAC;AAEvB;AAEO,MAAMM,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,gBAAGT,cAAK,CAACW,IAAI,CAClDT,8BACF,CAAC;AAEM,MAAMU,4BAA4B,GAAGA,CAAA,KAAM;EAChD,MAAMC,OAAO,GAAGb,cAAK,CAACc,UAAU,CAACf,OAAO,CAAC;EAEzC,IAAI,CAACc,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CACb,+EACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB,CAAC;AAACH,OAAA,CAAAE,4BAAA,GAAAA,4BAAA;AAEK,MAAMI,iCAAiC,GAAGA,CAAA,KAAM;EACrD,MAAMH,OAAO,GAAGb,cAAK,CAACc,UAAU,CAACf,OAAO,CAAC;EAEzC,IAAI,CAACc,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA,OAAOA,OAAO;AAChB,CAAC;AAACH,OAAA,CAAAM,iCAAA,GAAAA,iCAAA","ignoreList":[]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useBottomSheetStore = void 0;
|
|
7
|
+
var _middleware = require("zustand/middleware");
|
|
8
|
+
var _traditional = require("zustand/traditional");
|
|
9
|
+
const useBottomSheetStore = exports.useBottomSheetStore = (0, _traditional.createWithEqualityFn)((0, _middleware.subscribeWithSelector)(set => ({
|
|
10
|
+
stack: [],
|
|
11
|
+
push: sheet => set(state => ({
|
|
12
|
+
stack: [...state.stack, {
|
|
13
|
+
...sheet,
|
|
14
|
+
status: 'opening'
|
|
15
|
+
}]
|
|
16
|
+
})),
|
|
17
|
+
switch: sheet => set(state => {
|
|
18
|
+
const stack = [...state.stack];
|
|
19
|
+
if (stack.length) {
|
|
20
|
+
const topIndex = stack.length - 1;
|
|
21
|
+
if (stack[topIndex]) {
|
|
22
|
+
stack[topIndex] = {
|
|
23
|
+
...stack[topIndex],
|
|
24
|
+
status: 'hidden'
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
stack.push({
|
|
29
|
+
...sheet,
|
|
30
|
+
status: 'opening'
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
stack
|
|
34
|
+
};
|
|
35
|
+
}),
|
|
36
|
+
replace: sheet => set(state => {
|
|
37
|
+
const stack = [...state.stack];
|
|
38
|
+
const prevTop = stack.pop();
|
|
39
|
+
if (prevTop) {
|
|
40
|
+
stack.push({
|
|
41
|
+
...prevTop,
|
|
42
|
+
status: 'closing'
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
stack.push({
|
|
46
|
+
...sheet,
|
|
47
|
+
status: 'opening'
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
stack
|
|
51
|
+
};
|
|
52
|
+
}),
|
|
53
|
+
startClosing: id => set(state => {
|
|
54
|
+
const stack = [...state.stack];
|
|
55
|
+
const index = stack.findIndex(s => s.id === id);
|
|
56
|
+
if (index === -1) {
|
|
57
|
+
return {
|
|
58
|
+
stack
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const closing = stack[index];
|
|
62
|
+
if (closing?.status === 'hidden') {
|
|
63
|
+
return {
|
|
64
|
+
stack
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (closing) {
|
|
68
|
+
stack[index] = {
|
|
69
|
+
...closing,
|
|
70
|
+
status: 'closing'
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const below = stack[index - 1];
|
|
74
|
+
if (below && below.status === 'hidden') {
|
|
75
|
+
stack[index - 1] = {
|
|
76
|
+
...below,
|
|
77
|
+
status: 'opening'
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
stack
|
|
82
|
+
};
|
|
83
|
+
}),
|
|
84
|
+
finishClosing: id => set(state => {
|
|
85
|
+
const stack = state.stack.filter(s => s.id !== id);
|
|
86
|
+
const topIndex = stack.length - 1;
|
|
87
|
+
if (topIndex >= 0 && stack[topIndex]?.status === 'hidden') {
|
|
88
|
+
stack[topIndex] = {
|
|
89
|
+
...stack[topIndex],
|
|
90
|
+
status: 'opening'
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
stack
|
|
95
|
+
};
|
|
96
|
+
}),
|
|
97
|
+
clearAll: () => set(() => ({
|
|
98
|
+
stack: []
|
|
99
|
+
}))
|
|
100
|
+
})));
|
|
101
|
+
//# sourceMappingURL=bottomSheet.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_middleware","require","_traditional","useBottomSheetStore","exports","create","subscribeWithSelector","set","stack","push","sheet","state","status","switch","length","topIndex","replace","prevTop","pop","startClosing","id","index","findIndex","s","closing","below","finishClosing","filter","clearAll"],"sourceRoot":"../../src","sources":["bottomSheet.store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.initBottomSheetCoordinator = initBottomSheetCoordinator;
|
|
7
|
+
var _bottomSheet = require("./bottomSheet.store");
|
|
8
|
+
var _refsMap = require("./refsMap");
|
|
9
|
+
function initBottomSheetCoordinator() {
|
|
10
|
+
_bottomSheet.useBottomSheetStore.subscribe(s => s.stack.map(({
|
|
11
|
+
id,
|
|
12
|
+
status
|
|
13
|
+
}) => ({
|
|
14
|
+
id,
|
|
15
|
+
status
|
|
16
|
+
})), (next, prev) => {
|
|
17
|
+
next.forEach(({
|
|
18
|
+
id,
|
|
19
|
+
status
|
|
20
|
+
}) => {
|
|
21
|
+
const prevStatus = prev.find(p => p.id === id)?.status;
|
|
22
|
+
if (prevStatus === status) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const ref = _refsMap.sheetRefs[id]?.current;
|
|
26
|
+
if (!ref) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
switch (status) {
|
|
30
|
+
case 'opening':
|
|
31
|
+
ref.expand();
|
|
32
|
+
break;
|
|
33
|
+
case 'hidden':
|
|
34
|
+
ref.close();
|
|
35
|
+
break;
|
|
36
|
+
case 'closing':
|
|
37
|
+
ref.close();
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=bottomSheetCoordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_bottomSheet","require","_refsMap","initBottomSheetCoordinator","useBottomSheetStore","subscribe","s","stack","map","id","status","next","prev","forEach","prevStatus","find","p","ref","sheetRefs","current","expand","close"],"sourceRoot":"../../src","sources":["bottomSheetCoordinator.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,SAASE,0BAA0BA,CAAA,EAAG;EAC3CC,gCAAmB,CAACC,SAAS,CAC3BC,CAAC,IAAIA,CAAC,CAACC,KAAK,CAACC,GAAG,CAAC,CAAC;IAAEC,EAAE;IAAEC;EAAO,CAAC,MAAM;IAAED,EAAE;IAAEC;EAAO,CAAC,CAAC,CAAC,EACtD,CAACC,IAAI,EAAEC,IAAI,KAAK;IACdD,IAAI,CAACE,OAAO,CAAC,CAAC;MAAEJ,EAAE;MAAEC;IAAO,CAAC,KAAK;MAC/B,MAAMI,UAAU,GAAGF,IAAI,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACP,EAAE,KAAKA,EAAE,CAAC,EAAEC,MAAM;MAEtD,IAAII,UAAU,KAAKJ,MAAM,EAAE;QACzB;MACF;MAEA,MAAMO,GAAG,GAAGC,kBAAS,CAACT,EAAE,CAAC,EAAEU,OAAO;MAClC,IAAI,CAACF,GAAG,EAAE;QACR;MACF;MAEA,QAAQP,MAAM;QACZ,KAAK,SAAS;UACZO,GAAG,CAACG,MAAM,CAAC,CAAC;UACZ;QACF,KAAK,QAAQ;UACXH,GAAG,CAACI,KAAK,CAAC,CAAC;UACX;QACF,KAAK,SAAS;UACZJ,GAAG,CAACI,KAAK,CAAC,CAAC;UACX;MACJ;IACF,CAAC,CAAC;EACJ,CACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "BottomSheetHost", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _BottomSheetHost.BottomSheetHost;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "BottomSheetManaged", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _BottomSheetManaged.BottomSheetManaged;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "BottomSheetManagerProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _BottomSheetManager.BottomSheetManagerProvider;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "useBottomSheetManager", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _useBottomSheetManager.useBottomSheetManager;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "useBottomSheetState", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _useBottomSheetState.useBottomSheetState;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var _BottomSheetHost = require("./BottomSheetHost");
|
|
37
|
+
var _BottomSheetManager = require("./BottomSheetManager.provider");
|
|
38
|
+
var _useBottomSheetManager = require("./useBottomSheetManager");
|
|
39
|
+
var _useBottomSheetState = require("./useBottomSheetState");
|
|
40
|
+
var _BottomSheetManaged = require("./BottomSheetManaged");
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_BottomSheetHost","require","_BottomSheetManager","_useBottomSheetManager","_useBottomSheetState","_BottomSheetManaged"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sheetRefs","exports"],"sourceRoot":"../../src","sources":["refsMap.ts"],"mappings":";;;;;;AAEO,MAAMA,SAGZ,GAAAC,OAAA,CAAAD,SAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useBottomSheetManager = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _bottomSheet = require("./bottomSheet.store");
|
|
9
|
+
var _BottomSheetManager = require("./BottomSheetManager.provider");
|
|
10
|
+
var _refsMap = require("./refsMap");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const useBottomSheetManager = () => {
|
|
13
|
+
const bottomSheetManagerContext = (0, _BottomSheetManager.useMaybeBottomSheetManagerContext)();
|
|
14
|
+
const {
|
|
15
|
+
pushBottomSheet,
|
|
16
|
+
replaceBottomSheet,
|
|
17
|
+
switchBottomSheet,
|
|
18
|
+
stack,
|
|
19
|
+
startClosing,
|
|
20
|
+
storeClearAll
|
|
21
|
+
} = (0, _bottomSheet.useBottomSheetStore)(store => ({
|
|
22
|
+
storeClearAll: store.clearAll,
|
|
23
|
+
replaceBottomSheet: store.replace,
|
|
24
|
+
pushBottomSheet: store.push,
|
|
25
|
+
switchBottomSheet: store.switch,
|
|
26
|
+
stack: store.stack,
|
|
27
|
+
startClosing: store.startClosing
|
|
28
|
+
}));
|
|
29
|
+
const openBottomSheet = (content, options = {}) => {
|
|
30
|
+
const groupId = options.groupId || bottomSheetManagerContext?.groupId || 'default';
|
|
31
|
+
const id = Math.random().toString(36);
|
|
32
|
+
const ref = /*#__PURE__*/_react.default.createRef();
|
|
33
|
+
_refsMap.sheetRefs[id] = ref;
|
|
34
|
+
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
const contentWithRef = /*#__PURE__*/_react.default.cloneElement(content, {
|
|
37
|
+
ref
|
|
38
|
+
});
|
|
39
|
+
if (options.mode === 'replace') {
|
|
40
|
+
replaceBottomSheet({
|
|
41
|
+
id,
|
|
42
|
+
groupId,
|
|
43
|
+
content: contentWithRef
|
|
44
|
+
});
|
|
45
|
+
} else if (options.mode === 'switch') {
|
|
46
|
+
switchBottomSheet({
|
|
47
|
+
id,
|
|
48
|
+
groupId,
|
|
49
|
+
content: contentWithRef
|
|
50
|
+
});
|
|
51
|
+
} else {
|
|
52
|
+
pushBottomSheet({
|
|
53
|
+
id,
|
|
54
|
+
groupId,
|
|
55
|
+
content: contentWithRef
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return id;
|
|
59
|
+
};
|
|
60
|
+
const closeTop = () => {
|
|
61
|
+
const top = stack.at(-1);
|
|
62
|
+
if (top) {
|
|
63
|
+
startClosing(top.id);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const clearAll = () => {
|
|
67
|
+
storeClearAll();
|
|
68
|
+
};
|
|
69
|
+
return {
|
|
70
|
+
clearAll,
|
|
71
|
+
closeTop,
|
|
72
|
+
openBottomSheet,
|
|
73
|
+
pushBottomSheet,
|
|
74
|
+
replaceBottomSheet
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
exports.useBottomSheetManager = useBottomSheetManager;
|
|
78
|
+
//# sourceMappingURL=useBottomSheetManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bottomSheet","_BottomSheetManager","_refsMap","e","__esModule","default","useBottomSheetManager","bottomSheetManagerContext","useMaybeBottomSheetManagerContext","pushBottomSheet","replaceBottomSheet","switchBottomSheet","stack","startClosing","storeClearAll","useBottomSheetStore","store","clearAll","replace","push","switch","openBottomSheet","content","options","groupId","id","Math","random","toString","ref","React","createRef","sheetRefs","contentWithRef","cloneElement","mode","closeTop","top","at","exports"],"sourceRoot":"../../src","sources":["useBottomSheetManager.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAAsC,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG/B,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,yBAAyB,GAAG,IAAAC,qDAAiC,EAAC,CAAC;EAErE,MAAM;IACJC,eAAe;IACfC,kBAAkB;IAClBC,iBAAiB;IACjBC,KAAK;IACLC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,gCAAmB,EAAEC,KAAK,KAAM;IAClCF,aAAa,EAAEE,KAAK,CAACC,QAAQ;IAC7BP,kBAAkB,EAAEM,KAAK,CAACE,OAAO;IACjCT,eAAe,EAAEO,KAAK,CAACG,IAAI;IAC3BR,iBAAiB,EAAEK,KAAK,CAACI,MAAM;IAC/BR,KAAK,EAAEI,KAAK,CAACJ,KAAK;IAClBC,YAAY,EAAEG,KAAK,CAACH;EACtB,CAAC,CAAC,CAAC;EAEH,MAAMQ,eAAe,GAAGA,CACtBC,OAA2B,EAC3BC,OAIC,GAAG,CAAC,CAAC,KACH;IACH,MAAMC,OAAO,GACXD,OAAO,CAACC,OAAO,IAAIjB,yBAAyB,EAAEiB,OAAO,IAAI,SAAS;IAEpE,MAAMC,EAAE,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;IACrC,MAAMC,GAAG,gBAAGC,cAAK,CAACC,SAAS,CAAqB,CAAC;IAEjDC,kBAAS,CAACP,EAAE,CAAC,GAAGI,GAAG;;IAEnB;IACA,MAAMI,cAAc,gBAAGH,cAAK,CAACI,YAAY,CAACZ,OAAO,EAAE;MAAEO;IAAI,CAAC,CAAC;IAE3D,IAAIN,OAAO,CAACY,IAAI,KAAK,SAAS,EAAE;MAC9BzB,kBAAkB,CAAC;QACjBe,EAAE;QACFD,OAAO;QACPF,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIV,OAAO,CAACY,IAAI,KAAK,QAAQ,EAAE;MACpCxB,iBAAiB,CAAC;QAChBc,EAAE;QACFD,OAAO;QACPF,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ,CAAC,MAAM;MACLxB,eAAe,CAAC;QACdgB,EAAE;QACFD,OAAO;QACPF,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ;IAEA,OAAOR,EAAE;EACX,CAAC;EAED,MAAMW,QAAQ,GAAGA,CAAA,KAAM;IACrB,MAAMC,GAAG,GAAGzB,KAAK,CAAC0B,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,IAAID,GAAG,EAAE;MACPxB,YAAY,CAACwB,GAAG,CAACZ,EAAE,CAAC;IACtB;EACF,CAAC;EAED,MAAMR,QAAQ,GAAGA,CAAA,KAAM;IACrBH,aAAa,CAAC,CAAC;EACjB,CAAC;EAED,OAAO;IACLG,QAAQ;IACRmB,QAAQ;IACRf,eAAe;IACfZ,eAAe;IACfC;EACF,CAAC;AACH,CAAC;AAAC6B,OAAA,CAAAjC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|