{"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 = '<<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":["/home/sonia/VisualStudioCode/Proyecto-React-Firebase/client/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 = '<<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"}