Meta.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import { createVNode as _createVNode } from "vue";
  3. import { defineComponent } from 'vue';
  4. import PropTypes from '../_util/vue-types';
  5. import { getPropsSlot } from '../_util/props-util';
  6. import useConfigInject from '../_util/hooks/useConfigInject';
  7. export var cardMetaProps = function cardMetaProps() {
  8. return {
  9. prefixCls: String,
  10. title: PropTypes.any,
  11. description: PropTypes.any,
  12. avatar: PropTypes.any
  13. };
  14. };
  15. export default defineComponent({
  16. compatConfig: {
  17. MODE: 3
  18. },
  19. name: 'ACardMeta',
  20. props: cardMetaProps(),
  21. slots: ['title', 'description', 'avatar'],
  22. setup: function setup(props, _ref) {
  23. var slots = _ref.slots;
  24. var _useConfigInject = useConfigInject('card', props),
  25. prefixCls = _useConfigInject.prefixCls;
  26. return function () {
  27. var classString = _defineProperty({}, "".concat(prefixCls.value, "-meta"), true);
  28. var avatar = getPropsSlot(slots, props, 'avatar');
  29. var title = getPropsSlot(slots, props, 'title');
  30. var description = getPropsSlot(slots, props, 'description');
  31. var avatarDom = avatar ? _createVNode("div", {
  32. "class": "".concat(prefixCls.value, "-meta-avatar")
  33. }, [avatar]) : null;
  34. var titleDom = title ? _createVNode("div", {
  35. "class": "".concat(prefixCls.value, "-meta-title")
  36. }, [title]) : null;
  37. var descriptionDom = description ? _createVNode("div", {
  38. "class": "".concat(prefixCls.value, "-meta-description")
  39. }, [description]) : null;
  40. var MetaDetail = titleDom || descriptionDom ? _createVNode("div", {
  41. "class": "".concat(prefixCls.value, "-meta-detail")
  42. }, [titleDom, descriptionDom]) : null;
  43. return _createVNode("div", {
  44. "class": classString
  45. }, [avatarDom, MetaDetail]);
  46. };
  47. }
  48. });