UNPKG

ant-design-vue

Version:

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

149 lines (121 loc) 5.61 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.BadgeProps = undefined; var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props'); var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _vueTypes = require('../_util/vue-types'); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _ScrollNumber = require('./ScrollNumber'); var _ScrollNumber2 = _interopRequireDefault(_ScrollNumber); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _propsUtil = require('../_util/props-util'); var _getTransitionProps = require('../_util/getTransitionProps'); var _getTransitionProps2 = _interopRequireDefault(_getTransitionProps); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var BadgeProps = exports.BadgeProps = { /** Number to show in badge */ count: _vueTypes2['default'].oneOfType([_vueTypes2['default'].number, _vueTypes2['default'].string, null]), showZero: _vueTypes2['default'].bool, /** Max count to show */ overflowCount: _vueTypes2['default'].number, /** whether to show red dot without number */ dot: _vueTypes2['default'].bool, prefixCls: _vueTypes2['default'].string, scrollNumberPrefixCls: _vueTypes2['default'].string, status: _vueTypes2['default'].oneOf(['success', 'processing', 'default', 'error', 'warning']), text: _vueTypes2['default'].string, offset: _vueTypes2['default'].array, numberStyle: _vueTypes2['default'].object.def({}), title: _vueTypes2['default'].string }; exports['default'] = { name: 'ABadge', props: (0, _propsUtil.initDefaultProps)(BadgeProps, { prefixCls: 'ant-badge', scrollNumberPrefixCls: 'ant-scroll-number', count: null, showZero: false, dot: false, overflowCount: 99 }), render: function render() { var _classNames, _classNames2, _classNames3; var h = arguments[0]; var count = this.count, showZero = this.showZero, prefixCls = this.prefixCls, scrollNumberPrefixCls = this.scrollNumberPrefixCls, overflowCount = this.overflowCount, dot = this.dot, status = this.status, text = this.text, offset = this.offset, $slots = this.$slots, numberStyle = this.numberStyle, title = this.title; var displayCount = count > overflowCount ? overflowCount + '+' : count; var isZero = displayCount === '0' || displayCount === 0; var isDot = dot && !isZero || status; // dot mode don't need count if (isDot) { displayCount = ''; } var children = (0, _propsUtil.filterEmpty)($slots['default']); var isEmpty = displayCount === null || displayCount === undefined || displayCount === ''; var hidden = (isEmpty || isZero && !showZero) && !isDot; var statusCls = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-status-dot', !!status), (0, _defineProperty3['default'])(_classNames, prefixCls + '-status-' + status, !!status), _classNames)); var scrollNumberCls = (0, _classnames2['default'])((_classNames2 = {}, (0, _defineProperty3['default'])(_classNames2, prefixCls + '-dot', isDot), (0, _defineProperty3['default'])(_classNames2, prefixCls + '-count', !isDot), (0, _defineProperty3['default'])(_classNames2, prefixCls + '-multiple-words', !isDot && count && count.toString && count.toString().length > 1), (0, _defineProperty3['default'])(_classNames2, prefixCls + '-status-' + status, !!status), _classNames2)); var badgeCls = (0, _classnames2['default'])(prefixCls, (_classNames3 = {}, (0, _defineProperty3['default'])(_classNames3, prefixCls + '-status', !!status), (0, _defineProperty3['default'])(_classNames3, prefixCls + '-not-a-wrapper', !children.length), _classNames3)); var styleWithOffset = offset ? (0, _extends3['default'])({ right: -parseInt(offset[0], 10), marginTop: typeof offset[1] === 'number' ? offset[1] + 'px' : offset[1] }, numberStyle) : numberStyle; // <Badge status="success" /> if (!children.length && status) { return h( 'span', (0, _babelHelperVueJsxMergeProps2['default'])([{ on: this.$listeners }, { 'class': badgeCls, style: styleWithOffset }]), [h('span', { 'class': statusCls }), h( 'span', { 'class': prefixCls + '-status-text' }, [text] )] ); } var scrollNumber = hidden ? null : h(_ScrollNumber2['default'], { attrs: { prefixCls: scrollNumberPrefixCls, count: displayCount, title: title || count }, directives: [{ name: 'show', value: !hidden }], 'class': scrollNumberCls, style: styleWithOffset, key: 'scrollNumber' }); var statusText = hidden || !text ? null : h( 'span', { 'class': prefixCls + '-status-text' }, [text] ); var transitionProps = (0, _getTransitionProps2['default'])(children.length ? prefixCls + '-zoom' : ''); return h( 'span', (0, _babelHelperVueJsxMergeProps2['default'])([{ on: this.$listeners }, { 'class': badgeCls }]), [children, h( 'transition', transitionProps, [scrollNumber] ), statusText] ); } };