@react-navigation/drawer 6.5.4 → 6.5.5

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 (143) hide show
  1. package/lib/commonjs/index.js +0 -14
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/navigators/createDrawerNavigator.js +0 -15
  4. package/lib/commonjs/navigators/createDrawerNavigator.js.map +1 -1
  5. package/lib/commonjs/types.js.map +1 -1
  6. package/lib/commonjs/utils/DrawerGestureContext.js +0 -5
  7. package/lib/commonjs/utils/DrawerGestureContext.js.map +1 -1
  8. package/lib/commonjs/utils/DrawerPositionContext.js +0 -5
  9. package/lib/commonjs/utils/DrawerPositionContext.js.map +1 -1
  10. package/lib/commonjs/utils/DrawerProgressContext.js +0 -5
  11. package/lib/commonjs/utils/DrawerProgressContext.js.map +1 -1
  12. package/lib/commonjs/utils/DrawerStatusContext.js +0 -4
  13. package/lib/commonjs/utils/DrawerStatusContext.js.map +1 -1
  14. package/lib/commonjs/utils/getDrawerStatusFromState.js +1 -5
  15. package/lib/commonjs/utils/getDrawerStatusFromState.js.map +1 -1
  16. package/lib/commonjs/utils/useDrawerProgress.js +0 -8
  17. package/lib/commonjs/utils/useDrawerProgress.js.map +1 -1
  18. package/lib/commonjs/utils/useDrawerStatus.js +0 -8
  19. package/lib/commonjs/utils/useDrawerStatus.js.map +1 -1
  20. package/lib/commonjs/views/DrawerContent.js +0 -8
  21. package/lib/commonjs/views/DrawerContent.js.map +1 -1
  22. package/lib/commonjs/views/DrawerContentScrollView.js +0 -12
  23. package/lib/commonjs/views/DrawerContentScrollView.js.map +1 -1
  24. package/lib/commonjs/views/DrawerItem.js +8 -21
  25. package/lib/commonjs/views/DrawerItem.js.map +1 -1
  26. package/lib/commonjs/views/DrawerItemList.js +2 -11
  27. package/lib/commonjs/views/DrawerItemList.js.map +1 -1
  28. package/lib/commonjs/views/DrawerToggleButton.js +0 -9
  29. package/lib/commonjs/views/DrawerToggleButton.js.map +1 -1
  30. package/lib/commonjs/views/DrawerView.js +9 -52
  31. package/lib/commonjs/views/DrawerView.js.map +1 -1
  32. package/lib/commonjs/views/GestureHandler.android.js +0 -2
  33. package/lib/commonjs/views/GestureHandler.android.js.map +1 -1
  34. package/lib/commonjs/views/GestureHandler.ios.js +0 -2
  35. package/lib/commonjs/views/GestureHandler.ios.js.map +1 -1
  36. package/lib/commonjs/views/GestureHandler.js +0 -6
  37. package/lib/commonjs/views/GestureHandler.js.map +1 -1
  38. package/lib/commonjs/views/GestureHandlerNative.js +0 -7
  39. package/lib/commonjs/views/GestureHandlerNative.js.map +1 -1
  40. package/lib/commonjs/views/ScreenFallback.js +2 -18
  41. package/lib/commonjs/views/ScreenFallback.js.map +1 -1
  42. package/lib/commonjs/views/legacy/Drawer.js +62 -105
  43. package/lib/commonjs/views/legacy/Drawer.js.map +1 -1
  44. package/lib/commonjs/views/legacy/Overlay.js +3 -13
  45. package/lib/commonjs/views/legacy/Overlay.js.map +1 -1
  46. package/lib/commonjs/views/modern/Drawer.js +20 -41
  47. package/lib/commonjs/views/modern/Drawer.js.map +1 -1
  48. package/lib/commonjs/views/modern/Overlay.js +4 -12
  49. package/lib/commonjs/views/modern/Overlay.js.map +1 -1
  50. package/lib/module/index.js +3 -2
  51. package/lib/module/index.js.map +1 -1
  52. package/lib/module/navigators/createDrawerNavigator.js +0 -7
  53. package/lib/module/navigators/createDrawerNavigator.js.map +1 -1
  54. package/lib/module/types.js.map +1 -1
  55. package/lib/module/utils/DrawerGestureContext.js.map +1 -1
  56. package/lib/module/utils/DrawerPositionContext.js.map +1 -1
  57. package/lib/module/utils/DrawerProgressContext.js.map +1 -1
  58. package/lib/module/utils/DrawerStatusContext.js.map +1 -1
  59. package/lib/module/utils/getDrawerStatusFromState.js +1 -4
  60. package/lib/module/utils/getDrawerStatusFromState.js.map +1 -1
  61. package/lib/module/utils/useDrawerProgress.js +0 -2
  62. package/lib/module/utils/useDrawerProgress.js.map +1 -1
  63. package/lib/module/utils/useDrawerStatus.js +1 -3
  64. package/lib/module/utils/useDrawerStatus.js.map +1 -1
  65. package/lib/module/views/DrawerContent.js +0 -1
  66. package/lib/module/views/DrawerContent.js.map +1 -1
  67. package/lib/module/views/DrawerContentScrollView.js +0 -3
  68. package/lib/module/views/DrawerContentScrollView.js.map +1 -1
  69. package/lib/module/views/DrawerItem.js +8 -10
  70. package/lib/module/views/DrawerItem.js.map +1 -1
  71. package/lib/module/views/DrawerItemList.js +2 -5
  72. package/lib/module/views/DrawerItemList.js.map +1 -1
  73. package/lib/module/views/DrawerToggleButton.js +0 -1
  74. package/lib/module/views/DrawerToggleButton.js.map +1 -1
  75. package/lib/module/views/DrawerView.js +9 -35
  76. package/lib/module/views/DrawerView.js.map +1 -1
  77. package/lib/module/views/GestureHandler.android.js.map +1 -1
  78. package/lib/module/views/GestureHandler.ios.js.map +1 -1
  79. package/lib/module/views/GestureHandler.js +0 -2
  80. package/lib/module/views/GestureHandler.js.map +1 -1
  81. package/lib/module/views/GestureHandlerNative.js.map +1 -1
  82. package/lib/module/views/ScreenFallback.js +2 -10
  83. package/lib/module/views/ScreenFallback.js.map +1 -1
  84. package/lib/module/views/legacy/Drawer.js +62 -90
  85. package/lib/module/views/legacy/Drawer.js.map +1 -1
  86. package/lib/module/views/legacy/Overlay.js +3 -3
  87. package/lib/module/views/legacy/Overlay.js.map +1 -1
  88. package/lib/module/views/modern/Drawer.js +20 -27
  89. package/lib/module/views/modern/Drawer.js.map +1 -1
  90. package/lib/module/views/modern/Overlay.js +4 -3
  91. package/lib/module/views/modern/Overlay.js.map +1 -1
  92. package/lib/typescript/src/index.d.ts +1 -0
  93. package/lib/typescript/src/index.d.ts.map +1 -0
  94. package/lib/typescript/src/navigators/createDrawerNavigator.d.ts +1 -0
  95. package/lib/typescript/src/navigators/createDrawerNavigator.d.ts.map +1 -0
  96. package/lib/typescript/src/types.d.ts +1 -0
  97. package/lib/typescript/src/types.d.ts.map +1 -0
  98. package/lib/typescript/src/utils/DrawerGestureContext.d.ts +1 -0
  99. package/lib/typescript/src/utils/DrawerGestureContext.d.ts.map +1 -0
  100. package/lib/typescript/src/utils/DrawerPositionContext.d.ts +1 -0
  101. package/lib/typescript/src/utils/DrawerPositionContext.d.ts.map +1 -0
  102. package/lib/typescript/src/utils/DrawerProgressContext.d.ts +1 -0
  103. package/lib/typescript/src/utils/DrawerProgressContext.d.ts.map +1 -0
  104. package/lib/typescript/src/utils/DrawerStatusContext.d.ts +1 -0
  105. package/lib/typescript/src/utils/DrawerStatusContext.d.ts.map +1 -0
  106. package/lib/typescript/src/utils/getDrawerStatusFromState.d.ts +1 -0
  107. package/lib/typescript/src/utils/getDrawerStatusFromState.d.ts.map +1 -0
  108. package/lib/typescript/src/utils/useDrawerProgress.d.ts +1 -0
  109. package/lib/typescript/src/utils/useDrawerProgress.d.ts.map +1 -0
  110. package/lib/typescript/src/utils/useDrawerStatus.d.ts +1 -0
  111. package/lib/typescript/src/utils/useDrawerStatus.d.ts.map +1 -0
  112. package/lib/typescript/src/views/DrawerContent.d.ts +1 -0
  113. package/lib/typescript/src/views/DrawerContent.d.ts.map +1 -0
  114. package/lib/typescript/src/views/DrawerContentScrollView.d.ts +1 -0
  115. package/lib/typescript/src/views/DrawerContentScrollView.d.ts.map +1 -0
  116. package/lib/typescript/src/views/DrawerItem.d.ts +1 -0
  117. package/lib/typescript/src/views/DrawerItem.d.ts.map +1 -0
  118. package/lib/typescript/src/views/DrawerItemList.d.ts +1 -0
  119. package/lib/typescript/src/views/DrawerItemList.d.ts.map +1 -0
  120. package/lib/typescript/src/views/DrawerToggleButton.d.ts +1 -0
  121. package/lib/typescript/src/views/DrawerToggleButton.d.ts.map +1 -0
  122. package/lib/typescript/src/views/DrawerView.d.ts +1 -0
  123. package/lib/typescript/src/views/DrawerView.d.ts.map +1 -0
  124. package/lib/typescript/src/views/GestureHandler.android.d.ts +1 -0
  125. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
  126. package/lib/typescript/src/views/GestureHandler.d.ts +1 -0
  127. package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
  128. package/lib/typescript/src/views/GestureHandler.ios.d.ts +1 -0
  129. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
  130. package/lib/typescript/src/views/GestureHandlerNative.d.ts +1 -0
  131. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
  132. package/lib/typescript/src/views/ScreenFallback.d.ts +1 -0
  133. package/lib/typescript/src/views/ScreenFallback.d.ts.map +1 -0
  134. package/lib/typescript/src/views/legacy/Drawer.d.ts +1 -0
  135. package/lib/typescript/src/views/legacy/Drawer.d.ts.map +1 -0
  136. package/lib/typescript/src/views/legacy/Overlay.d.ts +1 -0
  137. package/lib/typescript/src/views/legacy/Overlay.d.ts.map +1 -0
  138. package/lib/typescript/src/views/modern/Drawer.d.ts +1 -0
  139. package/lib/typescript/src/views/modern/Drawer.d.ts.map +1 -0
  140. package/lib/typescript/src/views/modern/Overlay.d.ts +1 -0
  141. package/lib/typescript/src/views/modern/Overlay.d.ts.map +1 -0
  142. package/package.json +5 -5
  143. package/src/views/modern/Overlay.tsx +1 -0
