text: import _extends from 'babel-runtime/helpers/extends';
  import _defineProperty from 'babel-runtime/helpers/defineProperty';
  import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
  import PropTypes from '../_util/vue-types';
  import { initDefaultProps, getOptionProps } from '../_util/props-util';
  import classNames from 'classnames';
  import Icon from '../icon';
  import VcInputNumber from '../vc-input-number/src';
  import Base from '../base';
  
  export var InputNumberProps = {
    prefixCls: PropTypes.string,
    min: PropTypes.number,
    max: PropTypes.number,
    value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
    step: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
    defaultValue: PropTypes.number,
    tabIndex: PropTypes.number,
    disabled: PropTypes.bool,
    size: PropTypes.oneOf(['large', 'small', 'default']),
    formatter: PropTypes.func,
    parser: PropTypes.func,
    decimalSeparator: PropTypes.string,
    placeholder: PropTypes.string,
    name: PropTypes.string,
    id: PropTypes.string,
    precision: PropTypes.number,
    autoFocus: PropTypes.bool
  };
  
  var InputNumber = {
    name: 'AInputNumber',
    model: {
      prop: 'value',
      event: 'change'
    },
    props: initDefaultProps(InputNumberProps, {
      prefixCls: 'ant-input-number',
      step: 1
    }),
    methods: {
      focus: function focus() {
        this.$refs.inputNumberRef.focus();
      },
      blur: function blur() {
        this.$refs.inputNumberRef.blur();
      }
    },
  
    render: function render() {
      var _classNames;
  
      var h = arguments[0];
  
      var _getOptionProps = getOptionProps(this),
          size = _getOptionProps.size,
          others = _objectWithoutProperties(_getOptionProps, ['size']);
  
      var inputNumberClass = classNames((_classNames = {}, _defineProperty(_classNames, this.prefixCls + '-lg', size === 'large'), _defineProperty(_classNames, this.prefixCls + '-sm', size === 'small'), _classNames));
      var upIcon = h(Icon, {
        attrs: { type: 'up' },
        'class': this.prefixCls + '-handler-up-inner' });
      var downIcon = h(Icon, {
        attrs: { type: 'down' },
        'class': this.prefixCls + '-handler-down-inner' });
  
      var vcInputNumberprops = {
        props: _extends({
          upHandler: upIcon,
          downHandler: downIcon
        }, others),
        'class': inputNumberClass,
        ref: 'inputNumberRef',
        on: this.$listeners
      };
      return h(VcInputNumber, vcInputNumberprops);
    }
  };
  
  /* istanbul ignore next */
  InputNumber.install = function (Vue) {
    Vue.use(Base);
    Vue.component(InputNumber.name, InputNumber);
  };
  
  export default InputNumber;