bootstrap-vue
Version:
Quickly integrate Bootstrap 4 components with Vue.js
66 lines (60 loc) • 2.14 kB
JavaScript
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 { mergeData, prefixPropName, copyProps } from "../../utils";
import { assign } from "../../utils/object";
import { cardMixin } from "../../mixins";
export var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, "body")), {
bodyClass: {
type: [String, Object, Array],
default: null
},
title: {
type: String,
default: null
},
titleTag: {
type: String,
default: "h4"
},
subTitle: {
type: String,
default: null
},
subTitleTag: {
type: String,
default: "h6"
},
overlay: {
type: Boolean,
default: false
}
});
export default {
functional: true,
props: props,
render: function render(h, _ref) {
var _ref2;
var props = _ref.props,
data = _ref.data,
slots = _ref.slots;
var cardBodyChildren = [];
if (props.title) {
cardBodyChildren.push(h(props.titleTag, {
staticClass: "card-title",
domProps: { innerHTML: props.title }
}));
}
if (props.subTitle) {
cardBodyChildren.push(h(props.subTitleTag, {
staticClass: "card-subtitle mb-2 text-muted",
domProps: { innerHTML: props.subTitle }
}));
}
cardBodyChildren.push(slots().default);
return h(props.bodyTag, mergeData(data, {
staticClass: "card-body",
class: [(_ref2 = {
"card-img-overlay": props.overlay
}, _defineProperty(_ref2, "bg-" + props.bodyBgVariant, Boolean(props.bodyBgVariant)), _defineProperty(_ref2, "border-" + props.bodyBorderVariant, Boolean(props.bodyBorderVariant)), _defineProperty(_ref2, "text-" + props.bodyTextVariant, Boolean(props.bodyTextVariant)), _ref2), props.bodyClass || {}]
}), cardBodyChildren);
}
};