UNPKG

@aliretail/react-materials-components

Version:
63 lines (57 loc) 2.32 kB
import _extends from "@babel/runtime/helpers/extends"; import _Checkbox from "@alifd/next/es/checkbox"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; import _Balloon from "@alifd/next/es/balloon"; var _excluded = ["limitStrLen", "children", "label"], _excluded2 = ["limitStrLen", "dataSource", "children"]; import * as React from 'react'; import { connect } from '@formily/next'; import { mapStyledProps, mapTextComponent } from "../shared"; var Tooltip = _Balloon.Tooltip; export var CheckboxX = function CheckboxX(props) { var limitStrLen = props.limitStrLen, children = props.children, label = props.label, others = _objectWithoutPropertiesLoose(props, _excluded); var content = label || children; // 如果内容是字符串并且设置了截取长度 if (typeof content === 'string' && limitStrLen && content.length > limitStrLen) { var CheckboxT = /*#__PURE__*/React.createElement(_Checkbox, others, content.substr(0, limitStrLen), "..."); return /*#__PURE__*/React.createElement(Tooltip, { align: "t", trigger: CheckboxT }, content); } else { return /*#__PURE__*/React.createElement(_Checkbox, others, content); } }; export var CheckboxGroupX = function CheckboxGroupX(props) { var limitStrLen = props.limitStrLen, dataSource = props.dataSource, children = props.children, others = _objectWithoutPropertiesLoose(props, _excluded2); // 如果内嵌标签跟dataSource同时存在,以内嵌标签为主 var childrenX; if (children) { childrenX = React.Children.map(children, function (child) { return /*#__PURE__*/React.createElement(CheckboxX, _extends({ limitStrLen: limitStrLen }, child.props)); }); } else { childrenX = dataSource.map(function (item) { return /*#__PURE__*/React.createElement(CheckboxX, _extends({ limitStrLen: limitStrLen }, item, { key: item.value }), item.label); }); } return /*#__PURE__*/React.createElement(_Checkbox.Group, others, childrenX); }; export var Checkbox = connect({ getProps: mapStyledProps, getComponent: mapTextComponent })(CheckboxX); export var CheckboxGroup = connect({ getProps: mapStyledProps, getComponent: mapTextComponent })(CheckboxGroupX);