amis
Version:
一种MIS页面生成工具
87 lines (86 loc) • 3.73 kB
JavaScript
;
/**
* @file 角标组件
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.withBadge = exports.Badge = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var hoist_non_react_statics_1 = tslib_1.__importDefault(require("hoist-non-react-statics"));
var tpl_1 = require("../utils/tpl");
var tpl_builtin_1 = require("../utils/tpl-builtin");
var Badge = /** @class */ (function (_super) {
tslib_1.__extends(Badge, _super);
function Badge(props) {
return _super.call(this, props) || this;
}
Badge.prototype.render = function () {
var badge = this.props.badge;
if (!badge) {
return this.props.children;
}
var _a = this.props, children = _a.children, cx = _a.classnames, data = _a.data;
var isDisplay = true;
if (typeof badge === 'string') {
isDisplay = tpl_1.evalExpression(badge, data) === true;
}
var _b = badge.mode, mode = _b === void 0 ? 'dot' : _b, text = badge.text, size = badge.size, style = badge.style, _c = badge.position, position = _c === void 0 ? 'top-right' : _c, visibleOn = badge.visibleOn, className = badge.className;
if (visibleOn) {
isDisplay = tpl_1.evalExpression(visibleOn, data) === true;
}
if (typeof text === 'string' && text[0] === '$') {
text = tpl_builtin_1.resolveVariable(text, data);
}
// 设置默认值
if (typeof size === 'undefined') {
if (mode === 'dot') {
size = 6;
}
else {
size = 16;
}
}
var sizeStyle = {};
if (mode === 'text') {
sizeStyle = {
borderRadius: size / 2,
height: size,
lineHeight: size + 'px'
};
if (!text) {
isDisplay = false;
}
}
if (mode === 'dot') {
sizeStyle = { width: size, height: size };
}
return (react_1.default.createElement("div", { className: cx('Badge', className) },
children,
isDisplay ? (mode === 'dot' ? (react_1.default.createElement("span", { className: cx('Badge-dot', "Badge--" + position), style: tslib_1.__assign(tslib_1.__assign({}, sizeStyle), style) })) : (react_1.default.createElement("span", { className: cx('Badge-text', "Badge--" + position), style: tslib_1.__assign(tslib_1.__assign({}, sizeStyle), style) }, text))) : null));
};
Badge.propsList = ['body', 'className', 'children'];
return Badge;
}(react_1.default.Component));
exports.Badge = Badge;
function withBadge(Component) {
var _a;
return hoist_non_react_statics_1.default((_a = /** @class */ (function (_super) {
tslib_1.__extends(WithBadge, _super);
function WithBadge() {
return _super !== null && _super.apply(this, arguments) || this;
}
WithBadge.prototype.render = function () {
var badge = this.props.badge;
if (!badge) {
return react_1.default.createElement(Component, tslib_1.__assign({}, this.props));
}
return (react_1.default.createElement(Badge, tslib_1.__assign({}, this.props),
react_1.default.createElement(Component, tslib_1.__assign({}, this.props))));
};
return WithBadge;
}(react_1.default.Component)),
_a.displayName = "WithBadge(" + (Component.displayName || Component.name) + ")",
_a), Component);
}
exports.withBadge = withBadge;
//# sourceMappingURL=./components/Badge.js.map