@ohu-mobile/core
Version:
76 lines (75 loc) • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineComponent = require("../_utils/defineComponent");
var _shared = require("../_utils/shared");
var _getComponentStyle = _interopRequireDefault(require("../_utils/getComponentStyle"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = exports.default = (0, _defineComponent.defineComponent)('badge').create({
props: {
type: _defineComponent.props.ofType().default('tag'),
color: (0, _defineComponent.props)(String).default('red'),
fontColor: String,
position: _defineComponent.props.ofType().default('up-right'),
text: (0, _defineComponent.props)(String, Number).default(''),
overflowNumber: (0, _defineComponent.props)(Number).default(99)
},
render: function render() {
var h = arguments[0];
var root = this.$rootCls();
var type = this.type,
text = this.text,
color = this.color,
fontColor = this.fontColor,
position = this.position,
overflowNumber = this.overflowNumber,
$slots = this.$slots;
var style = (0, _getComponentStyle.default)(root, color, fontColor);
var inner;
var badge = root.element(type);
if (type === 'corner') {
badge.is([$slots.default instanceof Array && position]);
var cornerRootStyle = {};
var cornerTextStyle = {};
if (!_shared.colors.includes(color)) {
cornerRootStyle.color = color;
}
if (fontColor) {
cornerTextStyle.color = fontColor;
}
inner = h("div", {
"class": badge,
"style": cornerRootStyle
}, [h("div", {
"class": badge.element('triangle')
}), h("div", {
"class": badge.element('text'),
"style": cornerTextStyle
}, [text])]);
} else if (type === 'tag') {
var innerText = text;
if (typeof text === 'number' && text > overflowNumber) {
innerText = "".concat(overflowNumber, "+");
}
inner = h("span", {
"class": badge,
"style": style
}, [innerText]);
} else {
inner = h("span", {
"class": badge,
"style": style
});
}
if ($slots.default) {
return h("div", {
"class": root.is('wrapper')
}, [$slots.default, inner]);
}
return h("div", {
"class": root
}, [inner]);
}
});