diff --git a/build/rnpm.js b/build/rnpm.js index 06e748c..8f21723 100644 --- a/build/rnpm.js +++ b/build/rnpm.js @@ -2194,7 +2194,10 @@ triggerOnLongPress = _this$props.triggerOnLongPress, onAlternativeAction = _this$props.onAlternativeAction, testID = _this$props.testID, - other = _objectWithoutProperties(_this$props, ["disabled", "onRef", "text", "children", "style", "customStyles", "menuName", "triggerOnLongPress", "onAlternativeAction", "testID"]); + accessible = _this$props.accessible, + accessibilityRole = _this$props.accessibilityRole, + accessibilityLabel = _this$props.accessibilityLabel, + other = _objectWithoutProperties(_this$props, ["disabled", "onRef", "text", "children", "style", "customStyles", "menuName", "triggerOnLongPress", "onAlternativeAction", "testID", "accessible", "accessibilityRole", "accessibilityLabel"]); var onPress = function onPress() { return !disabled && _this._onPress(); @@ -2212,7 +2215,11 @@ testID: testID, onPress: triggerOnLongPress ? onAlternativeAction : onPress, onLongPress: triggerOnLongPress ? onPress : onAlternativeAction - }, defaultTouchableProps, customStyles.triggerTouchable), React__default.createElement(reactNative.View, _extends({}, other, { + }, defaultTouchableProps, { + accessible: accessible, + accessibilityRole: accessibilityRole, + accessibilityLabel: accessibilityLabel + }, customStyles.triggerTouchable), React__default.createElement(reactNative.View, _extends({}, other, { style: [customStyles.triggerWrapper, style] }), text ? React__default.createElement(reactNative.Text, { style: customStyles.triggerText @@ -2229,7 +2236,10 @@ onAlternativeAction: propTypes.func, customStyles: propTypes.object, triggerOnLongPress: propTypes.bool, - testID: propTypes.string + testID: propTypes.string, + accessible: propTypes.bool, + accessibilityRole: propTypes.string, + accessibilityLabel: propTypes.string }; var MenuTrigger$1 = withCtx(MenuTrigger); @@ -2486,7 +2496,8 @@ disableTouchable = _this$props.disableTouchable, children = _this$props.children, style = _this$props.style, - testID = _this$props.testID; + testID = _this$props.testID, + accessibilityProps = _objectWithoutProperties(_this$props, ["text", "disabled", "disableTouchable", "children", "style", "testID"]); var customStyles = this._getCustomStyles(); @@ -2521,7 +2532,7 @@ onPress: function onPress() { return _this._onSelect(); } - }, defaultTouchableProps, customStyles.optionTouchable), rendered); + }, defaultTouchableProps, accessibilityProps, customStyles.optionTouchable), rendered); } } }]); @@ -2535,7 +2546,10 @@ text: propTypes.string, value: propTypes.any, customStyles: propTypes.object, - testID: propTypes.string + testID: propTypes.string, + accessible: propTypes.bool, + accessibilityRole: propTypes.string, + accessibilityLabel: propTypes.string }; var defaultStyles = reactNative.StyleSheet.create({ option: { diff --git a/build/rnpm.js.map b/build/rnpm.js.map index 6b9735a..7032d9e 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, ...other } = this.props;\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};\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 } = 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 {...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};\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","_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","_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, 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 diff --git a/src/MenuOption.js b/src/MenuOption.js index 84b1791..ed6b657 100644 --- a/src/MenuOption.js +++ b/src/MenuOption.js @@ -35,7 +35,7 @@ export class MenuOption extends Component { } render() { - const { text, disabled, disableTouchable, children, style, testID } = this.props; + const { text, disabled, disableTouchable, children, style, testID, ...accessibilityProps } = this.props; const customStyles = this._getCustomStyles() if (text && React.Children.count(children) > 0) { console.warn("MenuOption: Please don't use text property together with explicit children. Children are ignored."); @@ -63,6 +63,7 @@ export class MenuOption extends Component { testID={testID} onPress={() => this._onSelect()} {...defaultTouchableProps} + {...accessibilityProps} {...customStyles.optionTouchable} > {rendered} @@ -80,6 +81,9 @@ MenuOption.propTypes = { value: PropTypes.any, customStyles: PropTypes.object, testID: PropTypes.string, + accessible: PropTypes.bool, + accessibilityRole: PropTypes.string, + accessibilityLabel: PropTypes.string, }; const defaultStyles = StyleSheet.create({ diff --git a/src/MenuTrigger.js b/src/MenuTrigger.js index 2f20071..a71f70e 100644 --- a/src/MenuTrigger.js +++ b/src/MenuTrigger.js @@ -14,8 +14,9 @@ export class MenuTrigger extends Component { } render() { - const { disabled, onRef, text, children, style, customStyles = {}, menuName, - triggerOnLongPress, onAlternativeAction, testID, ...other } = this.props; + const { disabled, onRef, text, children, style, customStyles = {}, menuName, + triggerOnLongPress, onAlternativeAction, testID, accessible, accessibilityRole, accessibilityLabel, ...other } = this.props; + const onPress = () => !disabled && this._onPress(); const { Touchable, defaultTouchableProps } = makeTouchable(customStyles.TriggerTouchableComponent); return ( @@ -25,6 +26,9 @@ export class MenuTrigger extends Component { onPress={triggerOnLongPress ? onAlternativeAction : onPress} onLongPress={triggerOnLongPress ? onPress : onAlternativeAction} {...defaultTouchableProps} + accessible={accessible} + accessibilityRole={accessibilityRole} + accessibilityLabel={accessibilityLabel} {...customStyles.triggerTouchable} > @@ -45,6 +49,9 @@ MenuTrigger.propTypes = { customStyles: PropTypes.object, triggerOnLongPress: PropTypes.bool, testID: PropTypes.string, + accessible: PropTypes.bool, + accessibilityRole: PropTypes.string, + accessibilityLabel: PropTypes.string, }; export default withCtx(MenuTrigger) diff --git a/src/index.d.ts b/src/index.d.ts index 7e1ef2e..6ad1c6b 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -5,7 +5,7 @@ */ declare module "react-native-popup-menu" { import * as React from "react"; - import { StyleProp, ViewStyle, TextStyle } from "react-native"; + import { StyleProp, ViewStyle, TextStyle, ViewProps } from "react-native"; /** * MenuProvider @@ -88,9 +88,12 @@ declare module "react-native-popup-menu" { triggerOnLongPress?: boolean; onPress?(): void; - onAlternativeAction? (): void; + onAlternativeAction?(): void; children?: React.ReactNode; style?: StyleProp; + accessible?: ViewProps["accessible"]; + accessibilityRole?: ViewProps["accessibilityRole"]; + accessibilityLabel?: ViewProps["accessibilityLabel"]; } export const MenuTrigger: React.ComponentClass; @@ -128,7 +131,9 @@ declare module "react-native-popup-menu" { onSelect?(): any; children?: React.ReactNode; - testID?: string; + accessible?: ViewProps["accessible"]; + accessibilityRole?: ViewProps["accessibilityRole"]; + accessibilityLabel?: ViewProps["accessibilityLabel"]; } interface MenuOptionCustomStyle { @@ -184,7 +189,10 @@ declare module "react-native-popup-menu" { optionsLayout?: OptionsLayoutType; } ) => void; - setOptionsCustomStyles: (name: string, optionsCustomStyles: MenuOptionsCustomStyle) => void; + setOptionsCustomStyles: ( + name: string, + optionsCustomStyles: MenuOptionsCustomStyle + ) => void; getMenu: (name: string) => MenuEntry; getAll: () => MenuEntry[]; } @@ -199,7 +207,7 @@ declare module "react-native-popup-menu" { toggleMenu: (name: string) => Promise; isMenuOpen: () => boolean; } - + export interface MenuContext { // This part shouldn't be exported to the user so it's commented out // menuRegistry: MenuRegistry;