@aliretail/react-materials-components
Version:
63 lines (57 loc) • 2.32 kB
JavaScript
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);