UNPKG

choerodon-ui

Version:

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

92 lines (85 loc) 4.07 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectSpread from "@babel/runtime/helpers/objectSpread2"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import ScrollNumber from './ScrollNumber'; import Animate from '../animate'; import { getPrefixCls } from '../configure'; export default function Badge(props) { var _classNames, _classNames2, _classNames3; var count = props.count, showZero = props.showZero, customizePrefixCls = props.prefixCls, scrollNumberPrefixCls = props.scrollNumberPrefixCls, overflowCount = props.overflowCount, className = props.className, style = props.style, children = props.children, dot = props.dot, status = props.status, text = props.text, offset = props.offset, restProps = _objectWithoutProperties(props, ["count", "showZero", "prefixCls", "scrollNumberPrefixCls", "overflowCount", "className", "style", "children", "dot", "status", "text", "offset"]); var prefixCls = getPrefixCls('badge', customizePrefixCls); var displayCount = count > overflowCount ? "".concat(overflowCount, "+") : count; var isZero = displayCount === '0' || displayCount === 0; var isDot = dot && !isZero || status; // dot mode don't need count if (isDot) { displayCount = ''; } var isEmpty = displayCount === null || displayCount === undefined || displayCount === ''; var hidden = (isEmpty || isZero && !showZero) && !isDot; var statusCls = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-status-dot"), !!status), _defineProperty(_classNames, "".concat(prefixCls, "-status-").concat(status), !!status), _classNames)); var scrollNumberCls = classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefixCls, "-dot"), isDot), _defineProperty(_classNames2, "".concat(prefixCls, "-count"), !isDot), _defineProperty(_classNames2, "".concat(prefixCls, "-multiple-words"), !isDot && count && count.toString && count.toString().length > 1), _defineProperty(_classNames2, "".concat(prefixCls, "-status-").concat(status), !!status), _classNames2)); var badgeCls = classNames(className, prefixCls, (_classNames3 = {}, _defineProperty(_classNames3, "".concat(prefixCls, "-status"), !!status), _defineProperty(_classNames3, "".concat(prefixCls, "-not-a-wrapper"), !children), _classNames3)); var styleWithOffset = offset ? _objectSpread({ marginTop: offset[0], marginLeft: offset[1] }, style) : style; // <Badge status="success" /> if (!children && status) { return React.createElement("span", { className: badgeCls, style: styleWithOffset }, React.createElement("span", { className: statusCls }), React.createElement("span", { className: "".concat(prefixCls, "-status-text") }, text)); } var scrollNumber = hidden ? null : React.createElement(ScrollNumber, { prefixCls: getPrefixCls('scroll-number', scrollNumberPrefixCls), hidden: hidden, className: scrollNumberCls, count: displayCount, title: count, style: styleWithOffset }); var statusText = hidden || !text ? null : React.createElement("span", { className: "".concat(prefixCls, "-status-text") }, text); return React.createElement("span", _extends({}, restProps, { className: badgeCls }), children, React.createElement(Animate, { component: "", hiddenProp: "hidden", transitionName: children ? "".concat(prefixCls, "-zoom") : '', transitionAppear: true }, scrollNumber), statusText); } Badge.displayName = 'Badge'; Badge.defaultProps = { count: null, showZero: false, dot: false, overflowCount: 99 }; Badge.propTypes = { count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), showZero: PropTypes.bool, dot: PropTypes.bool, overflowCount: PropTypes.number }; //# sourceMappingURL=index.js.map