{"version":3,"file":"read-more.mjs","sources":["../../../../../../packages/components/read-more/src/read-more.vue"],"sourcesContent":["<template>\n  <div :class=\"[ns.b(), transition && initial ? ns.m('transition') : '']\">\n    <div\n      ref=\"wrapper\"\n      :class=\"[ns.e('wrapper'), warpperClass]\"\n      :style=\"warpperStyle\"\n    >\n      <slot />\n      <div\n        v-if=\"overlay && modelValue && hasTrigger\"\n        :class=\"ns.e('overlay')\"\n      />\n    </div>\n    <slot name=\"trigger\" v-bind=\"{ hasTrigger }\">\n      <div v-if=\"hasTrigger\" :class=\"ns.e('trigger')\" @click=\"handleToggle\">\n        <span>{{ modelValue ? openText : closeText }}</span>\n        <el-icon><ArrowDown v-if=\"modelValue\" /> <ArrowUp v-else /></el-icon>\n      </div>\n    </slot>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, onMounted, onUpdated, reactive, ref } from 'vue'\nimport { ElIcon, useLocale, useNamespace } from 'element-plus'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\nimport { readMoreEmits, readMoreProps } from './read-more'\nimport type { RendererElement } from '@vue/runtime-core'\n\ndefineOptions({\n  name: 'ElReadMore',\n})\n\nconst { t } = useLocale()\nconst ns = useNamespace('read-more')\n\nconst props = defineProps(readMoreProps)\nconst emit = defineEmits(readMoreEmits)\n\nconst wrapper = ref()\nconst initial = ref(false)\nconst dataset = reactive({\n  height: 0,\n})\n\nconst openText = computed(() => props.openText ?? t('epx.collapse.openText'))\nconst closeText = computed(() => props.closeText ?? t('epx.collapse.closeText'))\n\nconst warpperClass = computed(() =>\n  !props.modelValue ? 'is-expanded' : 'is-collapse'\n)\n\nconst warpperStyle = computed(() => {\n  return hasTrigger.value\n    ? !props.modelValue\n      ? {\n          height: `${dataset.height}px`,\n        }\n      : {\n          height: props.height,\n        }\n    : {\n        height: 'auto',\n      }\n})\n\nconst updateDataset = () => {\n  const dom: RendererElement = wrapper.value\n  if (dom) {\n    dataset.height = dom.scrollHeight\n  }\n}\n\nconst hasTrigger = computed(() => {\n  const height = Number.parseFloat(props.height)\n  const wrapperHeight = dataset.height\n  return wrapperHeight > height\n})\n\nonMounted(() => {\n  updateDataset()\n  nextTick(() => {\n    initial.value = true\n  })\n})\n\nonUpdated(() => {\n  updateDataset()\n})\n\nconst handleToggle = () => {\n  const value = !props.modelValue\n  emit(UPDATE_MODEL_EVENT, value)\n  emit(CHANGE_EVENT, value)\n}\n\ndefineExpose({\n  handleToggle,\n  hasTrigger,\n  updateDataset,\n})\n</script>\n"],"names":[],"mappings":"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"}