This commit is contained in:
parent
274ea48dbf
commit
981021d7fc
@ -8,7 +8,7 @@
|
|||||||
:disabled="!tooltipEnabled"
|
:disabled="!tooltipEnabled"
|
||||||
:ui="{ text: 'whitespace-normal break-words', content: 'max-w-50 h-auto' }"
|
:ui="{ text: 'whitespace-normal break-words', content: 'max-w-50 h-auto' }"
|
||||||
>
|
>
|
||||||
<span :ref="checkSize" :class="textPrimary ? 'short-text--primary' : ''">{{ text }}</span>
|
<span :class="textPrimary ? 'short-text--primary' : ''">{{ truncate(text, 20) }}</span>
|
||||||
<Icon
|
<Icon
|
||||||
v-if="tooltipEnabled"
|
v-if="tooltipEnabled"
|
||||||
name="heroicons:information-circle"
|
name="heroicons:information-circle"
|
||||||
@ -24,13 +24,13 @@
|
|||||||
:disabled="!tooltipEnabled"
|
:disabled="!tooltipEnabled"
|
||||||
:ui="{ text: 'whitespace-normal break-words', content: 'max-w-80 h-auto' }"
|
:ui="{ text: 'whitespace-normal break-words', content: 'max-w-80 h-auto' }"
|
||||||
>
|
>
|
||||||
<span :ref="checkSize" :class="textPrimary ? 'short-text--primary' : ''">{{ text }}</span>
|
<span :class="textPrimary ? 'short-text--primary' : ''">{{ truncate(text, 20) }}</span>
|
||||||
</UTooltip>
|
</UTooltip>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onClickOutside, unrefElement } from '@vueuse/core'
|
import { onClickOutside } from '@vueuse/core'
|
||||||
|
|
||||||
defineProps<{ text: string, textPrimary?: boolean }>()
|
defineProps<{ text: string, textPrimary?: boolean }>()
|
||||||
|
|
||||||
@ -44,10 +44,19 @@ onClickOutside(wrapper, () => {
|
|||||||
open.value = false
|
open.value = false
|
||||||
})
|
})
|
||||||
|
|
||||||
function checkSize(_el: HTMLElement) {
|
const truncate = function (text = '', length = 15, clamp = '...') {
|
||||||
const el = unrefElement(_el)
|
const node = document.createElement('div')
|
||||||
|
node.innerHTML = text
|
||||||
|
const content = node.textContent
|
||||||
|
|
||||||
tooltipEnabled.value = el ? el.scrollWidth > el.clientWidth : false
|
if (content.length > length) {
|
||||||
|
tooltipEnabled.value = true
|
||||||
|
return content.slice(0, length) + clamp
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tooltipEnabled.value = false
|
||||||
|
return content
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user