{"ast":null,"code":"/**\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'use strict';\n\nvar ReactIs = require('react-is');\n\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\n\nvar printWarning = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\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\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\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\n var ANONYMOUS = '<>'; // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\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 any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\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\n /*eslint-disable no-self-compare*/\n\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\n\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n } // Make `instanceof Error` still work for returned errors.\n\n\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\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('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\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\n if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\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\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\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 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\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 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n\n return null;\n }\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\n var propValue = props[propName];\n\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\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\n if (error instanceof Error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\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\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n\n return null;\n }\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\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\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, function replacer(key, value) {\n var type = getPreciseType(value);\n\n if (type === 'symbol') {\n return String(value);\n }\n\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\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\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error instanceof Error) {\n return error;\n }\n }\n }\n\n return null;\n }\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\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\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\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\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\n return null;\n }\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\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n\n if (!checker) {\n continue;\n }\n\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error) {\n return error;\n }\n }\n\n return null;\n }\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\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n } // We need to check all keys in case some are required but missing from\n // props.\n\n\n var allKeys = assign({}, props[propName], shapeTypes);\n\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error) {\n return error;\n }\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\n case 'boolean':\n return !propValue;\n\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n\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\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\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n } // falsy value can't be a Symbol\n\n\n if (!propValue) {\n return false;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n } // Equivalent of `typeof` but with special handling for array and regexp.\n\n\n function getPropType(propValue) {\n var propType = typeof propValue;\n\n if (Array.isArray(propValue)) {\n return 'array';\n }\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\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n\n return propType;\n } // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n\n\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n\n var propType = getPropType(propValue);\n\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n\n return propType;\n } // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n\n\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n\n default:\n return type;\n }\n } // Returns class name of the object, if any.\n\n\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","map":{"version":3,"sources":["/app/node_modules/prop-types/factoryWithTypeCheckers.js"],"names":["ReactIs","require","assign","ReactPropTypesSecret","checkPropTypes","has","Function","call","bind","Object","prototype","hasOwnProperty","printWarning","process","env","NODE_ENV","text","message","console","error","Error","x","emptyFunctionThatReturnsNull","module","exports","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","Symbol","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bool","func","number","object","string","symbol","any","createAnyTypeChecker","arrayOf","createArrayOfTypeChecker","element","createElementTypeChecker","elementType","createElementTypeTypeChecker","instanceOf","createInstanceTypeChecker","node","createNodeChecker","objectOf","createObjectOfTypeChecker","oneOf","createEnumTypeChecker","oneOfType","createUnionTypeChecker","shape","createShapeTypeChecker","exact","createStrictShapeTypeChecker","is","y","PropTypeError","stack","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","props","propName","componentName","location","propFullName","secret","err","name","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","Array","isArray","i","length","isValidElementType","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","arguments","valuesString","JSON","stringify","replacer","key","value","type","String","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","isNode","shapeTypes","allKeys","keys","every","step","entries","next","done","entry","isSymbol","RegExp","Date","constructor","resetWarningCache","PropTypes"],"mappings":"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","sourcesContent":["/**\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 ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\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 elementType: createElementTypeTypeChecker(),\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n"]},"metadata":{},"sourceType":"script"}