import React from 'react'; import assign from 'object-assign'; import classNames from 'classnames'; function ieGT9() { if (typeof document === undefined) { return false; } const documentMode = document.documentMode || 0; return documentMode > 9; } function fixControlledValue(value) { if (typeof value === 'undefined' || value === null) { return ''; } return value; } class Group extends React.Component { render() { const className = classNames({ 'ant-input-group': true, [this.props.className]: !!this.props.className, }); return ( {this.props.children} ); } } Group.propTypes = { children: React.PropTypes.any, }; class Input extends React.Component { renderLabledInput(children) { const props = this.props; const wrapperClassName = `${props.prefixCls}-group`; const addonClassName = `${wrapperClassName}-addon`; const addonBefore = props.addonBefore ? ( {props.addonBefore} ) : null; const addonAfter = props.addonAfter ? ( {props.addonAfter} ) : null; const className = classNames({ [`${props.prefixCls}-wrapper`]: true, [wrapperClassName]: (addonBefore || addonAfter), }); return ( {addonBefore} {children} {addonAfter} ); } renderInput() { const props = assign({}, this.props); const prefixCls = props.prefixCls; if (!props.type) { return props.children; } const inputClassName = classNames({ [prefixCls]: true, [`${prefixCls}-sm`]: props.size === 'small', [`${prefixCls}-lg`]: props.size === 'large', [props.className]: !!props.className, }); let placeholder = props.placeholder; if (placeholder && ieGT9()) { placeholder = null; } if ('value' in props) { props.value = fixControlledValue(props.value); } switch (props.type) { case 'textarea': return