@@ -4,29 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var React = _interopRequireWildcard(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
13
-
14
10
  var _DrawerProgressContext = _interopRequireDefault(require("../../utils/DrawerProgressContext"));
15
-
16
11
  var _GestureHandler = require("../GestureHandler");
17
-
18
12
  var _Overlay = _interopRequireDefault(require("./Overlay"));
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  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); }
23
-
24
15
  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; }
25
-
26
16
  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); }
27
-
28
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
-
17
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
30
20
  const {
31
21
  Clock,
32
22
  Value,
@@ -72,25 +62,20 @@ const SPRING_CONFIG = {
72
62
  };
73
63
  const ANIMATED_ZERO = new _reactNativeReanimated.default.Value(0);
74
64
  const ANIMATED_ONE = new _reactNativeReanimated.default.Value(1);
75
-
76
65
  class DrawerView extends React.Component {
77
66
  constructor() {
78
67
  super(...arguments);
79
-
80
68
  _defineProperty(this, "handleEndInteraction", () => {
81
69
  if (this.interactionHandle !== undefined) {
82
70
  _reactNative.InteractionManager.clearInteractionHandle(this.interactionHandle);
83
-
84
71
  this.interactionHandle = undefined;
85
72
  }
86
73
  });
87
-
88
74
  _defineProperty(this, "handleStartInteraction", () => {
89
75
  if (this.interactionHandle === undefined) {
90
76
  this.interactionHandle = _reactNative.InteractionManager.createInteractionHandle();
91
77
  }
92
78
  });
93
-
94
79
  _defineProperty(this, "getDrawerWidth", () => {
95
80
  const {
96
81
  drawerStyle,
@@ -99,69 +84,43 @@ class DrawerView extends React.Component {
99
84
  const {
100
85
  width = DEFAULT_DRAWER_WIDTH
101
86
  } = _reactNative.StyleSheet.flatten(drawerStyle) || {};
102
-
103
87
  if (typeof width === 'string' && width.endsWith('%')) {
104
88
  // Try to calculate width if a percentage is given
105
89
  const percentage = Number(width.replace(/%$/, ''));
106
-
107
90
  if (Number.isFinite(percentage)) {
108
91
  return dimensions.width * (percentage / 100);
109
92
  }
110
93
  }
111
-
112
94
  return typeof width === 'number' ? width : 0;
113
95
  });
114
-
115
96
  _defineProperty(this, "clock", new Clock());
116
-
117
97
  _defineProperty(this, "interactionHandle", void 0);
118
-
119
98
  _defineProperty(this, "isDrawerTypeFront", new Value(this.props.drawerType === 'front' ? TRUE : FALSE));
120
-
121
99
  _defineProperty(this, "isOpen", new Value(this.props.open ? TRUE : FALSE));
122
-
123
100
  _defineProperty(this, "nextIsOpen", new Value(UNSET));
124
-
125
101
  _defineProperty(this, "isSwiping", new Value(FALSE));
126
-
127
102
  _defineProperty(this, "initialDrawerWidth", this.getDrawerWidth());
128
-
129
103
  _defineProperty(this, "gestureState", new Value(_GestureHandler.GestureState.UNDETERMINED));
130
-
131
104
  _defineProperty(this, "touchX", new Value(0));
132
-
133
105
  _defineProperty(this, "velocityX", new Value(0));
134
-
135
106
  _defineProperty(this, "gestureX", new Value(0));
136
-
137
107
  _defineProperty(this, "offsetX", new Value(0));
138
-
139
108
  _defineProperty(this, "position", new Value(this.props.open ? this.initialDrawerWidth * (this.props.drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT) : 0));
140
-
141
109
  _defineProperty(this, "containerWidth", new Value(this.props.dimensions.width));
142
-
143
110
  _defineProperty(this, "drawerWidth", new Value(this.initialDrawerWidth));
144
-
145
111
  _defineProperty(this, "drawerOpacity", new Value(this.props.drawerType === 'permanent' ? 1 : 0));
146
-
147
112
  _defineProperty(this, "drawerPosition", new Value(this.props.drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT));
148
-
149
- _defineProperty(this, "touchDistanceFromDrawer", cond(this.isDrawerTypeFront, cond(eq(this.drawerPosition, DIRECTION_LEFT), max( // Distance of touch start from left screen edge - Drawer width
150
- sub(sub(this.touchX, this.gestureX), this.drawerWidth), 0), min(multiply( // Distance of drawer from left screen edge - Touch start point
113
+ _defineProperty(this, "touchDistanceFromDrawer", cond(this.isDrawerTypeFront, cond(eq(this.drawerPosition, DIRECTION_LEFT), max(
114
+ // Distance of touch start from left screen edge - Drawer width
115
+ sub(sub(this.touchX, this.gestureX), this.drawerWidth), 0), min(multiply(
116
+ // Distance of drawer from left screen edge - Touch start point
151
117
  sub(sub(this.containerWidth, this.drawerWidth), sub(this.touchX, this.gestureX)), DIRECTION_RIGHT), 0)), 0));
152
-
153
118
  _defineProperty(this, "swipeDistanceThreshold", new Value(this.props.swipeDistanceThreshold));
154
-
155
119
  _defineProperty(this, "swipeVelocityThreshold", new Value(this.props.swipeVelocityThreshold));
156
-
157
120
  _defineProperty(this, "currentOpenValue", this.props.open);
158
-
159
121
  _defineProperty(this, "pendingOpenValue", void 0);
160
-
161
122
  _defineProperty(this, "isStatusBarHidden", false);
162
-
163
123
  _defineProperty(this, "manuallyTriggerSpring", new Value(FALSE));
164
-
165
124
  _defineProperty(this, "transitionTo", isOpen => {
166
125
  const toValue = new Value(0);
167
126
  const frameTime = new Value(0);
@@ -171,17 +130,20 @@ class DrawerView extends React.Component {
171
130
  finished: new Value(FALSE),
172
131
  velocity: new Value(0)
173
132
  };
174
- return block([cond(clockRunning(this.clock), NOOP, [// Animation wasn't running before
133
+ return block([cond(clockRunning(this.clock), NOOP, [
134
+ // Animation wasn't running before
175
135
  // Set the initial values and start the clock
176
- set(toValue, multiply(isOpen, this.drawerWidth, this.drawerPosition)), set(frameTime, 0), set(state.time, 0), set(state.finished, FALSE), set(state.velocity, this.velocityX), set(this.isOpen, isOpen), startClock(this.clock), call([], this.handleStartInteraction), set(this.manuallyTriggerSpring, FALSE)]), spring(this.clock, state, { ...SPRING_CONFIG,
136
+ set(toValue, multiply(isOpen, this.drawerWidth, this.drawerPosition)), set(frameTime, 0), set(state.time, 0), set(state.finished, FALSE), set(state.velocity, this.velocityX), set(this.isOpen, isOpen), startClock(this.clock), call([], this.handleStartInteraction), set(this.manuallyTriggerSpring, FALSE)]), spring(this.clock, state, {
137
+ ...SPRING_CONFIG,
177
138
  toValue
178
- }), cond(state.finished, [// Reset gesture and velocity from previous gesture
179
- set(this.touchX, 0), set(this.gestureX, 0), set(this.velocityX, 0), set(this.offsetX, 0), // When the animation finishes, stop the clock
139
+ }), cond(state.finished, [
140
+ // Reset gesture and velocity from previous gesture
141
+ set(this.touchX, 0), set(this.gestureX, 0), set(this.velocityX, 0), set(this.offsetX, 0),
142
+ // When the animation finishes, stop the clock
180
143
  stopClock(this.clock), call([this.isOpen], _ref => {
181
144
  let [value] = _ref;
182
145
  const open = Boolean(value);
183
146
  this.handleEndInteraction();
184
-
185
147
  if (open !== this.props.open) {
186
148
  // Sync drawer's state after animation finished
187
149
  // This shouldn't be necessary, but there seems to be an issue on iOS
@@ -189,12 +151,12 @@ class DrawerView extends React.Component {
189
151
  }
190
152
  })])]);
191
153
  });
192
-
193
154
  _defineProperty(this, "dragX", block([onChange(this.isOpen, call([this.isOpen], _ref2 => {
194
155
  let [value] = _ref2;
195
156
  const open = Boolean(value);
196
- this.currentOpenValue = open; // Without this check, the drawer can go to an infinite update <-> animate loop for sync updates
157
+ this.currentOpenValue = open;
197
158
 
159
+ // Without this check, the drawer can go to an infinite update <-> animate loop for sync updates
198
160
  if (open !== this.props.open) {
199
161
  // If the mode changed, update state
200
162
  if (open) {
@@ -202,17 +164,21 @@ class DrawerView extends React.Component {
202
164
  } else {
203
165
  this.props.onClose();
204
166
  }
167
+ this.pendingOpenValue = open;
205
168
 
206
- this.pendingOpenValue = open; // Force componentDidUpdate to fire, whether user does a setState or not
169
+ // Force componentDidUpdate to fire, whether user does a setState or not
207
170
  // This allows us to detect when the user drops the update and revert back
208
171
  // It's necessary to make sure that the state stays in sync
209
-
210
172
  this.forceUpdate();
211
173
  }
212
- })), onChange(this.nextIsOpen, cond(neq(this.nextIsOpen, UNSET), [// Stop any running animations
213
- cond(clockRunning(this.clock), stopClock(this.clock)), // Update the open value to trigger the transition
214
- set(this.isOpen, this.nextIsOpen), set(this.gestureX, 0), set(this.nextIsOpen, UNSET)])), // This block must be after the this.isOpen listener since we check for current value
215
- onChange(this.isSwiping, // Listen to updates for this value only when it changes
174
+ })), onChange(this.nextIsOpen, cond(neq(this.nextIsOpen, UNSET), [
175
+ // Stop any running animations
176
+ cond(clockRunning(this.clock), stopClock(this.clock)),
177
+ // Update the open value to trigger the transition
178
+ set(this.isOpen, this.nextIsOpen), set(this.gestureX, 0), set(this.nextIsOpen, UNSET)])),
179
+ // This block must be after the this.isOpen listener since we check for current value
180
+ onChange(this.isSwiping,
181
+ // Listen to updates for this value only when it changes
216
182
  // Without `onChange`, this will fire even if the value didn't change
217
183
  // We don't want to call the listeners if the value didn't change
218
184
  call([this.isSwiping], _ref3 => {
@@ -220,29 +186,31 @@ class DrawerView extends React.Component {
220
186
  const {
221
187
  keyboardDismissMode
222
188
  } = this.props;
223
-
224
189
  if (value === TRUE) {
225
190
  if (keyboardDismissMode === 'on-drag') {
226
191
  _reactNative.Keyboard.dismiss();
227
192
  }
228
-
229
193
  this.toggleStatusBar(true);
230
194
  } else {
231
195
  this.toggleStatusBar(this.currentOpenValue);
232
196
  }
233
- })), onChange(this.gestureState, cond(eq(this.gestureState, _GestureHandler.GestureState.ACTIVE), call([], this.handleStartInteraction))), cond(eq(this.gestureState, _GestureHandler.GestureState.ACTIVE), [cond(this.isSwiping, NOOP, [// We weren't dragging before, set it to true
234
- set(this.isSwiping, TRUE), // Also update the drag offset to the last position
235
- set(this.offsetX, this.position)]), // Update position with previous offset + gesture distance
236
- set(this.position, add(this.offsetX, this.gestureX, this.touchDistanceFromDrawer)), // Stop animations while we're dragging
237
- stopClock(this.clock)], [set(this.isSwiping, FALSE), set(this.touchX, 0), this.transitionTo(cond(this.manuallyTriggerSpring, this.isOpen, cond(or(and(greaterThan(abs(this.gestureX), SWIPE_DISTANCE_MINIMUM), greaterThan(abs(this.velocityX), this.swipeVelocityThreshold)), greaterThan(abs(this.gestureX), this.swipeDistanceThreshold)), cond(eq(this.drawerPosition, DIRECTION_LEFT), // If swiped to right, open the drawer, otherwise close it
238
- greaterThan(cond(eq(this.velocityX, 0), this.gestureX, this.velocityX), 0), // If swiped to left, open the drawer, otherwise close it
197
+ })), onChange(this.gestureState, cond(eq(this.gestureState, _GestureHandler.GestureState.ACTIVE), call([], this.handleStartInteraction))), cond(eq(this.gestureState, _GestureHandler.GestureState.ACTIVE), [cond(this.isSwiping, NOOP, [
198
+ // We weren't dragging before, set it to true
199
+ set(this.isSwiping, TRUE),
200
+ // Also update the drag offset to the last position
201
+ set(this.offsetX, this.position)]),
202
+ // Update position with previous offset + gesture distance
203
+ set(this.position, add(this.offsetX, this.gestureX, this.touchDistanceFromDrawer)),
204
+ // Stop animations while we're dragging
205
+ stopClock(this.clock)], [set(this.isSwiping, FALSE), set(this.touchX, 0), this.transitionTo(cond(this.manuallyTriggerSpring, this.isOpen, cond(or(and(greaterThan(abs(this.gestureX), SWIPE_DISTANCE_MINIMUM), greaterThan(abs(this.velocityX), this.swipeVelocityThreshold)), greaterThan(abs(this.gestureX), this.swipeDistanceThreshold)), cond(eq(this.drawerPosition, DIRECTION_LEFT),
206
+ // If swiped to right, open the drawer, otherwise close it
207
+ greaterThan(cond(eq(this.velocityX, 0), this.gestureX, this.velocityX), 0),
208
+ // If swiped to left, open the drawer, otherwise close it
239
209
  lessThan(cond(eq(this.velocityX, 0), this.gestureX, this.velocityX), 0)), this.isOpen)))]), this.position]));
240
-
241
210
  _defineProperty(this, "translateX", cond(eq(this.drawerPosition, DIRECTION_RIGHT), min(max(multiply(this.drawerWidth, -1), this.dragX), 0), max(min(this.drawerWidth, this.dragX), 0)));
242
-
243
- _defineProperty(this, "progress", cond( // Check if the drawer width is available to avoid division by zero
211
+ _defineProperty(this, "progress", cond(
212
+ // Check if the drawer width is available to avoid division by zero
244
213
  eq(this.drawerWidth, 0), 0, abs(divide(this.translateX, this.drawerWidth))));
245
-
246
214
  _defineProperty(this, "handleGestureEvent", event([{
247
215
  nativeEvent: {
248
216
  x: this.touchX,
@@ -250,47 +218,41 @@ class DrawerView extends React.Component {
250
218
  velocityX: this.velocityX
251
219
  }
252
220
  }]));
253
-
254
221
  _defineProperty(this, "handleGestureStateChange", event([{
255
222
  nativeEvent: {
256
223
  state: s => set(this.gestureState, s)
257
224
  }
258
225
  }]));
259
-
260
226
  _defineProperty(this, "handleContainerLayout", e => this.containerWidth.setValue(e.nativeEvent.layout.width));
261
-
262
227
  _defineProperty(this, "handleDrawerLayout", e => {
263
228
  this.drawerWidth.setValue(e.nativeEvent.layout.width);
264
- this.toggleDrawer(this.props.open); // Until layout is available, drawer is hidden with opacity: 0 by default
229
+ this.toggleDrawer(this.props.open);
230
+
231
+ // Until layout is available, drawer is hidden with opacity: 0 by default
265
232
  // Show it in the next frame when layout is available
266
233
  // If we don't delay it until the next frame, there's a visible flicker
267
-
268
234
  requestAnimationFrame(() => requestAnimationFrame(() => this.drawerOpacity.setValue(1)));
269
235
  });
270
-
271
236
  _defineProperty(this, "toggleDrawer", open => {
272
237
  if (this.currentOpenValue !== open) {
273
- this.nextIsOpen.setValue(open ? TRUE : FALSE); // This value will also be set shortly after as changing this.nextIsOpen changes this.isOpen
274
- // However, there's a race condition on Android, so we need to set a bit earlier
238
+ this.nextIsOpen.setValue(open ? TRUE : FALSE);
275
239
 
240
+ // This value will also be set shortly after as changing this.nextIsOpen changes this.isOpen
241
+ // However, there's a race condition on Android, so we need to set a bit earlier
276
242
  this.currentOpenValue = open;
277
243
  }
278
244
  });
279
-
280
245
  _defineProperty(this, "toggleStatusBar", hidden => {
281
246
  const {
282
247
  hideStatusBarOnOpen: hideStatusBar,
283
248
  statusBarAnimation
284
249
  } = this.props;
285
-
286
250
  if (hideStatusBar && this.isStatusBarHidden !== hidden) {
287
251
  this.isStatusBarHidden = hidden;
288
-
289
252
  _reactNative.StatusBar.setHidden(hidden, statusBarAnimation);
290
253
  }
291
254
  });
292
255
  }
293
-
294
256
  componentDidUpdate(prevProps) {
295
257
  const {
296
258
  open,
@@ -300,40 +262,32 @@ class DrawerView extends React.Component {
300
262
  swipeVelocityThreshold,
301
263
  hideStatusBarOnOpen: hideStatusBar
302
264
  } = this.props;
303
-
304
- if ( // If we're not in the middle of a transition, sync the drawer's open state
265
+ if (
266
+ // If we're not in the middle of a transition, sync the drawer's open state
305
267
  typeof this.pendingOpenValue !== 'boolean' || open !== this.pendingOpenValue) {
306
268
  this.toggleDrawer(open);
307
269
  }
308
-
309
270
  this.pendingOpenValue = undefined;
310
-
311
271
  if (open !== prevProps.open && hideStatusBar) {
312
272
  this.toggleStatusBar(open);
313
273
  }
314
-
315
274
  if (prevProps.drawerPosition !== drawerPosition) {
316
275
  this.drawerPosition.setValue(drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT);
317
276
  }
318
-
319
277
  if (prevProps.drawerType !== drawerType) {
320
278
  this.isDrawerTypeFront.setValue(drawerType === 'front' ? TRUE : FALSE);
321
279
  }
322
-
323
280
  if (prevProps.swipeDistanceThreshold !== swipeDistanceThreshold) {
324
281
  this.swipeDistanceThreshold.setValue(swipeDistanceThreshold);
325
282
  }
326
-
327
283
  if (prevProps.swipeVelocityThreshold !== swipeVelocityThreshold) {
328
284
  this.swipeVelocityThreshold.setValue(swipeVelocityThreshold);
329
285
  }
330
286
  }
331
-
332
287
  componentWillUnmount() {
333
288
  this.toggleStatusBar(false);
334
289
  this.handleEndInteraction();
335
290
  }
336
-
337
291
  render() {
338
292
  const {
339
293
  open,
@@ -351,10 +305,12 @@ class DrawerView extends React.Component {
351
305
  const isRight = drawerPosition === 'right';
352
306
  const contentTranslateX = drawerType === 'front' ? ANIMATED_ZERO : this.translateX;
353
307
  const drawerTranslateX = drawerType === 'back' ? _reactNative.I18nManager.getConstants().isRTL ? multiply(sub(this.containerWidth, this.drawerWidth), isRight ? 1 : -1) : ANIMATED_ZERO : this.translateX;
354
- const offset = drawerType === 'back' ? 0 : _reactNative.I18nManager.getConstants().isRTL ? '100%' : multiply(this.drawerWidth, -1); // FIXME: Currently hitSlop is broken when on Android when drawer is on right
355
- // https://github.com/software-mansion/react-native-gesture-handler/issues/569
308
+ const offset = drawerType === 'back' ? 0 : _reactNative.I18nManager.getConstants().isRTL ? '100%' : multiply(this.drawerWidth, -1);
356
309
 
357
- const hitSlop = isRight ? // Extend hitSlop to the side of the screen when drawer is closed
310
+ // FIXME: Currently hitSlop is broken when on Android when drawer is on right
311
+ // https://github.com/software-mansion/react-native-gesture-handler/issues/569
312
+ const hitSlop = isRight ?
313
+ // Extend hitSlop to the side of the screen when drawer is closed
358
314
  // This lets the user drag the drawer from the side of the screen
359
315
  {
360
316
  right: 0,
@@ -380,7 +336,8 @@ class DrawerView extends React.Component {
380
336
  }]
381
337
  }, /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
382
338
  style: [styles.content, {
383
- transform: drawerType === 'permanent' ? // Reanimated needs the property to be present, but it results in Browser bug
339
+ transform: drawerType === 'permanent' ?
340
+ // Reanimated needs the property to be present, but it results in Browser bug
384
341
  // https://bugs.chromium.org/p/chromium/issues/detail?id=20574
385
342
  [] : [{
386
343
  translateX: contentTranslateX
@@ -390,7 +347,8 @@ class DrawerView extends React.Component {
390
347
  accessibilityElementsHidden: isOpen && drawerType !== 'permanent',
391
348
  importantForAccessibility: isOpen && drawerType !== 'permanent' ? 'no-hide-descendants' : 'auto',
392
349
  style: styles.content
393
- }, renderSceneContent()), // Disable overlay if sidebar is permanent
350
+ }, renderSceneContent()),
351
+ // Disable overlay if sidebar is permanent
394
352
  drawerType === 'permanent' ? null : /*#__PURE__*/React.createElement(_Overlay.default, {
395
353
  progress: progress,
396
354
  onPress: () => this.toggleDrawer(false),
@@ -408,13 +366,15 @@ class DrawerView extends React.Component {
408
366
  removeClippedSubviews: _reactNative.Platform.OS !== 'ios',
409
367
  onLayout: this.handleDrawerLayout,
410
368
  style: [styles.container, {
411
- transform: drawerType === 'permanent' ? // Reanimated needs the property to be present, but it results in Browser bug
369
+ transform: drawerType === 'permanent' ?
370
+ // Reanimated needs the property to be present, but it results in Browser bug
412
371
  // https://bugs.chromium.org/p/chromium/issues/detail?id=20574
413
372
  [] : [{
414
373
  translateX: drawerTranslateX
415
374
  }],
416
375
  opacity: this.drawerOpacity
417
- }, drawerType === 'permanent' ? // Without this, the `left`/`right` values don't get reset
376
+ }, drawerType === 'permanent' ?
377
+ // Without this, the `left`/`right` values don't get reset
418
378
  isRight ? {
419
379
  right: 0
420
380
  } : {
@@ -428,11 +388,8 @@ class DrawerView extends React.Component {
428
388
  }], drawerStyle]
429
389
  }, renderDrawerContent()))));
430
390
  }
431
-
432
391
  }
433
-
434
392
  exports.default = DrawerView;
435
-
436
393
  const styles = _reactNative.StyleSheet.create({
437
394
  container: {
438
395
  backgroundColor: 'white',
@@ -1 +1 @@
1
- {"version":3,"names":["Clock","Value","onChange","clockRunning","startClock","stopClock","spring","abs","add","and","block","call","cond","divide","eq","event","greaterThan","lessThan","max","min","multiply","neq","or","set","sub","Animated","TRUE","FALSE","NOOP","UNSET","DIRECTION_LEFT","DIRECTION_RIGHT","SWIPE_DISTANCE_MINIMUM","DEFAULT_DRAWER_WIDTH","SPRING_CONFIG","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","ANIMATED_ZERO","ANIMATED_ONE","DrawerView","React","Component","interactionHandle","undefined","InteractionManager","clearInteractionHandle","createInteractionHandle","drawerStyle","dimensions","props","width","StyleSheet","flatten","endsWith","percentage","Number","replace","isFinite","drawerType","open","getDrawerWidth","GestureState","UNDETERMINED","initialDrawerWidth","drawerPosition","isDrawerTypeFront","touchX","gestureX","drawerWidth","containerWidth","swipeDistanceThreshold","swipeVelocityThreshold","isOpen","toValue","frameTime","state","position","time","finished","velocity","clock","velocityX","handleStartInteraction","manuallyTriggerSpring","offsetX","value","Boolean","handleEndInteraction","toggleDrawer","currentOpenValue","onOpen","onClose","pendingOpenValue","forceUpdate","nextIsOpen","isSwiping","keyboardDismissMode","Keyboard","dismiss","toggleStatusBar","gestureState","ACTIVE","touchDistanceFromDrawer","transitionTo","dragX","translateX","nativeEvent","x","translationX","s","e","setValue","layout","requestAnimationFrame","drawerOpacity","hidden","hideStatusBarOnOpen","hideStatusBar","statusBarAnimation","isStatusBarHidden","StatusBar","setHidden","componentDidUpdate","prevProps","componentWillUnmount","render","swipeEnabled","swipeEdgeWidth","overlayStyle","renderDrawerContent","renderSceneContent","gestureHandlerProps","isRight","contentTranslateX","drawerTranslateX","I18nManager","getConstants","isRTL","offset","hitSlop","right","left","progress","handleGestureEvent","handleGestureStateChange","handleContainerLayout","styles","main","flexDirection","content","transform","Platform","OS","handleDrawerLayout","container","opacity","nonPermanent","zIndex","create","backgroundColor","maxWidth","top","bottom","flex","select","web","default","overflow"],"sources":["Drawer.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n I18nManager,\n InteractionManager,\n Keyboard,\n LayoutChangeEvent,\n Platform,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\nimport Animated from 'react-native-reanimated';\n\nimport type { DrawerProps } from '../../types';\nimport DrawerProgressContext from '../../utils/DrawerProgressContext';\nimport { GestureState, PanGestureHandler } from '../GestureHandler';\nimport Overlay from './Overlay';\n\nconst {\n Clock,\n Value,\n onChange,\n clockRunning,\n startClock,\n stopClock,\n spring,\n abs,\n add,\n and,\n block,\n call,\n cond,\n divide,\n eq,\n event,\n greaterThan,\n lessThan,\n max,\n min,\n multiply,\n neq,\n or,\n set,\n sub,\n} = Animated;\n\nconst TRUE = 1;\nconst FALSE = 0;\nconst NOOP = 0;\nconst UNSET = -1;\n\nconst DIRECTION_LEFT = 1;\nconst DIRECTION_RIGHT = -1;\n\nconst SWIPE_DISTANCE_MINIMUM = 5;\n\nconst DEFAULT_DRAWER_WIDTH = '80%';\n\nconst SPRING_CONFIG = {\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n};\n\nconst ANIMATED_ZERO = new Animated.Value(0);\nconst ANIMATED_ONE = new Animated.Value(1);\n\ntype Binary = 0 | 1;\n\nexport default class DrawerView extends React.Component<DrawerProps> {\n componentDidUpdate(prevProps: DrawerProps) {\n const {\n open,\n drawerPosition,\n drawerType,\n swipeDistanceThreshold,\n swipeVelocityThreshold,\n hideStatusBarOnOpen: hideStatusBar,\n } = this.props;\n\n if (\n // If we're not in the middle of a transition, sync the drawer's open state\n typeof this.pendingOpenValue !== 'boolean' ||\n open !== this.pendingOpenValue\n ) {\n this.toggleDrawer(open);\n }\n\n this.pendingOpenValue = undefined;\n\n if (open !== prevProps.open && hideStatusBar) {\n this.toggleStatusBar(open);\n }\n\n if (prevProps.drawerPosition !== drawerPosition) {\n this.drawerPosition.setValue(\n drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT\n );\n }\n\n if (prevProps.drawerType !== drawerType) {\n this.isDrawerTypeFront.setValue(drawerType === 'front' ? TRUE : FALSE);\n }\n\n if (prevProps.swipeDistanceThreshold !== swipeDistanceThreshold) {\n this.swipeDistanceThreshold.setValue(swipeDistanceThreshold);\n }\n\n if (prevProps.swipeVelocityThreshold !== swipeVelocityThreshold) {\n this.swipeVelocityThreshold.setValue(swipeVelocityThreshold);\n }\n }\n\n componentWillUnmount() {\n this.toggleStatusBar(false);\n this.handleEndInteraction();\n }\n\n private handleEndInteraction = () => {\n if (this.interactionHandle !== undefined) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = undefined;\n }\n };\n\n private handleStartInteraction = () => {\n if (this.interactionHandle === undefined) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n };\n\n private getDrawerWidth = (): number => {\n const { drawerStyle, dimensions } = this.props;\n const { width = DEFAULT_DRAWER_WIDTH } =\n StyleSheet.flatten(drawerStyle) || {};\n\n if (typeof width === 'string' && width.endsWith('%')) {\n // Try to calculate width if a percentage is given\n const percentage = Number(width.replace(/%$/, ''));\n\n if (Number.isFinite(percentage)) {\n return dimensions.width * (percentage / 100);\n }\n }\n\n return typeof width === 'number' ? width : 0;\n };\n\n private clock = new Clock();\n private interactionHandle: number | undefined;\n\n private isDrawerTypeFront = new Value<Binary>(\n this.props.drawerType === 'front' ? TRUE : FALSE\n );\n\n private isOpen = new Value<Binary>(this.props.open ? TRUE : FALSE);\n private nextIsOpen = new Value<Binary | -1>(UNSET);\n private isSwiping = new Value<Binary>(FALSE);\n\n private initialDrawerWidth = this.getDrawerWidth();\n\n private gestureState = new Value<number>(GestureState.UNDETERMINED);\n private touchX = new Value<number>(0);\n private velocityX = new Value<number>(0);\n private gestureX = new Value<number>(0);\n private offsetX = new Value<number>(0);\n private position = new Value<number>(\n this.props.open\n ? this.initialDrawerWidth *\n (this.props.drawerPosition === 'right'\n ? DIRECTION_RIGHT\n : DIRECTION_LEFT)\n : 0\n );\n\n private containerWidth = new Value<number>(this.props.dimensions.width);\n private drawerWidth = new Value<number>(this.initialDrawerWidth);\n private drawerOpacity = new Value<number>(\n this.props.drawerType === 'permanent' ? 1 : 0\n );\n private drawerPosition = new Value<number>(\n this.props.drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT\n );\n\n // Comment stolen from react-native-gesture-handler/DrawerLayout\n //\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep start position\n // of the gesture. Then we use that value to calculate how much we need to subtract from\n // the dragX. If the gesture started on the greyed out area we take the distance from the\n // edge of the drawer to the start position. Otherwise we don't subtract at all and the\n // drawer be pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n private touchDistanceFromDrawer = cond(\n this.isDrawerTypeFront,\n cond(\n eq(this.drawerPosition, DIRECTION_LEFT),\n max(\n // Distance of touch start from left screen edge - Drawer width\n sub(sub(this.touchX, this.gestureX), this.drawerWidth),\n 0\n ),\n min(\n multiply(\n // Distance of drawer from left screen edge - Touch start point\n sub(\n sub(this.containerWidth, this.drawerWidth),\n sub(this.touchX, this.gestureX)\n ),\n DIRECTION_RIGHT\n ),\n 0\n )\n ),\n 0\n );\n\n private swipeDistanceThreshold = new Value<number>(\n this.props.swipeDistanceThreshold\n );\n private swipeVelocityThreshold = new Value<number>(\n this.props.swipeVelocityThreshold\n );\n\n private currentOpenValue: boolean = this.props.open;\n private pendingOpenValue: boolean | undefined;\n\n private isStatusBarHidden: boolean = false;\n\n private manuallyTriggerSpring = new Value<Binary>(FALSE);\n\n private transitionTo = (isOpen: number | Animated.Node<number>) => {\n const toValue = new Value(0);\n const frameTime = new Value(0);\n\n const state = {\n position: this.position,\n time: new Value(0),\n finished: new Value(FALSE),\n velocity: new Value(0),\n };\n\n return block([\n cond(clockRunning(this.clock), NOOP, [\n // Animation wasn't running before\n // Set the initial values and start the clock\n set(toValue, multiply(isOpen, this.drawerWidth, this.drawerPosition)),\n set(frameTime, 0),\n set(state.time, 0),\n set(state.finished, FALSE),\n set(state.velocity, this.velocityX),\n set(this.isOpen, isOpen),\n startClock(this.clock),\n call([], this.handleStartInteraction),\n set(this.manuallyTriggerSpring, FALSE),\n ]),\n spring(this.clock, state, { ...SPRING_CONFIG, toValue }),\n cond(state.finished, [\n // Reset gesture and velocity from previous gesture\n set(this.touchX, 0),\n set(this.gestureX, 0),\n set(this.velocityX, 0),\n set(this.offsetX, 0),\n // When the animation finishes, stop the clock\n stopClock(this.clock),\n call([this.isOpen], ([value]: readonly Binary[]) => {\n const open = Boolean(value);\n this.handleEndInteraction();\n\n if (open !== this.props.open) {\n // Sync drawer's state after animation finished\n // This shouldn't be necessary, but there seems to be an issue on iOS\n this.toggleDrawer(this.props.open);\n }\n }),\n ]),\n ]);\n };\n\n private dragX = block([\n onChange(\n this.isOpen,\n call([this.isOpen], ([value]: readonly Binary[]) => {\n const open = Boolean(value);\n\n this.currentOpenValue = open;\n\n // Without this check, the drawer can go to an infinite update <-> animate loop for sync updates\n if (open !== this.props.open) {\n // If the mode changed, update state\n if (open) {\n this.props.onOpen();\n } else {\n this.props.onClose();\n }\n\n this.pendingOpenValue = open;\n\n // Force componentDidUpdate to fire, whether user does a setState or not\n // This allows us to detect when the user drops the update and revert back\n // It's necessary to make sure that the state stays in sync\n this.forceUpdate();\n }\n })\n ),\n onChange(\n this.nextIsOpen,\n cond(neq(this.nextIsOpen, UNSET), [\n // Stop any running animations\n cond(clockRunning(this.clock), stopClock(this.clock)),\n // Update the open value to trigger the transition\n set(this.isOpen, this.nextIsOpen),\n set(this.gestureX, 0),\n set(this.nextIsOpen, UNSET),\n ])\n ),\n // This block must be after the this.isOpen listener since we check for current value\n onChange(\n this.isSwiping,\n // Listen to updates for this value only when it changes\n // Without `onChange`, this will fire even if the value didn't change\n // We don't want to call the listeners if the value didn't change\n call([this.isSwiping], ([value]: readonly Binary[]) => {\n const { keyboardDismissMode } = this.props;\n\n if (value === TRUE) {\n if (keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n\n this.toggleStatusBar(true);\n } else {\n this.toggleStatusBar(this.currentOpenValue);\n }\n })\n ),\n onChange(\n this.gestureState,\n cond(\n eq(this.gestureState, GestureState.ACTIVE),\n call([], this.handleStartInteraction)\n )\n ),\n cond(\n eq(this.gestureState, GestureState.ACTIVE),\n [\n cond(this.isSwiping, NOOP, [\n // We weren't dragging before, set it to true\n set(this.isSwiping, TRUE),\n // Also update the drag offset to the last position\n set(this.offsetX, this.position),\n ]),\n // Update position with previous offset + gesture distance\n set(\n this.position,\n add(this.offsetX, this.gestureX, this.touchDistanceFromDrawer)\n ),\n // Stop animations while we're dragging\n stopClock(this.clock),\n ],\n [\n set(this.isSwiping, FALSE),\n set(this.touchX, 0),\n this.transitionTo(\n cond(\n this.manuallyTriggerSpring,\n this.isOpen,\n cond(\n or(\n and(\n greaterThan(abs(this.gestureX), SWIPE_DISTANCE_MINIMUM),\n greaterThan(abs(this.velocityX), this.swipeVelocityThreshold)\n ),\n greaterThan(abs(this.gestureX), this.swipeDistanceThreshold)\n ),\n cond(\n eq(this.drawerPosition, DIRECTION_LEFT),\n // If swiped to right, open the drawer, otherwise close it\n greaterThan(\n cond(eq(this.velocityX, 0), this.gestureX, this.velocityX),\n 0\n ),\n // If swiped to left, open the drawer, otherwise close it\n lessThan(\n cond(eq(this.velocityX, 0), this.gestureX, this.velocityX),\n 0\n )\n ),\n this.isOpen\n )\n )\n ),\n ]\n ),\n this.position,\n ]);\n\n private translateX = cond(\n eq(this.drawerPosition, DIRECTION_RIGHT),\n min(max(multiply(this.drawerWidth, -1), this.dragX), 0),\n max(min(this.drawerWidth, this.dragX), 0)\n );\n\n private progress = cond(\n // Check if the drawer width is available to avoid division by zero\n eq(this.drawerWidth, 0),\n 0,\n abs(divide(this.translateX, this.drawerWidth))\n );\n\n private handleGestureEvent = event([\n {\n nativeEvent: {\n x: this.touchX,\n translationX: this.gestureX,\n velocityX: this.velocityX,\n },\n },\n ]);\n\n private handleGestureStateChange = event([\n {\n nativeEvent: {\n state: (s: Animated.Value<number>) => set(this.gestureState, s),\n },\n },\n ]);\n\n private handleContainerLayout = (e: LayoutChangeEvent) =>\n this.containerWidth.setValue(e.nativeEvent.layout.width);\n\n private handleDrawerLayout = (e: LayoutChangeEvent) => {\n this.drawerWidth.setValue(e.nativeEvent.layout.width);\n this.toggleDrawer(this.props.open);\n\n // Until layout is available, drawer is hidden with opacity: 0 by default\n // Show it in the next frame when layout is available\n // If we don't delay it until the next frame, there's a visible flicker\n requestAnimationFrame(() =>\n requestAnimationFrame(() => this.drawerOpacity.setValue(1))\n );\n };\n\n private toggleDrawer = (open: boolean) => {\n if (this.currentOpenValue !== open) {\n this.nextIsOpen.setValue(open ? TRUE : FALSE);\n\n // This value will also be set shortly after as changing this.nextIsOpen changes this.isOpen\n // However, there's a race condition on Android, so we need to set a bit earlier\n this.currentOpenValue = open;\n }\n };\n\n private toggleStatusBar = (hidden: boolean) => {\n const { hideStatusBarOnOpen: hideStatusBar, statusBarAnimation } =\n this.props;\n\n if (hideStatusBar && this.isStatusBarHidden !== hidden) {\n this.isStatusBarHidden = hidden;\n StatusBar.setHidden(hidden, statusBarAnimation);\n }\n };\n\n render() {\n const {\n open,\n swipeEnabled,\n drawerPosition,\n drawerType,\n swipeEdgeWidth,\n drawerStyle,\n overlayStyle,\n renderDrawerContent,\n renderSceneContent,\n gestureHandlerProps,\n } = this.props;\n\n const isOpen = drawerType === 'permanent' ? true : open;\n const isRight = drawerPosition === 'right';\n\n const contentTranslateX =\n drawerType === 'front' ? ANIMATED_ZERO : this.translateX;\n\n const drawerTranslateX =\n drawerType === 'back'\n ? I18nManager.getConstants().isRTL\n ? multiply(\n sub(this.containerWidth, this.drawerWidth),\n isRight ? 1 : -1\n )\n : ANIMATED_ZERO\n : this.translateX;\n\n const offset =\n drawerType === 'back'\n ? 0\n : I18nManager.getConstants().isRTL\n ? '100%'\n : multiply(this.drawerWidth, -1);\n\n // FIXME: Currently hitSlop is broken when on Android when drawer is on right\n // https://github.com/software-mansion/react-native-gesture-handler/issues/569\n const hitSlop = isRight\n ? // Extend hitSlop to the side of the screen when drawer is closed\n // This lets the user drag the drawer from the side of the screen\n { right: 0, width: isOpen ? undefined : swipeEdgeWidth }\n : { left: 0, width: isOpen ? undefined : swipeEdgeWidth };\n\n const progress = drawerType === 'permanent' ? ANIMATED_ONE : this.progress;\n\n return (\n <DrawerProgressContext.Provider value={progress}>\n <PanGestureHandler\n activeOffsetX={[-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM]}\n failOffsetY={[-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM]}\n onGestureEvent={this.handleGestureEvent}\n onHandlerStateChange={this.handleGestureStateChange}\n hitSlop={hitSlop}\n enabled={drawerType !== 'permanent' && swipeEnabled}\n {...gestureHandlerProps}\n >\n <Animated.View\n onLayout={this.handleContainerLayout}\n style={[\n styles.main,\n {\n flexDirection:\n drawerType === 'permanent' && !isRight\n ? 'row-reverse'\n : 'row',\n },\n ]}\n >\n <Animated.View\n style={[\n styles.content,\n {\n transform:\n drawerType === 'permanent'\n ? // Reanimated needs the property to be present, but it results in Browser bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=20574\n []\n : [{ translateX: contentTranslateX }],\n },\n ]}\n >\n <View\n accessibilityElementsHidden={\n isOpen && drawerType !== 'permanent'\n }\n importantForAccessibility={\n isOpen && drawerType !== 'permanent'\n ? 'no-hide-descendants'\n : 'auto'\n }\n style={styles.content}\n >\n {renderSceneContent()}\n </View>\n {\n // Disable overlay if sidebar is permanent\n drawerType === 'permanent' ? null : (\n <Overlay\n progress={progress}\n onPress={() => this.toggleDrawer(false)}\n style={overlayStyle as any}\n accessibilityElementsHidden={!isOpen}\n importantForAccessibility={\n isOpen ? 'auto' : 'no-hide-descendants'\n }\n />\n )\n }\n </Animated.View>\n <Animated.Code\n // This is needed to make sure that container width updates with `setValue`\n // Without this, it won't update when not used in styles\n exec={this.containerWidth}\n />\n {drawerType === 'permanent' ? null : (\n <Animated.Code\n exec={block([\n onChange(this.manuallyTriggerSpring, [\n cond(eq(this.manuallyTriggerSpring, TRUE), [\n set(this.nextIsOpen, FALSE),\n call([], () => (this.currentOpenValue = false)),\n ]),\n ]),\n ])}\n />\n )}\n <Animated.View\n accessibilityViewIsModal={isOpen && drawerType !== 'permanent'}\n removeClippedSubviews={Platform.OS !== 'ios'}\n onLayout={this.handleDrawerLayout}\n style={[\n styles.container,\n {\n transform:\n drawerType === 'permanent'\n ? // Reanimated needs the property to be present, but it results in Browser bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=20574\n []\n : [{ translateX: drawerTranslateX }],\n opacity: this.drawerOpacity,\n },\n drawerType === 'permanent'\n ? // Without this, the `left`/`right` values don't get reset\n isRight\n ? { right: 0 }\n : { left: 0 }\n : [\n styles.nonPermanent,\n isRight ? { right: offset } : { left: offset },\n { zIndex: drawerType === 'back' ? -1 : 0 },\n ],\n drawerStyle as any,\n ]}\n >\n {renderDrawerContent()}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </DrawerProgressContext.Provider>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: 'white',\n maxWidth: '100%',\n },\n nonPermanent: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: DEFAULT_DRAWER_WIDTH,\n },\n content: {\n flex: 1,\n },\n main: {\n flex: 1,\n ...Platform.select({\n // FIXME: We need to hide `overflowX` on Web so the translated content doesn't show offscreen.\n // But adding `overflowX: 'hidden'` prevents content from collapsing the URL bar.\n web: null,\n default: { overflow: 'hidden' },\n }),\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["Clock","Value","onChange","clockRunning","startClock","stopClock","spring","abs","add","and","block","call","cond","divide","eq","event","greaterThan","lessThan","max","min","multiply","neq","or","set","sub","Animated","TRUE","FALSE","NOOP","UNSET","DIRECTION_LEFT","DIRECTION_RIGHT","SWIPE_DISTANCE_MINIMUM","DEFAULT_DRAWER_WIDTH","SPRING_CONFIG","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","ANIMATED_ZERO","ANIMATED_ONE","DrawerView","React","Component","interactionHandle","undefined","InteractionManager","clearInteractionHandle","createInteractionHandle","drawerStyle","dimensions","props","width","StyleSheet","flatten","endsWith","percentage","Number","replace","isFinite","drawerType","open","getDrawerWidth","GestureState","UNDETERMINED","initialDrawerWidth","drawerPosition","isDrawerTypeFront","touchX","gestureX","drawerWidth","containerWidth","swipeDistanceThreshold","swipeVelocityThreshold","isOpen","toValue","frameTime","state","position","time","finished","velocity","clock","velocityX","handleStartInteraction","manuallyTriggerSpring","offsetX","value","Boolean","handleEndInteraction","toggleDrawer","currentOpenValue","onOpen","onClose","pendingOpenValue","forceUpdate","nextIsOpen","isSwiping","keyboardDismissMode","Keyboard","dismiss","toggleStatusBar","gestureState","ACTIVE","touchDistanceFromDrawer","transitionTo","dragX","translateX","nativeEvent","x","translationX","s","e","setValue","layout","requestAnimationFrame","drawerOpacity","hidden","hideStatusBarOnOpen","hideStatusBar","statusBarAnimation","isStatusBarHidden","StatusBar","setHidden","componentDidUpdate","prevProps","componentWillUnmount","render","swipeEnabled","swipeEdgeWidth","overlayStyle","renderDrawerContent","renderSceneContent","gestureHandlerProps","isRight","contentTranslateX","drawerTranslateX","I18nManager","getConstants","isRTL","offset","hitSlop","right","left","progress","handleGestureEvent","handleGestureStateChange","handleContainerLayout","styles","main","flexDirection","content","transform","Platform","OS","handleDrawerLayout","container","opacity","nonPermanent","zIndex","create","backgroundColor","maxWidth","top","bottom","flex","select","web","default","overflow"],"sourceRoot":"../../src","sources":["Drawer.tsx"],"mappings":"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"}
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var React = _interopRequireWildcard(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  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); }
17
-
18
12
  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; }
19
-
20
13
  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); }
21
-
22
14
  const {
23
15
  // @ts-expect-error: this is to support reanimated 1
24
16
  interpolate: interpolateDeprecated,
@@ -26,7 +18,7 @@ const {
26
18
  cond,
27
19
  greaterThan
28
20
  } = _reactNativeReanimated.default;
29
- const interpolate = interpolateNode !== null && interpolateNode !== void 0 ? interpolateNode : interpolateDeprecated;
21
+ const interpolate = interpolateNode ?? interpolateDeprecated;
30
22
  const PROGRESS_EPSILON = 0.05;
31
23
  const Overlay = /*#__PURE__*/React.forwardRef(function Overlay(_ref, ref) {
32
24
  let {
@@ -57,7 +49,6 @@ const Overlay = /*#__PURE__*/React.forwardRef(function Overlay(_ref, ref) {
57
49
  style: styles.pressable
58
50
  }));
59
51
  });
60
-
61
52
  const overlayStyle = _reactNative.Platform.select({
62
53
  web: {
63
54
  // Disable touch highlight on mobile Safari.
@@ -66,16 +57,15 @@ const overlayStyle = _reactNative.Platform.select({
66
57
  },
67
58
  default: {}
68
59
  });
69
-
70
60
  const styles = _reactNative.StyleSheet.create({
71
- overlay: { ..._reactNative.StyleSheet.absoluteFillObject,
61
+ overlay: {
62
+ ..._reactNative.StyleSheet.absoluteFillObject,
72
63
  backgroundColor: 'rgba(0, 0, 0, 0.5)'
73
64
  },
74
65
  pressable: {
75
66
  flex: 1
76
67
  }
77
68
  });
78
-
79
69
  var _default = Overlay;
80
70
  exports.default = _default;
81
71
  //# sourceMappingURL=Overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["interpolate","interpolateDeprecated","interpolateNode","cond","greaterThan","Animated","PROGRESS_EPSILON","Overlay","React","forwardRef","ref","progress","onPress","style","props","animatedStyle","opacity","inputRange","Platform","OS","outputRange","zIndex","styles","overlay","overlayStyle","pressable","select","web","WebkitTapHighlightColor","default","StyleSheet","create","absoluteFillObject","backgroundColor","flex"],"sources":["Overlay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Platform, Pressable, StyleSheet } from 'react-native';\nimport Animated from 'react-native-reanimated';\n\nconst {\n // @ts-expect-error: this is to support reanimated 1\n interpolate: interpolateDeprecated,\n interpolateNode,\n cond,\n greaterThan,\n} = Animated;\n\nconst interpolate: typeof interpolateNode =\n interpolateNode ?? interpolateDeprecated;\n\nconst PROGRESS_EPSILON = 0.05;\n\ntype Props = React.ComponentProps<typeof Animated.View> & {\n progress: Animated.Node<number>;\n onPress: () => void;\n};\n\nconst Overlay = React.forwardRef(function Overlay(\n { progress, onPress, style, ...props }: Props,\n ref: React.Ref<Animated.View>\n) {\n const animatedStyle = {\n opacity: interpolate(progress, {\n // Default input range is [PROGRESS_EPSILON, 1]\n // On Windows, the output value is 1 when input value is out of range for some reason\n // The default value 0 will be interpolated to 1 in this case, which is not what we want.\n // Therefore changing input range on Windows to [0,1] instead.\n inputRange:\n Platform.OS === 'windows' || Platform.OS === 'macos'\n ? [0, 1]\n : [PROGRESS_EPSILON, 1],\n outputRange: [0, 1],\n }),\n // We don't want the user to be able to press through the overlay when drawer is open\n // One approach is to adjust the pointerEvents based on the progress\n // But we can also send the overlay behind the screen, which works, and is much less code\n zIndex: cond(greaterThan(progress, PROGRESS_EPSILON), 0, -1),\n };\n\n return (\n <Animated.View\n {...props}\n ref={ref}\n style={[styles.overlay, overlayStyle, animatedStyle, style]}\n >\n <Pressable onPress={onPress} style={styles.pressable} />\n </Animated.View>\n );\n});\n\nconst overlayStyle = Platform.select<Record<string, string>>({\n web: {\n // Disable touch highlight on mobile Safari.\n // WebkitTapHighlightColor must be used outside of StyleSheet.create because react-native-web will omit the property.\n WebkitTapHighlightColor: 'transparent',\n },\n default: {},\n});\n\nconst styles = StyleSheet.create({\n overlay: {\n ...StyleSheet.absoluteFillObject,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n pressable: {\n flex: 1,\n },\n});\n\nexport default Overlay;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAEA,MAAM;EACJ;EACAA,WAAW,EAAEC,qBAFT;EAGJC,eAHI;EAIJC,IAJI;EAKJC;AALI,IAMFC,8BANJ;AAQA,MAAML,WAAmC,GACvCE,eADuC,aACvCA,eADuC,cACvCA,eADuC,GACpBD,qBADrB;AAGA,MAAMK,gBAAgB,GAAG,IAAzB;AAOA,MAAMC,OAAO,gBAAGC,KAAK,CAACC,UAAN,CAAiB,SAASF,OAAT,OAE/BG,GAF+B,EAG/B;EAAA,IAFA;IAAEC,QAAF;IAAYC,OAAZ;IAAqBC,KAArB;IAA4B,GAAGC;EAA/B,CAEA;EACA,MAAMC,aAAa,GAAG;IACpBC,OAAO,EAAEhB,WAAW,CAACW,QAAD,EAAW;MAC7B;MACA;MACA;MACA;MACAM,UAAU,EACRC,qBAAA,CAASC,EAAT,KAAgB,SAAhB,IAA6BD,qBAAA,CAASC,EAAT,KAAgB,OAA7C,GACI,CAAC,CAAD,EAAI,CAAJ,CADJ,GAEI,CAACb,gBAAD,EAAmB,CAAnB,CARuB;MAS7Bc,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ;IATgB,CAAX,CADA;IAYpB;IACA;IACA;IACAC,MAAM,EAAElB,IAAI,CAACC,WAAW,CAACO,QAAD,EAAWL,gBAAX,CAAZ,EAA0C,CAA1C,EAA6C,CAAC,CAA9C;EAfQ,CAAtB;EAkBA,oBACE,oBAAC,8BAAD,CAAU,IAAV,eACMQ,KADN;IAEE,GAAG,EAAEJ,GAFP;IAGE,KAAK,EAAE,CAACY,MAAM,CAACC,OAAR,EAAiBC,YAAjB,EAA+BT,aAA/B,EAA8CF,KAA9C;EAHT,iBAKE,oBAAC,sBAAD;IAAW,OAAO,EAAED,OAApB;IAA6B,KAAK,EAAEU,MAAM,CAACG;EAA3C,EALF,CADF;AASD,CA/Be,CAAhB;;AAiCA,MAAMD,YAAY,GAAGN,qBAAA,CAASQ,MAAT,CAAwC;EAC3DC,GAAG,EAAE;IACH;IACA;IACAC,uBAAuB,EAAE;EAHtB,CADsD;EAM3DC,OAAO,EAAE;AANkD,CAAxC,CAArB;;AASA,MAAMP,MAAM,GAAGQ,uBAAA,CAAWC,MAAX,CAAkB;EAC/BR,OAAO,EAAE,EACP,GAAGO,uBAAA,CAAWE,kBADP;IAEPC,eAAe,EAAE;EAFV,CADsB;EAK/BR,SAAS,EAAE;IACTS,IAAI,EAAE;EADG;AALoB,CAAlB,CAAf;;eAUe3B,O"}
1
+ {"version":3,"names":["interpolate","interpolateDeprecated","interpolateNode","cond","greaterThan","Animated","PROGRESS_EPSILON","Overlay","React","forwardRef","ref","progress","onPress","style","props","animatedStyle","opacity","inputRange","Platform","OS","outputRange","zIndex","styles","overlay","overlayStyle","pressable","select","web","WebkitTapHighlightColor","default","StyleSheet","create","absoluteFillObject","backgroundColor","flex"],"sourceRoot":"../../src","sources":["Overlay.tsx"],"mappings":";;;;;;AAAA;AACA;AACA;AAA+C;AAAA;AAAA;AAAA;AAE/C,MAAM;EACJ;EACAA,WAAW,EAAEC,qBAAqB;EAClCC,eAAe;EACfC,IAAI;EACJC;AACF,CAAC,GAAGC,8BAAQ;AAEZ,MAAML,WAAmC,GACvCE,eAAe,IAAID,qBAAqB;AAE1C,MAAMK,gBAAgB,GAAG,IAAI;AAO7B,MAAMC,OAAO,gBAAGC,KAAK,CAACC,UAAU,CAAC,SAASF,OAAO,OAE/CG,GAA6B,EAC7B;EAAA,IAFA;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,KAAK;IAAE,GAAGC;EAAa,CAAC;EAG7C,MAAMC,aAAa,GAAG;IACpBC,OAAO,EAAEhB,WAAW,CAACW,QAAQ,EAAE;MAC7B;MACA;MACA;MACA;MACAM,UAAU,EACRC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACC,EAAE,KAAK,OAAO,GAChD,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,CAACb,gBAAgB,EAAE,CAAC,CAAC;MAC3Bc,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC,CAAC;IACF;IACA;IACA;IACAC,MAAM,EAAElB,IAAI,CAACC,WAAW,CAACO,QAAQ,EAAEL,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7D,CAAC;EAED,oBACE,oBAAC,8BAAQ,CAAC,IAAI,eACRQ,KAAK;IACT,GAAG,EAAEJ,GAAI;IACT,KAAK,EAAE,CAACY,MAAM,CAACC,OAAO,EAAEC,YAAY,EAAET,aAAa,EAAEF,KAAK;EAAE,iBAE5D,oBAAC,sBAAS;IAAC,OAAO,EAAED,OAAQ;IAAC,KAAK,EAAEU,MAAM,CAACG;EAAU,EAAG,CAC1C;AAEpB,CAAC,CAAC;AAEF,MAAMD,YAAY,GAAGN,qBAAQ,CAACQ,MAAM,CAAyB;EAC3DC,GAAG,EAAE;IACH;IACA;IACAC,uBAAuB,EAAE;EAC3B,CAAC;EACDC,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAMP,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,OAAO,EAAE;IACP,GAAGO,uBAAU,CAACE,kBAAkB;IAChCC,eAAe,EAAE;EACnB,CAAC;EACDR,SAAS,EAAE;IACTS,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAC,eAEY3B,OAAO;AAAA"}