13f4ab27cca7b434bdfa39549561afa1.json 87.6 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint-disable react/prop-types */\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\n\nfunction noop() {}\n\nfunction preventDefault(e) {\n  e.preventDefault();\n}\n\nvar defaultParser = function defaultParser(input) {\n  return input.replace(/[^\\w.-]+/g, '');\n};\n/**\n * When click and hold on a button - the speed of auto changin the value.\n */\n\n\nvar SPEED = 200;\n/**\n * When click and hold on a button - the delay before auto changin the value.\n */\n\nvar DELAY = 600;\n/**\n * Max Safe Integer -- on IE this is not available, so manually set the number in that case.\n * The reason this is used, instead of Infinity is because numbers above the MSI are unstable\n */\n\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar isValidProps = function isValidProps(value) {\n  return value !== undefined && value !== null;\n};\n\nvar isEqual = function isEqual(oldValue, newValue) {\n  return newValue === oldValue || typeof newValue === 'number' && typeof oldValue === 'number' && isNaN(newValue) && isNaN(oldValue);\n};\n\nvar InputNumber = /*#__PURE__*/function (_React$Component) {\n  _inherits(InputNumber, _React$Component);\n\n  var _super = _createSuper(InputNumber);\n\n  function InputNumber(props) {\n    var _this;\n\n    _classCallCheck(this, InputNumber);\n\n    _this = _super.call(this, props);\n\n    _this.onKeyDown = function (e) {\n      var _this$props = _this.props,\n          onKeyDown = _this$props.onKeyDown,\n          onPressEnter = _this$props.onPressEnter;\n\n      if (e.keyCode === KeyCode.UP) {\n        var ratio = _this.getRatio(e);\n\n        _this.up(e, ratio, null);\n\n        _this.stop();\n      } else if (e.keyCode === KeyCode.DOWN) {\n        var _ratio = _this.getRatio(e);\n\n        _this.down(e, _ratio, null);\n\n        _this.stop();\n      } else if (e.keyCode === KeyCode.ENTER && onPressEnter) {\n        onPressEnter(e);\n      } // Trigger user key down\n\n\n      _this.recordCursorPosition();\n\n      _this.lastKeyCode = e.keyCode;\n\n      if (onKeyDown) {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n\n        onKeyDown.apply(void 0, [e].concat(args));\n      }\n    };\n\n    _this.onKeyUp = function (e) {\n      var onKeyUp = _this.props.onKeyUp;\n\n      _this.stop();\n\n      _this.recordCursorPosition(); // Trigger user key up\n\n\n      if (onKeyUp) {\n        for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n          args[_key2 - 1] = arguments[_key2];\n        }\n\n        onKeyUp.apply(void 0, [e].concat(args));\n      }\n    };\n\n    _this.onChange = function (e) {\n      var onChange = _this.props.onChange;\n\n      if (_this.state.focused) {\n        _this.inputting = true;\n      }\n\n      _this.rawInput = _this.props.parser(_this.getValueFromEvent(e));\n\n      _this.setState({\n        inputValue: _this.rawInput\n      });\n\n      onChange(_this.toNumber(_this.rawInput)); // valid number or invalid string\n    };\n\n    _this.onMouseUp = function () {\n      var onMouseUp = _this.props.onMouseUp;\n\n      _this.recordCursorPosition();\n\n      if (onMouseUp) {\n        onMouseUp.apply(void 0, arguments);\n      }\n    };\n\n    _this.onFocus = function () {\n      var _this$props2;\n\n      _this.setState({\n        focused: true\n      });\n\n      (_this$props2 = _this.props).onFocus.apply(_this$props2, arguments);\n    };\n\n    _this.onBlur = function () {\n      var onBlur = _this.props.onBlur;\n      _this.inputting = false;\n\n      _this.setState({\n        focused: false\n      });\n\n      var value = _this.getCurrentValidValue(_this.state.inputValue);\n\n      var newValue = _this.setValue(value, noop);\n\n      if (onBlur) {\n        var originValue = _this.input.value;\n\n        var displayValue = _this.getInputDisplayValue({\n          focus: false,\n          value: newValue\n        });\n\n        _this.input.value = displayValue;\n        onBlur.apply(void 0, arguments);\n        _this.input.value = originValue;\n      }\n    };\n\n    _this.getRatio = function (e) {\n      var ratio = 1;\n\n      if (e.metaKey || e.ctrlKey) {\n        ratio = 0.1;\n      } else if (e.shiftKey) {\n        ratio = 10;\n      }\n\n      return ratio;\n    };\n\n    _this.getFullNum = function (num) {\n      if (isNaN(num)) {\n        return num;\n      }\n\n      if (!/e/i.test(String(num))) {\n        return num;\n      }\n\n      return Number(num).toFixed(18).replace(/\\.?0+$/, '');\n    };\n\n    _this.getPrecision = function (value) {\n      if (isValidProps(_this.props.precision)) {\n        return _this.props.precision;\n      }\n\n      var valueString = String(value);\n\n      if (valueString.indexOf('e-') >= 0) {\n        return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n      }\n\n      var precision = 0;\n\n      if (valueString.indexOf('.') >= 0) {\n        precision = valueString.length - valueString.indexOf('.') - 1;\n      }\n\n      return precision;\n    };\n\n    _this.getInputDisplayValue = function (state) {\n      var _ref = state || _this.state,\n          focused = _ref.focused,\n          inputValue = _ref.inputValue,\n          value = _ref.value;\n\n      var inputDisplayValue;\n\n      if (focused) {\n        inputDisplayValue = inputValue;\n      } else {\n        inputDisplayValue = _this.toPrecisionAsStep(value);\n      }\n\n      if (inputDisplayValue === undefined || inputDisplayValue === null) {\n        inputDisplayValue = '';\n      }\n\n      var inputDisplayValueFormat = _this.formatWrapper(inputDisplayValue);\n\n      if (isValidProps(_this.props.decimalSeparator)) {\n        inputDisplayValueFormat = inputDisplayValueFormat.toString().replace('.', _this.props.decimalSeparator);\n      }\n\n      return inputDisplayValueFormat;\n    };\n\n    _this.recordCursorPosition = function () {\n      // Record position\n      try {\n        _this.cursorStart = _this.input.selectionStart;\n        _this.cursorEnd = _this.input.selectionEnd;\n        _this.currentValue = _this.input.value;\n        _this.cursorBefore = _this.input.value.substring(0, _this.cursorStart);\n        _this.cursorAfter = _this.input.value.substring(_this.cursorEnd);\n      } catch (e) {// Fix error in Chrome:\n        // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n        // http://stackoverflow.com/q/21177489/3040605\n      }\n    };\n\n    _this.restoreByAfter = function (str) {\n      if (str === undefined) return false;\n      var fullStr = _this.input.value;\n      var index = fullStr.lastIndexOf(str);\n      if (index === -1) return false;\n      var prevCursorPos = _this.cursorBefore.length;\n\n      if (_this.lastKeyCode === KeyCode.DELETE && _this.cursorBefore.charAt(prevCursorPos - 1) === str[0]) {\n        _this.fixCaret(prevCursorPos, prevCursorPos);\n\n        return true;\n      }\n\n      if (index + str.length === fullStr.length) {\n        _this.fixCaret(index, index);\n\n        return true;\n      }\n\n      return false;\n    };\n\n    _this.partRestoreByAfter = function (str) {\n      if (str === undefined) return false; // For loop from full str to the str with last char to map. e.g. 123\n      // -> 123\n      // -> 23\n      // -> 3\n\n      return Array.prototype.some.call(str, function (_, start) {\n        var partStr = str.substring(start);\n        return _this.restoreByAfter(partStr);\n      });\n    }; // '1.' '1x' 'xx' '' => are not complete numbers\n\n\n    _this.isNotCompleteNumber = function (num) {\n      return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;\n    };\n\n    _this.stop = function () {\n      if (_this.autoStepTimer) {\n        clearTimeout(_this.autoStepTimer);\n      }\n    };\n\n    _this.down = function (e, ratio, recursive) {\n      _this.pressingUpOrDown = true;\n\n      _this.step('down', e, ratio, recursive);\n    };\n\n    _this.up = function (e, ratio, recursive) {\n      _this.pressingUpOrDown = true;\n\n      _this.step('up', e, ratio, recursive);\n    };\n\n    _this.saveInput = function (node) {\n      _this.input = node;\n    };\n\n    var value = props.value;\n\n    if (value === undefined) {\n      value = props.defaultValue;\n    }\n\n    _this.state = {\n      focused: props.autoFocus\n    };\n\n    var validValue = _this.getValidValue(_this.toNumber(value));\n\n    _this.state = _objectSpread(_objectSpread({}, _this.state), {}, {\n      inputValue: _this.toPrecisionAsStep(validValue),\n      value: validValue\n    });\n    return _this;\n  }\n\n  _createClass(InputNumber, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.componentDidUpdate(null);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props3 = this.props,\n          value = _this$props3.value,\n          onChange = _this$props3.onChange,\n          max = _this$props3.max,\n          min = _this$props3.min;\n      var focused = this.state.focused; // Don't trigger in componentDidMount\n\n      if (prevProps) {\n        if (!isEqual(prevProps.value, value) || !isEqual(prevProps.max, max) || !isEqual(prevProps.min, min)) {\n          var validValue = focused ? value : this.getValidValue(value);\n          var nextInputValue;\n\n          if (this.pressingUpOrDown) {\n            nextInputValue = validValue;\n          } else if (this.inputting) {\n            nextInputValue = this.rawInput;\n          } else {\n            nextInputValue = this.toPrecisionAsStep(validValue);\n          }\n\n          this.setState({\n            // eslint-disable-line\n            value: validValue,\n            inputValue: nextInputValue\n          });\n        } // Trigger onChange when max or min change\n        // https://github.com/ant-design/ant-design/issues/11574\n\n\n        var nextValue = 'value' in this.props ? value : this.state.value; // ref: null < 20 === true\n        // https://github.com/ant-design/ant-design/issues/14277\n\n        if ('max' in this.props && prevProps.max !== max && typeof nextValue === 'number' && nextValue > max && onChange) {\n          onChange(max);\n        }\n\n        if ('min' in this.props && prevProps.min !== min && typeof nextValue === 'number' && nextValue < min && onChange) {\n          onChange(min);\n        }\n      } // Restore cursor\n\n\n      try {\n        // Firefox set the input cursor after it get focused.\n        // This caused that if an input didn't init with the selection,\n        // set will cause cursor not correct when first focus.\n        // Safari will focus input if set selection. We need skip this.\n        if (this.cursorStart !== undefined && this.state.focused) {\n          // In most cases, the string after cursor is stable.\n          // We can move the cursor before it\n          if ( // If not match full str, try to match part of str\n          !this.partRestoreByAfter(this.cursorAfter) && this.state.value !== this.props.value) {\n            // If not match any of then, let's just keep the position\n            // TODO: Logic should not reach here, need check if happens\n            var pos = this.cursorStart + 1; // If not have last string, just position to the end\n\n            if (!this.cursorAfter) {\n              pos = this.input.value.length;\n            } else if (this.lastKeyCode === KeyCode.BACKSPACE) {\n              pos = this.cursorStart - 1;\n            } else if (this.lastKeyCode === KeyCode.DELETE) {\n              pos = this.cursorStart;\n            }\n\n            this.fixCaret(pos, pos);\n          } else if (this.currentValue === this.input.value) {\n            // Handle some special key code\n            switch (this.lastKeyCode) {\n              case KeyCode.BACKSPACE:\n                this.fixCaret(this.cursorStart - 1, this.cursorStart - 1);\n                break;\n\n              case KeyCode.DELETE:\n                this.fixCaret(this.cursorStart + 1, this.cursorStart + 1);\n                break;\n\n              default: // Do nothing\n\n            }\n          }\n        }\n      } catch (e) {// Do nothing\n      } // Reset last key\n\n\n      this.lastKeyCode = null; // pressingUpOrDown is true means that someone just click up or down button\n\n      if (!this.pressingUpOrDown) {\n        return;\n      }\n\n      if (this.props.focusOnUpDown && this.state.focused) {\n        if (document.activeElement !== this.input) {\n          this.focus();\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.stop();\n    }\n  }, {\n    key: \"getCurrentValidValue\",\n    value: function getCurrentValidValue(value) {\n      var val = value;\n\n      if (val === '') {\n        val = '';\n      } else if (!this.isNotCompleteNumber(parseFloat(val))) {\n        val = this.getValidValue(val);\n      } else {\n        val = this.state.value;\n      }\n\n      return this.toNumber(val);\n    }\n  }, {\n    key: \"getValueFromEvent\",\n    value: function getValueFromEvent(e) {\n      // optimize for chinese input expierence\n      // https://github.com/ant-design/ant-design/issues/8196\n      var value = e.target.value.trim().replace(/。/g, '.');\n\n      if (isValidProps(this.props.decimalSeparator)) {\n        value = value.replace(this.props.decimalSeparator, '.');\n      }\n\n      return value;\n    }\n  }, {\n    key: \"getValidValue\",\n    value: function getValidValue(value) {\n      var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;\n      var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;\n      var val = parseFloat(value); // https://github.com/ant-design/ant-design/issues/7358\n\n      if (isNaN(val)) {\n        return value;\n      }\n\n      if (val < min) {\n        val = min;\n      }\n\n      if (val > max) {\n        val = max;\n      }\n\n      return val;\n    }\n  }, {\n    key: \"setValue\",\n    value: function setValue(v, callback) {\n      // trigger onChange\n      var precision = this.props.precision;\n      var newValue = this.isNotCompleteNumber(parseFloat(v)) ? null : parseFloat(v);\n      var _this$state$value = this.state.value,\n          value = _this$state$value === void 0 ? null : _this$state$value;\n      var _this$state$inputValu = this.state.inputValue,\n          inputValue = _this$state$inputValu === void 0 ? null : _this$state$inputValu; // https://github.com/ant-design/ant-design/issues/7363\n      // https://github.com/ant-design/ant-design/issues/16622\n\n      var newValueInString = typeof newValue === 'number' ? newValue.toFixed(precision) : \"\".concat(newValue);\n      var changed = newValue !== value || newValueInString !== \"\".concat(inputValue);\n\n      if (!('value' in this.props)) {\n        this.setState({\n          value: newValue,\n          inputValue: this.toPrecisionAsStep(v)\n        }, callback);\n      } else {\n        // always set input value same as value\n        inputValue = this.toPrecisionAsStep(this.state.value);\n        this.setState({\n          inputValue: inputValue\n        }, callback);\n      }\n\n      if (changed) {\n        this.props.onChange(newValue);\n      }\n\n      return newValue;\n    } // step={1.0} value={1.51}\n    // press +\n    // then value should be 2.51, rather than 2.5\n    // if this.props.precision is undefined\n    // https://github.com/react-component/input-number/issues/39\n\n  }, {\n    key: \"getMaxPrecision\",\n    value: function getMaxPrecision(currentValue) {\n      var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      var _this$props4 = this.props,\n          precision = _this$props4.precision,\n          step = _this$props4.step;\n\n      if (isValidProps(precision)) {\n        return precision;\n      }\n\n      var ratioPrecision = this.getPrecision(ratio);\n      var stepPrecision = this.getPrecision(step);\n      var currentValuePrecision = this.getPrecision(currentValue);\n\n      if (!currentValue) {\n        return ratioPrecision + stepPrecision;\n      }\n\n      return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n    }\n  }, {\n    key: \"getPrecisionFactor\",\n    value: function getPrecisionFactor(currentValue) {\n      var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      var precision = this.getMaxPrecision(currentValue, ratio);\n      return Math.pow(10, precision);\n    }\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this.input.focus();\n      this.recordCursorPosition();\n    }\n  }, {\n    key: \"blur\",\n    value: function blur() {\n      this.input.blur();\n    }\n  }, {\n    key: \"select\",\n    value: function select() {\n      this.input.select();\n    }\n  }, {\n    key: \"formatWrapper\",\n    value: function formatWrapper(num) {\n      // http://2ality.com/2012/03/signedzero.html\n      // https://github.com/ant-design/ant-design/issues/9439\n      if (this.props.formatter) {\n        return this.props.formatter(num);\n      }\n\n      return num;\n    }\n  }, {\n    key: \"toPrecisionAsStep\",\n    value: function toPrecisionAsStep(num) {\n      if (this.isNotCompleteNumber(num) || num === '') {\n        return num;\n      }\n\n      var precision = Math.abs(this.getMaxPrecision(num));\n\n      if (!isNaN(precision)) {\n        return Number(num).toFixed(precision);\n      }\n\n      return num.toString();\n    }\n  }, {\n    key: \"toNumber\",\n    value: function toNumber(num) {\n      var precision = this.props.precision;\n      var focused = this.state.focused; // num.length > 16 => This is to prevent input of large numbers\n\n      var numberIsTooLarge = num && num.length > 16 && focused;\n\n      if (this.isNotCompleteNumber(num) || numberIsTooLarge) {\n        return num;\n      }\n\n      if (isValidProps(precision)) {\n        return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);\n      }\n\n      return Number(num);\n    }\n  }, {\n    key: \"upStep\",\n    value: function upStep(val, rat) {\n      var step = this.props.step;\n      var precisionFactor = this.getPrecisionFactor(val, rat);\n      var precision = Math.abs(this.getMaxPrecision(val, rat));\n      var result = ((precisionFactor * val + precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n      return this.toNumber(result);\n    }\n  }, {\n    key: \"downStep\",\n    value: function downStep(val, rat) {\n      var step = this.props.step;\n      var precisionFactor = this.getPrecisionFactor(val, rat);\n      var precision = Math.abs(this.getMaxPrecision(val, rat));\n      var result = ((precisionFactor * val - precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n      return this.toNumber(result);\n    }\n  }, {\n    key: \"step\",\n    value: function step(type, e) {\n      var _this2 = this;\n\n      var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n      var recursive = arguments.length > 3 ? arguments[3] : undefined;\n      this.stop();\n\n      if (e) {\n        e.persist();\n        e.preventDefault();\n      }\n\n      var props = this.props;\n\n      if (props.disabled) {\n        return;\n      }\n\n      var value = this.getCurrentValidValue(this.state.inputValue) || 0;\n\n      if (this.isNotCompleteNumber(value)) {\n        return;\n      }\n\n      var val = this[\"\".concat(type, \"Step\")](value, ratio);\n      var outOfRange = val > props.max || val < props.min;\n\n      if (val > props.max) {\n        val = props.max;\n      } else if (val < props.min) {\n        val = props.min;\n      }\n\n      this.setValue(val, null);\n      if (props.onStep) props.onStep(val, {\n        offset: ratio,\n        type: type\n      });\n      this.setState({\n        focused: true\n      }, function () {\n        _this2.pressingUpOrDown = false;\n      });\n\n      if (outOfRange) {\n        return;\n      }\n\n      this.autoStepTimer = setTimeout(function () {\n        _this2[type](e, ratio, true);\n      }, recursive ? SPEED : DELAY);\n    }\n  }, {\n    key: \"fixCaret\",\n    value: function fixCaret(start, end) {\n      if (start === undefined || end === undefined || !this.input || !this.input.value) {\n        return;\n      }\n\n      try {\n        var currentStart = this.input.selectionStart;\n        var currentEnd = this.input.selectionEnd;\n\n        if (start !== currentStart || end !== currentEnd) {\n          this.input.setSelectionRange(start, end);\n        }\n      } catch (e) {// Fix error in Chrome:\n        // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n        // http://stackoverflow.com/q/21177489/3040605\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props5 = this.props,\n          prefixCls = _this$props5.prefixCls,\n          disabled = _this$props5.disabled,\n          readOnly = _this$props5.readOnly,\n          useTouch = _this$props5.useTouch,\n          autoComplete = _this$props5.autoComplete,\n          upHandler = _this$props5.upHandler,\n          downHandler = _this$props5.downHandler,\n          className = _this$props5.className,\n          max = _this$props5.max,\n          min = _this$props5.min,\n          style = _this$props5.style,\n          title = _this$props5.title,\n          onMouseEnter = _this$props5.onMouseEnter,\n          onMouseLeave = _this$props5.onMouseLeave,\n          onMouseOver = _this$props5.onMouseOver,\n          onMouseOut = _this$props5.onMouseOut,\n          required = _this$props5.required,\n          onClick = _this$props5.onClick,\n          tabIndex = _this$props5.tabIndex,\n          type = _this$props5.type,\n          placeholder = _this$props5.placeholder,\n          id = _this$props5.id,\n          inputMode = _this$props5.inputMode,\n          pattern = _this$props5.pattern,\n          step = _this$props5.step,\n          maxLength = _this$props5.maxLength,\n          autoFocus = _this$props5.autoFocus,\n          name = _this$props5.name,\n          onPaste = _this$props5.onPaste,\n          onInput = _this$props5.onInput,\n          rest = _objectWithoutProperties(_this$props5, [\"prefixCls\", \"disabled\", \"readOnly\", \"useTouch\", \"autoComplete\", \"upHandler\", \"downHandler\", \"className\", \"max\", \"min\", \"style\", \"title\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseOver\", \"onMouseOut\", \"required\", \"onClick\", \"tabIndex\", \"type\", \"placeholder\", \"id\", \"inputMode\", \"pattern\", \"step\", \"maxLength\", \"autoFocus\", \"name\", \"onPaste\", \"onInput\"]);\n\n      var _this$state = this.state,\n          value = _this$state.value,\n          focused = _this$state.focused;\n      var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, className, !!className), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _classNames));\n      var dataOrAriaAttributeProps = {};\n      Object.keys(rest).forEach(function (key) {\n        if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n          dataOrAriaAttributeProps[key] = rest[key];\n        }\n      });\n      var editable = !readOnly && !disabled; // focus state, show input value\n      // unfocus state, show valid value\n\n      var inputDisplayValue = this.getInputDisplayValue(null);\n      var upDisabled = (value || value === 0) && (isNaN(value) || Number(value) >= max);\n      var downDisabled = (value || value === 0) && (isNaN(value) || Number(value) <= min);\n      var isUpDisabled = upDisabled || disabled || readOnly;\n      var isDownDisabled = downDisabled || disabled || readOnly;\n      var upClassName = classNames(\"\".concat(prefixCls, \"-handler\"), \"\".concat(prefixCls, \"-handler-up\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-up-disabled\"), isUpDisabled));\n      var downClassName = classNames(\"\".concat(prefixCls, \"-handler\"), \"\".concat(prefixCls, \"-handler-down\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-down-disabled\"), isDownDisabled));\n      var upEvents = useTouch ? {\n        onTouchStart: isUpDisabled ? noop : this.up,\n        onTouchEnd: this.stop\n      } : {\n        onMouseDown: isUpDisabled ? noop : this.up,\n        onMouseUp: this.stop,\n        onMouseLeave: this.stop\n      };\n      var downEvents = useTouch ? {\n        onTouchStart: isDownDisabled ? noop : this.down,\n        onTouchEnd: this.stop\n      } : {\n        onMouseDown: isDownDisabled ? noop : this.down,\n        onMouseUp: this.stop,\n        onMouseLeave: this.stop\n      };\n      return React.createElement(\"div\", {\n        className: classes,\n        style: style,\n        title: title,\n        onMouseEnter: onMouseEnter,\n        onMouseLeave: onMouseLeave,\n        onMouseOver: onMouseOver,\n        onMouseOut: onMouseOut,\n        onFocus: function onFocus() {\n          return null;\n        },\n        onBlur: function onBlur() {\n          return null;\n        }\n      }, React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-handler-wrap\")\n      }, React.createElement(\"span\", Object.assign({\n        unselectable: \"on\"\n      }, upEvents, {\n        role: \"button\",\n        \"aria-label\": \"Increase Value\",\n        \"aria-disabled\": isUpDisabled,\n        className: upClassName\n      }), upHandler || React.createElement(\"span\", {\n        unselectable: \"on\",\n        className: \"\".concat(prefixCls, \"-handler-up-inner\"),\n        onClick: preventDefault\n      })), React.createElement(\"span\", Object.assign({\n        unselectable: \"on\"\n      }, downEvents, {\n        role: \"button\",\n        \"aria-label\": \"Decrease Value\",\n        \"aria-disabled\": isDownDisabled,\n        className: downClassName\n      }), downHandler || React.createElement(\"span\", {\n        unselectable: \"on\",\n        className: \"\".concat(prefixCls, \"-handler-down-inner\"),\n        onClick: preventDefault\n      }))), React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-input-wrap\")\n      }, React.createElement(\"input\", Object.assign({\n        role: \"spinbutton\",\n        \"aria-valuemin\": min,\n        \"aria-valuemax\": max,\n        \"aria-valuenow\": value,\n        required: required,\n        type: type,\n        placeholder: placeholder,\n        onPaste: onPaste,\n        onClick: onClick,\n        onMouseUp: this.onMouseUp,\n        className: \"\".concat(prefixCls, \"-input\"),\n        tabIndex: tabIndex,\n        autoComplete: autoComplete,\n        onFocus: this.onFocus,\n        onBlur: this.onBlur,\n        onKeyDown: editable ? this.onKeyDown : noop,\n        onKeyUp: editable ? this.onKeyUp : noop,\n        autoFocus: autoFocus,\n        maxLength: maxLength,\n        readOnly: readOnly,\n        disabled: disabled,\n        max: max,\n        min: min,\n        step: step,\n        name: name,\n        title: title,\n        id: id,\n        onChange: this.onChange,\n        ref: this.saveInput,\n        value: this.getFullNum(inputDisplayValue),\n        pattern: pattern,\n        inputMode: inputMode,\n        onInput: onInput\n      }, dataOrAriaAttributeProps))));\n    }\n  }]);\n\n  return InputNumber;\n}(React.Component);\n\nInputNumber.defaultProps = {\n  focusOnUpDown: true,\n  useTouch: false,\n  prefixCls: 'rc-input-number',\n  max: MAX_SAFE_INTEGER,\n  min: -MAX_SAFE_INTEGER,\n  step: 1,\n  style: {},\n  onChange: noop,\n  onKeyDown: noop,\n  onPressEnter: noop,\n  onFocus: noop,\n  onBlur: noop,\n  parser: defaultParser,\n  required: false,\n  autoComplete: 'off'\n};\nexport default InputNumber;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-input-number/es/InputNumber.js"],"names":["_defineProperty","_objectWithoutProperties","_objectSpread","_classCallCheck","_createClass","_inherits","_createSuper","React","classNames","KeyCode","noop","preventDefault","e","defaultParser","input","replace","SPEED","DELAY","MAX_SAFE_INTEGER","Number","Math","pow","isValidProps","value","undefined","isEqual","oldValue","newValue","isNaN","InputNumber","_React$Component","_super","props","_this","call","onKeyDown","_this$props","onPressEnter","keyCode","UP","ratio","getRatio","up","stop","DOWN","_ratio","down","ENTER","recordCursorPosition","lastKeyCode","_len","arguments","length","args","Array","_key","apply","concat","onKeyUp","_len2","_key2","onChange","state","focused","inputting","rawInput","parser","getValueFromEvent","setState","inputValue","toNumber","onMouseUp","onFocus","_this$props2","onBlur","getCurrentValidValue","setValue","originValue","displayValue","getInputDisplayValue","focus","metaKey","ctrlKey","shiftKey","getFullNum","num","test","String","toFixed","getPrecision","precision","valueString","indexOf","parseInt","slice","_ref","inputDisplayValue","toPrecisionAsStep","inputDisplayValueFormat","formatWrapper","decimalSeparator","toString","cursorStart","selectionStart","cursorEnd","selectionEnd","currentValue","cursorBefore","substring","cursorAfter","restoreByAfter","str","fullStr","index","lastIndexOf","prevCursorPos","DELETE","charAt","fixCaret","partRestoreByAfter","prototype","some","_","start","partStr","isNotCompleteNumber","autoStepTimer","clearTimeout","recursive","pressingUpOrDown","step","saveInput","node","defaultValue","autoFocus","validValue","getValidValue","key","componentDidMount","componentDidUpdate","prevProps","_this$props3","max","min","nextInputValue","nextValue","pos","BACKSPACE","focusOnUpDown","document","activeElement","componentWillUnmount","val","parseFloat","target","trim","v","callback","_this$state$value","_this$state$inputValu","newValueInString","changed","getMaxPrecision","_this$props4","ratioPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","blur","select","formatter","abs","numberIsTooLarge","round","upStep","rat","precisionFactor","result","downStep","type","_this2","persist","disabled","outOfRange","onStep","offset","setTimeout","end","currentStart","currentEnd","setSelectionRange","render","_classNames","_this$props5","prefixCls","readOnly","useTouch","autoComplete","upHandler","downHandler","className","style","title","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","required","onClick","tabIndex","placeholder","id","inputMode","pattern","maxLength","name","onPaste","onInput","rest","_this$state","classes","dataOrAriaAttributeProps","Object","keys","forEach","substr","editable","upDisabled","downDisabled","isUpDisabled","isDownDisabled","upClassName","downClassName","upEvents","onTouchStart","onTouchEnd","onMouseDown","downEvents","createElement","assign","unselectable","role","ref","Component","defaultProps"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\n\nfunction noop() {}\n\nfunction preventDefault(e) {\n  e.preventDefault();\n}\n\nvar defaultParser = function defaultParser(input) {\n  return input.replace(/[^\\w.-]+/g, '');\n};\n/**\n * When click and hold on a button - the speed of auto changin the value.\n */\n\n\nvar SPEED = 200;\n/**\n * When click and hold on a button - the delay before auto changin the value.\n */\n\nvar DELAY = 600;\n/**\n * Max Safe Integer -- on IE this is not available, so manually set the number in that case.\n * The reason this is used, instead of Infinity is because numbers above the MSI are unstable\n */\n\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar isValidProps = function isValidProps(value) {\n  return value !== undefined && value !== null;\n};\n\nvar isEqual = function isEqual(oldValue, newValue) {\n  return newValue === oldValue || typeof newValue === 'number' && typeof oldValue === 'number' && isNaN(newValue) && isNaN(oldValue);\n};\n\nvar InputNumber = /*#__PURE__*/function (_React$Component) {\n  _inherits(InputNumber, _React$Component);\n\n  var _super = _createSuper(InputNumber);\n\n  function InputNumber(props) {\n    var _this;\n\n    _classCallCheck(this, InputNumber);\n\n    _this = _super.call(this, props);\n\n    _this.onKeyDown = function (e) {\n      var _this$props = _this.props,\n          onKeyDown = _this$props.onKeyDown,\n          onPressEnter = _this$props.onPressEnter;\n\n      if (e.keyCode === KeyCode.UP) {\n        var ratio = _this.getRatio(e);\n\n        _this.up(e, ratio, null);\n\n        _this.stop();\n      } else if (e.keyCode === KeyCode.DOWN) {\n        var _ratio = _this.getRatio(e);\n\n        _this.down(e, _ratio, null);\n\n        _this.stop();\n      } else if (e.keyCode === KeyCode.ENTER && onPressEnter) {\n        onPressEnter(e);\n      } // Trigger user key down\n\n\n      _this.recordCursorPosition();\n\n      _this.lastKeyCode = e.keyCode;\n\n      if (onKeyDown) {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n\n        onKeyDown.apply(void 0, [e].concat(args));\n      }\n    };\n\n    _this.onKeyUp = function (e) {\n      var onKeyUp = _this.props.onKeyUp;\n\n      _this.stop();\n\n      _this.recordCursorPosition(); // Trigger user key up\n\n\n      if (onKeyUp) {\n        for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n          args[_key2 - 1] = arguments[_key2];\n        }\n\n        onKeyUp.apply(void 0, [e].concat(args));\n      }\n    };\n\n    _this.onChange = function (e) {\n      var onChange = _this.props.onChange;\n\n      if (_this.state.focused) {\n        _this.inputting = true;\n      }\n\n      _this.rawInput = _this.props.parser(_this.getValueFromEvent(e));\n\n      _this.setState({\n        inputValue: _this.rawInput\n      });\n\n      onChange(_this.toNumber(_this.rawInput)); // valid number or invalid string\n    };\n\n    _this.onMouseUp = function () {\n      var onMouseUp = _this.props.onMouseUp;\n\n      _this.recordCursorPosition();\n\n      if (onMouseUp) {\n        onMouseUp.apply(void 0, arguments);\n      }\n    };\n\n    _this.onFocus = function () {\n      var _this$props2;\n\n      _this.setState({\n        focused: true\n      });\n\n      (_this$props2 = _this.props).onFocus.apply(_this$props2, arguments);\n    };\n\n    _this.onBlur = function () {\n      var onBlur = _this.props.onBlur;\n      _this.inputting = false;\n\n      _this.setState({\n        focused: false\n      });\n\n      var value = _this.getCurrentValidValue(_this.state.inputValue);\n\n      var newValue = _this.setValue(value, noop);\n\n      if (onBlur) {\n        var originValue = _this.input.value;\n\n        var displayValue = _this.getInputDisplayValue({\n          focus: false,\n          value: newValue\n        });\n\n        _this.input.value = displayValue;\n        onBlur.apply(void 0, arguments);\n        _this.input.value = originValue;\n      }\n    };\n\n    _this.getRatio = function (e) {\n      var ratio = 1;\n\n      if (e.metaKey || e.ctrlKey) {\n        ratio = 0.1;\n      } else if (e.shiftKey) {\n        ratio = 10;\n      }\n\n      return ratio;\n    };\n\n    _this.getFullNum = function (num) {\n      if (isNaN(num)) {\n        return num;\n      }\n\n      if (!/e/i.test(String(num))) {\n        return num;\n      }\n\n      return Number(num).toFixed(18).replace(/\\.?0+$/, '');\n    };\n\n    _this.getPrecision = function (value) {\n      if (isValidProps(_this.props.precision)) {\n        return _this.props.precision;\n      }\n\n      var valueString = String(value);\n\n      if (valueString.indexOf('e-') >= 0) {\n        return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n      }\n\n      var precision = 0;\n\n      if (valueString.indexOf('.') >= 0) {\n        precision = valueString.length - valueString.indexOf('.') - 1;\n      }\n\n      return precision;\n    };\n\n    _this.getInputDisplayValue = function (state) {\n      var _ref = state || _this.state,\n          focused = _ref.focused,\n          inputValue = _ref.inputValue,\n          value = _ref.value;\n\n      var inputDisplayValue;\n\n      if (focused) {\n        inputDisplayValue = inputValue;\n      } else {\n        inputDisplayValue = _this.toPrecisionAsStep(value);\n      }\n\n      if (inputDisplayValue === undefined || inputDisplayValue === null) {\n        inputDisplayValue = '';\n      }\n\n      var inputDisplayValueFormat = _this.formatWrapper(inputDisplayValue);\n\n      if (isValidProps(_this.props.decimalSeparator)) {\n        inputDisplayValueFormat = inputDisplayValueFormat.toString().replace('.', _this.props.decimalSeparator);\n      }\n\n      return inputDisplayValueFormat;\n    };\n\n    _this.recordCursorPosition = function () {\n      // Record position\n      try {\n        _this.cursorStart = _this.input.selectionStart;\n        _this.cursorEnd = _this.input.selectionEnd;\n        _this.currentValue = _this.input.value;\n        _this.cursorBefore = _this.input.value.substring(0, _this.cursorStart);\n        _this.cursorAfter = _this.input.value.substring(_this.cursorEnd);\n      } catch (e) {// Fix error in Chrome:\n        // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n        // http://stackoverflow.com/q/21177489/3040605\n      }\n    };\n\n    _this.restoreByAfter = function (str) {\n      if (str === undefined) return false;\n      var fullStr = _this.input.value;\n      var index = fullStr.lastIndexOf(str);\n      if (index === -1) return false;\n      var prevCursorPos = _this.cursorBefore.length;\n\n      if (_this.lastKeyCode === KeyCode.DELETE && _this.cursorBefore.charAt(prevCursorPos - 1) === str[0]) {\n        _this.fixCaret(prevCursorPos, prevCursorPos);\n\n        return true;\n      }\n\n      if (index + str.length === fullStr.length) {\n        _this.fixCaret(index, index);\n\n        return true;\n      }\n\n      return false;\n    };\n\n    _this.partRestoreByAfter = function (str) {\n      if (str === undefined) return false; // For loop from full str to the str with last char to map. e.g. 123\n      // -> 123\n      // -> 23\n      // -> 3\n\n      return Array.prototype.some.call(str, function (_, start) {\n        var partStr = str.substring(start);\n        return _this.restoreByAfter(partStr);\n      });\n    }; // '1.' '1x' 'xx' '' => are not complete numbers\n\n\n    _this.isNotCompleteNumber = function (num) {\n      return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;\n    };\n\n    _this.stop = function () {\n      if (_this.autoStepTimer) {\n        clearTimeout(_this.autoStepTimer);\n      }\n    };\n\n    _this.down = function (e, ratio, recursive) {\n      _this.pressingUpOrDown = true;\n\n      _this.step('down', e, ratio, recursive);\n    };\n\n    _this.up = function (e, ratio, recursive) {\n      _this.pressingUpOrDown = true;\n\n      _this.step('up', e, ratio, recursive);\n    };\n\n    _this.saveInput = function (node) {\n      _this.input = node;\n    };\n\n    var value = props.value;\n\n    if (value === undefined) {\n      value = props.defaultValue;\n    }\n\n    _this.state = {\n      focused: props.autoFocus\n    };\n\n    var validValue = _this.getValidValue(_this.toNumber(value));\n\n    _this.state = _objectSpread(_objectSpread({}, _this.state), {}, {\n      inputValue: _this.toPrecisionAsStep(validValue),\n      value: validValue\n    });\n    return _this;\n  }\n\n  _createClass(InputNumber, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.componentDidUpdate(null);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props3 = this.props,\n          value = _this$props3.value,\n          onChange = _this$props3.onChange,\n          max = _this$props3.max,\n          min = _this$props3.min;\n      var focused = this.state.focused; // Don't trigger in componentDidMount\n\n      if (prevProps) {\n        if (!isEqual(prevProps.value, value) || !isEqual(prevProps.max, max) || !isEqual(prevProps.min, min)) {\n          var validValue = focused ? value : this.getValidValue(value);\n          var nextInputValue;\n\n          if (this.pressingUpOrDown) {\n            nextInputValue = validValue;\n          } else if (this.inputting) {\n            nextInputValue = this.rawInput;\n          } else {\n            nextInputValue = this.toPrecisionAsStep(validValue);\n          }\n\n          this.setState({\n            // eslint-disable-line\n            value: validValue,\n            inputValue: nextInputValue\n          });\n        } // Trigger onChange when max or min change\n        // https://github.com/ant-design/ant-design/issues/11574\n\n\n        var nextValue = 'value' in this.props ? value : this.state.value; // ref: null < 20 === true\n        // https://github.com/ant-design/ant-design/issues/14277\n\n        if ('max' in this.props && prevProps.max !== max && typeof nextValue === 'number' && nextValue > max && onChange) {\n          onChange(max);\n        }\n\n        if ('min' in this.props && prevProps.min !== min && typeof nextValue === 'number' && nextValue < min && onChange) {\n          onChange(min);\n        }\n      } // Restore cursor\n\n\n      try {\n        // Firefox set the input cursor after it get focused.\n        // This caused that if an input didn't init with the selection,\n        // set will cause cursor not correct when first focus.\n        // Safari will focus input if set selection. We need skip this.\n        if (this.cursorStart !== undefined && this.state.focused) {\n          // In most cases, the string after cursor is stable.\n          // We can move the cursor before it\n          if ( // If not match full str, try to match part of str\n          !this.partRestoreByAfter(this.cursorAfter) && this.state.value !== this.props.value) {\n            // If not match any of then, let's just keep the position\n            // TODO: Logic should not reach here, need check if happens\n            var pos = this.cursorStart + 1; // If not have last string, just position to the end\n\n            if (!this.cursorAfter) {\n              pos = this.input.value.length;\n            } else if (this.lastKeyCode === KeyCode.BACKSPACE) {\n              pos = this.cursorStart - 1;\n            } else if (this.lastKeyCode === KeyCode.DELETE) {\n              pos = this.cursorStart;\n            }\n\n            this.fixCaret(pos, pos);\n          } else if (this.currentValue === this.input.value) {\n            // Handle some special key code\n            switch (this.lastKeyCode) {\n              case KeyCode.BACKSPACE:\n                this.fixCaret(this.cursorStart - 1, this.cursorStart - 1);\n                break;\n\n              case KeyCode.DELETE:\n                this.fixCaret(this.cursorStart + 1, this.cursorStart + 1);\n                break;\n\n              default: // Do nothing\n\n            }\n          }\n        }\n      } catch (e) {// Do nothing\n      } // Reset last key\n\n\n      this.lastKeyCode = null; // pressingUpOrDown is true means that someone just click up or down button\n\n      if (!this.pressingUpOrDown) {\n        return;\n      }\n\n      if (this.props.focusOnUpDown && this.state.focused) {\n        if (document.activeElement !== this.input) {\n          this.focus();\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.stop();\n    }\n  }, {\n    key: \"getCurrentValidValue\",\n    value: function getCurrentValidValue(value) {\n      var val = value;\n\n      if (val === '') {\n        val = '';\n      } else if (!this.isNotCompleteNumber(parseFloat(val))) {\n        val = this.getValidValue(val);\n      } else {\n        val = this.state.value;\n      }\n\n      return this.toNumber(val);\n    }\n  }, {\n    key: \"getValueFromEvent\",\n    value: function getValueFromEvent(e) {\n      // optimize for chinese input expierence\n      // https://github.com/ant-design/ant-design/issues/8196\n      var value = e.target.value.trim().replace(/。/g, '.');\n\n      if (isValidProps(this.props.decimalSeparator)) {\n        value = value.replace(this.props.decimalSeparator, '.');\n      }\n\n      return value;\n    }\n  }, {\n    key: \"getValidValue\",\n    value: function getValidValue(value) {\n      var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;\n      var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;\n      var val = parseFloat(value); // https://github.com/ant-design/ant-design/issues/7358\n\n      if (isNaN(val)) {\n        return value;\n      }\n\n      if (val < min) {\n        val = min;\n      }\n\n      if (val > max) {\n        val = max;\n      }\n\n      return val;\n    }\n  }, {\n    key: \"setValue\",\n    value: function setValue(v, callback) {\n      // trigger onChange\n      var precision = this.props.precision;\n      var newValue = this.isNotCompleteNumber(parseFloat(v)) ? null : parseFloat(v);\n      var _this$state$value = this.state.value,\n          value = _this$state$value === void 0 ? null : _this$state$value;\n      var _this$state$inputValu = this.state.inputValue,\n          inputValue = _this$state$inputValu === void 0 ? null : _this$state$inputValu; // https://github.com/ant-design/ant-design/issues/7363\n      // https://github.com/ant-design/ant-design/issues/16622\n\n      var newValueInString = typeof newValue === 'number' ? newValue.toFixed(precision) : \"\".concat(newValue);\n      var changed = newValue !== value || newValueInString !== \"\".concat(inputValue);\n\n      if (!('value' in this.props)) {\n        this.setState({\n          value: newValue,\n          inputValue: this.toPrecisionAsStep(v)\n        }, callback);\n      } else {\n        // always set input value same as value\n        inputValue = this.toPrecisionAsStep(this.state.value);\n        this.setState({\n          inputValue: inputValue\n        }, callback);\n      }\n\n      if (changed) {\n        this.props.onChange(newValue);\n      }\n\n      return newValue;\n    } // step={1.0} value={1.51}\n    // press +\n    // then value should be 2.51, rather than 2.5\n    // if this.props.precision is undefined\n    // https://github.com/react-component/input-number/issues/39\n\n  }, {\n    key: \"getMaxPrecision\",\n    value: function getMaxPrecision(currentValue) {\n      var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      var _this$props4 = this.props,\n          precision = _this$props4.precision,\n          step = _this$props4.step;\n\n      if (isValidProps(precision)) {\n        return precision;\n      }\n\n      var ratioPrecision = this.getPrecision(ratio);\n      var stepPrecision = this.getPrecision(step);\n      var currentValuePrecision = this.getPrecision(currentValue);\n\n      if (!currentValue) {\n        return ratioPrecision + stepPrecision;\n      }\n\n      return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n    }\n  }, {\n    key: \"getPrecisionFactor\",\n    value: function getPrecisionFactor(currentValue) {\n      var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      var precision = this.getMaxPrecision(currentValue, ratio);\n      return Math.pow(10, precision);\n    }\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this.input.focus();\n      this.recordCursorPosition();\n    }\n  }, {\n    key: \"blur\",\n    value: function blur() {\n      this.input.blur();\n    }\n  }, {\n    key: \"select\",\n    value: function select() {\n      this.input.select();\n    }\n  }, {\n    key: \"formatWrapper\",\n    value: function formatWrapper(num) {\n      // http://2ality.com/2012/03/signedzero.html\n      // https://github.com/ant-design/ant-design/issues/9439\n      if (this.props.formatter) {\n        return this.props.formatter(num);\n      }\n\n      return num;\n    }\n  }, {\n    key: \"toPrecisionAsStep\",\n    value: function toPrecisionAsStep(num) {\n      if (this.isNotCompleteNumber(num) || num === '') {\n        return num;\n      }\n\n      var precision = Math.abs(this.getMaxPrecision(num));\n\n      if (!isNaN(precision)) {\n        return Number(num).toFixed(precision);\n      }\n\n      return num.toString();\n    }\n  }, {\n    key: \"toNumber\",\n    value: function toNumber(num) {\n      var precision = this.props.precision;\n      var focused = this.state.focused; // num.length > 16 => This is to prevent input of large numbers\n\n      var numberIsTooLarge = num && num.length > 16 && focused;\n\n      if (this.isNotCompleteNumber(num) || numberIsTooLarge) {\n        return num;\n      }\n\n      if (isValidProps(precision)) {\n        return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);\n      }\n\n      return Number(num);\n    }\n  }, {\n    key: \"upStep\",\n    value: function upStep(val, rat) {\n      var step = this.props.step;\n      var precisionFactor = this.getPrecisionFactor(val, rat);\n      var precision = Math.abs(this.getMaxPrecision(val, rat));\n      var result = ((precisionFactor * val + precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n      return this.toNumber(result);\n    }\n  }, {\n    key: \"downStep\",\n    value: function downStep(val, rat) {\n      var step = this.props.step;\n      var precisionFactor = this.getPrecisionFactor(val, rat);\n      var precision = Math.abs(this.getMaxPrecision(val, rat));\n      var result = ((precisionFactor * val - precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n      return this.toNumber(result);\n    }\n  }, {\n    key: \"step\",\n    value: function step(type, e) {\n      var _this2 = this;\n\n      var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n      var recursive = arguments.length > 3 ? arguments[3] : undefined;\n      this.stop();\n\n      if (e) {\n        e.persist();\n        e.preventDefault();\n      }\n\n      var props = this.props;\n\n      if (props.disabled) {\n        return;\n      }\n\n      var value = this.getCurrentValidValue(this.state.inputValue) || 0;\n\n      if (this.isNotCompleteNumber(value)) {\n        return;\n      }\n\n      var val = this[\"\".concat(type, \"Step\")](value, ratio);\n      var outOfRange = val > props.max || val < props.min;\n\n      if (val > props.max) {\n        val = props.max;\n      } else if (val < props.min) {\n        val = props.min;\n      }\n\n      this.setValue(val, null);\n      if (props.onStep) props.onStep(val, {\n        offset: ratio,\n        type: type\n      });\n      this.setState({\n        focused: true\n      }, function () {\n        _this2.pressingUpOrDown = false;\n      });\n\n      if (outOfRange) {\n        return;\n      }\n\n      this.autoStepTimer = setTimeout(function () {\n        _this2[type](e, ratio, true);\n      }, recursive ? SPEED : DELAY);\n    }\n  }, {\n    key: \"fixCaret\",\n    value: function fixCaret(start, end) {\n      if (start === undefined || end === undefined || !this.input || !this.input.value) {\n        return;\n      }\n\n      try {\n        var currentStart = this.input.selectionStart;\n        var currentEnd = this.input.selectionEnd;\n\n        if (start !== currentStart || end !== currentEnd) {\n          this.input.setSelectionRange(start, end);\n        }\n      } catch (e) {// Fix error in Chrome:\n        // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n        // http://stackoverflow.com/q/21177489/3040605\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props5 = this.props,\n          prefixCls = _this$props5.prefixCls,\n          disabled = _this$props5.disabled,\n          readOnly = _this$props5.readOnly,\n          useTouch = _this$props5.useTouch,\n          autoComplete = _this$props5.autoComplete,\n          upHandler = _this$props5.upHandler,\n          downHandler = _this$props5.downHandler,\n          className = _this$props5.className,\n          max = _this$props5.max,\n          min = _this$props5.min,\n          style = _this$props5.style,\n          title = _this$props5.title,\n          onMouseEnter = _this$props5.onMouseEnter,\n          onMouseLeave = _this$props5.onMouseLeave,\n          onMouseOver = _this$props5.onMouseOver,\n          onMouseOut = _this$props5.onMouseOut,\n          required = _this$props5.required,\n          onClick = _this$props5.onClick,\n          tabIndex = _this$props5.tabIndex,\n          type = _this$props5.type,\n          placeholder = _this$props5.placeholder,\n          id = _this$props5.id,\n          inputMode = _this$props5.inputMode,\n          pattern = _this$props5.pattern,\n          step = _this$props5.step,\n          maxLength = _this$props5.maxLength,\n          autoFocus = _this$props5.autoFocus,\n          name = _this$props5.name,\n          onPaste = _this$props5.onPaste,\n          onInput = _this$props5.onInput,\n          rest = _objectWithoutProperties(_this$props5, [\"prefixCls\", \"disabled\", \"readOnly\", \"useTouch\", \"autoComplete\", \"upHandler\", \"downHandler\", \"className\", \"max\", \"min\", \"style\", \"title\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseOver\", \"onMouseOut\", \"required\", \"onClick\", \"tabIndex\", \"type\", \"placeholder\", \"id\", \"inputMode\", \"pattern\", \"step\", \"maxLength\", \"autoFocus\", \"name\", \"onPaste\", \"onInput\"]);\n\n      var _this$state = this.state,\n          value = _this$state.value,\n          focused = _this$state.focused;\n      var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, className, !!className), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _classNames));\n      var dataOrAriaAttributeProps = {};\n      Object.keys(rest).forEach(function (key) {\n        if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n          dataOrAriaAttributeProps[key] = rest[key];\n        }\n      });\n      var editable = !readOnly && !disabled; // focus state, show input value\n      // unfocus state, show valid value\n\n      var inputDisplayValue = this.getInputDisplayValue(null);\n      var upDisabled = (value || value === 0) && (isNaN(value) || Number(value) >= max);\n      var downDisabled = (value || value === 0) && (isNaN(value) || Number(value) <= min);\n      var isUpDisabled = upDisabled || disabled || readOnly;\n      var isDownDisabled = downDisabled || disabled || readOnly;\n      var upClassName = classNames(\"\".concat(prefixCls, \"-handler\"), \"\".concat(prefixCls, \"-handler-up\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-up-disabled\"), isUpDisabled));\n      var downClassName = classNames(\"\".concat(prefixCls, \"-handler\"), \"\".concat(prefixCls, \"-handler-down\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-down-disabled\"), isDownDisabled));\n      var upEvents = useTouch ? {\n        onTouchStart: isUpDisabled ? noop : this.up,\n        onTouchEnd: this.stop\n      } : {\n        onMouseDown: isUpDisabled ? noop : this.up,\n        onMouseUp: this.stop,\n        onMouseLeave: this.stop\n      };\n      var downEvents = useTouch ? {\n        onTouchStart: isDownDisabled ? noop : this.down,\n        onTouchEnd: this.stop\n      } : {\n        onMouseDown: isDownDisabled ? noop : this.down,\n        onMouseUp: this.stop,\n        onMouseLeave: this.stop\n      };\n      return React.createElement(\"div\", {\n        className: classes,\n        style: style,\n        title: title,\n        onMouseEnter: onMouseEnter,\n        onMouseLeave: onMouseLeave,\n        onMouseOver: onMouseOver,\n        onMouseOut: onMouseOut,\n        onFocus: function onFocus() {\n          return null;\n        },\n        onBlur: function onBlur() {\n          return null;\n        }\n      }, React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-handler-wrap\")\n      }, React.createElement(\"span\", Object.assign({\n        unselectable: \"on\"\n      }, upEvents, {\n        role: \"button\",\n        \"aria-label\": \"Increase Value\",\n        \"aria-disabled\": isUpDisabled,\n        className: upClassName\n      }), upHandler || React.createElement(\"span\", {\n        unselectable: \"on\",\n        className: \"\".concat(prefixCls, \"-handler-up-inner\"),\n        onClick: preventDefault\n      })), React.createElement(\"span\", Object.assign({\n        unselectable: \"on\"\n      }, downEvents, {\n        role: \"button\",\n        \"aria-label\": \"Decrease Value\",\n        \"aria-disabled\": isDownDisabled,\n        className: downClassName\n      }), downHandler || React.createElement(\"span\", {\n        unselectable: \"on\",\n        className: \"\".concat(prefixCls, \"-handler-down-inner\"),\n        onClick: preventDefault\n      }))), React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-input-wrap\")\n      }, React.createElement(\"input\", Object.assign({\n        role: \"spinbutton\",\n        \"aria-valuemin\": min,\n        \"aria-valuemax\": max,\n        \"aria-valuenow\": value,\n        required: required,\n        type: type,\n        placeholder: placeholder,\n        onPaste: onPaste,\n        onClick: onClick,\n        onMouseUp: this.onMouseUp,\n        className: \"\".concat(prefixCls, \"-input\"),\n        tabIndex: tabIndex,\n        autoComplete: autoComplete,\n        onFocus: this.onFocus,\n        onBlur: this.onBlur,\n        onKeyDown: editable ? this.onKeyDown : noop,\n        onKeyUp: editable ? this.onKeyUp : noop,\n        autoFocus: autoFocus,\n        maxLength: maxLength,\n        readOnly: readOnly,\n        disabled: disabled,\n        max: max,\n        min: min,\n        step: step,\n        name: name,\n        title: title,\n        id: id,\n        onChange: this.onChange,\n        ref: this.saveInput,\n        value: this.getFullNum(inputDisplayValue),\n        pattern: pattern,\n        inputMode: inputMode,\n        onInput: onInput\n      }, dataOrAriaAttributeProps))));\n    }\n  }]);\n\n  return InputNumber;\n}(React.Component);\n\nInputNumber.defaultProps = {\n  focusOnUpDown: true,\n  useTouch: false,\n  prefixCls: 'rc-input-number',\n  max: MAX_SAFE_INTEGER,\n  min: -MAX_SAFE_INTEGER,\n  step: 1,\n  style: {},\n  onChange: noop,\n  onKeyDown: noop,\n  onPressEnter: noop,\n  onFocus: noop,\n  onBlur: noop,\n  parser: defaultParser,\n  required: false,\n  autoComplete: 'off'\n};\nexport default InputNumber;"]},"metadata":{},"sourceType":"module"}