UNPKG

choerodon-ui

Version:

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

195 lines (159 loc) 6.59 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); 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("./Checkbox")); var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext")); var _CheckboxContext = require("./CheckboxContext"); var CheckboxGroup = /*#__PURE__*/function (_Component) { (0, _inherits2["default"])(CheckboxGroup, _Component); var _super = (0, _createSuper2["default"])(CheckboxGroup); function CheckboxGroup(props, context) { var _this; (0, _classCallCheck2["default"])(this, CheckboxGroup); _this = _super.call(this, props, context); _this.toggleOption = function (option) { var _assertThisInitialize = (0, _assertThisInitialized2["default"])(_this), state = _assertThisInitialize.state; var optionIndex = state.value.indexOf(option.value); var value = (0, _toConsumableArray2["default"])(state.value); if (optionIndex === -1) { value.push(option.value); } else { value.splice(optionIndex, 1); } if (!('value' in _this.props)) { _this.setState({ value: value }); } var onChange = _this.props.onChange; if (onChange) { onChange(value); } }; _this.state = { value: props.value || props.defaultValue || [] }; return _this; } (0, _createClass2["default"])(CheckboxGroup, [{ key: "getContextValue", value: function getContextValue() { var disabled = this.props.disabled; var value = this.state.value; return { checkboxGroup: { toggleOption: this.toggleOption, value: value, disabled: disabled } }; } }, { key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { this.setState({ value: nextProps.value || [] }); } } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState, nextContext) { var context = this.context; return !(0, _shallowequal["default"])(this.props, nextProps) || !(0, _shallowequal["default"])(this.state, nextState) || context.getPrefixCls !== nextContext.getPrefixCls; } }, { key: "getOptions", value: function getOptions() { var options = this.props.options; // https://github.com/Microsoft/TypeScript/issues/7960 return options.map(function (option) { if (typeof option === 'string') { return { label: option, value: option }; } return option; }); } }, { key: "render", value: function render() { var _this2 = this, _classNames; var props = this.props, state = this.state; var customizePrefixCls = props.prefixCls, className = props.className, style = props.style, options = props.options, checkboxPrefixCls = props.checkboxPrefixCls, label = props.label; var getPrefixCls = this.context.getPrefixCls; var prefixCls = getPrefixCls('checkbox-group', customizePrefixCls); var children = props.children; if (options && options.length > 0) { children = this.getOptions().map(function (option) { return /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], { key: String(option.value), disabled: 'disabled' in option ? option.disabled : props.disabled, value: option.value, checked: state.value.indexOf(option.value) !== -1, onChange: function onChange() { return _this2.toggleOption(option); }, className: "".concat(prefixCls, "-item"), prefixCls: checkboxPrefixCls }, option.label); }); } var classString = (0, _classnames["default"])(prefixCls, className); var wrapperClassString = (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper"), true), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-has-label"), label), _classNames)); var labelClassString = (0, _classnames["default"])("".concat(prefixCls, "-label"), { 'label-disabled': props.disabled }); return /*#__PURE__*/_react["default"].createElement(_CheckboxContext.CheckboxContextProvider, (0, _extends2["default"])({}, this.getContextValue(), { getPrefixCls: getPrefixCls }), label ? /*#__PURE__*/_react["default"].createElement("div", { className: wrapperClassString, style: style }, /*#__PURE__*/_react["default"].createElement("span", { className: labelClassString }, label), /*#__PURE__*/_react["default"].createElement("div", { className: classString }, children)) : /*#__PURE__*/_react["default"].createElement("div", { className: classString, style: style }, children)); } }], [{ key: "contextType", get: function get() { return _ConfigContext["default"]; } }]); return CheckboxGroup; }(_react.Component); exports["default"] = CheckboxGroup; CheckboxGroup.displayName = 'CheckboxGroup'; CheckboxGroup.defaultProps = { options: [] }; //# sourceMappingURL=Group.js.map