/* Metro module 5401; source: unknown; dependencies: [6, 7, 15, 17, 18, 31, 27, 33, 5326, 44, 5339, 5351] */ function _fun47676(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#47676, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:6, offset: 0x011c8589, size: 531 bytes, params: 8, frame: 23 var object2; const env0_0 = require; let Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(6) /* metro dependency 6 */; const env0_4 = importDefault(7) /* metro dependency 7 */; const env0_5 = importDefault(15) /* metro dependency 15 */; const env0_6 = importDefault(17) /* metro dependency 17 */; const env0_7 = importDefault(18) /* metro dependency 18 */; const env0_8 = importAll(31) /* metro dependency 31 */; const Component = (require(31) /* metro dependency 31 */).Component; let value = require(27) /* metro dependency 27 */; const env0_9 = value.Animated; const StyleSheet = value.StyleSheet; const env0_10 = value.View; const env0_11 = value.Keyboard; const env0_12 = value.StatusBar; const env0_13 = value.I18nManager; value = require(33) /* metro dependency 33 */; const env0_14 = value.jsx; const env0_15 = value.jsxs; value = _fun47680(Component); value.defaultProps = {'drawerWidth': 200, 'drawerPosition': 'left', 'useNativeAnimations': true, 'drawerType': 'front', 'edgeWidth': 20, 'minSwipeDistance': 3, 'overlayColor': 'rgba(0, 0, 0, 0.7)', 'drawerLockMode': 'unlocked', 'enableTrackpadTwoFingerGesture': false}; value.positions = {'Left': 'left', 'Right': 'right'}; const create = StyleSheet.create; object2 = {}; Object = global.Object; object2.drawerContainer = Object.assign({}, StyleSheet.absoluteFillObject, {'zIndex': 1001, 'flexDirection': 'row'}); Object = global.Object; object2.containerInFront = Object.assign({}, StyleSheet.absoluteFillObject, {zIndex: 1002}); Object = global.Object; object2.containerOnBack = Object.assign({}, StyleSheet.absoluteFillObject); object2.main = {'flex': 1, 'zIndex': 0, 'overflow': 'hidden'}; Object = global.Object; object2.overlay = Object.assign({}, StyleSheet.absoluteFillObject, {zIndex: 1000}); const env0_16 = Reflect.apply(create, StyleSheet, [object2]); exports.default = value; } function _isNativeReflectConstruct_47677() { // fn#47677, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:295, offset: 0x011c879c, size: 94 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_47677_isNativeReflectConstruct = function() { return !!result; })(); } function _fun47680(a0) { // fn#47680, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:555, offset: 0x011c87fa, size: 91 bytes, params: 2, frame: 16 const closure = DrawerLayout; env0_7(closure, a0); return env0_4(closure, [{key: 'shouldComponentUpdate', value: function(a0, a1) { if (!(this.props.drawerPosition === a0.drawerPosition && this.props.drawerWidth === a0.drawerWidth && this.props.drawerType === a0.drawerType && this.state.containerWidth === a1.containerWidth)) { this.updateAnimatedEvent(a0, a1); } return true; }}, {key: 'render', value: value_47698}]); } function DrawerLayout(a0) { // fn#47681, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:567, offset: 0x011c8855, size: 463 bytes, params: 2, frame: 22 var environment; const value = environment.__proto__; let binding = env1_3; binding(this, DrawerLayout); const items = [a0]; const value3 = env1_6(DrawerLayout); const value6 = env1_5(this, _isNativeReflectConstruct_47677() ? global.Reflect.construct(value3, items, env1_6(this).constructor) : value3.apply(this, items)); binding = env1_8; value6.accessibilityIsModalView = binding.createRef(); value6.pointerEventsView = binding.createRef(); value6.panGestureHandler = binding.createRef(); value6.drawerShown = false; value6.updateAnimatedEvent = updateAnimatedEvent; value6.handleContainerLayout = handleContainerLayout_47684; value6.emitStateChanged = emitStateChanged; value6.openingHandlerStateChange = openingHandlerStateChange; value6.onTapHandlerStateChange = onTapHandlerStateChange; value6.handleRelease = handleRelease; value6.updateShowing = updateShowing; value6.animateDrawer = animateDrawer; value6.openDrawer = openDrawer_47692; value6.closeDrawer = closeDrawer_47693; value6.renderOverlay = renderOverlay; value6.renderDrawer = renderDrawer; value6.setPanGestureRef = setPanGestureRef; let Value = Animated.Value; const value7 = new Value(0); Value = Animated.Value; const value9 = new Value(0); Value = Animated.Value; value6.state = {'dragX': null, 'touchX': null, 'drawerTranslation': null, 'containerWidth': 0, 'drawerState': 'Idle', 'drawerOpened': false, dragX: value7, touchX: value9, drawerTranslation: new Value(0)}; value6.updateAnimatedEvent(a0, value6.state); return value6; } function value_47698() { // fn#47698, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:6632, offset: 0x011c98d3, size: 371 bytes, params: 1, frame: 20 const {drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance} = this.props; let value = drawerPosition === 'left'; const value2 = -1; const r8 = value ? 1 : value2; const r4 = this.drawerShown ? value2 : 1; const object2 = {}; if (value) { object2.left = 0; object2.width = this.drawerShown ? undefined : edgeWidth; } else { object2.right = 0; object2.width = this.drawerShown ? undefined : edgeWidth; } value = environment.__proto__; const PanGestureHandler = (require(5351) /* metro dependency 5351 */).PanGestureHandler; const userSelect = this.props.userSelect; return ( {this.renderDrawer()} ); } function DrawerLayoutUpdateAnimatedEvent({drawerPosition, drawerWidth, drawerType, useNativeAnimations}, {dragX, touchX, drawerTranslation, containerWidth}) { // fn#47682, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:924, owner: DrawerLayout.updateAnimatedEvent, offset: 0x011c8a24, size: 558 bytes, params: 3, frame: 26 var environment; var r4; var r5; var r8; var value; var multiply; var Value; var prototype; var value2; var add; var value3; var value4; var value5; var value6; var value7; var value9; var value10; if (drawerPosition !== 'left') { value = environment.__proto__.__proto__; multiply = Animated.multiply; Value = Animated.Value; prototype = Value.prototype; value = Object.create(prototype, {constructor: {value: Value}}); value2 = new Value(-1); value = value2 instanceof Object ? value2 : value; value = Reflect.apply(multiply, Animated, [value, dragX]); add = Animated.add; Value = Animated.Value; prototype = Value.prototype; value3 = Object.create(prototype, {constructor: {value: Value}}); value4 = new Value(containerWidth); value5 = value4 instanceof Object ? value4 : value3; multiply = Animated.multiply; Value = Animated.Value; prototype = Value.prototype; value6 = Object.create(prototype, {constructor: {value: Value}}); value7 = new Value(-1); value9 = Reflect.apply(add, Animated, [value5, Reflect.apply(multiply, Animated, [value7 instanceof Object ? value7 : value6, touchX])]); touchX.setValue(containerWidth); r4 = value; r5 = value9; } else { touchX.setValue(0); r4 = dragX; r5 = touchX; } if (drawerType !== 'front') { r8 = r4; } else { value = environment.__proto__.__proto__; add = Animated.add; multiply = Animated.multiply; value10 = new Animated.Value(-1); value10 = Reflect.apply(add, Animated, [r5, Reflect.apply(multiply, Animated, [value10, r4])]); value10 = value10.interpolate({inputRange: [drawerWidth - 1, drawerWidth, drawerWidth + 1], outputRange: [0, 0, 1]}); value10 = Animated.add(r4, value10); r8 = value10; } const binding = env0_0; binding.openValue = Animated.add(r8, drawerTranslation).interpolate({inputRange: [0, drawerWidth], outputRange: [0, 1], extrapolate: 'clamp'}); const object2 = {useNativeDriver: useNativeAnimations}; if (binding.props.onDrawerSlide) { object2.listener = listener_47683; } env0_0.onGestureEvent = Animated.event([{nativeEvent: {translationX: dragX, x: touchX}}], object2); } function DrawerLayoutHandleContainerLayout({nativeEvent}) { // fn#47684, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:1739, owner: DrawerLayout.handleContainerLayout, offset: 0x011c8cc4, size: 49 bytes, params: 2, frame: 12 env0_0.setState({containerWidth: nativeEvent.layout.width}); } function emitStateChanged(a0, a1) { // fn#47685, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:1835, owner: DrawerLayout.emitStateChanged, offset: 0x011c8cf5, size: 55 bytes, params: 3, frame: 13 if (env0_0.props.onDrawerStateChanged != null) { env0_0.props.onDrawerStateChanged(a0, a1); } } function openingHandlerStateChange({nativeEvent}) { // fn#47686, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:1948, owner: DrawerLayout.openingHandlerStateChange, offset: 0x011c8d2c, size: 269 bytes, params: 2, frame: 17 var statusBarAnimation; var binding; var props; var setHidden; const oldState = nativeEvent.oldState; const value = environment.__proto__.__proto__; const State = (require(5326) /* metro dependency 5326 */).State; const ACTIVE = State.ACTIVE; if (oldState === ACTIVE) { binding = env0_0; binding.handleRelease({nativeEvent: nativeEvent}); } else if (nativeEvent.state === State.ACTIVE) { binding = env0_0; binding.emitStateChanged('Dragging', false); binding.setState({drawerState: 'Dragging'}); props = binding.props; if (props.keyboardDismissMode === 'on-drag') { Keyboard.dismiss(); } props = env0_0.props; if (props.hideStatusBar) { setHidden = StatusBar.setHidden; statusBarAnimation = env0_0.props.statusBarAnimation; statusBarAnimation = !statusBarAnimation ? 'slide' : statusBarAnimation; Reflect.apply(setHidden, StatusBar, [true, statusBarAnimation]); } } } function DrawerLayoutOnTapHandlerStateChange({nativeEvent}) { // fn#47687, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:2289, owner: DrawerLayout.onTapHandlerStateChange, offset: 0x011c8e39, size: 121 bytes, params: 2, frame: 14 if (env0_0.drawerShown && nativeEvent.oldState === (require(5326) /* metro dependency 5326 */).State.ACTIVE && env0_0.props.drawerLockMode !== 'locked-open') { env0_0.closeDrawer(); } } function DrawerLayoutHandleRelease({nativeEvent}) { // fn#47688, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:2444, owner: DrawerLayout.handleRelease, offset: 0x011c8eb2, size: 223 bytes, params: 2, frame: 22 var r1; var r2; var r3; var value2; var value3; var value4; const binding = env0_0; const {drawerWidth, drawerPosition, drawerType} = binding.props; const containerWidth = binding.state.containerWidth; const translationX = nativeEvent.translationX; const velocityX = nativeEvent.velocityX; const x = nativeEvent.x; if (drawerPosition === 'left') { r1 = x; r2 = translationX; r3 = velocityX; } else { value2 = -translationX; value3 = containerWidth - x; value4 = -velocityX; r1 = value3; r2 = value2; r3 = value4; } const value5 = r1 - r2; const value9 = r2 + (drawerType !== 'front' ? 0 : value5 > drawerWidth ? value5 - drawerWidth : 0) + (env0_0.drawerShown ? drawerWidth : 0); if (value9 + 0.05 * r3 > drawerWidth / 2) { env0_0.animateDrawer(value9, drawerWidth, r3); } else { env0_0.animateDrawer(value9, 0, r3); } } function updateShowing(a0) { // fn#47689, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:2774, owner: DrawerLayout.updateShowing, offset: 0x011c8f91, size: 269 bytes, params: 2, frame: 19 const binding = env0_0; binding.drawerShown = a0; let current = binding.accessibilityIsModalView.current; if (current != null) { current.setNativeProps({accessibilityViewIsModal: a0}); } current = env0_0.pointerEventsView.current; if (current != null) { current.setNativeProps({pointerEvents: a0 ? 'auto' : 'none'}); } const {drawerPosition, minSwipeDistance, edgeWidth} = env0_0.props; const value4 = drawerPosition === 'left'; const value5 = -1; const r5 = value4 ? 1 : value5; const r3 = env0_0.drawerShown ? value5 : 1; const object2 = {}; if (value4) { object2.left = 0; object2.width = a0 ? undefined : edgeWidth; } else { object2.right = 0; object2.width = a0 ? undefined : edgeWidth; } current = env0_0.panGestureHandler.current; if (current != null) { current.setNativeProps({hitSlop: object2, activeOffsetX: r5 * r3 * minSwipeDistance}); } } function animateDrawer(a0, a1, a2, a3) { // fn#47690, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:3268, owner: DrawerLayout.animateDrawer, offset: 0x011c909e, size: 468 bytes, params: 5, frame: 22 var environment; var r3; var r5; var statusBarAnimation; var value7; var setHidden; let value = a0; const value2 = a3; let binding = env0_0; const dragX = binding.state.dragX; const value4 = 0; dragX.setValue(value4); const touchX = binding.state.touchX; touchX.setValue(binding.props.drawerPosition === 'left' ? value4 : env0_0.state.containerWidth); if (value != null) { if (env0_0.props.useNativeAnimations) { if (value < a1) { if (a2 > value4) { value = global.Math.min(value + a2 / 60, a1); r3 = value; } else if (value > a1 && a2 < value4) { value = global.Math.max(value + a2 / 60, a1); r3 = value; } else { r3 = value; } } else if (value > a1 && a2 < value4) { value = global.Math.max(value + a2 / 60, a1); r3 = value; } else { r3 = value; } r5 = r3; } else { r5 = value; } env0_0.state.drawerTranslation.setValue(r5); } value = value4 !== a1; binding = env0_0; binding.updateShowing(value); binding.emitStateChanged('Settling', value); binding.setState({drawerState: 'Settling'}); if (binding.props.hideStatusBar) { value7 = environment.__proto__.__proto__; setHidden = StatusBar.setHidden; statusBarAnimation = env0_0.props.statusBarAnimation; statusBarAnimation = !statusBarAnimation ? 'slide' : statusBarAnimation; Reflect.apply(setHidden, StatusBar, [value, statusBarAnimation]); } value = environment.__proto__.__proto__; const spring = Animated.spring; binding = env0_0; const drawerTranslation = binding.state.drawerTranslation; const useNativeAnimations = binding.props.useNativeAnimations; value = undefined; Reflect.apply(spring, Animated, [drawerTranslation, {velocity: a2, bounciness: value4, toValue: a1, useNativeDriver: useNativeAnimations, speed: value2 ?? value}]).start(_fun47691); return value; } function DrawerLayoutOpenDrawer() { // fn#47692, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:4104, owner: DrawerLayout.openDrawer, offset: 0x011c9334, size: 107 bytes, params: 1, frame: 19 const value = 0; const r2 = arguments.length > value && arguments[value] !== undefined ? arguments[value] : {}; const binding = env0_0; const animateDrawer = binding.animateDrawer; const drawerWidth = binding.props.drawerWidth; let velocity = r2.velocity; velocity = velocity ? r2.velocity : value; Reflect.apply(animateDrawer, binding, [undefined, drawerWidth, velocity, r2.speed]); env0_0.forceUpdate(); } function DrawerLayoutCloseDrawer() { // fn#47693, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:4286, owner: DrawerLayout.closeDrawer, offset: 0x011c939f, size: 95 bytes, params: 1, frame: 19 const value = 0; const r2 = arguments.length > value && arguments[value] !== undefined ? arguments[value] : {}; const binding = env0_0; const animateDrawer = binding.animateDrawer; let velocity = r2.velocity; velocity = velocity ? r2.velocity : value; Reflect.apply(animateDrawer, binding, [undefined, value, velocity, r2.speed]); env0_0.forceUpdate(); } function renderOverlay() { // fn#47694, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:4452, owner: DrawerLayout.renderOverlay, offset: 0x011c93fe, size: 263 bytes, params: 1, frame: 20 const defaultImport = importDefault(44) /* metro dependency 44 */; let binding = env0_0; defaultImport(binding.openValue, 'should be set'); const object2 = {}; object2.opacity = binding.state.drawerState !== 'Idle' ? env0_0.openValue : env0_0.state.drawerOpened ? 1 : 0; binding = env0_0; object2.backgroundColor = binding.props.overlayColor; const TapGestureHandler = (require(5339) /* metro dependency 5339 */).TapGestureHandler; const onTapHandlerStateChange = binding.onTapHandlerStateChange; const View = Animated.View; return ( ); } function renderDrawer() { // fn#47695, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:4823, owner: DrawerLayout.renderDrawer, offset: 0x011c9505, size: 790 bytes, params: 1, frame: 29 var r10; var interpolate; var items2; let props = env0_0.props; const drawerBackgroundColor = props.drawerBackgroundColor; const drawerWidth = props.drawerWidth; const drawerPosition = props.drawerPosition; const drawerType = props.drawerType; const drawerContainerStyle = props.drawerContainerStyle; const contentContainerStyle = props.contentContainerStyle; const value2 = drawerPosition === 'left'; const r1 = I18nManager.isRTL ? value2 : !value2; const object2 = {backgroundColor: drawerBackgroundColor, width: drawerWidth}; const openValue = env0_0.openValue; const value5 = undefined; (importDefault(44) /* metro dependency 44 */)(openValue, 'should be set'); if (drawerType === 'front') { r10 = value5; } else { interpolate = openValue.interpolate; items2 = [0]; if (value2) { items2[1] = drawerWidth; } else { items2[1] = -drawerWidth; } r10 = {transform: [{translateX: Reflect.apply(interpolate, openValue, [{inputRange: [0, 1], outputRange: items2, extrapolate: 'clamp'}])}]}; } const value6 = 0; const r0 = drawerType === 'back' ? value6 : env0_0.state.drawerState !== 'Idle' ? openValue.interpolate({inputRange: [0, 1], outputRange: [value2 ? -drawerWidth : drawerWidth, value6], extrapolate: 'clamp'}) : env0_0.state.drawerOpened ? value6 : value2 ? -drawerWidth : drawerWidth; const object3 = {}; object3.transform = [{translateX: r0}]; object3.flexDirection = r1 ? 'row-reverse' : 'row'; const View2 = Animated.View; const main = env2_16.main; const handleContainerLayout = env0_0.handleContainerLayout; const View3 = Animated.View; let drawerShown = env0_0.drawerShown; const r6 = drawerShown ? 'no-hide-descendants' : 'yes'; const binding = env0_0; const view = {[typeof env0_0.props.children === 'function' ? env0_0.props.children(env0_0.openValue) : env0_0.props.children, binding.renderOverlay()]}; const View4 = Animated.View; const accessibilityIsModalView = binding.accessibilityIsModalView; drawerShown = binding.drawerShown; props = binding.props; return ( {view} {props.renderNavigationView(binding.openValue)} ); } function setPanGestureRef(a0) { // fn#47696, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:6002, owner: DrawerLayout.setPanGestureRef, offset: 0x011c981b, size: 63 bytes, params: 2, frame: 12 const binding = env0_0; binding.panGestureHandler.current = a0; if (binding.props.onGestureRef != null) { env0_0.props.onGestureRef(a0); } } function updateAnimatedEventListener({nativeEvent}) { // fn#47683, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:1503, owner: DrawerLayout.updateAnimatedEvent.listener, offset: 0x011c8c52, size: 114 bytes, params: 2, frame: 13 const Math = global.Math; const floor = Math.floor; const Math2 = global.Math; let value = Reflect.apply(floor, Math, [Math2.abs(nativeEvent.translationX)]); const binding = env1_0; value /= binding.state.containerWidth; if (binding.props.onDrawerSlide != null) { env1_0.props.onDrawerSlide(value); } } function _fun47691(a0) { // fn#47691, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5579:3849, offset: 0x011c9272, size: 194 bytes, params: 2, frame: 16 var value; var binding; var resultBinding; var props; if (a0.finished) { value = environment.__proto__; binding = env1_0; binding.emitStateChanged('Idle', result); binding.setState({drawerOpened: result}); if (binding.state.drawerState !== 'Dragging') { env1_0.setState({drawerState: 'Idle'}); } resultBinding = result; props = env1_0.props; if (resultBinding) { if (props.onDrawerOpen != null) { env1_0.props.onDrawerOpen(); } } else if (props.onDrawerClose != null) { env1_0.props.onDrawerClose(); } } }