UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 10.3 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 :id=\"id\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-label=\"ariaLabel\"\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 :trigger-target-el=\"triggerTargetEl\"\n :visible=\"shouldShow\"\n :z-index=\"zIndex\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n @blur=\"onBlur\"\n @close=\"onClose\"\n >\n <!-- Workaround bug #6378 -->\n <template v-if=\"!destroyed\">\n <slot />\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 { composeEventHandlers } from '@element-plus/utils'\n\nimport { useTooltipContentProps } from './tooltip'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\n\nexport default defineComponent({\n name: 'ElTooltipContent',\n components: {\n ElPopperContent,\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 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 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 }\n\n const onBlur = () => {\n if (!props.virtualTriggering) {\n onClose()\n }\n }\n\n let stopHandle: ReturnType<typeof onClickOutside>\n\n watch(\n () => unref(open),\n (val) => {\n if (!val) {\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 onClose,\n open,\n onAfterShow,\n onBeforeEnter,\n onBeforeLeave,\n onContentEnter,\n onContentLeave,\n onTransitionLeave,\n onBlur,\n }\n },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_Teleport","_createVNode","_Transition","_withCtx","_withDirectives","_mergeProps","_renderSlot","_createCommentVNode"],"mappings":"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"}