UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

139 lines (107 loc) 4.94 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _shallowequal = _interopRequireDefault(require("shallowequal")); var _checkbox = _interopRequireDefault(require("../rc-components/checkbox")); var _RadioContext = _interopRequireDefault(require("./RadioContext")); var _excluded = ["prefixCls", "className", "children", "style"]; var Radio = /*#__PURE__*/function (_Component) { (0, _inherits2["default"])(Radio, _Component); var _super = (0, _createSuper2["default"])(Radio); function Radio() { var _this; (0, _classCallCheck2["default"])(this, Radio); _this = _super.apply(this, arguments); _this.saveCheckbox = function (node) { _this.rcCheckbox = node; }; _this.onChange = function (e) { var onChange = _this.props.onChange; var radioGroup = _this.context.radioGroup; if (onChange) { onChange(e); } if (radioGroup && radioGroup.onChange) { radioGroup.onChange(e); } }; return _this; } (0, _createClass2["default"])(Radio, [{ key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState, nextContext) { var _this$context = this.context, radioGroup = _this$context.radioGroup, getPrefixCls = _this$context.getPrefixCls; return !(0, _shallowequal["default"])(this.props, nextProps) || !(0, _shallowequal["default"])(this.state, nextState) || !(0, _shallowequal["default"])(radioGroup, nextContext.radioGroup) || getPrefixCls !== nextContext.getPrefixCls; } }, { key: "focus", value: function focus() { this.rcCheckbox.focus(); } }, { key: "blur", value: function blur() { this.rcCheckbox.blur(); } }, { key: "render", value: function render() { var _classNames; var props = this.props, context = this.context; var customizePrefixCls = props.prefixCls, className = props.className, children = props.children, style = props.style, restProps = (0, _objectWithoutProperties2["default"])(props, _excluded); var radioGroup = context.radioGroup, getPrefixCls = context.getPrefixCls; var prefixCls = getPrefixCls('radio', customizePrefixCls); var radioProps = (0, _objectSpread2["default"])({}, restProps); if (radioGroup) { radioProps.name = radioGroup.name; radioProps.onChange = this.onChange; radioProps.checked = props.value === radioGroup.value; radioProps.disabled = props.disabled || radioGroup.disabled; } var wrapperClassString = (0, _classnames["default"])(className, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper"), true), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper-checked"), radioProps.checked), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper-disabled"), radioProps.disabled), _classNames)); return /*#__PURE__*/_react["default"].createElement("label", { className: wrapperClassString, style: style, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave }, /*#__PURE__*/_react["default"].createElement(_checkbox["default"], (0, _extends2["default"])({}, radioProps, { prefixCls: prefixCls, ref: this.saveCheckbox })), children !== undefined ? /*#__PURE__*/_react["default"].createElement("span", null, children) : null); } }], [{ key: "contextType", get: function get() { return _RadioContext["default"]; } }]); return Radio; }(_react.Component); exports["default"] = Radio; Radio.displayName = 'Radio'; Radio.defaultProps = { type: 'radio' }; //# sourceMappingURL=radio.js.map