{"version":3,"file":"ellipsis2.mjs","sources":["../../../../../../packages/components/ellipsis/src/ellipsis.vue"],"sourcesContent":["<template>\n  <el-tooltip\n    :disabled=\"!overflow\"\n    placement=\"top\"\n    effect=\"light\"\n    v-bind=\"tooltipAttrs\"\n  >\n    <template #content>\n      <slot name=\"content\">\n        <slot />\n      </slot>\n    </template>\n\n    <div ref=\"rootRef\" :class=\"[ns.b(), $attrs?.class]\" :style=\"rootStyle\">\n      <div :class=\"[ns.b('container')]\">\n        <div ref=\"contentRef\" :class=\"[ns.b('content')]\" :style=\"contentStyle\">\n          <slot />\n        </div>\n      </div>\n      <div v-if=\"overflow\" :class=\"ns.b('action')\">\n        <slot name=\"action\" />\n      </div>\n    </div>\n  </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, useAttrs } from 'vue'\nimport { useNamespace } from 'element-plus'\nimport { useOverflow } from '@element-plus/hooks'\nimport { ellipsisEmits, ellipsisProps } from './ellipsis'\nimport type { Ref, StyleValue } from 'vue'\n\ndefineOptions({\n  name: 'ElEllipsis',\n})\ndefineEmits(ellipsisEmits)\nconst props = defineProps(ellipsisProps)\n\nconst ns = useNamespace('ellipsis')\nconst rootRef = ref<HTMLElement>()\nconst contentRef = ref<HTMLElement>()\n\nconst { overflow } = useOverflow(rootRef, {\n  selectors: `.${ns.b('content')}`,\n  condition:\n    props.condition ??\n    ((contentWidth: number, containerWidth: number) => {\n      return Number(props.rows)\n        ? contentWidth >= containerWidth\n        : contentWidth > containerWidth\n    }),\n})\n\nconst attrs = useAttrs()\n\nconst rootStyle = computed(() => (attrs.style as StyleValue) ?? {})\n\nconst tooltipAttrs = computed(() => {\n  const pureAttrs = {\n    ...attrs,\n  }\n  delete pureAttrs.class\n  delete pureAttrs.style\n  return pureAttrs\n})\n\nconst getellipsisStyle = (rows: number) => {\n  return {\n    overflow: 'hidden',\n    display: '-webkit-box',\n    'white-space': 'normal',\n    'text-overflow': 'ellipsis',\n    '-webkit-box-orient': 'vertical',\n    '-webkit-line-clamp': rows,\n  }\n}\n\nconst contentStyle: Ref<StyleValue> = computed(() => {\n  return Number(props.rows) ? getellipsisStyle(Number(props.rows)) : {}\n})\n</script>\n"],"names":["_a"],"mappings":";;;;;;mCAiCc,CAAA;AAAA,EACZ,IAAM,EAAA,YAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAEA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAER,IAAA,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAClC,IAAA,MAAM,UAAU,GAAiB,EAAA,CAAA;AACjC,IAAA,MAAM,aAAa,GAAiB,EAAA,CAAA;AAEpC,IAAA,MAAM,EAAE,QAAA,EAAa,GAAA,WAAA,CAAY,OAAS,EAAA;AAAA,MACxC,SAAW,EAAA,CAAA,CAAA,EAAI,EAAG,CAAA,CAAA,CAAE,SAAS,CAAA,CAAA,CAAA;AAAA,MAC7B,YACE,EAAM,GAAA,KAAA,CAAA,SAAA,KAAN,IACC,GAAA,EAAA,GAAA,CAAC,cAAsB,cAA2B,KAAA;AACjD,QAAA,OAAO,OAAO,KAAM,CAAA,IAAI,CACpB,GAAA,YAAA,IAAgB,iBAChB,YAAe,GAAA,cAAA,CAAA;AAAA,OACrB;AAAA,KACH,CAAA,CAAA;AAED,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,IAAM,MAAA,SAAA,GAAY,SAAS,MAAA;;AAAO,MAAA,OAAA,CAAAA,GAAA,GAAA,KAAA,CAAM,KAAN,KAAA,IAAA,GAAAA,MAA8B,EAAC,CAAA;AAAA,KAAC,CAAA,CAAA;AAE5D,IAAA,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,MAAM,SAAY,GAAA;AAAA,QAChB,GAAG,KAAA;AAAA,OACL,CAAA;AACA,MAAA,OAAO,SAAU,CAAA,KAAA,CAAA;AACjB,MAAA,OAAO,SAAU,CAAA,KAAA,CAAA;AACV,MAAA,OAAA,SAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAEK,IAAA,MAAA,gBAAA,GAAmB,CAAC,IAAiB,KAAA;AAClC,MAAA,OAAA;AAAA,QACL,QAAU,EAAA,QAAA;AAAA,QACV,OAAS,EAAA,aAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,eAAiB,EAAA,UAAA;AAAA,QACjB,oBAAsB,EAAA,UAAA;AAAA,QACtB,oBAAsB,EAAA,IAAA;AAAA,OACxB,CAAA;AAAA,KACF,CAAA;AAEM,IAAA,MAAA,YAAA,GAAgC,SAAS,MAAM;AAC5C,MAAA,OAAA,MAAA,CAAO,KAAM,CAAA,IAAI,CAAI,GAAA,gBAAA,CAAiB,OAAO,KAAM,CAAA,IAAI,CAAC,CAAA,GAAI,EAAC,CAAA;AAAA,KACrE,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}