UNPKG

@arco-design/web-vue

Version:

Arco Design Vue 2.0: A Vue.js 3 UI Library

119 lines (118 loc) 4.5 kB
"use strict"; var vue = require("vue"); var globalConfig = require("../_utils/global-config.js"); var usePropOrSlot = require("../_utils/use-prop-or-slot.js"); var is = require("../_utils/is.js"); var pluginVue_exportHelper = require("../_virtual/plugin-vue_export-helper.js"); const _sfc_main = vue.defineComponent({ name: "Comment", props: { author: { type: String }, avatar: { type: String }, content: { type: String }, datetime: { type: String }, align: { type: [String, Object], default: "left" } }, setup(props, { slots }) { const prefixCls = globalConfig.getPrefixCls("comment"); const [hasAuthor, hasAvatar, hasContent, hasDatetime] = [ "author", "avatar", "content", "datetime" ].map((propName) => usePropOrSlot.hasPropOrSlot(props, slots, propName)); const computedAlign = vue.computed(() => { const { align } = props; return { ...is.isString(align) ? { datetime: align, actions: align } : align }; }); return { prefixCls, hasAuthor, hasAvatar, hasContent, hasDatetime, computedAlign }; } }); const _hoisted_1 = ["src"]; const _hoisted_2 = { key: 0 }; const _hoisted_3 = { key: 0 }; const _hoisted_4 = { key: 0 }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("div", { class: vue.normalizeClass(_ctx.prefixCls) }, [ _ctx.hasAvatar ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, class: vue.normalizeClass(`${_ctx.prefixCls}-avatar`) }, [ _ctx.avatar ? (vue.openBlock(), vue.createElementBlock("img", { key: 0, src: _ctx.avatar, alt: "comment-avatar" }, null, 8, _hoisted_1)) : vue.renderSlot(_ctx.$slots, "avatar", { key: 1 }) ], 2)) : vue.createCommentVNode("v-if", true), vue.createElementVNode("div", { class: vue.normalizeClass(`${_ctx.prefixCls}-inner`) }, [ vue.createElementVNode("div", { class: vue.normalizeClass(`${_ctx.prefixCls}-inner-content`) }, [ _ctx.hasAuthor || _ctx.hasDatetime ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, class: vue.normalizeClass(`${_ctx.prefixCls}-title ${_ctx.prefixCls}-title-align-${_ctx.computedAlign.datetime}`) }, [ _ctx.hasAuthor ? (vue.openBlock(), vue.createElementBlock("span", { key: 0, class: vue.normalizeClass(`${_ctx.prefixCls}-author`) }, [ _ctx.author ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(_ctx.author), 1)) : vue.renderSlot(_ctx.$slots, "author", { key: 1 }) ], 2)) : vue.createCommentVNode("v-if", true), _ctx.hasDatetime ? (vue.openBlock(), vue.createElementBlock("span", { key: 1, class: vue.normalizeClass(`${_ctx.prefixCls}-datetime`) }, [ _ctx.datetime ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(_ctx.datetime), 1)) : vue.renderSlot(_ctx.$slots, "datetime", { key: 1 }) ], 2)) : vue.createCommentVNode("v-if", true) ], 2)) : vue.createCommentVNode("v-if", true), _ctx.hasContent ? (vue.openBlock(), vue.createElementBlock("div", { key: 1, class: vue.normalizeClass(`${_ctx.prefixCls}-content`) }, [ _ctx.content ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4, vue.toDisplayString(_ctx.content), 1)) : vue.renderSlot(_ctx.$slots, "content", { key: 1 }) ], 2)) : vue.createCommentVNode("v-if", true), _ctx.$slots.actions ? (vue.openBlock(), vue.createElementBlock("div", { key: 2, class: vue.normalizeClass(`${_ctx.prefixCls}-actions ${_ctx.prefixCls}-actions-align-${_ctx.computedAlign.actions}`) }, [ vue.renderSlot(_ctx.$slots, "actions") ], 2)) : vue.createCommentVNode("v-if", true) ], 2), _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, class: vue.normalizeClass(`${_ctx.prefixCls}-inner-comment`) }, [ vue.renderSlot(_ctx.$slots, "default") ], 2)) : vue.createCommentVNode("v-if", true) ], 2) ], 2); } var _Comment = /* @__PURE__ */ pluginVue_exportHelper(_sfc_main, [["render", _sfc_render]]); module.exports = _Comment;