react-native-drawer-layout 2.0.0 → 3.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.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -35
  3. package/lib/commonjs/constants.js +15 -0
  4. package/lib/commonjs/constants.js.map +1 -0
  5. package/lib/commonjs/index.js +35 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/types.js +6 -0
  8. package/lib/commonjs/types.js.map +1 -0
  9. package/lib/commonjs/utils/DrawerGestureContext.js +12 -0
  10. package/lib/commonjs/utils/DrawerGestureContext.js.map +1 -0
  11. package/lib/commonjs/utils/DrawerProgressContext.js +12 -0
  12. package/lib/commonjs/utils/DrawerProgressContext.js.map +1 -0
  13. package/lib/commonjs/utils/useDrawerProgress.js +19 -0
  14. package/lib/commonjs/utils/useDrawerProgress.js.map +1 -0
  15. package/lib/commonjs/views/Drawer.js +89 -0
  16. package/lib/commonjs/views/Drawer.js.map +1 -0
  17. package/lib/commonjs/views/GestureHandler.android.js +17 -0
  18. package/lib/commonjs/views/GestureHandler.android.js.map +1 -0
  19. package/lib/commonjs/views/GestureHandler.ios.js +17 -0
  20. package/lib/commonjs/views/GestureHandler.ios.js.map +1 -0
  21. package/lib/commonjs/views/GestureHandler.js +33 -0
  22. package/lib/commonjs/views/GestureHandler.js.map +1 -0
  23. package/lib/commonjs/views/GestureHandlerNative.js +37 -0
  24. package/lib/commonjs/views/GestureHandlerNative.js.map +1 -0
  25. package/lib/commonjs/views/legacy/Drawer.js +419 -0
  26. package/lib/commonjs/views/legacy/Drawer.js.map +1 -0
  27. package/lib/commonjs/views/legacy/Overlay.js +74 -0
  28. package/lib/commonjs/views/legacy/Overlay.js.map +1 -0
  29. package/lib/commonjs/views/modern/Drawer.js +285 -0
  30. package/lib/commonjs/views/modern/Drawer.js.map +1 -0
  31. package/lib/commonjs/views/modern/Overlay.js +69 -0
  32. package/lib/commonjs/views/modern/Overlay.js.map +1 -0
  33. package/lib/module/constants.js +5 -0
  34. package/lib/module/constants.js.map +1 -0
  35. package/lib/module/index.js +5 -0
  36. package/lib/module/index.js.map +1 -0
  37. package/lib/module/types.js +2 -0
  38. package/lib/module/types.js.map +1 -0
  39. package/lib/module/utils/DrawerGestureContext.js +3 -0
  40. package/lib/module/utils/DrawerGestureContext.js.map +1 -0
  41. package/lib/module/utils/DrawerProgressContext.js +3 -0
  42. package/lib/module/utils/DrawerProgressContext.js.map +1 -0
  43. package/lib/module/utils/useDrawerProgress.js +10 -0
  44. package/lib/module/utils/useDrawerProgress.js.map +1 -0
  45. package/lib/module/views/Drawer.js +81 -0
  46. package/lib/module/views/Drawer.js.map +1 -0
  47. package/lib/module/views/GestureHandler.android.js +2 -0
  48. package/lib/module/views/GestureHandler.android.js.map +1 -0
  49. package/lib/module/views/GestureHandler.ios.js +2 -0
  50. package/lib/module/views/GestureHandler.ios.js.map +1 -0
  51. package/lib/module/views/GestureHandler.js +21 -0
  52. package/lib/module/views/GestureHandler.js.map +1 -0
  53. package/lib/module/views/GestureHandlerNative.js +11 -0
  54. package/lib/module/views/GestureHandlerNative.js.map +1 -0
  55. package/lib/module/views/legacy/Drawer.js +409 -0
  56. package/lib/module/views/legacy/Drawer.js.map +1 -0
  57. package/lib/module/views/legacy/Overlay.js +64 -0
  58. package/lib/module/views/legacy/Overlay.js.map +1 -0
  59. package/lib/module/views/modern/Drawer.js +276 -0
  60. package/lib/module/views/modern/Drawer.js.map +1 -0
  61. package/lib/module/views/modern/Overlay.js +60 -0
  62. package/lib/module/views/modern/Overlay.js.map +1 -0
  63. package/lib/typescript/src/constants.d.ts +5 -0
  64. package/lib/typescript/src/constants.d.ts.map +1 -0
  65. package/lib/typescript/src/index.d.ts +5 -0
  66. package/lib/typescript/src/index.d.ts.map +1 -0
  67. package/lib/typescript/src/types.d.ts +110 -0
  68. package/lib/typescript/src/types.d.ts.map +1 -0
  69. package/lib/typescript/src/utils/DrawerGestureContext.d.ts +4 -0
  70. package/lib/typescript/src/utils/DrawerGestureContext.d.ts.map +1 -0
  71. package/lib/typescript/src/utils/DrawerProgressContext.d.ts +5 -0
  72. package/lib/typescript/src/utils/DrawerProgressContext.d.ts.map +1 -0
  73. package/lib/typescript/src/utils/useDrawerProgress.d.ts +3 -0
  74. package/lib/typescript/src/utils/useDrawerProgress.d.ts.map +1 -0
  75. package/lib/typescript/src/views/Drawer.d.ts +20 -0
  76. package/lib/typescript/src/views/Drawer.d.ts.map +1 -0
  77. package/lib/typescript/src/views/GestureHandler.android.d.ts +2 -0
  78. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
  79. package/lib/typescript/src/views/GestureHandler.d.ts +15 -0
  80. package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
  81. package/lib/typescript/src/views/GestureHandler.ios.d.ts +2 -0
  82. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
  83. package/lib/typescript/src/views/GestureHandlerNative.d.ts +6 -0
  84. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
  85. package/lib/typescript/src/views/legacy/Drawer.d.ts +51 -0
  86. package/lib/typescript/src/views/legacy/Drawer.d.ts.map +1 -0
  87. package/lib/typescript/src/views/legacy/Overlay.d.ts +89 -0
  88. package/lib/typescript/src/views/legacy/Overlay.d.ts.map +1 -0
  89. package/lib/typescript/src/views/modern/Drawer.d.ts +10 -0
  90. package/lib/typescript/src/views/modern/Drawer.d.ts.map +1 -0
  91. package/lib/typescript/src/views/modern/Overlay.d.ts +89 -0
  92. package/lib/typescript/src/views/modern/Overlay.d.ts.map +1 -0
  93. package/package.json +54 -94
  94. package/src/constants.tsx +4 -0
  95. package/src/index.tsx +4 -0
  96. package/src/types.tsx +122 -0
  97. package/src/utils/DrawerGestureContext.tsx +3 -0
  98. package/src/utils/DrawerProgressContext.tsx +6 -0
  99. package/src/utils/useDrawerProgress.tsx +18 -0
  100. package/src/views/Drawer.tsx +122 -0
  101. package/src/views/GestureHandler.android.tsx +1 -0
  102. package/src/views/GestureHandler.ios.tsx +1 -0
  103. package/src/views/GestureHandler.tsx +29 -0
  104. package/src/views/GestureHandlerNative.tsx +24 -0
  105. package/src/views/legacy/Drawer.tsx +682 -0
  106. package/src/views/legacy/Overlay.tsx +87 -0
  107. package/src/views/modern/Drawer.tsx +413 -0
  108. package/src/views/modern/Overlay.tsx +82 -0
  109. package/dist/DrawerLayout.js +0 -430
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 React Native Community
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,57 +1,257 @@
1
- ## react-native-drawer-layout [![CircleCI](https://circleci.com/gh/react-native-community/react-native-drawer-layout/tree/master.svg?style=svg)](https://circleci.com/gh/react-native-community/react-native-drawer-layout/tree/master) [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
1
+ # React Native Drawer Layout
2
2
 
