{"version":3,"file":"comment.mjs","sources":["../../../../../../packages/components/comment/src/comment.vue"],"sourcesContent":["<template>\n  <div :class=\"ns.b()\">\n    <div v-if=\"hasAvatar\" :class=\"ns.b('avatar')\">\n      <img v-if=\"avatar\" :src=\"avatar\" alt=\"comment-avatar\" />\n      <slot v-else name=\"avatar\" />\n    </div>\n    <div :class=\"ns.b('inner')\">\n      <div :class=\"ns.b('inner-content')\">\n        <div\n          v-if=\"hasAuthor || hasDatetime\"\n          :class=\"[\n            ns.b('title'),\n            ns.b('title-align-' + computedAlign.datetime),\n          ]\"\n        >\n          <span v-if=\"hasAuthor\" :class=\"ns.b('author')\">\n            <span v-if=\"author\"> {{ author }} </span>\n            <slot v-else name=\"author\" />\n          </span>\n          <span v-if=\"hasDatetime\" :class=\"ns.b('datetime')\">\n            <span v-if=\"datetime\"> {{ datetime }} </span>\n            <slot v-else name=\"datetime\" />\n          </span>\n        </div>\n        <div v-if=\"hasContent\" :class=\"ns.b('content')\">\n          <span v-if=\"content\"> {{ content }} </span>\n          <slot v-else name=\"content\" />\n        </div>\n        <div\n          v-if=\"$slots.actions\"\n          :class=\"[\n            ns.b('actions'),\n            ns.b(`actions-align-${computedAlign.actions}`),\n          ]\"\n        >\n          <slot name=\"actions\" />\n        </div>\n      </div>\n      <div v-if=\"$slots.default\" :class=\"ns.b('inner-comment')\">\n        <slot />\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue'\nimport { useNamespace } from '@lit-element/hooks'\nimport { isString } from '@lit-element/utils'\n\ndefineOptions({ name: 'LtComment' })\nconst props: any = defineProps({\n  author: String, // 作者名\n  avatar: String, // 头像\n  content: String, // 评论内容\n  datetime: String, // 时间描述\n  // 靠左/靠右 展示 datetime 和 actions\n  align: {\n    type: [String, Object],\n    default: 'left',\n  },\n})\n\nconst ns = useNamespace('comment')\nconst slots = useSlots()\n\nconst [hasAuthor, hasAvatar, hasContent, hasDatetime] = [\n  'author',\n  'avatar',\n  'content',\n  'datetime',\n].map((propName) => computed(() => Boolean(props[propName] || slots[propName])))\n\nconst computedAlign = computed(() => {\n  const { align } = props\n  return {\n    ...(isString(align)\n      ? {\n          datetime: align,\n          actions: align,\n        }\n      : align),\n  }\n})\n</script>\n"],"names":["DO_defineComponent","_openBlock","_createElementBlock","_normalizeClass","_unref"],"mappings":";;;;;;;AAkDc,MAAA,WAAA,GAAAA,eAAA,CAAA,EAAE,IAAM,EAAA,WAAA,EAAY,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;AAalC,MAAM,SAAK;AACX,MAAA;AAEA,KAAA,CAAA,GAAA,CAAM,CAAC,QAAA,KAAsB,QAAA,CAAA,MAAA,sBAA2B,CAAA,IAAA,KAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IACtD,MAAA,aAAA,GAAA,QAAA,CAAA,MAAA;AAAA,MACA,MAAA,EAAA,KAAA,EAAA,GAAA,KAAA,CAAA;AAAA,MACA,OAAA;AAAA,QACA,GAAA,QAAA,CAAA,KAAA,CAAA,GAAA;AAAA,UACI,QAAC,EAAA;AAEP,UAAM,OAAA,EAAA,KAAA;AACJ,SAAM,GAAA;AACN,OAAO,CAAA;AAAA,KACL,CAAA,CAAA;AACI,IAAA,OACY,CAAA,IAAA,EAAA,MAAA,KAAA;AAAA,MAAA,OACDC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;AAAA,QACX,KACA,EAAAC,cAAA,CAAAC,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AAAA,OACN,EAAA;AAAA,QACDA,KAAA,CAAA,SAAA,CAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}