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'; export const 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, }; const InputNumber = { name: 'AInputNumber', model: { prop: 'value', event: 'change', }, props: initDefaultProps(InputNumberProps, { prefixCls: 'ant-input-number', step: 1, }), methods: { focus() { this.$refs.inputNumberRef.focus(); }, blur() { this.$refs.inputNumberRef.blur(); }, }, render() { const { size, ...others } = getOptionProps(this); const inputNumberClass = classNames({ [`${this.prefixCls}-lg`]: size === 'large', [`${this.prefixCls}-sm`]: size === 'small', }); const upIcon = ; const downIcon = ; const vcInputNumberprops = { props: { upHandler: upIcon, downHandler: downIcon, ...others, }, class: inputNumberClass, ref: 'inputNumberRef', on: this.$listeners, }; return ; }, }; /* istanbul ignore next */ InputNumber.install = function(Vue) { Vue.component(InputNumber.name, InputNumber); }; export default InputNumber;