UNPKG

shineout

Version:

Shein 前端组件库

147 lines (111 loc) 4.25 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _component = require("../component"); var _uid = require("../utils/uid"); var _types = require("../Datum/types"); var _Checkbox = _interopRequireDefault(require("./Checkbox")); var _context = require("./context"); var _styles = require("./styles"); var CheckboxGroup = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(CheckboxGroup, _PureComponent); function CheckboxGroup(props) { var _this; _this = _PureComponent.call(this, props) || this; _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.handleUpdate = _this.handleUpdate.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.handleRawChange = _this.handleRawChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } var _proto = CheckboxGroup.prototype; _proto.componentDidMount = function componentDidMount() { _PureComponent.prototype.componentDidMount.call(this); this.props.datum.subscribe(_types.CHANGE_TOPIC, this.handleUpdate); }; _proto.componentWillUnmount = function componentWillUnmount() { _PureComponent.prototype.componentWillUnmount.call(this); this.props.datum.unsubscribe(_types.CHANGE_TOPIC, this.handleUpdate); }; _proto.getContent = function getContent(d) { var renderItem = this.props.renderItem; if (typeof renderItem === 'string') { return d[renderItem]; } if (typeof renderItem === 'function') { return renderItem(d); } return ''; }; _proto.handleUpdate = function handleUpdate() { this.forceUpdate(); }; _proto.handleClick = function handleClick(_val, checked, index) { var _this$props = this.props, data = _this$props.data, datum = _this$props.datum; if (checked) { datum.add(data[index]); } else { datum.remove(data[index]); } }; _proto.handleRawChange = function handleRawChange(value, checked) { var datum = this.props.datum; if (checked) { datum.add(value); } else { datum.remove(value); } }; _proto.render = function render() { var _this2 = this; var _this$props2 = this.props, block = _this$props2.block, data = _this$props2.data, datum = _this$props2.datum, keygen = _this$props2.keygen, children = _this$props2.children, style = _this$props2.style; var className = (0, _classnames.default)((0, _styles.checkinputClass)('group', ['no-block', 'block'][Number(block)]), this.props.className); if (data === undefined) { return _react.default.createElement("div", { className: className, style: style }, _react.default.createElement(_context.Provider, { value: { onRawChange: this.handleRawChange, checked: datum.check.bind(datum) } }, children)); } return _react.default.createElement("div", { className: className, style: style }, data.map(function (d, i) { return _react.default.createElement(_Checkbox.default, { checked: datum.check(d), disabled: datum.disabled(d), key: (0, _uid.getKey)(d, keygen, i), htmlValue: i, index: i, onChange: _this2.handleClick }, _this2.getContent(d)); }), children); }; return CheckboxGroup; }(_component.PureComponent); (0, _defineProperty2.default)(CheckboxGroup, "defaultProps", { renderItem: function renderItem(d) { return d; } }); var _default = CheckboxGroup; exports.default = _default;