UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 10.4 kB
{"version":3,"file":"content.mjs","sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <teleport :disabled=\"!teleported\" :to=\"appendTo\">\n <transition\n :name=\"transition\"\n @after-leave=\"onTransitionLeave\"\n @before-enter=\"onBeforeEnter\"\n @after-enter=\"onAfterShow\"\n @before-leave=\"onBeforeLeave\"\n >\n <el-popper-content\n v-if=\"shouldRender\"\n v-show=\"shouldShow\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-hidden=\"ariaHidden\"\n :boundaries-padding=\"boundariesPadding\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :strategy=\"strategy\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :pure=\"pure\"\n :popper-class=\"popperClass\"\n :popper-style=\"[popperStyle, contentStyle]\"\n :reference-el=\"referenceEl\"\n :visible=\"shouldShow\"\n :z-index=\"zIndex\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n >\n <!-- Workaround bug #6378 -->\n <template v-if=\"!destroyed\">\n <slot />\n <el-visually-hidden :id=\"id\" role=\"tooltip\">\n {{ ariaLabel }}\n </el-visually-hidden>\n </template>\n </el-popper-content>\n </transition>\n </teleport>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n onBeforeUnmount,\n ref,\n unref,\n watch,\n} from 'vue'\nimport { onClickOutside } from '@vueuse/core'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport { ElVisuallyHidden } from '@element-plus/components/visual-hidden'\nimport { composeEventHandlers } from '@element-plus/utils'\nimport { useEscapeKeydown } from '@element-plus/hooks'\n\nimport { useTooltipContentProps } from './tooltip'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\n\nexport default defineComponent({\n name: 'ElTooltipContent',\n components: {\n ElPopperContent,\n ElVisuallyHidden,\n },\n inheritAttrs: false,\n props: useTooltipContentProps,\n setup(props) {\n const contentRef = ref<InstanceType<typeof ElPopperContent> | null>(null)\n const intermediateOpen = ref(false)\n const entering = ref(false)\n const leaving = ref(false)\n const destroyed = ref(false)\n const {\n controlled,\n id,\n open,\n trigger,\n onClose,\n onOpen,\n onShow,\n onHide,\n onBeforeShow,\n onBeforeHide,\n } = inject(TOOLTIP_INJECTION_KEY, undefined)!\n const persistentRef = computed(() => {\n // For testing, we would always want the content to be rendered\n // to the DOM, so we need to return true here.\n if (process.env.NODE_ENV === 'test') {\n return true\n }\n return props.persistent\n })\n\n onBeforeUnmount(() => {\n destroyed.value = true\n })\n\n const shouldRender = computed(() => {\n return unref(persistentRef) ? true : unref(open)\n })\n\n const shouldShow = computed(() => {\n return props.disabled ? false : unref(open)\n })\n\n const contentStyle = computed(() => (props.style ?? {}) as any)\n\n const ariaHidden = computed(() => !unref(open))\n\n useEscapeKeydown(onClose)\n\n const onTransitionLeave = () => {\n onHide()\n }\n\n const stopWhenControlled = () => {\n if (unref(controlled)) return true\n }\n\n const onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n if (props.enterable && unref(trigger) === 'hover') {\n onOpen()\n }\n })\n\n const onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n if (unref(trigger) === 'hover') {\n onClose()\n }\n })\n\n const onBeforeEnter = () => {\n contentRef.value?.updatePopper?.()\n onBeforeShow?.()\n }\n\n const onBeforeLeave = () => {\n onBeforeHide?.()\n }\n\n const onAfterShow = () => {\n onShow()\n }\n\n let stopHandle: ReturnType<typeof onClickOutside>\n\n watch(\n () => unref(open),\n (val) => {\n if (val) {\n stopHandle = onClickOutside(\n computed(() => {\n return contentRef.value?.popperContentRef\n }),\n () => {\n if (unref(controlled)) return\n const $trigger = unref(trigger)\n if ($trigger !== 'hover') {\n onClose()\n }\n }\n )\n } else {\n stopHandle?.()\n }\n },\n {\n flush: 'post',\n }\n )\n\n return {\n ariaHidden,\n entering,\n leaving,\n id,\n intermediateOpen,\n contentStyle,\n contentRef,\n destroyed,\n shouldRender,\n shouldShow,\n open,\n onAfterShow,\n onBeforeEnter,\n onBeforeLeave,\n onContentEnter,\n onContentLeave,\n onTransitionLeave,\n }\n },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_Teleport","_createVNode","_Transition","_withCtx","_withDirectives","_mergeProps","_createCommentVNode","_createElementBlock","_Fragment"],"mappings":"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"}