UNPKG

cuz

Version:

Front-end modular development kit.

118 lines (94 loc) 3.9 kB
'use strict'; var _inherits = require('babel-runtime/helpers/inherits')['default']; var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default']; var _extends = require('babel-runtime/helpers/extends')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; exports.__esModule = true; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _reactBootstrap = require('react-bootstrap'); var _reactBootstrapLibFormGroup = require('react-bootstrap/lib/FormGroup'); var _reactBootstrapLibFormGroup2 = _interopRequireDefault(_reactBootstrapLibFormGroup); var cuzInput = (function (_Input) { _inherits(cuzInput, _Input); function cuzInput(props) { _classCallCheck(this, cuzInput); _Input.call(this, props); this.state = { checked: this.props.checked || false }; } cuzInput.prototype.handleRadio = function handleRadio() { var _props = this.props; var onSelect = _props.onSelect; var value = _props.value; var eventKey = _props.eventKey; if (onSelect) { onSelect(value, eventKey); } }; cuzInput.prototype.handleCheckbox = function handleCheckbox() { if (this.props.disabled) return; this.setState({ checked: !this.state.checked }); }; cuzInput.prototype.renderInput = function renderInput() { if (this.props.type === 'radio') { var className = this.isCheckboxOrRadio() ? '' : 'form-control'; return _react2['default'].createElement('input', _extends({}, this.props, { className: _classnames2['default'](this.props.className, className), onChange: _reactBootstrap.utils.createChainedFunction(this.props.onChange, this.handleRadio).bind(this), ref: 'input', key: 'input', style: {} })); } else if (this.props.type === 'checkbox') { var className = this.isCheckboxOrRadio() ? '' : 'form-control'; return _react2['default'].createElement('input', _extends({}, this.props, { className: _classnames2['default'](this.props.className, className), onChange: _reactBootstrap.utils.createChainedFunction(this.props.onChange, this.handleCheckbox).bind(this), ref: 'input', key: 'input', style: {} })); } return _Input.prototype.renderInput.call(this); }; cuzInput.prototype.renderLabel = function renderLabel(children) { var classes = { 'control-label': !this.isCheckboxOrRadio() }; classes[this.props.labelClassName] = this.props.labelClassName; if (this.props.type === 'radio') { classes.checked = this.props.checked; classes.disabled = this.props.disabled; } else if (this.props.type === 'checkbox') { classes.checked = this.props.checked === undefined ? this.state.checked : this.props.checked; classes['rect-checkbox'] = this.props.checkType === 'rect'; classes.disabled = this.props.disabled; } return _react2['default'].createElement( 'label', { htmlFor: this.props.id, className: _classnames2['default'](classes), key: 'label' }, children, this.props.label ); }; cuzInput.prototype.renderFormGroup = function renderFormGroup(children) { var isCheckboxOrRadio = this.isCheckboxOrRadio(); return _react2['default'].createElement( _reactBootstrapLibFormGroup2['default'], _extends({}, this.props, { standalone: isCheckboxOrRadio, groupClassName: _classnames2['default']({ 'form-item': isCheckboxOrRadio }) }), children ); }; cuzInput.prototype.render = function render() { return _Input.prototype.render.call(this); }; return cuzInput; })(_reactBootstrap.Input); exports['default'] = cuzInput; module.exports = exports['default'];