Files
icehrm/web/node_modules/rc-checkbox/es/index.js
2020-05-20 18:47:29 +02:00

149 lines
4.2 KiB
JavaScript

import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
import _extends from 'babel-runtime/helpers/extends';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
/* eslint-disable react/prop-types */
import React, { Component } from 'react';
import classNames from 'classnames';
var Checkbox = function (_Component) {
_inherits(Checkbox, _Component);
function Checkbox(props) {
_classCallCheck(this, Checkbox);
var _this = _possibleConstructorReturn(this, _Component.call(this, props));
_this.handleChange = function (e) {
var _this$props = _this.props,
disabled = _this$props.disabled,
onChange = _this$props.onChange;
if (disabled) {
return;
}
if (!('checked' in _this.props)) {
_this.setState({
checked: e.target.checked
});
}
if (onChange) {
onChange({
target: _extends({}, _this.props, {
checked: e.target.checked
}),
stopPropagation: function stopPropagation() {
e.stopPropagation();
},
preventDefault: function preventDefault() {
e.preventDefault();
},
nativeEvent: e.nativeEvent
});
}
};
_this.saveInput = function (node) {
_this.input = node;
};
var checked = 'checked' in props ? props.checked : props.defaultChecked;
_this.state = {
checked: checked
};
return _this;
}
Checkbox.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
if ('checked' in props) {
return _extends({}, state, {
checked: props.checked
});
}
return null;
};
Checkbox.prototype.focus = function focus() {
this.input.focus();
};
Checkbox.prototype.blur = function blur() {
this.input.blur();
};
Checkbox.prototype.render = function render() {
var _classNames;
var _props = this.props,
prefixCls = _props.prefixCls,
className = _props.className,
style = _props.style,
name = _props.name,
id = _props.id,
type = _props.type,
disabled = _props.disabled,
readOnly = _props.readOnly,
tabIndex = _props.tabIndex,
onClick = _props.onClick,
onFocus = _props.onFocus,
onBlur = _props.onBlur,
autoFocus = _props.autoFocus,
value = _props.value,
required = _props.required,
others = _objectWithoutProperties(_props, ['prefixCls', 'className', 'style', 'name', 'id', 'type', 'disabled', 'readOnly', 'tabIndex', 'onClick', 'onFocus', 'onBlur', 'autoFocus', 'value', 'required']);
var globalProps = Object.keys(others).reduce(function (prev, key) {
if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {
prev[key] = others[key];
}
return prev;
}, {});
var checked = this.state.checked;
var classString = classNames(prefixCls, className, (_classNames = {}, _classNames[prefixCls + '-checked'] = checked, _classNames[prefixCls + '-disabled'] = disabled, _classNames));
return React.createElement(
'span',
{ className: classString, style: style },
React.createElement('input', _extends({
name: name,
id: id,
type: type,
required: required,
readOnly: readOnly,
disabled: disabled,
tabIndex: tabIndex,
className: prefixCls + '-input',
checked: !!checked,
onClick: onClick,
onFocus: onFocus,
onBlur: onBlur,
onChange: this.handleChange,
autoFocus: autoFocus,
ref: this.saveInput,
value: value
}, globalProps)),
React.createElement('span', { className: prefixCls + '-inner' })
);
};
return Checkbox;
}(Component);
Checkbox.defaultProps = {
prefixCls: 'rc-checkbox',
className: '',
style: {},
type: 'checkbox',
defaultChecked: false,
onFocus: function onFocus() {},
onBlur: function onBlur() {},
onChange: function onChange() {}
};
export default Checkbox;