UNPKG

choerodon-ui

Version:

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

111 lines (91 loc) 4.96 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = Badge; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _ScrollNumber = _interopRequireDefault(require("./ScrollNumber")); var _animate = _interopRequireDefault(require("../animate")); var _configure = require("../configure"); 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 = (0, _objectWithoutProperties2["default"])(props, ["count", "showZero", "prefixCls", "scrollNumberPrefixCls", "overflowCount", "className", "style", "children", "dot", "status", "text", "offset"]); var prefixCls = (0, _configure.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 = (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-status-dot"), !!status), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-status-").concat(status), !!status), _classNames)); var scrollNumberCls = (0, _classnames["default"])((_classNames2 = {}, (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-dot"), isDot), (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-count"), !isDot), (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-multiple-words"), !isDot && count && count.toString && count.toString().length > 1), (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-status-").concat(status), !!status), _classNames2)); var badgeCls = (0, _classnames["default"])(className, prefixCls, (_classNames3 = {}, (0, _defineProperty2["default"])(_classNames3, "".concat(prefixCls, "-status"), !!status), (0, _defineProperty2["default"])(_classNames3, "".concat(prefixCls, "-not-a-wrapper"), !children), _classNames3)); var styleWithOffset = offset ? (0, _objectSpread2["default"])({ marginTop: offset[0], marginLeft: offset[1] }, style) : style; // <Badge status="success" /> if (!children && status) { return _react["default"].createElement("span", { className: badgeCls, style: styleWithOffset }, _react["default"].createElement("span", { className: statusCls }), _react["default"].createElement("span", { className: "".concat(prefixCls, "-status-text") }, text)); } var scrollNumber = hidden ? null : _react["default"].createElement(_ScrollNumber["default"], { prefixCls: (0, _configure.getPrefixCls)('scroll-number', scrollNumberPrefixCls), hidden: hidden, className: scrollNumberCls, count: displayCount, title: count, style: styleWithOffset }); var statusText = hidden || !text ? null : _react["default"].createElement("span", { className: "".concat(prefixCls, "-status-text") }, text); return _react["default"].createElement("span", (0, _extends2["default"])({}, restProps, { className: badgeCls }), children, _react["default"].createElement(_animate["default"], { 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["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), showZero: _propTypes["default"].bool, dot: _propTypes["default"].bool, overflowCount: _propTypes["default"].number }; //# sourceMappingURL=index.js.map