From 3e12ddbf3b77e037f9e099fede2e706216db5c40 Mon Sep 17 00:00:00 2001 From: Stanislav Miklik Date: Sun, 14 Dec 2025 23:21:23 +0100 Subject: [PATCH 1/5] Remove deprecated SafeAreaView --- doc/api.md | 2 ++ src/MenuProvider.js | 26 ++++++++++++++++++++++---- src/index.d.ts | 2 ++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/doc/api.md b/doc/api.md index 6ab0776..6a331d9 100644 --- a/doc/api.md +++ b/doc/api.md @@ -25,6 +25,7 @@ The only known exception is when you use [Modal](https://facebook.github.io/reac |`customStyles`|`Object`|Optional||Object defining wrapper, touchable and text styles| |`backHandler`|`boolean\|Function`|Optional|false|Whether to close the menu when the back button is pressed or custom back button handler if a function is passed (RN >= 0.44 is required)| |`skipInstanceCheck`|`boolean`|Optional|false|Normally your application should have only one menu provider (with exception as discussed above). If you really need more instances, set `skipInstanceCheck` to `true` to disable the check (and following warning message)| +|`SafeAreaComponent`|`Component`|Optional|`View`|Component to use for safe area wrapper. Can be set to `SafeAreaView` from React Native to restore the old behavior or any 3rd component like `react-native-safe-area-context`| ### Custom styles @@ -34,6 +35,7 @@ To style `` and backdrop component you can pass `customStyles` o |---|---|---| |`menuProviderWrapper`|`Style`|Style of wrapping `View` component (formerly `menuContextWrapper`)| |`backdrop`|`Style`|Backdrop `View` style| +|`safeArea`|`Style`|Safe area wrapper style. When not provided, default padding of 30 is applied to top and bottom| **Note:** `Style` type is any valid RN style parameter. **Note:** In addition to these styles we add also `{flex:1}`. You can disable it by e.g. `style={{flex:0}}`. diff --git a/src/MenuProvider.js b/src/MenuProvider.js index 1fc0f6e..ac3858e 100644 --- a/src/MenuProvider.js +++ b/src/MenuProvider.js @@ -1,6 +1,6 @@ import React, { Component, createContext } from 'react'; import PropTypes from 'prop-types'; -import { View, BackHandler, SafeAreaView, StyleSheet } from 'react-native'; +import { View, BackHandler, StyleSheet } from 'react-native'; import { withContext } from './with-context'; import makeMenuRegistry from './menuRegistry'; @@ -210,6 +210,8 @@ export default class MenuProvider extends Component { render() { const { style, customStyles = {} } = this.props; + const SafeAreaComponent = this.props.SafeAreaComponent || View; + const safeAreaStyles = this._computeSafeAreaStyles(); debug('render menu', this.isMenuOpen(), this._ownLayout); return ( @@ -222,8 +224,8 @@ export default class MenuProvider extends Component { ]}> { this.props.children } - - + ); @@ -342,12 +344,28 @@ export default class MenuProvider extends Component { this._notify(true); } + _computeSafeAreaStyles() { + const { customStyles = {} } = this.props; + const { safeArea: customSafeAreaStyle } = customStyles; + + if (customSafeAreaStyle) { + return [styles.safeArea, customSafeAreaStyle]; + } else { + const defaultSafeAreaStyles = { + paddingTop: 30, + paddingBottom: 30, + }; + return [styles.safeArea, defaultSafeAreaStyles]; + } + } + } MenuProvider.propTypes = { customStyles: PropTypes.object, backHandler: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]), skipInstanceCheck: PropTypes.bool, + SafeAreaComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.object]), } const styles = StyleSheet.create({ diff --git a/src/index.d.ts b/src/index.d.ts index 7e1ef2e..2412ec0 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -17,9 +17,11 @@ declare module "react-native-popup-menu" { customStyles?: { menuProviderWrapper?: StyleProp; backdrop?: StyleProp; + safeArea?: StyleProp; }; backHandler?: boolean | Function; skipInstanceCheck?: boolean; + SafeAreaComponent?: React.ComponentType; children: React.ReactNode; } From eafd2565e4430aae72c923b70a2120f8bd55bb2a Mon Sep 17 00:00:00 2001 From: Stanislav Miklik Date: Sun, 14 Dec 2025 23:26:18 +0100 Subject: [PATCH 2/5] rebuild after merge --- build/rnpm.js | 28 +++++++++++++++++++++++++--- build/rnpm.js.map | 2 +- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/build/rnpm.js b/build/rnpm.js index 8f21723..d609e53 100644 --- a/build/rnpm.js +++ b/build/rnpm.js @@ -1958,6 +1958,10 @@ style = _this$props2.style, _this$props2$customSt = _this$props2.customStyles, customStyles = _this$props2$customSt === void 0 ? {} : _this$props2$customSt; + var SafeAreaComponent = this.props.SafeAreaComponent || reactNative.View; + + var safeAreaStyles = this._computeSafeAreaStyles(); + debug('render menu', this.isMenuOpen(), this._ownLayout); return React__default.createElement(PopupMenuContext.Provider, { value: this.menuCtx @@ -1966,8 +1970,8 @@ onLayout: this._onLayout }, React__default.createElement(reactNative.View, { style: [styles$4.flex1, customStyles.menuContextWrapper, customStyles.menuProviderWrapper, style] - }, this.props.children), React__default.createElement(reactNative.SafeAreaView, { - style: styles$4.safeArea, + }, this.props.children), React__default.createElement(SafeAreaComponent, { + style: safeAreaStyles, pointerEvents: "box-none" }, React__default.createElement(reactNative.View, { style: styles$4.flex1, @@ -2080,6 +2084,23 @@ return React__default.createElement(optionsType, props, optionsRenderer(options)); } + }, { + key: "_computeSafeAreaStyles", + value: function _computeSafeAreaStyles() { + var _this$props$customSty2 = this.props.customStyles, + customStyles = _this$props$customSty2 === void 0 ? {} : _this$props$customSty2; + var customSafeAreaStyle = customStyles.safeArea; + + if (customSafeAreaStyle) { + return [styles$4.safeArea, customSafeAreaStyle]; + } else { + var defaultSafeAreaStyles = { + paddingTop: 30, + paddingBottom: 30 + }; + return [styles$4.safeArea, defaultSafeAreaStyles]; + } + } }]); return MenuProvider; @@ -2087,7 +2108,8 @@ MenuProvider.propTypes = { customStyles: propTypes.object, backHandler: propTypes.oneOfType([propTypes.bool, propTypes.func]), - skipInstanceCheck: propTypes.bool + skipInstanceCheck: propTypes.bool, + SafeAreaComponent: propTypes.oneOfType([propTypes.func, propTypes.object]) }; var styles$4 = reactNative.StyleSheet.create({ flex1: { diff --git a/build/rnpm.js.map b/build/rnpm.js.map index 7032d9e..0f372d5 100644 --- a/build/rnpm.js.map +++ b/build/rnpm.js.map @@ -1 +1 @@ -{"version":3,"file":"rnpm.js","sources":["../src/polyfills.js","../src/helpers.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../src/with-context.js","../src/menuRegistry.js","../src/constants.js","../src/Backdrop.js","../src/logger.js","../src/MenuPlaceholder.js","../src/renderers/MenuOutside.js","../src/renderers/ContextMenu.js","../src/config.js","../src/MenuProvider.js","../src/MenuOptions.js","../src/MenuTrigger.js","../src/Menu.js","../src/MenuOption.js","../src/renderers/NotAnimatedContextMenu.js","../src/renderers/SlideInMenu.js","../src/renderers/Popover.js","../src/index.js"],"sourcesContent":["// platform select polyfil for older RN versions\nimport { Platform } from 'react-native';\n\nif (!Platform.select) {\n Platform.select = (obj) => obj[Platform.OS];\n}\n","import React from 'react';\nimport { Platform, TouchableHighlight, TouchableNativeFeedback } from 'react-native';\n\n/**\n * Promisifies measure's callback function and returns layout object.\n */\nexport const measure = ref => new Promise((resolve) => {\n ref.measure((x, y, width, height, pageX, pageY) => {\n resolve({\n x: pageX, y: pageY,\n width, height,\n })\n });\n});\n\n/**\n * Create unique menu name across all menu instances.\n */\nexport const makeName = (function() {\n let nextID = 1;\n return () => `menu-${nextID++}`;\n})();\n\n/**\n * Create touchable component based on passed parameter and platform.\n * It also returns default props for specific touchable types.\n */\nexport function makeTouchable(TouchableComponent) {\n const Touchable = TouchableComponent || Platform.select({\n android: TouchableNativeFeedback,\n ios: TouchableHighlight,\n default: TouchableHighlight,\n });\n let defaultTouchableProps = {};\n if (Touchable === TouchableHighlight) {\n defaultTouchableProps = { underlayColor: 'rgba(0, 0, 0, 0.1)' };\n }\n return { Touchable, defaultTouchableProps };\n}\n\nfunction includes(arr, value) {\n return arr.indexOf(value) > -1;\n}\n\n/**\nLog object - prepares object for logging by stripping all \"private\" or excluding fields\n*/\nexport function lo(object, ...excluding) {\n const exc = Array.from(excluding);\n function isObject(obj) {\n return obj === Object(obj);\n }\n function withoutPrivate(obj) {\n if (!isObject(obj)) return obj;\n const res = {};\n for (var property in obj) {\n if (obj.hasOwnProperty(property)) {\n if (!property.startsWith('_') && !includes(exc, property)) {\n res[property] = withoutPrivate(obj[property]);\n }\n }\n }\n return res;\n }\n return withoutPrivate(object);\n}\n\n/**\nConverts iterator to array\n*/\nexport function iterator2array(it) {\n // workaround around https://github.com/instea/react-native-popup-menu/issues/41#issuecomment-340290127\n const arr = [];\n for (let next = it.next(); !next.done; next = it.next()) {\n arr.push(next.value);\n }\n return arr;\n}\n\n/** checks if component is class component */\nexport function isClassComponent(component) {\n return component.prototype && !!component.prototype.render;\n}\n\n/**\n * Higher order component to deprecate usage of component.\n * message - deprecate warning message\n * methods - array of method names to be delegated to deprecated component\n */\nexport function deprecatedComponent(message, methods = []) {\n return function deprecatedComponentHOC(Component) {\n return class DeprecatedComponent extends React.Component {\n constructor(...args) {\n super(...args);\n methods.forEach(name => {\n // delegate methods to the component\n this[name] = (...args) => this.ref && this.ref[name](...args)\n });\n }\n\n render() {\n return \n }\n\n onRef = ref => this.ref = ref;\n\n componentDidMount() {\n console.warn(message);\n }\n }\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n )\n\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from \"react\";\n\nexport function withContext(Context, propName = \"context\") {\n return function wrap(Component) {\n class EnhanceContext extends React.Component {\n render() {\n const { forwardedRef, ...rest } = this.props;\n\n return (\n \n {value => {\n const custom = {\n [propName]: value,\n ref: forwardedRef,\n };\n return ;\n }}\n \n );\n }\n }\n\n const name = Component.displayName || Component.name || \"Component\";\n const consumerName =\n Context.Consumer.displayName ||\n Context.Consumer.name ||\n \"Context.Consumer\";\n\n function enhanceForwardRef(props, ref) {\n return ;\n }\n\n enhanceForwardRef.displayName = `enhanceContext-${consumerName}(${name})`;\n\n const FC = React.forwardRef(enhanceForwardRef);\n return FC\n };\n}\n","import { iterator2array } from './helpers';\n\n/**\n * Registry to subscribe, unsubscribe and update data of menus.\n *\n * menu data: {\n * instance: react instance\n * triggerLayout: Object - layout of menu trigger if known\n * optionsLayout: Object - layout of menu options if known\n * optionsCustomStyles: Object - custom styles of options\n * }\n*/\nexport default function makeMenuRegistry(menus = new Map()) {\n\n /**\n * Subscribes menu instance.\n */\n function subscribe(instance) {\n const name = instance.getName()\n if (menus.get(name)) {\n console.warn(`incorrect usage of popup menu - menu with name ${name} already exists`);\n }\n menus.set(name, { name, instance });\n }\n\n /**\n * Unsubscribes menu instance.\n */\n function unsubscribe(instance) {\n menus.delete(instance.getName());\n }\n\n /**\n * Updates layout infomration.\n */\n function updateLayoutInfo(name, layouts = {}) {\n if (!menus.has(name)) {\n return;\n }\n const menu = Object.assign({}, menus.get(name));\n if (layouts.hasOwnProperty('triggerLayout')) {\n menu.triggerLayout = layouts.triggerLayout;\n }\n if (layouts.hasOwnProperty('optionsLayout')) {\n menu.optionsLayout = layouts.optionsLayout;\n }\n menus.set(name, menu);\n }\n\n function setOptionsCustomStyles(name, optionsCustomStyles) {\n if (!menus.has(name)) {\n return;\n }\n const menu = { ...menus.get(name), optionsCustomStyles };\n menus.set(name, menu);\n }\n\n /**\n * Get `menu data` by name.\n */\n function getMenu(name) {\n return menus.get(name);\n }\n\n /**\n * Returns all subscribed menus as array of `menu data`\n */\n function getAll() {\n return iterator2array(menus.values());\n }\n\n return { subscribe, unsubscribe, updateLayoutInfo, getMenu, getAll, setOptionsCustomStyles };\n}\n","import { Platform } from 'react-native';\n\n// common durations of animation\nexport const OPEN_ANIM_DURATION = 225;\nexport const CLOSE_ANIM_DURATION = 195;\n\nexport const USE_NATIVE_DRIVER = (Platform.OS !== \"web\");\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, StyleSheet, TouchableWithoutFeedback, Animated } from 'react-native';\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from './constants';\n\nclass Backdrop extends Component {\n\n constructor(...args) {\n super(...args);\n this.fadeAnim = new Animated.Value(0.001);\n }\n\n open() {\n return new Promise(resolve => {\n Animated.timing(this.fadeAnim, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.fadeAnim, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const { onPress, style } = this.props;\n return (\n \n \n \n \n \n );\n }\n\n}\n\nBackdrop.propTypes = {\n onPress: PropTypes.func.isRequired,\n};\n\nconst styles = StyleSheet.create({\n fullscreen: {\n opacity: 0,\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n});\n\nexport default Backdrop;\n","\nexport const CFG = {\n debug: false,\n}\n/**\n * Debug logger depending on `Menu.debug` static porperty.\n */\nexport const debug = (...args) => {\n CFG.debug && console.log('react-native-popup-menu', ...args);\n};\n","import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport Backdrop from './Backdrop';\nimport { debug } from './logger.js';\n\nexport default class MenuPlaceholder extends Component {\n constructor(props) {\n super(props)\n this.state = {};\n }\n\n shouldComponentUpdate() {\n // don't terminate closing animation\n return !this.props.ctx._isMenuClosing;\n }\n\n render() {\n const { ctx, backdropStyles } = this.props;\n const shouldRenderMenu = ctx.isMenuOpen() && ctx._isInitialized();\n debug('MenuPlaceholder should render', shouldRenderMenu);\n if (!shouldRenderMenu) {\n return null;\n }\n return (\n \n \n {\n ctx._makeOptions()\n }\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden',\n },\n});\n","import React from 'react';\nimport { View, StyleSheet } from 'react-native';\n\nexport const computePosition = ({ windowLayout }) => ({\n top: windowLayout.height,\n left: windowLayout.width,\n});\n\n\nconst MenuOutside = props => {\n const { style, children, layouts, ...other } = props;\n const position = computePosition(layouts);\n return (\n \n {children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n options: {\n position: 'absolute',\n },\n});\n\nexport default MenuOutside;\n","import React from 'react';\nimport { I18nManager, Animated, Easing, StyleSheet, PixelRatio } from 'react-native';\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from '../constants';\n\nconst axisPosition = (oDim, wDim, tPos, tDim) => {\n // if options are bigger than window dimension, then render at 0\n if (oDim > wDim) {\n return 0;\n }\n // render at trigger position if possible\n if (tPos + oDim <= wDim) {\n return tPos;\n }\n // aligned to the trigger from the bottom (right)\n if (tPos + tDim - oDim >= 0) {\n return tPos + tDim - oDim;\n }\n // compute center position\n let pos = Math.round(tPos + (tDim / 2) - (oDim / 2));\n // check top boundary\n if (pos < 0) {\n return 0;\n }\n // check bottom boundary\n if (pos + oDim > wDim) {\n return wDim - oDim;\n }\n // if everything ok, render in center position\n return pos;\n};\n\nfunction fit(pos, len, minPos, maxPos) {\n if (pos === undefined) {\n return undefined;\n }\n if (pos + len > maxPos) {\n pos = maxPos - len;\n }\n if (pos < minPos) {\n pos = minPos;\n }\n return pos;\n}\n// fits options (position) into safeArea\nexport const fitPositionIntoSafeArea = (position, layouts) => {\n const { windowLayout, safeAreaLayout, optionsLayout } = layouts;\n if (!safeAreaLayout) {\n return position;\n }\n const { x: saX, y: saY, height: saHeight, width: saWidth } = safeAreaLayout;\n const { height: oHeight, width: oWidth } = optionsLayout;\n const { width: wWidth } = windowLayout;\n let { top, left, right } = position;\n top = fit(top, oHeight, saY, saY + saHeight);\n left = fit(left, oWidth, saX, saX + saWidth)\n right = fit(right, oWidth, wWidth - saX - saWidth, saX)\n return { top, left, right };\n}\n\nexport const computePosition = (layouts, isRTL) => {\n const { windowLayout, triggerLayout, optionsLayout } = layouts;\n const { x: wX, y: wY, width: wWidth, height: wHeight } = windowLayout;\n const { x: tX, y: tY, height: tHeight, width: tWidth } = triggerLayout;\n const { height: oHeight, width: oWidth } = optionsLayout;\n const top = axisPosition(oHeight, wHeight, tY - wY, tHeight);\n const left = axisPosition(oWidth, wWidth, tX - wX, tWidth);\n const start = isRTL ? 'right' : 'left';\n const position = { top, [start]: left };\n return fitPositionIntoSafeArea(position, layouts);\n};\n\nexport default class ContextMenu extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n scaleAnim: new Animated.Value(0.1),\n };\n }\n\n componentDidMount() {\n Animated.timing(this.state.scaleAnim, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start();\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.state.scaleAnim, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: Easing.in(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const { style, children, layouts, ...other } = this.props;\n const animation = {\n transform: [ { scale: this.state.scaleAnim } ],\n opacity: this.state.scaleAnim,\n };\n const position = computePosition(layouts, I18nManager.isRTL);\n return (\n \n {children}\n \n );\n }\n\n}\n\n// public exports\nContextMenu.computePosition = computePosition;\nContextMenu.fitPositionIntoSafeArea = fitPositionIntoSafeArea;\n\nexport const styles = StyleSheet.create({\n options: {\n position: 'absolute',\n borderRadius: 2,\n backgroundColor: 'white',\n width: PixelRatio.roundToNearestPixel(200),\n\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: { width: 3, height: 3 },\n shadowRadius: 4,\n\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5,\n },\n});\n","import ContextMenu from './renderers/ContextMenu';\n\nexport const menuConfig = {\n defRenderer: ContextMenu,\n defRendererProps: {},\n}\n","import React, { Component, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, BackHandler, SafeAreaView, StyleSheet } from 'react-native';\n\nimport { withContext } from './with-context';\nimport makeMenuRegistry from './menuRegistry';\nimport MenuPlaceholder from './MenuPlaceholder';\nimport { measure, isClassComponent } from './helpers';\nimport { debug } from './logger.js';\nimport MenuOutside from './renderers/MenuOutside';\nimport { menuConfig } from './config.js';\n\nconst defaultOptionsContainerRenderer = options => options;\nconst layoutsEqual = (a, b) => (\n a === b || (a && b && a.width === b.width && a.height === b.height)\n);\n\nif (!React.forwardRef) {\n throw new Error('This version of popup-menu requires RN 0.55+. Check our compatibility table.')\n}\nexport const PopupMenuContext = createContext({})\nexport const withCtx = withContext(PopupMenuContext, \"ctx\");\n\n// count of MenuProvider instances\nlet instanceCount = 0;\n\nexport default class MenuProvider extends Component {\n\n constructor(props) {\n super(props);\n this._menuRegistry = makeMenuRegistry();\n this._isMenuClosing = false;\n this._backHandlerSubscription = null;\n const menuActions = {\n openMenu: name => this.openMenu(name),\n closeMenu: () => this.closeMenu(),\n toggleMenu: name => this.toggleMenu(name),\n isMenuOpen: () => this.isMenuOpen(),\n _getOpenedMenu: () => this._getOpenedMenu(),\n _notify: force => this._notify(force),\n };\n this.menuCtx = { menuRegistry: this._menuRegistry, menuActions }\n }\n\n _handleBackButton = () => {\n const { backHandler } = this.props;\n debug('_handleBackButton called', backHandler);\n\n // Default handler if true is passed\n if (backHandler === true) {\n if (this.isMenuOpen()) {\n this.closeMenu();\n return true;\n }\n }\n\n // Custom handler called with MenuProvider instance id function is passed\n if (typeof backHandler === 'function') {\n return backHandler(this);\n }\n\n return false;\n }\n\n componentDidMount() {\n const { customStyles = {}, skipInstanceCheck } = this.props;\n if (customStyles.menuContextWrapper) {\n console.warn('menuContextWrapper custom style is deprecated and it might be removed in future releases, use menuProviderWrapper instead.');\n }\n if (!skipInstanceCheck) {\n instanceCount++;\n }\n if (instanceCount > 1) {\n console.warn('In most cases you should not have more MenuProviders in your app (see API documentation). In other cases use skipInstanceCheck prop.');\n }\n }\n\n componentWillUnmount() {\n debug('unmounting menu provider')\n if (this._backHandlerSubscription != null) {\n this._backHandlerSubscription.remove();\n this._backHandlerSubscription = null;\n }\n const { skipInstanceCheck } = this.props;\n if (!skipInstanceCheck) {\n instanceCount--;\n }\n }\n\n isMenuOpen() {\n return !!this._getOpenedMenu();\n }\n\n openMenu(name) {\n const menu = this._menuRegistry.getMenu(name);\n if (!menu) {\n console.warn(`menu with name ${name} does not exist`);\n return Promise.resolve();\n }\n debug('open menu', name);\n if (this._backHandlerSubscription == null) {\n // delay menu registration until the menu is really opened (and thus this back handler will be called \"sooner\")\n // too soon registration can cause another back handlers (e.g. react navigation) to be called instead of our back handler\n this._backHandlerSubscription = BackHandler.addEventListener('hardwareBackPress', this._handleBackButton);\n }\n menu.instance._setOpened(true);\n return this._notify();\n }\n\n closeMenu() { // has no effect on controlled menus\n debug('close menu');\n this._menuRegistry.getAll()\n .filter(menu => menu.instance._getOpened())\n .forEach(menu => menu.instance._setOpened(false));\n return this._notify();\n }\n\n _invalidateTriggerLayouts() {\n // invalidate layouts for closed menus,\n // both controlled and uncontrolled menus\n this._menuRegistry.getAll()\n .filter(menu => !menu.instance.isOpen())\n .forEach(menu => {\n this._menuRegistry.updateLayoutInfo(menu.name, { triggerLayout: undefined });\n });\n }\n\n _beforeClose(menu) {\n debug('before close', menu.name);\n const hideMenu = (this.optionsRef\n && this.optionsRef.close\n && this.optionsRef.close()) || Promise.resolve();\n const hideBackdrop = this.backdropRef && this.backdropRef.close();\n this._invalidateTriggerLayouts();\n this._isMenuClosing = true;\n return Promise.all([hideMenu, hideBackdrop])\n .then(() => {\n this._isMenuClosing = false;\n })\n .catch(err => {\n this._isMenuClosing = false;\n throw err;\n })\n }\n\n toggleMenu(name) {\n const menu = this._menuRegistry.getMenu(name);\n if (!menu) {\n console.warn(`menu with name ${name} does not exist`);\n return Promise.resolve();\n }\n debug('toggle menu', name);\n if (menu.instance._getOpened()) {\n return this.closeMenu();\n } else {\n return this.openMenu(name);\n }\n }\n\n _notify(forceUpdate) {\n const NULL = {};\n const prev = this.openedMenu || NULL;\n const next = this._menuRegistry.getAll().find(menu => menu.instance.isOpen()) || NULL;\n // set newly opened menu before any callbacks are called\n this.openedMenu = next === NULL ? undefined : next;\n if (!forceUpdate && !this._isRenderNeeded(prev, next)) {\n return Promise.resolve();\n }\n debug('notify: next menu:', next.name, ' prev menu:', prev.name);\n let afterSetState = undefined;\n let beforeSetState = () => Promise.resolve();\n if (prev.name !== next.name) {\n if (prev !== NULL && !prev.instance.isOpen()) {\n beforeSetState = () => this._beforeClose(prev)\n .then(() => prev.instance.props.onClose && prev.instance.props.onClose());\n }\n if (next !== NULL) {\n next.instance.props.onOpen && next.instance.props.onOpen();\n afterSetState = () => this._initOpen(next);\n }\n }\n return beforeSetState().then(() => {\n if (!this._placeholderRef) {\n debug('setState ignored - maybe the context was unmounted')\n return\n }\n this._placeholderRef.setState({ openedMenuName: this.openedMenu && this.openedMenu.name }, afterSetState);\n debug('notify ended');\n });\n }\n\n /**\n Compares states of opened menu to determine if rerender is needed.\n */\n _isRenderNeeded(prev, next) {\n if (prev === next) {\n debug('_isRenderNeeded: skipping - no change');\n return false;\n }\n if (prev.name !== next.name) {\n return true;\n }\n const { triggerLayout, optionsLayout } = next;\n if (!triggerLayout || !optionsLayout) {\n debug('_isRenderNeeded: skipping - no trigger or options layout');\n return false;\n }\n return true;\n }\n\n render() {\n const { style, customStyles = {} } = this.props;\n debug('render menu', this.isMenuOpen(), this._ownLayout);\n return (\n \n \n \n { this.props.children }\n \n \n \n \n \n \n \n );\n }\n\n onBackdropRef = r => {\n this.backdropRef = r;\n }\n\n onOptionsRef = r => {\n this.optionsRef = r;\n }\n\n _onPlaceholderRef = r => this._placeholderRef = r;\n\n _getOpenedMenu() {\n const name = this._placeholderRef && this._placeholderRef.state.openedMenuName;\n const menu = name ? this._menuRegistry.getMenu(name) : undefined;\n debug('_getOpenedMenu', name, !!menu)\n return menu\n }\n\n _onBackdropPress = () => {\n debug('on backdrop press');\n const menu = this._getOpenedMenu();\n if (menu) {\n menu.instance.props.onBackdropPress && menu.instance.props.onBackdropPress();\n }\n this.closeMenu();\n }\n\n _isInitialized() {\n return !!this._ownLayout;\n }\n\n _initOpen(menu) {\n debug('opening', menu.name);\n const trigger = menu.instance._getTrigger();\n measure(trigger).then(triggerLayout => {\n debug('got trigger measurements', triggerLayout);\n this._menuRegistry.updateLayoutInfo(menu.name, { triggerLayout });\n this.backdropRef && this.backdropRef.open()\n this._notify();\n });\n }\n\n _onOptionsLayout(e, name, isOutside) {\n const optionsLayout = e.nativeEvent.layout;\n optionsLayout.isOutside = isOutside;\n debug('got options layout', optionsLayout);\n this._menuRegistry.updateLayoutInfo(name, { optionsLayout });\n this._notify();\n }\n\n _makeOptions() {\n const { instance, triggerLayout, optionsLayout } = this._getOpenedMenu();\n const options = instance._getOptions();\n const { renderer = menuConfig.defRenderer, rendererProps = menuConfig.defRendererProps } = instance.props;\n const windowLayout = this._ownLayout;\n const safeAreaLayout = this._safeAreaLayout;\n const { optionsContainerStyle, renderOptionsContainer, customStyles = {} } = options.props;\n const optionsRenderer = renderOptionsContainer || defaultOptionsContainerRenderer;\n const isOutside = !triggerLayout || !optionsLayout;\n const onLayout = e => this._onOptionsLayout(e, instance.getName(), isOutside);\n const style = [optionsContainerStyle, customStyles.optionsContainer];\n const layouts = { windowLayout, triggerLayout, optionsLayout, safeAreaLayout };\n const props = { ...rendererProps, style, onLayout, layouts };\n const optionsType = isOutside ? MenuOutside : renderer;\n if (isClassComponent(optionsType)) {\n props.ref = this.onOptionsRef;\n }\n return React.createElement(optionsType, props, optionsRenderer(options));\n }\n\n _onLayout = ({ nativeEvent: { layout } }) => {\n if (layoutsEqual(this._ownLayout, layout)) {\n return;\n }\n this._ownLayout = layout;\n debug('context layout has changed', this._ownLayout);\n if (!this.isMenuOpen()) {\n return;\n }\n const { instance } = this._getOpenedMenu();\n const trigger = instance._getTrigger();\n measure(trigger).then(triggerLayout => {\n debug('got trigger measurements after context layout change', triggerLayout);\n this._menuRegistry.updateLayoutInfo(instance.getName(), { triggerLayout });\n // force update as own layout has changed\n this._notify(true);\n });\n }\n\n _onSafeAreaLayout = ({ nativeEvent: { layout } }) => {\n if (layoutsEqual(this._safeAreaLayout, layout)) {\n return;\n }\n this._safeAreaLayout = layout;\n debug('safeArea layout has changed', this._safeAreaLayout);\n if (!this.isMenuOpen()) {\n return;\n }\n this._notify(true);\n }\n\n}\n\nMenuProvider.propTypes = {\n customStyles: PropTypes.object,\n backHandler: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n skipInstanceCheck: PropTypes.bool,\n}\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1,\n },\n safeArea: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { View } from 'react-native';\nimport { withCtx } from './MenuProvider';\n\nexport class MenuOptions extends React.Component {\n\n updateCustomStyles(_props) {\n const { customStyles = {} } = _props\n const menu = this.props.ctx.menuActions._getOpenedMenu()\n // FIXME react 16.3 workaround for ControlledExample!\n if (!menu) return\n const menuName = menu.instance.getName()\n this.props.ctx.menuRegistry.setOptionsCustomStyles(menuName, customStyles)\n }\n\n componentDidMount() {\n this.updateCustomStyles(this.props)\n }\n\n componentDidUpdate() {\n this.updateCustomStyles(this.props)\n }\n\n render() {\n const { customStyles = {}, style, children } = this.props\n return (\n \n {children}\n \n )\n }\n}\n\nMenuOptions.propTypes = {\n customStyles: PropTypes.object,\n renderOptionsContainer: PropTypes.func,\n optionsContainerStyle: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.array,\n ]),\n};\n\nexport default withCtx(MenuOptions);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, Text } from 'react-native';\nimport { debug } from './logger.js';\nimport { makeTouchable } from './helpers';\nimport { withCtx } from './MenuProvider';\n\nexport class MenuTrigger extends Component {\n\n _onPress() {\n debug('trigger onPress');\n this.props.onPress && this.props.onPress();\n this.props.ctx.menuActions.openMenu(this.props.menuName);\n }\n\n render() {\n const { disabled, onRef, text, children, style, customStyles = {}, menuName,\n triggerOnLongPress, onAlternativeAction, testID, accessible, accessibilityRole, accessibilityLabel, ...other } = this.props;\n\n const onPress = () => !disabled && this._onPress();\n const { Touchable, defaultTouchableProps } = makeTouchable(customStyles.TriggerTouchableComponent);\n return (\n \n \n \n {text ? {text} : children}\n \n \n \n );\n }\n\n}\n\nMenuTrigger.propTypes = {\n disabled: PropTypes.bool,\n text: PropTypes.string,\n onPress: PropTypes.func,\n onAlternativeAction: PropTypes.func,\n customStyles: PropTypes.object,\n triggerOnLongPress: PropTypes.bool,\n testID: PropTypes.string,\n accessible: PropTypes.bool,\n accessibilityRole: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n};\n\nexport default withCtx(MenuTrigger)\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View } from 'react-native';\nimport MenuOptions from './MenuOptions';\nimport MenuTrigger from './MenuTrigger';\nimport { makeName } from './helpers';\nimport { debug, CFG } from './logger';\nimport { withCtx } from './MenuProvider';\nimport { menuConfig } from './config';\n\nconst isRegularComponent = c => c.type !== MenuOptions && c.type !== MenuTrigger;\nconst isTrigger = c => c.type === MenuTrigger;\nconst isMenuOptions = c => c.type === MenuOptions;\n\nexport class Menu extends Component {\n\n constructor(props) {\n super(props);\n this._name = this.props.name || makeName();\n this._forceClose = false;\n const { ctx } = props;\n if(!(ctx && ctx.menuActions)) {\n throw new Error(\"Menu component must be ancestor of MenuProvider\");\n }\n }\n\n componentDidMount() {\n if (!this._validateChildren()) {\n return;\n }\n debug('subscribing menu', this._name);\n this.props.ctx.menuRegistry.subscribe(this);\n this.props.ctx.menuActions._notify();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n console.warn('Menu name cannot be changed');\n }\n // force update if menu is opened as its content might have changed\n const force = this.isOpen();\n debug('component did update', this._name, force);\n this.props.ctx.menuActions._notify(force);\n }\n\n componentWillUnmount() {\n debug('unsubscribing menu', this._name);\n if (this.isOpen()) {\n this._forceClose = true;\n this.props.ctx.menuActions._notify();\n }\n this.props.ctx.menuRegistry.unsubscribe(this);\n }\n\n open() {\n return this.props.ctx.menuActions.openMenu(this._name);\n }\n\n close() {\n return this.props.ctx.menuActions.closeMenu();\n }\n\n isOpen() {\n if (this._forceClose) {\n return false;\n }\n return this.props.hasOwnProperty('opened') ? this.props.opened : this._opened;\n }\n\n getName() {\n return this._name;\n }\n\n render() {\n const { style } = this.props;\n const children = this._reduceChildren();\n return (\n \n {children}\n \n );\n }\n\n _reduceChildren() {\n return React.Children.toArray(this.props.children).reduce((r, child) => {\n if (isTrigger(child)) {\n r.push(React.cloneElement(child, {\n key: null,\n menuName: this._name,\n onRef: (t => this._trigger = t),\n }));\n }\n if (isRegularComponent(child)) {\n r.push(child);\n }\n return r;\n }, []);\n }\n\n _getTrigger() {\n return this._trigger;\n }\n\n _getOptions() {\n return React.Children.toArray(this.props.children).find(isMenuOptions);\n }\n\n _getOpened() {\n return this._opened;\n }\n\n _setOpened(opened) {\n this._opened = opened;\n }\n\n _validateChildren() {\n const children = React.Children.toArray(this.props.children);\n const options = children.find(isMenuOptions);\n if (!options) {\n console.warn('Menu has to contain MenuOptions component');\n }\n const trigger = children.find(isTrigger);\n if (!trigger) {\n console.warn('Menu has to contain MenuTrigger component');\n }\n return options && trigger;\n }\n\n}\n\nMenu.propTypes = {\n name: PropTypes.string,\n renderer: PropTypes.func,\n rendererProps: PropTypes.object,\n onSelect: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n opened: PropTypes.bool,\n onBackdropPress: PropTypes.func,\n};\n\n\nconst MenuExternal = withCtx(Menu);\nObject.defineProperty(MenuExternal, 'debug', \n { \n get: function() { return CFG.debug }, \n set: function(val) { CFG.debug = val }, \n });\nMenuExternal.setDefaultRenderer = (renderer) => {\n menuConfig.defRenderer = renderer;\n}\nMenuExternal.setDefaultRendererProps = (rendererProps) => {\n menuConfig.defRendererProps = rendererProps;\n}\nexport default MenuExternal;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, StyleSheet, Text } from 'react-native';\nimport { debug } from './logger';\nimport { makeTouchable } from './helpers';\nimport { withCtx } from './MenuProvider';\n\nconst noop = () => {};\n\nexport class MenuOption extends Component {\n\n _onSelect() {\n const { value } = this.props;\n const onSelect = this.props.onSelect || this._getMenusOnSelect()\n const shouldClose = onSelect(value) !== false;\n debug('select option', value, shouldClose);\n if (shouldClose) {\n this.props.ctx.menuActions.closeMenu();\n }\n }\n\n _getMenusOnSelect() {\n const menu = this.props.ctx.menuActions._getOpenedMenu();\n return menu.instance.props.onSelect || noop;\n }\n\n _getCustomStyles() {\n // FIXME react 16.3 workaround for ControlledExample!\n const menu = this.props.ctx.menuActions._getOpenedMenu() || {}\n const { optionsCustomStyles } = menu;\n return {\n ...optionsCustomStyles,\n ...this.props.customStyles,\n }\n }\n\n render() {\n const { text, disabled, disableTouchable, children, style, testID, ...accessibilityProps } = this.props;\n const customStyles = this._getCustomStyles()\n if (text && React.Children.count(children) > 0) {\n console.warn(\"MenuOption: Please don't use text property together with explicit children. Children are ignored.\");\n }\n if (disabled) {\n const disabledStyles = [defaultStyles.optionTextDisabled, customStyles.optionText];\n return (\n \n {text ? {text} : children}\n \n );\n }\n const rendered = (\n \n {text ? {text} : children}\n \n );\n if (disableTouchable) {\n return rendered;\n }\n else {\n const { Touchable, defaultTouchableProps } = makeTouchable(customStyles.OptionTouchableComponent);\n return (\n this._onSelect()}\n {...defaultTouchableProps}\n {...accessibilityProps}\n {...customStyles.optionTouchable}\n >\n {rendered}\n \n );\n }\n }\n}\n\nMenuOption.propTypes = {\n disabled: PropTypes.bool,\n disableTouchable: PropTypes.bool,\n onSelect: PropTypes.func,\n text: PropTypes.string,\n value: PropTypes.any,\n customStyles: PropTypes.object,\n testID: PropTypes.string,\n accessible: PropTypes.bool,\n accessibilityRole: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n};\n\nconst defaultStyles = StyleSheet.create({\n option: {\n padding: 5,\n backgroundColor: 'transparent',\n },\n optionTextDisabled: {\n color: '#ccc',\n },\n});\n\nexport default withCtx(MenuOption);\n","import React from 'react';\nimport { I18nManager, View } from 'react-native';\n\nimport { computePosition, styles } from './ContextMenu';\n\n/**\nSimplified version of ContextMenu without animation.\n*/\nexport default class NotAnimatedContextMenu extends React.Component {\n\n render() {\n const { style, children, layouts, ...other } = this.props;\n const position = computePosition(layouts, I18nManager.isRTL);\n return (\n \n {children}\n \n );\n }\n\n}\n","import React from 'react';\nimport { Animated, StyleSheet, Easing } from 'react-native';\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from '../constants';\n\nexport const computePosition = (layouts) => {\n const { windowLayout, optionsLayout } = layouts\n const { height: wHeight } = windowLayout;\n const { height: oHeight } = optionsLayout;\n const top = wHeight - oHeight;\n const left = 0, right = 0;\n const position = { top, left, right };\n // TODO what is the best way to handle safeArea?\n // most likely some extra paddings inside SlideInMenu \n return position;\n}\n\nexport default class SlideInMenu extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n slide: new Animated.Value(0),\n };\n }\n\n componentDidMount() {\n Animated.timing(this.state.slide, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start();\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.state.slide, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: Easing.in(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const { style, children, layouts, ...other } = this.props;\n const { height: oHeight } = layouts.optionsLayout;\n const animation = {\n transform: [{\n translateY: this.state.slide.interpolate({\n inputRange: [0, 1],\n outputRange: [oHeight, 0],\n }),\n }],\n };\n const position = computePosition(layouts);\n return (\n \n {children}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n options: {\n position: 'absolute',\n backgroundColor: 'white',\n\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: { width: 3, height: 3 },\n shadowRadius: 4,\n\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5,\n },\n});\n","import { I18nManager, Animated, Easing, StyleSheet, View } from 'react-native';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from '../constants.js';\n\nconst popoverPadding = 7;\nconst anchorSize = 15;\nconst anchorHyp = Math.sqrt(anchorSize*anchorSize + anchorSize*anchorSize);\nconst anchorOffset = (anchorHyp + anchorSize) / 2 - popoverPadding;\n\n// left/top placement\nfunction axisNegativeSideProperties({ oDim, tPos }) {\n return { position: tPos - oDim };\n}\n\n// right/bottom placement\nfunction axisPositiveSideProperties({ tPos, tDim }) {\n // substract also anchor placeholder from the beginning\n return { position: tPos + tDim - anchorSize };\n}\n\n// computes offsets (off screen overlap) of popover when trying to align it to the center\nfunction centeringProperties({ oDim, wDim, tPos, tDim }) {\n const center = Math.round(tPos + (tDim / 2));\n const leftOffset = (oDim / 2) - center;\n const rightOffset = center + (oDim / 2) - wDim;\n return { center, leftOffset, rightOffset };\n}\n\n/**\n * Computes position and offset of popover when trying to align it to the triger center.\n * It consideres window boundaries.\n * Returns object with keys:\n * - position: Absolute position - top/left,\n * - offset: window overlapping size if window boundaries were not considered\n */\nfunction axisCenteredPositionProperties(options) {\n const { oDim, wDim } = options;\n const { center, leftOffset, rightOffset } = centeringProperties(options);\n if (leftOffset > 0 || rightOffset > 0) {\n // right/bottom position is better\n if (leftOffset < rightOffset) {\n return { offset: rightOffset, position: wDim - oDim };\n }\n // left/top position is better\n if (rightOffset < leftOffset) {\n return { offset: -leftOffset, position: 0 };\n }\n }\n // centered position\n return { offset: 0, position: center - oDim / 2 };\n}\n\n/* Evaluate centering placement */\nfunction getCenteringPrice(options) {\n const { leftOffset, rightOffset } = centeringProperties(options);\n // TODO: currently shifted popovers have higher price,\n // popover shift could be taken into account with the same price\n return Math.max(0, leftOffset) + Math.max(0, rightOffset);\n}\n\n/* Evaluate top placement */\nfunction getTopPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(vOptions)\n const sideOffset = Math.max(0, hOptions.oDim - hOptions.tPos)\n return centerOffset + sideOffset\n}\n\n/* Evaluate bottom placement */\nfunction getBottomPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(vOptions)\n const sideOffset = Math.max(0, hOptions.tPos + hOptions.tDim + hOptions.oDim - hOptions.wDim)\n return centerOffset + sideOffset\n}\n\n/* Evaluate left placement */\nfunction getLeftPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(hOptions)\n const sideOffset = Math.max(0, vOptions.oDim - vOptions.tPos)\n return centerOffset + sideOffset\n}\n\n/* Evaluate right placement */\nfunction getRightPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(hOptions)\n const sideOffset = Math.max(0, vOptions.tPos + vOptions.tDim + vOptions.oDim - vOptions.wDim)\n return centerOffset + sideOffset\n}\n\nfunction getStartPosKey(isRTL) {\n return isRTL ? 'right' : 'left';\n}\n\nfunction topProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(vOptions);\n const side = axisNegativeSideProperties(hOptions);\n return {\n position: {\n top: side.position,\n [getStartPosKey(isRTL)]: centered.position,\n },\n offset: centered.offset,\n placement: 'top',\n };\n}\n\nfunction bottomProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(vOptions);\n const side = axisPositiveSideProperties(hOptions);\n return {\n position: {\n top: side.position,\n [getStartPosKey(isRTL)]: centered.position,\n },\n offset: centered.offset,\n placement: 'bottom',\n };\n}\n\nfunction rightProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(hOptions);\n const side = axisPositiveSideProperties(vOptions);\n return {\n position: {\n top: centered.position,\n [getStartPosKey(isRTL)]: side.position,\n },\n offset: centered.offset,\n placement: 'right',\n };\n}\n\nfunction leftProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(hOptions);\n const side = axisNegativeSideProperties(vOptions);\n return {\n position: {\n top: centered.position,\n [getStartPosKey(isRTL)]: side.position,\n },\n offset: centered.offset,\n placement: 'left',\n };\n}\n\n// maps placement to function which computes correct properties\nconst propertiesByPlacement = {\n top: topProperties,\n bottom: bottomProperties,\n left: leftProperties,\n right: rightProperties,\n};\n\n/**\n * Computes properties needed for drawing popover.\n * Returns object with keys:\n * - position: { top: Number, left: Number } - popover absolute position\n * - placement: top|left|top|bottom - position to the trigger\n * - offset: value by which must be anchor shifted\n */\nexport function computeProperties (\n { windowLayout, triggerLayout, optionsLayout },\n placement,\n preferredPlacement,\n isRTL,\n) {\n const { x: wX, y: wY, width: wWidth, height: wHeight } = windowLayout;\n const { x: tX, y: tY, height: tHeight, width: tWidth } = triggerLayout;\n const { height: oHeight, width: oWidth } = optionsLayout;\n const hOptions = {\n oDim: oHeight + popoverPadding * 2,\n wDim: wHeight,\n tPos: tY - wY,\n tDim: tHeight,\n };\n const vOptions = {\n oDim: oWidth + popoverPadding * 2,\n wDim: wWidth,\n tPos: tX - wX,\n tDim: tWidth,\n };\n if (placement !== 'auto' && propertiesByPlacement[placement]) {\n return propertiesByPlacement[placement](hOptions, vOptions, isRTL)\n }\n\n const prices = {\n top: getTopPrice(hOptions, vOptions),\n bottom: getBottomPrice(hOptions, vOptions),\n right: getRightPrice(hOptions, vOptions),\n left: getLeftPrice(hOptions, vOptions),\n };\n const bestPrice = Object.values(prices).sort((a, b) => a - b)[0]\n const bestPlacement = prices[preferredPlacement] === bestPrice\n ? preferredPlacement\n : Object.keys(prices).find(pl => prices[pl] === bestPrice)\n\n return propertiesByPlacement[bestPlacement](hOptions, vOptions, isRTL)\n}\n\nexport default class Popover extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n scaleAnim: new Animated.Value(0.1),\n };\n }\n\n componentDidMount() {\n Animated.timing(this.state.scaleAnim, {\n duration: this.props.openAnimationDuration !== undefined ? this.props.openAnimationDuration : OPEN_ANIM_DURATION,\n toValue: 1,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start();\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.state.scaleAnim, {\n duration: this.props.closeAnimationDuration !== undefined ? this.props.closeAnimationDuration : CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: Easing.in(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const {\n style,\n children,\n layouts,\n anchorStyle,\n preferredPlacement = 'top',\n openAnimationDuration,\n closeAnimationDuration,\n placement: userPlacement = 'auto',\n ...other\n } = this.props;\n const isRTL = I18nManager.isRTL;\n const animation = {\n transform: [ { scale: this.state.scaleAnim } ],\n opacity: this.state.scaleAnim,\n };\n const { position, placement, offset } = computeProperties(\n layouts,\n userPlacement,\n preferredPlacement,\n isRTL,\n );\n return (\n \n \n \n {children}\n \n \n );\n }\n\n}\n\nPopover.propTypes = {\n anchorStyle: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.array,\n ]),\n placement: PropTypes.oneOf(['auto', 'top', 'right', 'bottom', 'left']),\n preferredPlacement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n openAnimationDuration: PropTypes.number,\n closeAnimationDuration: PropTypes.number,\n};\n\nconst getContainerStyle = ({ placement, isRTL }) => ({\n left: {\n flexDirection: isRTL ? 'row' : 'row-reverse',\n },\n right: {\n flexDirection: isRTL ? 'row-reverse' : 'row',\n },\n top: {\n flexDirection: 'column-reverse',\n },\n bottom: {\n flexDirection: 'column',\n },\n})[placement]\n\nconst dynamicAnchorStyle = ({ offset, placement, isRTL }) => {\n const start = getStartPosKey(isRTL);\n switch (placement) {\n case 'right':\n return {\n top: offset,\n transform: [\n { translateX: anchorOffset },\n { rotate: '45deg' },\n ],\n };\n case 'left':\n return {\n top: offset,\n transform: [\n { translateX: -anchorOffset },\n { rotate: '45deg' },\n ],\n };\n case 'top':\n return {\n [start]: offset,\n transform: [\n { translateY: -anchorOffset },\n { rotate: '45deg' },\n ],\n };\n case 'bottom':\n return {\n [start]: offset,\n transform: [\n { translateY: anchorOffset },\n { rotate: '45deg' },\n ],\n };\n }\n}\n\nexport const styles = StyleSheet.create({\n animated: {\n padding: popoverPadding,\n backgroundColor: 'transparent',\n position: 'absolute',\n alignItems: 'center',\n },\n options: {\n borderRadius: 2,\n minWidth: anchorHyp,\n minHeight: anchorHyp,\n backgroundColor: 'white',\n\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: { width: 3, height: 3 },\n shadowRadius: 4,\n\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5,\n },\n anchor: {\n width: anchorSize,\n height: anchorSize,\n backgroundColor: 'white',\n elevation: 5,\n },\n});\n","import './polyfills';\nimport { deprecatedComponent } from './helpers'\n\nimport Menu from './Menu';\nimport MenuProvider, { withCtx } from './MenuProvider';\nimport MenuOption from './MenuOption';\nimport MenuOptions from './MenuOptions';\nimport MenuTrigger from './MenuTrigger';\n\nimport ContextMenu from './renderers/ContextMenu';\nimport NotAnimatedContextMenu from './renderers/NotAnimatedContextMenu';\nimport SlideInMenu from './renderers/SlideInMenu';\nimport Popover from './renderers/Popover';\nconst renderers = { ContextMenu, SlideInMenu, NotAnimatedContextMenu, Popover };\n\nconst MenuContext = deprecatedComponent(\n 'MenuContext is deprecated and it might be removed in future releases, use MenuProvider instead.',\n ['openMenu', 'toggleMenu', 'closeMenu', 'isMenuOpen'],\n)(MenuProvider);\n\nexport {\n Menu as default,\n Menu,\n MenuProvider,\n MenuContext,\n MenuOption,\n MenuOptions,\n MenuTrigger,\n renderers,\n withCtx as withMenuContext,\n};\n"],"names":["Platform","select","obj","OS","measure","ref","Promise","resolve","x","y","width","height","pageX","pageY","makeName","nextID","makeTouchable","TouchableComponent","Touchable","android","TouchableNativeFeedback","ios","TouchableHighlight","default","defaultTouchableProps","underlayColor","iterator2array","it","arr","next","done","push","value","isClassComponent","component","prototype","render","deprecatedComponent","message","methods","deprecatedComponentHOC","Component","args","forEach","name","React","props","onRef","console","warn","ReactPropTypesSecret","require$$0","printWarning","assign","checkPropTypes","withContext","Context","propName","wrap","EnhanceContext","forwardedRef","rest","custom","displayName","consumerName","Consumer","enhanceForwardRef","FC","forwardRef","makeMenuRegistry","menus","Map","subscribe","instance","getName","get","set","unsubscribe","delete","updateLayoutInfo","layouts","has","menu","Object","hasOwnProperty","triggerLayout","optionsLayout","setOptionsCustomStyles","optionsCustomStyles","getMenu","getAll","values","OPEN_ANIM_DURATION","CLOSE_ANIM_DURATION","USE_NATIVE_DRIVER","Backdrop","fadeAnim","Animated","Value","timing","duration","toValue","useNativeDriver","start","onPress","style","TouchableWithoutFeedback","styles","fullscreen","opacity","View","propTypes","PropTypes","func","isRequired","StyleSheet","create","position","top","left","bottom","right","CFG","debug","log","MenuPlaceholder","state","ctx","_isMenuClosing","backdropStyles","shouldRenderMenu","isMenuOpen","_isInitialized","placeholder","_onBackdropPress","onBackdropRef","_makeOptions","overflow","computePosition","windowLayout","MenuOutside","children","other","options","axisPosition","oDim","wDim","tPos","tDim","pos","Math","round","fit","len","minPos","maxPos","undefined","fitPositionIntoSafeArea","safeAreaLayout","saX","saY","saHeight","saWidth","oHeight","oWidth","wWidth","isRTL","wX","wY","wHeight","tX","tY","tHeight","tWidth","ContextMenu","scaleAnim","easing","Easing","out","cubic","in","animation","transform","scale","I18nManager","borderRadius","backgroundColor","PixelRatio","roundToNearestPixel","shadowColor","shadowOpacity","shadowOffset","shadowRadius","elevation","menuConfig","defRenderer","defRendererProps","defaultOptionsContainerRenderer","layoutsEqual","a","b","Error","PopupMenuContext","createContext","withCtx","instanceCount","MenuProvider","backHandler","closeMenu","r","backdropRef","optionsRef","_placeholderRef","_getOpenedMenu","onBackdropPress","layout","nativeEvent","_ownLayout","trigger","_getTrigger","then","_menuRegistry","_notify","_safeAreaLayout","_backHandlerSubscription","menuActions","openMenu","toggleMenu","force","menuCtx","menuRegistry","customStyles","skipInstanceCheck","menuContextWrapper","remove","BackHandler","addEventListener","_handleBackButton","_setOpened","filter","_getOpened","isOpen","hideMenu","close","hideBackdrop","_invalidateTriggerLayouts","all","catch","err","forceUpdate","NULL","prev","openedMenu","find","_isRenderNeeded","afterSetState","beforeSetState","_beforeClose","onClose","onOpen","_initOpen","setState","openedMenuName","flex1","_onLayout","menuProviderWrapper","SafeAreaView","safeArea","_onSafeAreaLayout","backdrop","_onPlaceholderRef","open","e","isOutside","_getOptions","renderer","rendererProps","optionsContainerStyle","renderOptionsContainer","optionsRenderer","onLayout","_onOptionsLayout","optionsContainer","optionsType","onOptionsRef","createElement","object","oneOfType","bool","flex","MenuOptions","_props","menuName","updateCustomStyles","optionsWrapper","number","array","MenuTrigger","disabled","text","triggerOnLongPress","onAlternativeAction","testID","accessible","accessibilityRole","accessibilityLabel","_onPress","TriggerTouchableComponent","triggerOuterWrapper","triggerTouchable","triggerWrapper","Text","triggerText","string","isRegularComponent","c","type","isTrigger","isMenuOptions","Menu","_name","_forceClose","_validateChildren","prevProps","opened","_opened","_reduceChildren","Children","toArray","reduce","child","cloneElement","key","t","_trigger","onSelect","MenuExternal","defineProperty","val","setDefaultRenderer","setDefaultRendererProps","noop","MenuOption","_getMenusOnSelect","shouldClose","disableTouchable","accessibilityProps","_getCustomStyles","count","disabledStyles","defaultStyles","optionTextDisabled","optionText","option","optionWrapper","rendered","OptionTouchableComponent","_onSelect","optionTouchable","any","padding","color","NotAnimatedContextMenu","SlideInMenu","slide","translateY","interpolate","inputRange","outputRange","popoverPadding","anchorSize","anchorHyp","sqrt","anchorOffset","axisNegativeSideProperties","axisPositiveSideProperties","centeringProperties","center","leftOffset","rightOffset","axisCenteredPositionProperties","offset","getCenteringPrice","max","getTopPrice","hOptions","vOptions","centerOffset","sideOffset","getBottomPrice","getLeftPrice","getRightPrice","getStartPosKey","topProperties","centered","side","placement","bottomProperties","rightProperties","leftProperties","propertiesByPlacement","computeProperties","preferredPlacement","prices","bestPrice","sort","bestPlacement","keys","pl","Popover","openAnimationDuration","closeAnimationDuration","anchorStyle","userPlacement","animated","getContainerStyle","anchor","dynamicAnchorStyle","oneOf","flexDirection","translateX","rotate","alignItems","minWidth","minHeight","renderers","MenuContext"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rnpm.js","sources":["../src/polyfills.js","../src/helpers.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../src/with-context.js","../src/menuRegistry.js","../src/constants.js","../src/Backdrop.js","../src/logger.js","../src/MenuPlaceholder.js","../src/renderers/MenuOutside.js","../src/renderers/ContextMenu.js","../src/config.js","../src/MenuProvider.js","../src/MenuOptions.js","../src/MenuTrigger.js","../src/Menu.js","../src/MenuOption.js","../src/renderers/NotAnimatedContextMenu.js","../src/renderers/SlideInMenu.js","../src/renderers/Popover.js","../src/index.js"],"sourcesContent":["// platform select polyfil for older RN versions\nimport { Platform } from 'react-native';\n\nif (!Platform.select) {\n Platform.select = (obj) => obj[Platform.OS];\n}\n","import React from 'react';\nimport { Platform, TouchableHighlight, TouchableNativeFeedback } from 'react-native';\n\n/**\n * Promisifies measure's callback function and returns layout object.\n */\nexport const measure = ref => new Promise((resolve) => {\n ref.measure((x, y, width, height, pageX, pageY) => {\n resolve({\n x: pageX, y: pageY,\n width, height,\n })\n });\n});\n\n/**\n * Create unique menu name across all menu instances.\n */\nexport const makeName = (function() {\n let nextID = 1;\n return () => `menu-${nextID++}`;\n})();\n\n/**\n * Create touchable component based on passed parameter and platform.\n * It also returns default props for specific touchable types.\n */\nexport function makeTouchable(TouchableComponent) {\n const Touchable = TouchableComponent || Platform.select({\n android: TouchableNativeFeedback,\n ios: TouchableHighlight,\n default: TouchableHighlight,\n });\n let defaultTouchableProps = {};\n if (Touchable === TouchableHighlight) {\n defaultTouchableProps = { underlayColor: 'rgba(0, 0, 0, 0.1)' };\n }\n return { Touchable, defaultTouchableProps };\n}\n\nfunction includes(arr, value) {\n return arr.indexOf(value) > -1;\n}\n\n/**\nLog object - prepares object for logging by stripping all \"private\" or excluding fields\n*/\nexport function lo(object, ...excluding) {\n const exc = Array.from(excluding);\n function isObject(obj) {\n return obj === Object(obj);\n }\n function withoutPrivate(obj) {\n if (!isObject(obj)) return obj;\n const res = {};\n for (var property in obj) {\n if (obj.hasOwnProperty(property)) {\n if (!property.startsWith('_') && !includes(exc, property)) {\n res[property] = withoutPrivate(obj[property]);\n }\n }\n }\n return res;\n }\n return withoutPrivate(object);\n}\n\n/**\nConverts iterator to array\n*/\nexport function iterator2array(it) {\n // workaround around https://github.com/instea/react-native-popup-menu/issues/41#issuecomment-340290127\n const arr = [];\n for (let next = it.next(); !next.done; next = it.next()) {\n arr.push(next.value);\n }\n return arr;\n}\n\n/** checks if component is class component */\nexport function isClassComponent(component) {\n return component.prototype && !!component.prototype.render;\n}\n\n/**\n * Higher order component to deprecate usage of component.\n * message - deprecate warning message\n * methods - array of method names to be delegated to deprecated component\n */\nexport function deprecatedComponent(message, methods = []) {\n return function deprecatedComponentHOC(Component) {\n return class DeprecatedComponent extends React.Component {\n constructor(...args) {\n super(...args);\n methods.forEach(name => {\n // delegate methods to the component\n this[name] = (...args) => this.ref && this.ref[name](...args)\n });\n }\n\n render() {\n return \n }\n\n onRef = ref => this.ref = ref;\n\n componentDidMount() {\n console.warn(message);\n }\n }\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n )\n\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from \"react\";\n\nexport function withContext(Context, propName = \"context\") {\n return function wrap(Component) {\n class EnhanceContext extends React.Component {\n render() {\n const { forwardedRef, ...rest } = this.props;\n\n return (\n \n {value => {\n const custom = {\n [propName]: value,\n ref: forwardedRef,\n };\n return ;\n }}\n \n );\n }\n }\n\n const name = Component.displayName || Component.name || \"Component\";\n const consumerName =\n Context.Consumer.displayName ||\n Context.Consumer.name ||\n \"Context.Consumer\";\n\n function enhanceForwardRef(props, ref) {\n return ;\n }\n\n enhanceForwardRef.displayName = `enhanceContext-${consumerName}(${name})`;\n\n const FC = React.forwardRef(enhanceForwardRef);\n return FC\n };\n}\n","import { iterator2array } from './helpers';\n\n/**\n * Registry to subscribe, unsubscribe and update data of menus.\n *\n * menu data: {\n * instance: react instance\n * triggerLayout: Object - layout of menu trigger if known\n * optionsLayout: Object - layout of menu options if known\n * optionsCustomStyles: Object - custom styles of options\n * }\n*/\nexport default function makeMenuRegistry(menus = new Map()) {\n\n /**\n * Subscribes menu instance.\n */\n function subscribe(instance) {\n const name = instance.getName()\n if (menus.get(name)) {\n console.warn(`incorrect usage of popup menu - menu with name ${name} already exists`);\n }\n menus.set(name, { name, instance });\n }\n\n /**\n * Unsubscribes menu instance.\n */\n function unsubscribe(instance) {\n menus.delete(instance.getName());\n }\n\n /**\n * Updates layout infomration.\n */\n function updateLayoutInfo(name, layouts = {}) {\n if (!menus.has(name)) {\n return;\n }\n const menu = Object.assign({}, menus.get(name));\n if (layouts.hasOwnProperty('triggerLayout')) {\n menu.triggerLayout = layouts.triggerLayout;\n }\n if (layouts.hasOwnProperty('optionsLayout')) {\n menu.optionsLayout = layouts.optionsLayout;\n }\n menus.set(name, menu);\n }\n\n function setOptionsCustomStyles(name, optionsCustomStyles) {\n if (!menus.has(name)) {\n return;\n }\n const menu = { ...menus.get(name), optionsCustomStyles };\n menus.set(name, menu);\n }\n\n /**\n * Get `menu data` by name.\n */\n function getMenu(name) {\n return menus.get(name);\n }\n\n /**\n * Returns all subscribed menus as array of `menu data`\n */\n function getAll() {\n return iterator2array(menus.values());\n }\n\n return { subscribe, unsubscribe, updateLayoutInfo, getMenu, getAll, setOptionsCustomStyles };\n}\n","import { Platform } from 'react-native';\n\n// common durations of animation\nexport const OPEN_ANIM_DURATION = 225;\nexport const CLOSE_ANIM_DURATION = 195;\n\nexport const USE_NATIVE_DRIVER = (Platform.OS !== \"web\");\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, StyleSheet, TouchableWithoutFeedback, Animated } from 'react-native';\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from './constants';\n\nclass Backdrop extends Component {\n\n constructor(...args) {\n super(...args);\n this.fadeAnim = new Animated.Value(0.001);\n }\n\n open() {\n return new Promise(resolve => {\n Animated.timing(this.fadeAnim, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.fadeAnim, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const { onPress, style } = this.props;\n return (\n \n \n \n \n \n );\n }\n\n}\n\nBackdrop.propTypes = {\n onPress: PropTypes.func.isRequired,\n};\n\nconst styles = StyleSheet.create({\n fullscreen: {\n opacity: 0,\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n});\n\nexport default Backdrop;\n","\nexport const CFG = {\n debug: false,\n}\n/**\n * Debug logger depending on `Menu.debug` static porperty.\n */\nexport const debug = (...args) => {\n CFG.debug && console.log('react-native-popup-menu', ...args);\n};\n","import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport Backdrop from './Backdrop';\nimport { debug } from './logger.js';\n\nexport default class MenuPlaceholder extends Component {\n constructor(props) {\n super(props)\n this.state = {};\n }\n\n shouldComponentUpdate() {\n // don't terminate closing animation\n return !this.props.ctx._isMenuClosing;\n }\n\n render() {\n const { ctx, backdropStyles } = this.props;\n const shouldRenderMenu = ctx.isMenuOpen() && ctx._isInitialized();\n debug('MenuPlaceholder should render', shouldRenderMenu);\n if (!shouldRenderMenu) {\n return null;\n }\n return (\n \n \n {\n ctx._makeOptions()\n }\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden',\n },\n});\n","import React from 'react';\nimport { View, StyleSheet } from 'react-native';\n\nexport const computePosition = ({ windowLayout }) => ({\n top: windowLayout.height,\n left: windowLayout.width,\n});\n\n\nconst MenuOutside = props => {\n const { style, children, layouts, ...other } = props;\n const position = computePosition(layouts);\n return (\n \n {children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n options: {\n position: 'absolute',\n },\n});\n\nexport default MenuOutside;\n","import React from 'react';\nimport { I18nManager, Animated, Easing, StyleSheet, PixelRatio } from 'react-native';\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from '../constants';\n\nconst axisPosition = (oDim, wDim, tPos, tDim) => {\n // if options are bigger than window dimension, then render at 0\n if (oDim > wDim) {\n return 0;\n }\n // render at trigger position if possible\n if (tPos + oDim <= wDim) {\n return tPos;\n }\n // aligned to the trigger from the bottom (right)\n if (tPos + tDim - oDim >= 0) {\n return tPos + tDim - oDim;\n }\n // compute center position\n let pos = Math.round(tPos + (tDim / 2) - (oDim / 2));\n // check top boundary\n if (pos < 0) {\n return 0;\n }\n // check bottom boundary\n if (pos + oDim > wDim) {\n return wDim - oDim;\n }\n // if everything ok, render in center position\n return pos;\n};\n\nfunction fit(pos, len, minPos, maxPos) {\n if (pos === undefined) {\n return undefined;\n }\n if (pos + len > maxPos) {\n pos = maxPos - len;\n }\n if (pos < minPos) {\n pos = minPos;\n }\n return pos;\n}\n// fits options (position) into safeArea\nexport const fitPositionIntoSafeArea = (position, layouts) => {\n const { windowLayout, safeAreaLayout, optionsLayout } = layouts;\n if (!safeAreaLayout) {\n return position;\n }\n const { x: saX, y: saY, height: saHeight, width: saWidth } = safeAreaLayout;\n const { height: oHeight, width: oWidth } = optionsLayout;\n const { width: wWidth } = windowLayout;\n let { top, left, right } = position;\n top = fit(top, oHeight, saY, saY + saHeight);\n left = fit(left, oWidth, saX, saX + saWidth)\n right = fit(right, oWidth, wWidth - saX - saWidth, saX)\n return { top, left, right };\n}\n\nexport const computePosition = (layouts, isRTL) => {\n const { windowLayout, triggerLayout, optionsLayout } = layouts;\n const { x: wX, y: wY, width: wWidth, height: wHeight } = windowLayout;\n const { x: tX, y: tY, height: tHeight, width: tWidth } = triggerLayout;\n const { height: oHeight, width: oWidth } = optionsLayout;\n const top = axisPosition(oHeight, wHeight, tY - wY, tHeight);\n const left = axisPosition(oWidth, wWidth, tX - wX, tWidth);\n const start = isRTL ? 'right' : 'left';\n const position = { top, [start]: left };\n return fitPositionIntoSafeArea(position, layouts);\n};\n\nexport default class ContextMenu extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n scaleAnim: new Animated.Value(0.1),\n };\n }\n\n componentDidMount() {\n Animated.timing(this.state.scaleAnim, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start();\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.state.scaleAnim, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: Easing.in(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const { style, children, layouts, ...other } = this.props;\n const animation = {\n transform: [ { scale: this.state.scaleAnim } ],\n opacity: this.state.scaleAnim,\n };\n const position = computePosition(layouts, I18nManager.isRTL);\n return (\n \n {children}\n \n );\n }\n\n}\n\n// public exports\nContextMenu.computePosition = computePosition;\nContextMenu.fitPositionIntoSafeArea = fitPositionIntoSafeArea;\n\nexport const styles = StyleSheet.create({\n options: {\n position: 'absolute',\n borderRadius: 2,\n backgroundColor: 'white',\n width: PixelRatio.roundToNearestPixel(200),\n\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: { width: 3, height: 3 },\n shadowRadius: 4,\n\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5,\n },\n});\n","import ContextMenu from './renderers/ContextMenu';\n\nexport const menuConfig = {\n defRenderer: ContextMenu,\n defRendererProps: {},\n}\n","import React, { Component, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, BackHandler, StyleSheet } from 'react-native';\n\nimport { withContext } from './with-context';\nimport makeMenuRegistry from './menuRegistry';\nimport MenuPlaceholder from './MenuPlaceholder';\nimport { measure, isClassComponent } from './helpers';\nimport { debug } from './logger.js';\nimport MenuOutside from './renderers/MenuOutside';\nimport { menuConfig } from './config.js';\n\nconst defaultOptionsContainerRenderer = options => options;\nconst layoutsEqual = (a, b) => (\n a === b || (a && b && a.width === b.width && a.height === b.height)\n);\n\nif (!React.forwardRef) {\n throw new Error('This version of popup-menu requires RN 0.55+. Check our compatibility table.')\n}\nexport const PopupMenuContext = createContext({})\nexport const withCtx = withContext(PopupMenuContext, \"ctx\");\n\n// count of MenuProvider instances\nlet instanceCount = 0;\n\nexport default class MenuProvider extends Component {\n\n constructor(props) {\n super(props);\n this._menuRegistry = makeMenuRegistry();\n this._isMenuClosing = false;\n this._backHandlerSubscription = null;\n const menuActions = {\n openMenu: name => this.openMenu(name),\n closeMenu: () => this.closeMenu(),\n toggleMenu: name => this.toggleMenu(name),\n isMenuOpen: () => this.isMenuOpen(),\n _getOpenedMenu: () => this._getOpenedMenu(),\n _notify: force => this._notify(force),\n };\n this.menuCtx = { menuRegistry: this._menuRegistry, menuActions }\n }\n\n _handleBackButton = () => {\n const { backHandler } = this.props;\n debug('_handleBackButton called', backHandler);\n\n // Default handler if true is passed\n if (backHandler === true) {\n if (this.isMenuOpen()) {\n this.closeMenu();\n return true;\n }\n }\n\n // Custom handler called with MenuProvider instance id function is passed\n if (typeof backHandler === 'function') {\n return backHandler(this);\n }\n\n return false;\n }\n\n componentDidMount() {\n const { customStyles = {}, skipInstanceCheck } = this.props;\n if (customStyles.menuContextWrapper) {\n console.warn('menuContextWrapper custom style is deprecated and it might be removed in future releases, use menuProviderWrapper instead.');\n }\n if (!skipInstanceCheck) {\n instanceCount++;\n }\n if (instanceCount > 1) {\n console.warn('In most cases you should not have more MenuProviders in your app (see API documentation). In other cases use skipInstanceCheck prop.');\n }\n }\n\n componentWillUnmount() {\n debug('unmounting menu provider')\n if (this._backHandlerSubscription != null) {\n this._backHandlerSubscription.remove();\n this._backHandlerSubscription = null;\n }\n const { skipInstanceCheck } = this.props;\n if (!skipInstanceCheck) {\n instanceCount--;\n }\n }\n\n isMenuOpen() {\n return !!this._getOpenedMenu();\n }\n\n openMenu(name) {\n const menu = this._menuRegistry.getMenu(name);\n if (!menu) {\n console.warn(`menu with name ${name} does not exist`);\n return Promise.resolve();\n }\n debug('open menu', name);\n if (this._backHandlerSubscription == null) {\n // delay menu registration until the menu is really opened (and thus this back handler will be called \"sooner\")\n // too soon registration can cause another back handlers (e.g. react navigation) to be called instead of our back handler\n this._backHandlerSubscription = BackHandler.addEventListener('hardwareBackPress', this._handleBackButton);\n }\n menu.instance._setOpened(true);\n return this._notify();\n }\n\n closeMenu() { // has no effect on controlled menus\n debug('close menu');\n this._menuRegistry.getAll()\n .filter(menu => menu.instance._getOpened())\n .forEach(menu => menu.instance._setOpened(false));\n return this._notify();\n }\n\n _invalidateTriggerLayouts() {\n // invalidate layouts for closed menus,\n // both controlled and uncontrolled menus\n this._menuRegistry.getAll()\n .filter(menu => !menu.instance.isOpen())\n .forEach(menu => {\n this._menuRegistry.updateLayoutInfo(menu.name, { triggerLayout: undefined });\n });\n }\n\n _beforeClose(menu) {\n debug('before close', menu.name);\n const hideMenu = (this.optionsRef\n && this.optionsRef.close\n && this.optionsRef.close()) || Promise.resolve();\n const hideBackdrop = this.backdropRef && this.backdropRef.close();\n this._invalidateTriggerLayouts();\n this._isMenuClosing = true;\n return Promise.all([hideMenu, hideBackdrop])\n .then(() => {\n this._isMenuClosing = false;\n })\n .catch(err => {\n this._isMenuClosing = false;\n throw err;\n })\n }\n\n toggleMenu(name) {\n const menu = this._menuRegistry.getMenu(name);\n if (!menu) {\n console.warn(`menu with name ${name} does not exist`);\n return Promise.resolve();\n }\n debug('toggle menu', name);\n if (menu.instance._getOpened()) {\n return this.closeMenu();\n } else {\n return this.openMenu(name);\n }\n }\n\n _notify(forceUpdate) {\n const NULL = {};\n const prev = this.openedMenu || NULL;\n const next = this._menuRegistry.getAll().find(menu => menu.instance.isOpen()) || NULL;\n // set newly opened menu before any callbacks are called\n this.openedMenu = next === NULL ? undefined : next;\n if (!forceUpdate && !this._isRenderNeeded(prev, next)) {\n return Promise.resolve();\n }\n debug('notify: next menu:', next.name, ' prev menu:', prev.name);\n let afterSetState = undefined;\n let beforeSetState = () => Promise.resolve();\n if (prev.name !== next.name) {\n if (prev !== NULL && !prev.instance.isOpen()) {\n beforeSetState = () => this._beforeClose(prev)\n .then(() => prev.instance.props.onClose && prev.instance.props.onClose());\n }\n if (next !== NULL) {\n next.instance.props.onOpen && next.instance.props.onOpen();\n afterSetState = () => this._initOpen(next);\n }\n }\n return beforeSetState().then(() => {\n if (!this._placeholderRef) {\n debug('setState ignored - maybe the context was unmounted')\n return\n }\n this._placeholderRef.setState({ openedMenuName: this.openedMenu && this.openedMenu.name }, afterSetState);\n debug('notify ended');\n });\n }\n\n /**\n Compares states of opened menu to determine if rerender is needed.\n */\n _isRenderNeeded(prev, next) {\n if (prev === next) {\n debug('_isRenderNeeded: skipping - no change');\n return false;\n }\n if (prev.name !== next.name) {\n return true;\n }\n const { triggerLayout, optionsLayout } = next;\n if (!triggerLayout || !optionsLayout) {\n debug('_isRenderNeeded: skipping - no trigger or options layout');\n return false;\n }\n return true;\n }\n\n render() {\n const { style, customStyles = {} } = this.props;\n const SafeAreaComponent = this.props.SafeAreaComponent || View;\n const safeAreaStyles = this._computeSafeAreaStyles();\n debug('render menu', this.isMenuOpen(), this._ownLayout);\n return (\n \n \n \n { this.props.children }\n \n \n \n \n \n \n \n );\n }\n\n onBackdropRef = r => {\n this.backdropRef = r;\n }\n\n onOptionsRef = r => {\n this.optionsRef = r;\n }\n\n _onPlaceholderRef = r => this._placeholderRef = r;\n\n _getOpenedMenu() {\n const name = this._placeholderRef && this._placeholderRef.state.openedMenuName;\n const menu = name ? this._menuRegistry.getMenu(name) : undefined;\n debug('_getOpenedMenu', name, !!menu)\n return menu\n }\n\n _onBackdropPress = () => {\n debug('on backdrop press');\n const menu = this._getOpenedMenu();\n if (menu) {\n menu.instance.props.onBackdropPress && menu.instance.props.onBackdropPress();\n }\n this.closeMenu();\n }\n\n _isInitialized() {\n return !!this._ownLayout;\n }\n\n _initOpen(menu) {\n debug('opening', menu.name);\n const trigger = menu.instance._getTrigger();\n measure(trigger).then(triggerLayout => {\n debug('got trigger measurements', triggerLayout);\n this._menuRegistry.updateLayoutInfo(menu.name, { triggerLayout });\n this.backdropRef && this.backdropRef.open()\n this._notify();\n });\n }\n\n _onOptionsLayout(e, name, isOutside) {\n const optionsLayout = e.nativeEvent.layout;\n optionsLayout.isOutside = isOutside;\n debug('got options layout', optionsLayout);\n this._menuRegistry.updateLayoutInfo(name, { optionsLayout });\n this._notify();\n }\n\n _makeOptions() {\n const { instance, triggerLayout, optionsLayout } = this._getOpenedMenu();\n const options = instance._getOptions();\n const { renderer = menuConfig.defRenderer, rendererProps = menuConfig.defRendererProps } = instance.props;\n const windowLayout = this._ownLayout;\n const safeAreaLayout = this._safeAreaLayout;\n const { optionsContainerStyle, renderOptionsContainer, customStyles = {} } = options.props;\n const optionsRenderer = renderOptionsContainer || defaultOptionsContainerRenderer;\n const isOutside = !triggerLayout || !optionsLayout;\n const onLayout = e => this._onOptionsLayout(e, instance.getName(), isOutside);\n const style = [optionsContainerStyle, customStyles.optionsContainer];\n const layouts = { windowLayout, triggerLayout, optionsLayout, safeAreaLayout };\n const props = { ...rendererProps, style, onLayout, layouts };\n const optionsType = isOutside ? MenuOutside : renderer;\n if (isClassComponent(optionsType)) {\n props.ref = this.onOptionsRef;\n }\n return React.createElement(optionsType, props, optionsRenderer(options));\n }\n\n _onLayout = ({ nativeEvent: { layout } }) => {\n if (layoutsEqual(this._ownLayout, layout)) {\n return;\n }\n this._ownLayout = layout;\n debug('context layout has changed', this._ownLayout);\n if (!this.isMenuOpen()) {\n return;\n }\n const { instance } = this._getOpenedMenu();\n const trigger = instance._getTrigger();\n measure(trigger).then(triggerLayout => {\n debug('got trigger measurements after context layout change', triggerLayout);\n this._menuRegistry.updateLayoutInfo(instance.getName(), { triggerLayout });\n // force update as own layout has changed\n this._notify(true);\n });\n }\n\n _onSafeAreaLayout = ({ nativeEvent: { layout } }) => {\n if (layoutsEqual(this._safeAreaLayout, layout)) {\n return;\n }\n this._safeAreaLayout = layout;\n debug('safeArea layout has changed', this._safeAreaLayout);\n if (!this.isMenuOpen()) {\n return;\n }\n this._notify(true);\n }\n\n _computeSafeAreaStyles() {\n const { customStyles = {} } = this.props;\n const { safeArea: customSafeAreaStyle } = customStyles;\n\n if (customSafeAreaStyle) {\n return [styles.safeArea, customSafeAreaStyle];\n } else {\n const defaultSafeAreaStyles = {\n paddingTop: 30,\n paddingBottom: 30,\n };\n return [styles.safeArea, defaultSafeAreaStyles];\n }\n }\n\n}\n\nMenuProvider.propTypes = {\n customStyles: PropTypes.object,\n backHandler: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n skipInstanceCheck: PropTypes.bool,\n SafeAreaComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n}\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1,\n },\n safeArea: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { View } from 'react-native';\nimport { withCtx } from './MenuProvider';\n\nexport class MenuOptions extends React.Component {\n\n updateCustomStyles(_props) {\n const { customStyles = {} } = _props\n const menu = this.props.ctx.menuActions._getOpenedMenu()\n // FIXME react 16.3 workaround for ControlledExample!\n if (!menu) return\n const menuName = menu.instance.getName()\n this.props.ctx.menuRegistry.setOptionsCustomStyles(menuName, customStyles)\n }\n\n componentDidMount() {\n this.updateCustomStyles(this.props)\n }\n\n componentDidUpdate() {\n this.updateCustomStyles(this.props)\n }\n\n render() {\n const { customStyles = {}, style, children } = this.props\n return (\n \n {children}\n \n )\n }\n}\n\nMenuOptions.propTypes = {\n customStyles: PropTypes.object,\n renderOptionsContainer: PropTypes.func,\n optionsContainerStyle: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.array,\n ]),\n};\n\nexport default withCtx(MenuOptions);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, Text } from 'react-native';\nimport { debug } from './logger.js';\nimport { makeTouchable } from './helpers';\nimport { withCtx } from './MenuProvider';\n\nexport class MenuTrigger extends Component {\n\n _onPress() {\n debug('trigger onPress');\n this.props.onPress && this.props.onPress();\n this.props.ctx.menuActions.openMenu(this.props.menuName);\n }\n\n render() {\n const { disabled, onRef, text, children, style, customStyles = {}, menuName,\n triggerOnLongPress, onAlternativeAction, testID, accessible, accessibilityRole, accessibilityLabel, ...other } = this.props;\n\n const onPress = () => !disabled && this._onPress();\n const { Touchable, defaultTouchableProps } = makeTouchable(customStyles.TriggerTouchableComponent);\n return (\n \n \n \n {text ? {text} : children}\n \n \n \n );\n }\n\n}\n\nMenuTrigger.propTypes = {\n disabled: PropTypes.bool,\n text: PropTypes.string,\n onPress: PropTypes.func,\n onAlternativeAction: PropTypes.func,\n customStyles: PropTypes.object,\n triggerOnLongPress: PropTypes.bool,\n testID: PropTypes.string,\n accessible: PropTypes.bool,\n accessibilityRole: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n};\n\nexport default withCtx(MenuTrigger)\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View } from 'react-native';\nimport MenuOptions from './MenuOptions';\nimport MenuTrigger from './MenuTrigger';\nimport { makeName } from './helpers';\nimport { debug, CFG } from './logger';\nimport { withCtx } from './MenuProvider';\nimport { menuConfig } from './config';\n\nconst isRegularComponent = c => c.type !== MenuOptions && c.type !== MenuTrigger;\nconst isTrigger = c => c.type === MenuTrigger;\nconst isMenuOptions = c => c.type === MenuOptions;\n\nexport class Menu extends Component {\n\n constructor(props) {\n super(props);\n this._name = this.props.name || makeName();\n this._forceClose = false;\n const { ctx } = props;\n if(!(ctx && ctx.menuActions)) {\n throw new Error(\"Menu component must be ancestor of MenuProvider\");\n }\n }\n\n componentDidMount() {\n if (!this._validateChildren()) {\n return;\n }\n debug('subscribing menu', this._name);\n this.props.ctx.menuRegistry.subscribe(this);\n this.props.ctx.menuActions._notify();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n console.warn('Menu name cannot be changed');\n }\n // force update if menu is opened as its content might have changed\n const force = this.isOpen();\n debug('component did update', this._name, force);\n this.props.ctx.menuActions._notify(force);\n }\n\n componentWillUnmount() {\n debug('unsubscribing menu', this._name);\n if (this.isOpen()) {\n this._forceClose = true;\n this.props.ctx.menuActions._notify();\n }\n this.props.ctx.menuRegistry.unsubscribe(this);\n }\n\n open() {\n return this.props.ctx.menuActions.openMenu(this._name);\n }\n\n close() {\n return this.props.ctx.menuActions.closeMenu();\n }\n\n isOpen() {\n if (this._forceClose) {\n return false;\n }\n return this.props.hasOwnProperty('opened') ? this.props.opened : this._opened;\n }\n\n getName() {\n return this._name;\n }\n\n render() {\n const { style } = this.props;\n const children = this._reduceChildren();\n return (\n \n {children}\n \n );\n }\n\n _reduceChildren() {\n return React.Children.toArray(this.props.children).reduce((r, child) => {\n if (isTrigger(child)) {\n r.push(React.cloneElement(child, {\n key: null,\n menuName: this._name,\n onRef: (t => this._trigger = t),\n }));\n }\n if (isRegularComponent(child)) {\n r.push(child);\n }\n return r;\n }, []);\n }\n\n _getTrigger() {\n return this._trigger;\n }\n\n _getOptions() {\n return React.Children.toArray(this.props.children).find(isMenuOptions);\n }\n\n _getOpened() {\n return this._opened;\n }\n\n _setOpened(opened) {\n this._opened = opened;\n }\n\n _validateChildren() {\n const children = React.Children.toArray(this.props.children);\n const options = children.find(isMenuOptions);\n if (!options) {\n console.warn('Menu has to contain MenuOptions component');\n }\n const trigger = children.find(isTrigger);\n if (!trigger) {\n console.warn('Menu has to contain MenuTrigger component');\n }\n return options && trigger;\n }\n\n}\n\nMenu.propTypes = {\n name: PropTypes.string,\n renderer: PropTypes.func,\n rendererProps: PropTypes.object,\n onSelect: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n opened: PropTypes.bool,\n onBackdropPress: PropTypes.func,\n};\n\n\nconst MenuExternal = withCtx(Menu);\nObject.defineProperty(MenuExternal, 'debug', \n { \n get: function() { return CFG.debug }, \n set: function(val) { CFG.debug = val }, \n });\nMenuExternal.setDefaultRenderer = (renderer) => {\n menuConfig.defRenderer = renderer;\n}\nMenuExternal.setDefaultRendererProps = (rendererProps) => {\n menuConfig.defRendererProps = rendererProps;\n}\nexport default MenuExternal;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { View, StyleSheet, Text } from 'react-native';\nimport { debug } from './logger';\nimport { makeTouchable } from './helpers';\nimport { withCtx } from './MenuProvider';\n\nconst noop = () => {};\n\nexport class MenuOption extends Component {\n\n _onSelect() {\n const { value } = this.props;\n const onSelect = this.props.onSelect || this._getMenusOnSelect()\n const shouldClose = onSelect(value) !== false;\n debug('select option', value, shouldClose);\n if (shouldClose) {\n this.props.ctx.menuActions.closeMenu();\n }\n }\n\n _getMenusOnSelect() {\n const menu = this.props.ctx.menuActions._getOpenedMenu();\n return menu.instance.props.onSelect || noop;\n }\n\n _getCustomStyles() {\n // FIXME react 16.3 workaround for ControlledExample!\n const menu = this.props.ctx.menuActions._getOpenedMenu() || {}\n const { optionsCustomStyles } = menu;\n return {\n ...optionsCustomStyles,\n ...this.props.customStyles,\n }\n }\n\n render() {\n const { text, disabled, disableTouchable, children, style, testID, ...accessibilityProps } = this.props;\n const customStyles = this._getCustomStyles()\n if (text && React.Children.count(children) > 0) {\n console.warn(\"MenuOption: Please don't use text property together with explicit children. Children are ignored.\");\n }\n if (disabled) {\n const disabledStyles = [defaultStyles.optionTextDisabled, customStyles.optionText];\n return (\n \n {text ? {text} : children}\n \n );\n }\n const rendered = (\n \n {text ? {text} : children}\n \n );\n if (disableTouchable) {\n return rendered;\n }\n else {\n const { Touchable, defaultTouchableProps } = makeTouchable(customStyles.OptionTouchableComponent);\n return (\n this._onSelect()}\n {...defaultTouchableProps}\n {...accessibilityProps}\n {...customStyles.optionTouchable}\n >\n {rendered}\n \n );\n }\n }\n}\n\nMenuOption.propTypes = {\n disabled: PropTypes.bool,\n disableTouchable: PropTypes.bool,\n onSelect: PropTypes.func,\n text: PropTypes.string,\n value: PropTypes.any,\n customStyles: PropTypes.object,\n testID: PropTypes.string,\n accessible: PropTypes.bool,\n accessibilityRole: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n};\n\nconst defaultStyles = StyleSheet.create({\n option: {\n padding: 5,\n backgroundColor: 'transparent',\n },\n optionTextDisabled: {\n color: '#ccc',\n },\n});\n\nexport default withCtx(MenuOption);\n","import React from 'react';\nimport { I18nManager, View } from 'react-native';\n\nimport { computePosition, styles } from './ContextMenu';\n\n/**\nSimplified version of ContextMenu without animation.\n*/\nexport default class NotAnimatedContextMenu extends React.Component {\n\n render() {\n const { style, children, layouts, ...other } = this.props;\n const position = computePosition(layouts, I18nManager.isRTL);\n return (\n \n {children}\n \n );\n }\n\n}\n","import React from 'react';\nimport { Animated, StyleSheet, Easing } from 'react-native';\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from '../constants';\n\nexport const computePosition = (layouts) => {\n const { windowLayout, optionsLayout } = layouts\n const { height: wHeight } = windowLayout;\n const { height: oHeight } = optionsLayout;\n const top = wHeight - oHeight;\n const left = 0, right = 0;\n const position = { top, left, right };\n // TODO what is the best way to handle safeArea?\n // most likely some extra paddings inside SlideInMenu \n return position;\n}\n\nexport default class SlideInMenu extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n slide: new Animated.Value(0),\n };\n }\n\n componentDidMount() {\n Animated.timing(this.state.slide, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start();\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.state.slide, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: Easing.in(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const { style, children, layouts, ...other } = this.props;\n const { height: oHeight } = layouts.optionsLayout;\n const animation = {\n transform: [{\n translateY: this.state.slide.interpolate({\n inputRange: [0, 1],\n outputRange: [oHeight, 0],\n }),\n }],\n };\n const position = computePosition(layouts);\n return (\n \n {children}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n options: {\n position: 'absolute',\n backgroundColor: 'white',\n\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: { width: 3, height: 3 },\n shadowRadius: 4,\n\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5,\n },\n});\n","import { I18nManager, Animated, Easing, StyleSheet, View } from 'react-native';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { OPEN_ANIM_DURATION, CLOSE_ANIM_DURATION, USE_NATIVE_DRIVER } from '../constants.js';\n\nconst popoverPadding = 7;\nconst anchorSize = 15;\nconst anchorHyp = Math.sqrt(anchorSize*anchorSize + anchorSize*anchorSize);\nconst anchorOffset = (anchorHyp + anchorSize) / 2 - popoverPadding;\n\n// left/top placement\nfunction axisNegativeSideProperties({ oDim, tPos }) {\n return { position: tPos - oDim };\n}\n\n// right/bottom placement\nfunction axisPositiveSideProperties({ tPos, tDim }) {\n // substract also anchor placeholder from the beginning\n return { position: tPos + tDim - anchorSize };\n}\n\n// computes offsets (off screen overlap) of popover when trying to align it to the center\nfunction centeringProperties({ oDim, wDim, tPos, tDim }) {\n const center = Math.round(tPos + (tDim / 2));\n const leftOffset = (oDim / 2) - center;\n const rightOffset = center + (oDim / 2) - wDim;\n return { center, leftOffset, rightOffset };\n}\n\n/**\n * Computes position and offset of popover when trying to align it to the triger center.\n * It consideres window boundaries.\n * Returns object with keys:\n * - position: Absolute position - top/left,\n * - offset: window overlapping size if window boundaries were not considered\n */\nfunction axisCenteredPositionProperties(options) {\n const { oDim, wDim } = options;\n const { center, leftOffset, rightOffset } = centeringProperties(options);\n if (leftOffset > 0 || rightOffset > 0) {\n // right/bottom position is better\n if (leftOffset < rightOffset) {\n return { offset: rightOffset, position: wDim - oDim };\n }\n // left/top position is better\n if (rightOffset < leftOffset) {\n return { offset: -leftOffset, position: 0 };\n }\n }\n // centered position\n return { offset: 0, position: center - oDim / 2 };\n}\n\n/* Evaluate centering placement */\nfunction getCenteringPrice(options) {\n const { leftOffset, rightOffset } = centeringProperties(options);\n // TODO: currently shifted popovers have higher price,\n // popover shift could be taken into account with the same price\n return Math.max(0, leftOffset) + Math.max(0, rightOffset);\n}\n\n/* Evaluate top placement */\nfunction getTopPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(vOptions)\n const sideOffset = Math.max(0, hOptions.oDim - hOptions.tPos)\n return centerOffset + sideOffset\n}\n\n/* Evaluate bottom placement */\nfunction getBottomPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(vOptions)\n const sideOffset = Math.max(0, hOptions.tPos + hOptions.tDim + hOptions.oDim - hOptions.wDim)\n return centerOffset + sideOffset\n}\n\n/* Evaluate left placement */\nfunction getLeftPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(hOptions)\n const sideOffset = Math.max(0, vOptions.oDim - vOptions.tPos)\n return centerOffset + sideOffset\n}\n\n/* Evaluate right placement */\nfunction getRightPrice(hOptions, vOptions) {\n const centerOffset = getCenteringPrice(hOptions)\n const sideOffset = Math.max(0, vOptions.tPos + vOptions.tDim + vOptions.oDim - vOptions.wDim)\n return centerOffset + sideOffset\n}\n\nfunction getStartPosKey(isRTL) {\n return isRTL ? 'right' : 'left';\n}\n\nfunction topProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(vOptions);\n const side = axisNegativeSideProperties(hOptions);\n return {\n position: {\n top: side.position,\n [getStartPosKey(isRTL)]: centered.position,\n },\n offset: centered.offset,\n placement: 'top',\n };\n}\n\nfunction bottomProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(vOptions);\n const side = axisPositiveSideProperties(hOptions);\n return {\n position: {\n top: side.position,\n [getStartPosKey(isRTL)]: centered.position,\n },\n offset: centered.offset,\n placement: 'bottom',\n };\n}\n\nfunction rightProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(hOptions);\n const side = axisPositiveSideProperties(vOptions);\n return {\n position: {\n top: centered.position,\n [getStartPosKey(isRTL)]: side.position,\n },\n offset: centered.offset,\n placement: 'right',\n };\n}\n\nfunction leftProperties(hOptions, vOptions, isRTL) {\n const centered = axisCenteredPositionProperties(hOptions);\n const side = axisNegativeSideProperties(vOptions);\n return {\n position: {\n top: centered.position,\n [getStartPosKey(isRTL)]: side.position,\n },\n offset: centered.offset,\n placement: 'left',\n };\n}\n\n// maps placement to function which computes correct properties\nconst propertiesByPlacement = {\n top: topProperties,\n bottom: bottomProperties,\n left: leftProperties,\n right: rightProperties,\n};\n\n/**\n * Computes properties needed for drawing popover.\n * Returns object with keys:\n * - position: { top: Number, left: Number } - popover absolute position\n * - placement: top|left|top|bottom - position to the trigger\n * - offset: value by which must be anchor shifted\n */\nexport function computeProperties (\n { windowLayout, triggerLayout, optionsLayout },\n placement,\n preferredPlacement,\n isRTL,\n) {\n const { x: wX, y: wY, width: wWidth, height: wHeight } = windowLayout;\n const { x: tX, y: tY, height: tHeight, width: tWidth } = triggerLayout;\n const { height: oHeight, width: oWidth } = optionsLayout;\n const hOptions = {\n oDim: oHeight + popoverPadding * 2,\n wDim: wHeight,\n tPos: tY - wY,\n tDim: tHeight,\n };\n const vOptions = {\n oDim: oWidth + popoverPadding * 2,\n wDim: wWidth,\n tPos: tX - wX,\n tDim: tWidth,\n };\n if (placement !== 'auto' && propertiesByPlacement[placement]) {\n return propertiesByPlacement[placement](hOptions, vOptions, isRTL)\n }\n\n const prices = {\n top: getTopPrice(hOptions, vOptions),\n bottom: getBottomPrice(hOptions, vOptions),\n right: getRightPrice(hOptions, vOptions),\n left: getLeftPrice(hOptions, vOptions),\n };\n const bestPrice = Object.values(prices).sort((a, b) => a - b)[0]\n const bestPlacement = prices[preferredPlacement] === bestPrice\n ? preferredPlacement\n : Object.keys(prices).find(pl => prices[pl] === bestPrice)\n\n return propertiesByPlacement[bestPlacement](hOptions, vOptions, isRTL)\n}\n\nexport default class Popover extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n scaleAnim: new Animated.Value(0.1),\n };\n }\n\n componentDidMount() {\n Animated.timing(this.state.scaleAnim, {\n duration: this.props.openAnimationDuration !== undefined ? this.props.openAnimationDuration : OPEN_ANIM_DURATION,\n toValue: 1,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start();\n }\n\n close() {\n return new Promise(resolve => {\n Animated.timing(this.state.scaleAnim, {\n duration: this.props.closeAnimationDuration !== undefined ? this.props.closeAnimationDuration : CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: Easing.in(Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER,\n }).start(resolve);\n });\n }\n\n render() {\n const {\n style,\n children,\n layouts,\n anchorStyle,\n preferredPlacement = 'top',\n openAnimationDuration,\n closeAnimationDuration,\n placement: userPlacement = 'auto',\n ...other\n } = this.props;\n const isRTL = I18nManager.isRTL;\n const animation = {\n transform: [ { scale: this.state.scaleAnim } ],\n opacity: this.state.scaleAnim,\n };\n const { position, placement, offset } = computeProperties(\n layouts,\n userPlacement,\n preferredPlacement,\n isRTL,\n );\n return (\n \n \n \n {children}\n \n \n );\n }\n\n}\n\nPopover.propTypes = {\n anchorStyle: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.array,\n ]),\n placement: PropTypes.oneOf(['auto', 'top', 'right', 'bottom', 'left']),\n preferredPlacement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n openAnimationDuration: PropTypes.number,\n closeAnimationDuration: PropTypes.number,\n};\n\nconst getContainerStyle = ({ placement, isRTL }) => ({\n left: {\n flexDirection: isRTL ? 'row' : 'row-reverse',\n },\n right: {\n flexDirection: isRTL ? 'row-reverse' : 'row',\n },\n top: {\n flexDirection: 'column-reverse',\n },\n bottom: {\n flexDirection: 'column',\n },\n})[placement]\n\nconst dynamicAnchorStyle = ({ offset, placement, isRTL }) => {\n const start = getStartPosKey(isRTL);\n switch (placement) {\n case 'right':\n return {\n top: offset,\n transform: [\n { translateX: anchorOffset },\n { rotate: '45deg' },\n ],\n };\n case 'left':\n return {\n top: offset,\n transform: [\n { translateX: -anchorOffset },\n { rotate: '45deg' },\n ],\n };\n case 'top':\n return {\n [start]: offset,\n transform: [\n { translateY: -anchorOffset },\n { rotate: '45deg' },\n ],\n };\n case 'bottom':\n return {\n [start]: offset,\n transform: [\n { translateY: anchorOffset },\n { rotate: '45deg' },\n ],\n };\n }\n}\n\nexport const styles = StyleSheet.create({\n animated: {\n padding: popoverPadding,\n backgroundColor: 'transparent',\n position: 'absolute',\n alignItems: 'center',\n },\n options: {\n borderRadius: 2,\n minWidth: anchorHyp,\n minHeight: anchorHyp,\n backgroundColor: 'white',\n\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: { width: 3, height: 3 },\n shadowRadius: 4,\n\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5,\n },\n anchor: {\n width: anchorSize,\n height: anchorSize,\n backgroundColor: 'white',\n elevation: 5,\n },\n});\n","import './polyfills';\nimport { deprecatedComponent } from './helpers'\n\nimport Menu from './Menu';\nimport MenuProvider, { withCtx } from './MenuProvider';\nimport MenuOption from './MenuOption';\nimport MenuOptions from './MenuOptions';\nimport MenuTrigger from './MenuTrigger';\n\nimport ContextMenu from './renderers/ContextMenu';\nimport NotAnimatedContextMenu from './renderers/NotAnimatedContextMenu';\nimport SlideInMenu from './renderers/SlideInMenu';\nimport Popover from './renderers/Popover';\nconst renderers = { ContextMenu, SlideInMenu, NotAnimatedContextMenu, Popover };\n\nconst MenuContext = deprecatedComponent(\n 'MenuContext is deprecated and it might be removed in future releases, use MenuProvider instead.',\n ['openMenu', 'toggleMenu', 'closeMenu', 'isMenuOpen'],\n)(MenuProvider);\n\nexport {\n Menu as default,\n Menu,\n MenuProvider,\n MenuContext,\n MenuOption,\n MenuOptions,\n MenuTrigger,\n renderers,\n withCtx as withMenuContext,\n};\n"],"names":["Platform","select","obj","OS","measure","ref","Promise","resolve","x","y","width","height","pageX","pageY","makeName","nextID","makeTouchable","TouchableComponent","Touchable","android","TouchableNativeFeedback","ios","TouchableHighlight","default","defaultTouchableProps","underlayColor","iterator2array","it","arr","next","done","push","value","isClassComponent","component","prototype","render","deprecatedComponent","message","methods","deprecatedComponentHOC","Component","args","forEach","name","React","props","onRef","console","warn","ReactPropTypesSecret","require$$0","printWarning","assign","checkPropTypes","withContext","Context","propName","wrap","EnhanceContext","forwardedRef","rest","custom","displayName","consumerName","Consumer","enhanceForwardRef","FC","forwardRef","makeMenuRegistry","menus","Map","subscribe","instance","getName","get","set","unsubscribe","delete","updateLayoutInfo","layouts","has","menu","Object","hasOwnProperty","triggerLayout","optionsLayout","setOptionsCustomStyles","optionsCustomStyles","getMenu","getAll","values","OPEN_ANIM_DURATION","CLOSE_ANIM_DURATION","USE_NATIVE_DRIVER","Backdrop","fadeAnim","Animated","Value","timing","duration","toValue","useNativeDriver","start","onPress","style","TouchableWithoutFeedback","styles","fullscreen","opacity","View","propTypes","PropTypes","func","isRequired","StyleSheet","create","position","top","left","bottom","right","CFG","debug","log","MenuPlaceholder","state","ctx","_isMenuClosing","backdropStyles","shouldRenderMenu","isMenuOpen","_isInitialized","placeholder","_onBackdropPress","onBackdropRef","_makeOptions","overflow","computePosition","windowLayout","MenuOutside","children","other","options","axisPosition","oDim","wDim","tPos","tDim","pos","Math","round","fit","len","minPos","maxPos","undefined","fitPositionIntoSafeArea","safeAreaLayout","saX","saY","saHeight","saWidth","oHeight","oWidth","wWidth","isRTL","wX","wY","wHeight","tX","tY","tHeight","tWidth","ContextMenu","scaleAnim","easing","Easing","out","cubic","in","animation","transform","scale","I18nManager","borderRadius","backgroundColor","PixelRatio","roundToNearestPixel","shadowColor","shadowOpacity","shadowOffset","shadowRadius","elevation","menuConfig","defRenderer","defRendererProps","defaultOptionsContainerRenderer","layoutsEqual","a","b","Error","PopupMenuContext","createContext","withCtx","instanceCount","MenuProvider","backHandler","closeMenu","r","backdropRef","optionsRef","_placeholderRef","_getOpenedMenu","onBackdropPress","layout","nativeEvent","_ownLayout","trigger","_getTrigger","then","_menuRegistry","_notify","_safeAreaLayout","_backHandlerSubscription","menuActions","openMenu","toggleMenu","force","menuCtx","menuRegistry","customStyles","skipInstanceCheck","menuContextWrapper","remove","BackHandler","addEventListener","_handleBackButton","_setOpened","filter","_getOpened","isOpen","hideMenu","close","hideBackdrop","_invalidateTriggerLayouts","all","catch","err","forceUpdate","NULL","prev","openedMenu","find","_isRenderNeeded","afterSetState","beforeSetState","_beforeClose","onClose","onOpen","_initOpen","setState","openedMenuName","SafeAreaComponent","safeAreaStyles","_computeSafeAreaStyles","flex1","_onLayout","menuProviderWrapper","_onSafeAreaLayout","backdrop","_onPlaceholderRef","open","e","isOutside","_getOptions","renderer","rendererProps","optionsContainerStyle","renderOptionsContainer","optionsRenderer","onLayout","_onOptionsLayout","optionsContainer","optionsType","onOptionsRef","createElement","customSafeAreaStyle","safeArea","defaultSafeAreaStyles","paddingTop","paddingBottom","object","oneOfType","bool","flex","MenuOptions","_props","menuName","updateCustomStyles","optionsWrapper","number","array","MenuTrigger","disabled","text","triggerOnLongPress","onAlternativeAction","testID","accessible","accessibilityRole","accessibilityLabel","_onPress","TriggerTouchableComponent","triggerOuterWrapper","triggerTouchable","triggerWrapper","Text","triggerText","string","isRegularComponent","c","type","isTrigger","isMenuOptions","Menu","_name","_forceClose","_validateChildren","prevProps","opened","_opened","_reduceChildren","Children","toArray","reduce","child","cloneElement","key","t","_trigger","onSelect","MenuExternal","defineProperty","val","setDefaultRenderer","setDefaultRendererProps","noop","MenuOption","_getMenusOnSelect","shouldClose","disableTouchable","accessibilityProps","_getCustomStyles","count","disabledStyles","defaultStyles","optionTextDisabled","optionText","option","optionWrapper","rendered","OptionTouchableComponent","_onSelect","optionTouchable","any","padding","color","NotAnimatedContextMenu","SlideInMenu","slide","translateY","interpolate","inputRange","outputRange","popoverPadding","anchorSize","anchorHyp","sqrt","anchorOffset","axisNegativeSideProperties","axisPositiveSideProperties","centeringProperties","center","leftOffset","rightOffset","axisCenteredPositionProperties","offset","getCenteringPrice","max","getTopPrice","hOptions","vOptions","centerOffset","sideOffset","getBottomPrice","getLeftPrice","getRightPrice","getStartPosKey","topProperties","centered","side","placement","bottomProperties","rightProperties","leftProperties","propertiesByPlacement","computeProperties","preferredPlacement","prices","bestPrice","sort","bestPlacement","keys","pl","Popover","openAnimationDuration","closeAnimationDuration","anchorStyle","userPlacement","animated","getContainerStyle","anchor","dynamicAnchorStyle","oneOf","flexDirection","translateX","rotate","alignItems","minWidth","minHeight","renderers","MenuContext"],"mappings":"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"} \ No newline at end of file From c4d37c641d8ef7b2c4e337c8c2d10efff13716d6 Mon Sep 17 00:00:00 2001 From: Stanislav Miklik Date: Mon, 15 Dec 2025 23:14:33 +0100 Subject: [PATCH 3/5] Release 0.19-beta.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9645059..3d5130e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-popup-menu", - "version": "0.18.0", + "version": "0.19.0-beta.0", "description": "extensible popup/context menu for react native", "main": "build/rnpm.js", "directories": { From 4b73e88275610baca249a36589e880de1da2e8b3 Mon Sep 17 00:00:00 2001 From: Stanislav Miklik Date: Tue, 16 Dec 2025 21:35:36 +0100 Subject: [PATCH 4/5] test with beta version --- examples/package-lock.json | 8 ++++---- examples/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/package-lock.json b/examples/package-lock.json index 3368a98..227fdf0 100644 --- a/examples/package-lock.json +++ b/examples/package-lock.json @@ -29,7 +29,7 @@ "react-dom": "19.1.0", "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", - "react-native-popup-menu": "^0.18.0", + "react-native-popup-menu": "0.19.0-beta.0", "react-native-reanimated": "~4.1.1", "react-native-screens": "~4.16.0", "react-native-web": "^0.21.0", @@ -10274,9 +10274,9 @@ } }, "node_modules/react-native-popup-menu": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.18.0.tgz", - "integrity": "sha512-XD3gyp/hwL5YWw2J034DerfvbJ6S2YHqAzvqAFRU+UGnFD4JyTqggfm4UyynBD26O1PDoRb45Loil+NZCGfCnA==", + "version": "0.19.0-beta.0", + "resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.19.0-beta.0.tgz", + "integrity": "sha512-s2ED002SC4WS0cy3KfNBxDhhJr/E8NiWi8sCbnNtmTV8+7jnwrXvQEMWeXzgB90ApxkHQEX36wlga5khmd1tzw==", "license": "ISC" }, "node_modules/react-native-reanimated": { diff --git a/examples/package.json b/examples/package.json index fa9a17c..10c7f8a 100644 --- a/examples/package.json +++ b/examples/package.json @@ -32,7 +32,7 @@ "react-dom": "19.1.0", "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", - "react-native-popup-menu": "^0.18.0", + "react-native-popup-menu": "0.19.0-beta.0", "react-native-reanimated": "~4.1.1", "react-native-screens": "~4.16.0", "react-native-web": "^0.21.0", From b0a51f7416648c75ddacf488795f65d07ad773d4 Mon Sep 17 00:00:00 2001 From: Stanislav Miklik Date: Tue, 16 Dec 2025 22:04:33 +0100 Subject: [PATCH 5/5] updated docu --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 3d32379..d35d145 100644 --- a/README.md +++ b/README.md @@ -84,9 +84,18 @@ Contributions are welcome! Just open an issues with any idea or pull-request if ## React Native Compatibility We keep compatibility on best effort basis. +First table describes what minimal version of RN (or React) is needed to use version of popup menu. + | popup-menu version | min RN (React) version | | ------------------ | -------------- | | 0.13 | 0.55 (16.3.1) | | 0.9 | 0.40 | | 0.8 | 0.38 | | 0.7 | 0.18 | + +Second is other way round - which minimal version of popup-menu is required to work well with RN (or React version) + +| RN (React) version | popup-menu version | +| ------------------ | -------------- | +| 0.81+ (SafeAreaView depecation, see [#301](https://github.com/instea/react-native-popup-menu/issues/301)) | 0.19 | +| 0.78 (19.0) | 0.18 |