@aplus-frontend/antdv
Version:
Vue basic component library maintained based on ant-design-vue
108 lines (107 loc) • 4.51 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PureContent = PureContent;
exports.default = exports.TypeIcon = void 0;
exports.getCloseIcon = getCloseIcon;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _vue = require("vue");
var _style = _interopRequireDefault(require("./style"));
var _useConfigInject = _interopRequireDefault(require("../config-provider/hooks/useConfigInject"));
var _Notice = _interopRequireDefault(require("../vc-notification/Notice"));
var _classNames = _interopRequireDefault(require("../_util/classNames"));
var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/LoadingOutlined"));
var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/ExclamationCircleFilled"));
var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CloseCircleFilled"));
var _CheckCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CheckCircleFilled"));
var _InfoCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/InfoCircleFilled"));
var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CloseOutlined"));
var _util = require("../_util/util");
function getCloseIcon(prefixCls, closeIcon) {
return closeIcon || (0, _vue.createVNode)("span", {
"class": `${prefixCls}-close-x`
}, [(0, _vue.createVNode)(_CloseOutlined.default, {
"class": `${prefixCls}-close-icon`
}, null)]);
}
const TypeIcon = exports.TypeIcon = {
info: (0, _vue.createVNode)(_InfoCircleFilled.default, null, null),
success: (0, _vue.createVNode)(_CheckCircleFilled.default, null, null),
error: (0, _vue.createVNode)(_CloseCircleFilled.default, null, null),
warning: (0, _vue.createVNode)(_ExclamationCircleFilled.default, null, null),
loading: (0, _vue.createVNode)(_LoadingOutlined.default, null, null)
};
const typeToIcon = {
success: _CheckCircleFilled.default,
info: _InfoCircleFilled.default,
error: _CloseCircleFilled.default,
warning: _ExclamationCircleFilled.default
};
function PureContent(_ref) {
let {
prefixCls,
icon,
type,
message,
description,
btn
} = _ref;
let iconNode = null;
if (icon) {
iconNode = (0, _vue.createVNode)("span", {
"class": `${prefixCls}-icon`
}, [(0, _util.renderHelper)(icon)]);
} else if (type) {
const Icon = typeToIcon[type];
iconNode = (0, _vue.createVNode)(Icon, {
"class": `${prefixCls}-icon ${prefixCls}-icon-${type}`
}, null);
}
return (0, _vue.createVNode)("div", {
"class": (0, _classNames.default)({
[`${prefixCls}-with-icon`]: iconNode
}),
"role": "alert"
}, [iconNode, (0, _vue.createVNode)("div", {
"class": `${prefixCls}-message`
}, [message]), (0, _vue.createVNode)("div", {
"class": `${prefixCls}-description`
}, [description]), btn && (0, _vue.createVNode)("div", {
"class": `${prefixCls}-btn`
}, [btn])]);
}
/** @private Internal Component. Do not use in your production. */
var _default = exports.default = (0, _vue.defineComponent)({
name: 'PurePanel',
inheritAttrs: false,
props: ['prefixCls', 'icon', 'type', 'message', 'description', 'btn', 'closeIcon'],
setup(props) {
const {
getPrefixCls
} = (0, _useConfigInject.default)('notification', props);
const prefixCls = (0, _vue.computed)(() => props.prefixCls || getPrefixCls('notification'));
const noticePrefixCls = (0, _vue.computed)(() => `${prefixCls.value}-notice`);
const [, hashId] = (0, _style.default)(prefixCls);
return () => {
return (0, _vue.createVNode)(_Notice.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
"prefixCls": prefixCls.value,
"class": (0, _classNames.default)(hashId.value, `${noticePrefixCls.value}-pure-panel`),
"noticeKey": "pure",
"duration": null,
"closable": props.closable,
"closeIcon": getCloseIcon(prefixCls.value, props.closeIcon)
}), {
default: () => [(0, _vue.createVNode)(PureContent, {
"prefixCls": noticePrefixCls.value,
"icon": props.icon,
"type": props.type,
"message": props.message,
"description": props.description,
"btn": props.btn
}, null)]
});
};
}
});
;