3
- A platform-agnostic drawer layout. It uses a pure JavaScript implementation on every platform to ensure consistency. We try to keep it up to date with the implementation of [DrawerLayoutAndroid](https://facebook.github.io/react-native/docs/drawerlayoutandroid.html#content) and add features we consider necessary as well.
3
+ A cross-platform Drawer component for React Native. Implemented using [`react-native-gesture-handler`](https://docs.swmansion.com/react-native-gesture-handler/) and [`react-native-reanimated`](https://docs.swmansion.com/react-native-reanimated/).
4
4
 
5
- ## Add it to your project
5
+ Note that swipe gestures are only supported on iOS and Android.
6
6
 
7
- 1. Run `npm install react-native-drawer-layout --save`
8
- 2. Import the component by using one of these:
9
- - `var DrawerLayout = require('react-native-drawer-layout').default;`
10
- - `import DrawerLayout from 'react-native-drawer-layout';`
11
- 3. Follow the [DrawerLayoutAndroid](https://facebook.github.io/react-native/docs/drawerlayoutandroid.html#content) docs -- the API is the same. Everything that differs is explained below
7
+ ## Installation
12
8
 
13
- ## API
14
- This includes the differences between our implementation and the official one [DrawerLayoutAndroid](https://facebook.github.io/react-native/docs/drawerlayoutandroid.html#content). Every breaking change is (hopefully) hidden behind a feature flag, so that this implementation may also be used as polyfill.
9
+ Open a Terminal in the project root and run:
15
10
 
16
- ## Demo
11
+ ```sh
12
+ npm install react-native-drawer-layout
13
+ ```
17
14
 
18
- ![](https://raw.githubusercontent.com/react-native-community/react-native-drawer-layout/master/example.gif)
15
+ Then, you need to install and configure the libraries that are required by the drawer:
19
16
 
20
- ## Examples
17
+ 1. First, install [`react-native-gesture-handler`](https://docs.swmansion.com/react-native-gesture-handler/) and [`react-native-reanimated`](https://docs.swmansion.com/react-native-reanimated/).
21
18
 
22
- - [Normal usage](https://github.com/DanielMSchmidt/DrawerLayoutExample)
23
- - [Heavy Load](https://github.com/DanielMSchmidt/DrawerLayoutHeavyLoadExample)
19
+ If you have a Expo managed project, in your project directory, run:
24
20
 
25
- To run the demo, please run `npm install` in the `DrawerLayoutExample/` directory and start the demo up from there like any other React Native application.
21
+ ```sh
22
+ npx expo install react-native-gesture-handler react-native-reanimated
23
+ ```
26
24
 
27
- ## Support
25
+ If you have a bare React Native project, in your project directory, run:
28
26
 
29
- | React Native Version     | react-native-drawer-layout Version |
30
- |---------------------------|---------------------------------------|
31
- | >= 11 & < 23 | < 1.0 |
32
- | >= 23 | >= 1.0 && < 2.0 |
33
- | >= 35 | >= 2.0 |
27
+ ```bash npm2yarn
28
+ npm install react-native-gesture-handler react-native-reanimated
29
+ ```
34
30
 
35
- If you experience any further restrictions with other versions, please let us know.
31
+ The Drawer supports both Reanimated 1 and Reanimated 2. If you want to use Reanimated 2, make sure to configure it following the [installation guide](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation).
36
32
 
37
- ## Restrictions
33
+ 2. To finalize installation of `react-native-gesture-handler`, add the following at the **top** (make sure it's at the top and there's nothing else before it) of your entry file, such as `index.js` or `App.js`:
38
34
 
39
- - Currently, there is no support for setting the status bar color in iOS. If you know any workaround, we would be glad to see an idea or a PR.
40
- - The overlay to close the drawer has a `zIndex` of 1000 so setting a higher `zIndex` somewhere else may lead to inconsistencies.
35
+ ```js
36
+ import 'react-native-gesture-handler';
37
+ ```
41
38
 
42
- ## Release Notes
39
+ > Note: If you are building for Android or iOS, do not skip this step, or your app may crash in production even if it works fine in development. This is not applicable to other platforms.
43
40
 
44
- ### 1.0
41
+ 3. If you're on a Mac and developing for iOS, you also need to install the pods (via [Cocoapods](https://cocoapods.org/)) to complete the linking.
45
42
 
46
- #### Breaking changes:
43
+ ```sh
44
+ npx pod-install ios
45
+ ```
47
46
 
48
- - This version may only be used with React Native >= 0.25
47
+ We're done! Now you can build and run the app on your device/simulator.
49
48
 
50
- ### 0.3
49
+ ## Quick Start
51
50
 
52
- #### Breaking changes:
53
- - The StatusBar is no longer dimmed by sliding the drawer layout automatically. To avoid this change you may use [StatusBarIOS.setHidden](https://facebook.github.io/react-native/docs/statusbarios.html#sethidden) in the [onDrawerSlide](https://facebook.github.io/react-native/docs/drawerlayoutandroid.html#ondrawerslide) callback.
51
+ ```js
52
+ import * as React from 'react';
53
+ import { Button, Text } from 'react-native';
54
+ import { Drawer } from 'react-native-drawer-layout';
54
55
 
55
- ## Contribution
56
+ export default function DrawerExample() {
57
+ const [open, setOpen] = React.useState(false);
56
58
 
57
- Please make sure to run the tests before proposing a PR by running `npm test`.
59
+ return (
60
+ <Drawer
61
+ open={open}
62
+ onOpen={() => setOpen(true)}
63
+ onClose={() => setOpen(false)}
64
+ renderDrawerContent={() => {
65
+ return <Text>Drawer content</Text>;
66
+ }}
67
+ >
68
+ <Button
69
+ onPress={() => setOpen((prevOpen) => !prevOpen)}
70
+ title={`${open ? 'Close' : 'Open'} drawer`}
71
+ />
72
+ </Drawer>
73
+ );
74
+ }
75
+ ```
76
+
77
+ ## API reference
78
+
79
+ The package exports a `Drawer` component which is the one you'd use to render the drawer.
80
+
81
+ ### `Drawer`
82
+
83
+ Component responsible for rendering a drawer with animations and gestures.
84
+
85
+ #### Drawer Props
86
+
87
+ ##### `open`
88
+
89
+ Whether the drawer is open or not.
90
+
91
+ ##### `onOpen`
92
+
93
+ Callback which is called when the drawer is opened.
94
+
95
+ ##### `onClose`
96
+
97
+ Callback which is called when the drawer is closed.
98
+
99
+ ##### `renderDrawerContent`
100
+
101
+ Callback which returns a react element to render as the content of the drawer.
102
+
103
+ ##### `layout`
104
+
105
+ Object containing the layout of the container. Defaults to the dimensions of the application's window.
106
+
107
+ ##### `drawerPosition`
108
+
109
+ Position of the drawer on the screen. Defaults to `right` in RTL mode, otherwise `left`.
110
+
111
+ ##### `drawerType`
112
+
113
+ Type of the drawer. It determines how the drawer looks and animates.
114
+
115
+ - `front`: Traditional drawer which covers the screen with a overlay behind it.
116
+ - `back`: The drawer is revealed behind the screen on swipe.
117
+ - `slide`: Both the screen and the drawer slide on swipe to reveal the drawer.
118
+ - `permanent`: A permanent drawer is shown as a sidebar.
119
+
120
+ Defaults to `slide` on iOS and `front` on other platforms.
121
+
122
+ ##### `drawerStyle`
123
+
124
+ Style object for the drawer. You can pass a custom background color for drawer or a custom width for the drawer.
125
+
126
+ ##### `overlayStyle`
127
+
128
+ Style object for the overlay.
129
+
130
+ ##### `hideStatusBarOnOpen`
131
+
132
+ Whether to hide the status bar when the drawer is open. Defaults to `false`.
133
+
134
+ ##### `keyboardDismissMode`
135
+
136
+ Whether to dismiss the keyboard when the drawer is open. Supported values are:
137
+
138
+ - `none`: The keyboard will not be dismissed when the drawer is open.
139
+ - `on-drag`: The keyboard will be dismissed when the drawer is opened by a swipe gesture.
140
+
141
+ Defaults to `on-drag`.
142
+
143
+ ##### `statusBarAnimation`
144
+
145
+ Animation to use when the status bar is hidden. Supported values are:
146
+
147
+ - `slide`: The status bar will slide out of view.
148
+ - `fade`: The status bar will fade out of view.
149
+ - `none`: The status bar will not animate.
150
+
151
+ Use it in combination with `hideStatusBarOnOpen`.
152
+
153
+ ##### `swipeEnabled`
154
+
155
+ Whether to enable swipe gestures to open the drawer. Defaults to `true`.
156
+
157
+ This is not supported on web.
158
+
159
+ ##### `swipeEdgeWidth`
160
+
161
+ How far from the edge of the screen the swipe gesture should activate. Defaults to `32`.
162
+
163
+ This is not supported on web.
164
+
165
+ ##### `swipeMinDistance`
166
+
167
+ Minimum swipe distance that should activate opening the drawer. Defaults to `60`.
168
+
169
+ This is not supported on web.
170
+
171
+ ##### `swipeMinVelocity`
172
+
173
+ Minimum swipe velocity that should activate opening the drawer. Defaults to `500`.
174
+
175
+ This is not supported on web.
176
+
177
+ ##### `gestureHandlerProps`
178
+
179
+ Props to pass to the underlying pan gesture handler.
180
+
181
+ This is not supported on web.
182
+
183
+ ##### `children`
184
+
185
+ Content that the drawer should wrap.
186
+
187
+ ### `useDrawerProgress`
188
+
189
+ The `useDrawerProgress` hook returns a Reanimated SharedValue (with modern implementation) or Reanimated Node (with legacy implementation) which represents the progress of the drawer. It can be used to animate the content of the screen.
190
+
191
+ Example with modern implementation:
192
+
193
+ ```js
194
+ import { Animated } from 'react-native-reanimated';
195
+ import { useDrawerProgress } from 'react-native-drawer-layout';
196
+
197
+ // ...
198
+
199
+ function MyComponent() {
200
+ const progress = useDrawerProgress();
201
+
202
+ const animatedStyle = useAnimatedStyle(() => {
203
+ return {
204
+ transform: [
205
+ {
206
+ translateX: interpolate(progress, [0, 1], [-100, 0]),
207
+ },
208
+ ],
209
+ };
210
+ });
211
+
212
+ return <Animated.View style={animatedStyle}>{/* ... */}</Animated.View>;
213
+ }
214
+ ```
215
+
216
+ Example with legacy implementation:
217
+
218
+ ```js
219
+ import { Animated } from 'react-native-reanimated';
220
+ import { useDrawerProgress } from 'react-native-drawer-layout';
221
+
222
+ // ...
223
+
224
+ function MyComponent() {
225
+ const progress = useDrawerProgress();
226
+
227
+ // If you are on react-native-reanimated 1.x, use `Animated.interpolate` instead of `Animated.interpolateNode`
228
+ const translateX = Animated.interpolateNode(progress, {
229
+ inputRange: [0, 1],
230
+ outputRange: [-100, 0],
231
+ });
232
+
233
+ return (
234
+ <Animated.View style={{ transform: [{ translateX }] }}>
235
+ {/* ... */}
236
+ </Animated.View>
237
+ );
238
+ }
239
+ ```
240
+
241
+ If you are using class components, you can use the `DrawerProgressContext` to get the progress value.
242
+
243
+ ```js
244
+ import { DrawerProgressContext } from 'react-native-drawer-layout';
245
+
246
+ // ...
247
+
248
+ class MyComponent extends React.Component {
249
+ static contextType = DrawerProgressContext;
250
+
251
+ render() {
252
+ const progress = this.context;
253
+
254
+ // ...
255
+ }
256
+ }
257
+ ```
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SWIPE_MIN_VELOCITY = exports.SWIPE_MIN_OFFSET = exports.SWIPE_MIN_DISTANCE = exports.DEFAULT_DRAWER_WIDTH = void 0;
7
+ const SWIPE_MIN_OFFSET = 5;
8
+ exports.SWIPE_MIN_OFFSET = SWIPE_MIN_OFFSET;
9
+ const SWIPE_MIN_DISTANCE = 60;
10
+ exports.SWIPE_MIN_DISTANCE = SWIPE_MIN_DISTANCE;
11
+ const SWIPE_MIN_VELOCITY = 500;
12
+ exports.SWIPE_MIN_VELOCITY = SWIPE_MIN_VELOCITY;
13
+ const DEFAULT_DRAWER_WIDTH = '80%';
14
+ exports.DEFAULT_DRAWER_WIDTH = DEFAULT_DRAWER_WIDTH;
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SWIPE_MIN_OFFSET","SWIPE_MIN_DISTANCE","SWIPE_MIN_VELOCITY","DEFAULT_DRAWER_WIDTH"],"sourceRoot":"../../src","sources":["constants.tsx"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAG,CAAC;AAAC;AAC3B,MAAMC,kBAAkB,GAAG,EAAE;AAAC;AAC9B,MAAMC,kBAAkB,GAAG,GAAG;AAAC;AAC/B,MAAMC,oBAAoB,GAAG,KAAK;AAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Drawer", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Drawer.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "DrawerGestureContext", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _DrawerGestureContext.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "DrawerProgressContext", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _DrawerProgressContext.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useDrawerProgress", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _useDrawerProgress.default;
28
+ }
29
+ });
30
+ var _DrawerGestureContext = _interopRequireDefault(require("./utils/DrawerGestureContext"));
31
+ var _DrawerProgressContext = _interopRequireDefault(require("./utils/DrawerProgressContext"));
32
+ var _useDrawerProgress = _interopRequireDefault(require("./utils/useDrawerProgress"));
33
+ var _Drawer = _interopRequireDefault(require("./views/Drawer"));
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAmD"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":""}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ var _default = /*#__PURE__*/React.createContext(null);
11
+ exports.default = _default;
12
+ //# sourceMappingURL=DrawerGestureContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext"],"sourceRoot":"../../src","sources":["DrawerGestureContext.tsx"],"mappings":";;;;;;AAAA;AAA+B;AAAA;AAAA,4BAEhBA,KAAK,CAACC,aAAa,CAA8B,IAAI,CAAC;AAAA"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ var _default = /*#__PURE__*/React.createContext(undefined);
11
+ exports.default = _default;
12
+ //# sourceMappingURL=DrawerProgressContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","undefined"],"sourceRoot":"../../src","sources":["DrawerProgressContext.tsx"],"mappings":";;;;;;AAAA;AAA+B;AAAA;AAAA,4BAGhBA,KAAK,CAACC,aAAa,CAEhCC,SAAS,CAAC;AAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useDrawerProgress;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _DrawerProgressContext = _interopRequireDefault(require("./DrawerProgressContext"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ function useDrawerProgress() {
13
+ const progress = React.useContext(_DrawerProgressContext.default);
14
+ if (progress === undefined) {
15
+ throw new Error("Couldn't find a drawer. Is your component inside a drawer?");
16
+ }
17
+ return progress;
18
+ }
19
+ //# sourceMappingURL=useDrawerProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useDrawerProgress","progress","React","useContext","DrawerProgressContext","undefined","Error"],"sourceRoot":"../../src","sources":["useDrawerProgress.tsx"],"mappings":";;;;;;AAAA;AAGA;AAA4D;AAAA;AAAA;AAE7C,SAASA,iBAAiB,GAEf;EACxB,MAAMC,QAAQ,GAAGC,KAAK,CAACC,UAAU,CAACC,8BAAqB,CAAC;EAExD,IAAIH,QAAQ,KAAKI,SAAS,EAAE;IAC1B,MAAM,IAAIC,KAAK,CACb,4DAA4D,CAC7D;EACH;EAEA,OAAOL,QAAQ;AACjB"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Drawer;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var Reanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
+ var _constants = require("../constants");
11
+ var _GestureHandler = require("./GestureHandler");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+ const getDefaultDrawerWidth = _ref => {
16
+ let {
17
+ height,
18
+ width
19
+ } = _ref;
20
+ /*
21
+ * Default drawer width is screen width - header height
22
+ * with a max width of 280 on mobile and 320 on tablet
23
+ * https://material.io/components/navigation-drawer
24
+ */
25
+ const smallerAxisSize = Math.min(height, width);
26
+ const isLandscape = width > height;
27
+ const isTablet = smallerAxisSize >= 600;
28
+ const appBarHeight = _reactNative.Platform.OS === 'ios' ? isLandscape ? 32 : 44 : 56;
29
+ const maxWidth = isTablet ? 320 : 280;
30
+ return Math.min(smallerAxisSize - appBarHeight, maxWidth);
31
+ };
32
+ function Drawer(_ref2) {
33
+ var _Reanimated$isConfigu;
34
+ let {
35
+ // Reanimated 2 is not configured
36
+ // @ts-expect-error: the type definitions are incomplete
37
+ useLegacyImplementation = !((_Reanimated$isConfigu = Reanimated.isConfigured) !== null && _Reanimated$isConfigu !== void 0 && _Reanimated$isConfigu.call(Reanimated)),
38
+ layout: customLayout,
39
+ drawerType = _reactNative.Platform.select({
40
+ ios: 'slide',
41
+ default: 'front'
42
+ }),
43
+ drawerPosition = _reactNative.I18nManager.getConstants().isRTL ? 'right' : 'left',
44
+ drawerStyle,
45
+ swipeEnabled = _reactNative.Platform.OS !== 'web' && _reactNative.Platform.OS !== 'windows' && _reactNative.Platform.OS !== 'macos',
46
+ swipeEdgeWidth = 32,
47
+ swipeMinDistance = _constants.SWIPE_MIN_DISTANCE,
48
+ swipeMinVelocity = _constants.SWIPE_MIN_VELOCITY,
49
+ keyboardDismissMode = 'on-drag',
50
+ hideStatusBarOnOpen = false,
51
+ statusBarAnimation = 'slide',
52
+ style,
53
+ ...rest
54
+ } = _ref2;
55
+ // Reanimated v3 dropped legacy v1 API
56
+ const legacyImplemenationNotAvailable = require('react-native-reanimated').abs === undefined;
57
+ if (useLegacyImplementation && legacyImplemenationNotAvailable) {
58
+ throw new Error('The `useLegacyImplementation` prop is not available with Reanimated 3 as it no longer includes support for Reanimated 1 legacy API. Remove the `useLegacyImplementation` prop from `Drawer.Navigator` to be able to use it.');
59
+ }
60
+ const Drawer = useLegacyImplementation ? require('./legacy/Drawer').default : require('./modern/Drawer').default;
61
+ const windowDimensions = (0, _reactNative.useWindowDimensions)();
62
+ const layout = customLayout ?? windowDimensions;
63
+ return /*#__PURE__*/React.createElement(_GestureHandler.GestureHandlerRootView, {
64
+ style: [styles.container, style]
65
+ }, /*#__PURE__*/React.createElement(Drawer, _extends({}, rest, {
66
+ layout: layout,
67
+ drawerType: drawerType,
68
+ drawerPosition: drawerPosition,
69
+ drawerStyle: [{
70
+ width: getDefaultDrawerWidth(layout)
71
+ }, styles.drawer, drawerStyle],
72
+ swipeEnabled: swipeEnabled,
73
+ swipeEdgeWidth: swipeEdgeWidth,
74
+ swipeMinDistance: swipeMinDistance,
75
+ swipeMinVelocity: swipeMinVelocity,
76
+ keyboardDismissMode: keyboardDismissMode,
77
+ hideStatusBarOnOpen: hideStatusBarOnOpen,
78
+ statusBarAnimation: statusBarAnimation
79
+ })));
80
+ }
81
+ const styles = _reactNative.StyleSheet.create({
82
+ container: {
83
+ flex: 1
84
+ },
85
+ drawer: {
86
+ backgroundColor: 'white'
87
+ }
88
+ });
89
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getDefaultDrawerWidth","height","width","smallerAxisSize","Math","min","isLandscape","isTablet","appBarHeight","Platform","OS","maxWidth","Drawer","useLegacyImplementation","Reanimated","isConfigured","layout","customLayout","drawerType","select","ios","default","drawerPosition","I18nManager","getConstants","isRTL","drawerStyle","swipeEnabled","swipeEdgeWidth","swipeMinDistance","SWIPE_MIN_DISTANCE","swipeMinVelocity","SWIPE_MIN_VELOCITY","keyboardDismissMode","hideStatusBarOnOpen","statusBarAnimation","style","rest","legacyImplemenationNotAvailable","require","abs","undefined","Error","windowDimensions","useWindowDimensions","styles","container","drawer","StyleSheet","create","flex","backgroundColor"],"sourceRoot":"../../src","sources":["Drawer.tsx"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _GestureHandlerNative = require("./GestureHandlerNative");
7
+ Object.keys(_GestureHandlerNative).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _GestureHandlerNative[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _GestureHandlerNative[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=GestureHandler.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["GestureHandler.android.tsx"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _GestureHandlerNative = require("./GestureHandlerNative");
7
+ Object.keys(_GestureHandlerNative).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _GestureHandlerNative[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _GestureHandlerNative[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=GestureHandler.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["GestureHandler.ios.tsx"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TapGestureHandler = exports.PanGestureHandler = exports.GestureState = exports.GestureHandlerRootView = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ const Dummy = _ref => {
12
+ let {
13
+ children
14
+ } = _ref;
15
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children);
16
+ };
17
+ const PanGestureHandler = Dummy;
18
+ exports.PanGestureHandler = PanGestureHandler;
19
+ const TapGestureHandler = Dummy;
20
+ exports.TapGestureHandler = TapGestureHandler;
21
+ const GestureHandlerRootView = _reactNative.View;
22
+ exports.GestureHandlerRootView = GestureHandlerRootView;
23
+ let GestureState;
24
+ exports.GestureState = GestureState;
25
+ (function (GestureState) {
26
+ GestureState[GestureState["UNDETERMINED"] = 0] = "UNDETERMINED";
27
+ GestureState[GestureState["FAILED"] = 1] = "FAILED";
28
+ GestureState[GestureState["BEGAN"] = 2] = "BEGAN";
29
+ GestureState[GestureState["CANCELLED"] = 3] = "CANCELLED";
30
+ GestureState[GestureState["ACTIVE"] = 4] = "ACTIVE";
31
+ GestureState[GestureState["END"] = 5] = "END";
32
+ })(GestureState || (exports.GestureState = GestureState = {}));
33
+ //# sourceMappingURL=GestureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dummy","children","PanGestureHandler","TapGestureHandler","GestureHandlerRootView","View","GestureState"],"sourceRoot":"../../src","sources":["GestureHandler.tsx"],"mappings":";;;;;;AAAA;AACA;AAAoC;AAAA;AAMpC,MAAMA,KAAU,GAAG;EAAA,IAAC;IAAEC;EAAwC,CAAC;EAAA,oBAC7D,0CAAGA,QAAQ,CAAI;AAAA,CAChB;AAEM,MAAMC,iBAAiB,GAC5BF,KAAyD;AAAC;AAErD,MAAMG,iBAAiB,GAC5BH,KAAyD;AAAC;AAErD,MAAMI,sBAAsB,GAAGC,iBAAI;AAAC;AAAA,IAEzBC,YAAY;AAAA;AAAA,WAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;AAAA,GAAZA,YAAY,4BAAZA,YAAY"}