cuz
Version:
Front-end modular development kit.
118 lines (94 loc) • 3.9 kB
JavaScript
'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'];