{"version":3,"sources":["node_modules\\react-dom\\lib\\ReactDOMInput.js"],"names":["_prodInvariant","require","_assign","DOMPropertyOperations","LinkedValueUtils","ReactDOMComponentTree","ReactUpdates","invariant","warning","didWarnValueLink","didWarnCheckedLink","didWarnValueDefaultValue","didWarnCheckedDefaultChecked","didWarnControlledToUncontrolled","didWarnUncontrolledToControlled","forceUpdateIfMounted","_rootNodeID","ReactDOMInput","updateWrapper","isControlled","props","usesChecked","type","checked","value","getHostProps","inst","getValue","getChecked","hostProps","undefined","step","min","max","defaultChecked","defaultValue","_wrapperState","initialValue","initialChecked","onChange","mountWrapper","process","env","NODE_ENV","checkPropTypes","_currentElement","_owner","owner","valueLink","checkedLink","getName","listeners","_handleChange","bind","controlled","setValueForProperty","getNodeFromInstance","node","valueAsNumber","parseFloat","postMountWrapper","name","event","returnValue","executeOnChange","asap","rootNode","queryRoot","parentNode","group","querySelectorAll","JSON","stringify","i","length","otherNode","form","otherInstance","getInstanceFromNode","module","exports"],"mappings":"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","file":"ReactDOMInput.js","sourceRoot":"D:/Work/Office/react-native-on-web/cli/tmpl/project","sourcesContent":["/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n    _assign = require('object-assign');\n\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMInput.updateWrapper(this);\n  }\n}\n\nfunction isControlled(props) {\n  var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n  return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n  getHostProps: function (inst, props) {\n    var value = LinkedValueUtils.getValue(props);\n    var checked = LinkedValueUtils.getChecked(props);\n\n    var hostProps = _assign({\n      // Make sure we set .type before any other properties (setting .value\n      // before .type means .value is lost in IE11 and below)\n      type: undefined,\n      // Make sure we set .step before .value (setting .value before .step\n      // means .value is rounded on mount, based upon step precision)\n      step: undefined,\n      // Make sure we set .min & .max before .value (to ensure proper order\n      // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n      min: undefined,\n      max: undefined\n    }, props, {\n      defaultChecked: undefined,\n      defaultValue: undefined,\n      value: value != null ? value : inst._wrapperState.initialValue,\n      checked: checked != null ? checked : inst._wrapperState.initialChecked,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return hostProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n      var owner = inst._currentElement._owner;\n\n      if (props.valueLink !== undefined && !didWarnValueLink) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n        didWarnValueLink = true;\n      }\n      if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n        didWarnCheckedLink = true;\n      }\n      if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnCheckedDefaultChecked = true;\n      }\n      if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnValueDefaultValue = true;\n      }\n    }\n\n    var defaultValue = props.defaultValue;\n    inst._wrapperState = {\n      initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n      initialValue: props.value != null ? props.value : defaultValue,\n      listeners: null,\n      onChange: _handleChange.bind(inst),\n      controlled: isControlled(props)\n    };\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var controlled = isControlled(props);\n      var owner = inst._currentElement._owner;\n\n      if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnUncontrolledToControlled = true;\n      }\n      if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnControlledToUncontrolled = true;\n      }\n    }\n\n    // TODO: Shouldn't this be getChecked(props)?\n    var checked = props.checked;\n    if (checked != null) {\n      DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n    }\n\n    var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      if (value === 0 && node.value === '') {\n        node.value = '0';\n        // Note: IE9 reports a number inputs as 'text', so check props instead.\n      } else if (props.type === 'number') {\n        // Simulate `input.valueAsNumber`. IE9 does not support it\n        var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n        if (\n        // eslint-disable-next-line\n        value != valueAsNumber ||\n        // eslint-disable-next-line\n        value == valueAsNumber && node.value != value) {\n          // Cast `value` to a string to ensure the value is set correctly. While\n          // browsers typically do this as necessary, jsdom doesn't.\n          node.value = '' + value;\n        }\n      } else if (node.value !== '' + value) {\n        // Cast `value` to a string to ensure the value is set correctly. While\n        // browsers typically do this as necessary, jsdom doesn't.\n        node.value = '' + value;\n      }\n    } else {\n      if (props.value == null && props.defaultValue != null) {\n        // In Chrome, assigning defaultValue to certain input types triggers input validation.\n        // For number inputs, the display value loses trailing decimal points. For email inputs,\n        // Chrome raises \"The specified value <x> is not a valid email address\".\n        //\n        // Here we check to see if the defaultValue has actually changed, avoiding these problems\n        // when the user is inputting text\n        //\n        // https://github.com/facebook/react/issues/7253\n        if (node.defaultValue !== '' + props.defaultValue) {\n          node.defaultValue = '' + props.defaultValue;\n        }\n      }\n      if (props.checked == null && props.defaultChecked != null) {\n        node.defaultChecked = !!props.defaultChecked;\n      }\n    }\n  },\n\n  postMountWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // This is in postMount because we need access to the DOM node, which is not\n    // available until after the component has mounted.\n    var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n    // Detach value from defaultValue. We won't do anything if we're working on\n    // submit or reset inputs as those values & defaultValues are linked. They\n    // are not resetable nodes so this operation doesn't matter and actually\n    // removes browser-default values (eg \"Submit Query\") when no value is\n    // provided.\n\n    switch (props.type) {\n      case 'submit':\n      case 'reset':\n        break;\n      case 'color':\n      case 'date':\n      case 'datetime':\n      case 'datetime-local':\n      case 'month':\n      case 'time':\n      case 'week':\n        // This fixes the no-show issue on iOS Safari and Android Chrome:\n        // https://github.com/facebook/react/issues/7233\n        node.value = '';\n        node.value = node.defaultValue;\n        break;\n      default:\n        node.value = node.value;\n        break;\n    }\n\n    // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n    // this is needed to work around a chrome bug where setting defaultChecked\n    // will sometimes influence the value of checked (even after detachment).\n    // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n    // We need to temporarily unset name to avoid disrupting radio button groups.\n    var name = node.name;\n    if (name !== '') {\n      node.name = '';\n    }\n    node.defaultChecked = !node.defaultChecked;\n    node.defaultChecked = !node.defaultChecked;\n    if (name !== '') {\n      node.name = name;\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  // Here we use asap to wait until all updates have propagated, which\n  // is important when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form, let's just use the global\n    // `querySelectorAll` to ensure we don't miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React radio buttons with non-React ones.\n      var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n      !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n    }\n  }\n\n  return returnValue;\n}\n\nmodule.exports = ReactDOMInput;"]}