ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
48 lines (44 loc) • 1.9 kB
JavaScript
import { createVNode as _createVNode } from "vue";
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import { defineComponent, inject } from 'vue';
import PropTypes from '../_util/vue-types';
import { getComponent } from '../_util/props-util';
import { defaultConfigProvider } from '../config-provider';
export default defineComponent({
name: 'ACardMeta',
props: {
prefixCls: PropTypes.string,
title: PropTypes.VNodeChild,
description: PropTypes.VNodeChild,
avatar: PropTypes.VNodeChild
},
setup: function setup() {
return {
configProvider: inject('configProvider', defaultConfigProvider)
};
},
render: function render() {
var customizePrefixCls = this.$props.prefixCls;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('card', customizePrefixCls);
var classString = _defineProperty({}, "".concat(prefixCls, "-meta"), true);
var avatar = getComponent(this, 'avatar');
var title = getComponent(this, 'title');
var description = getComponent(this, 'description');
var avatarDom = avatar ? _createVNode("div", {
"class": "".concat(prefixCls, "-meta-avatar")
}, [avatar]) : null;
var titleDom = title ? _createVNode("div", {
"class": "".concat(prefixCls, "-meta-title")
}, [title]) : null;
var descriptionDom = description ? _createVNode("div", {
"class": "".concat(prefixCls, "-meta-description")
}, [description]) : null;
var MetaDetail = titleDom || descriptionDom ? _createVNode("div", {
"class": "".concat(prefixCls, "-meta-detail")
}, [titleDom, descriptionDom]) : null;
return _createVNode("div", {
"class": classString
}, [avatarDom, MetaDetail]);
}
});