You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 lines
15 KiB

{"ast":null,"code":"import { defineComponent, ref, toRef, computed, provide, readonly, unref, watch, onDeactivated, openBlock, createBlock, withCtx, createVNode, renderSlot, createCommentVNode, createElementBlock, toDisplayString } from 'vue';\nimport { ElPopper } from '../../popper/index.mjs';\nimport { TOOLTIP_INJECTION_KEY } from './constants.mjs';\nimport { useTooltipProps, tooltipEmits, useTooltipModelToggle } from './tooltip.mjs';\nimport ElTooltipTrigger from './trigger2.mjs';\nimport ElTooltipContent from './content2.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { usePopperContainer } from '../../../hooks/use-popper-container/index.mjs';\nimport { useDelayedToggle } from '../../../hooks/use-delayed-toggle/index.mjs';\nimport ElPopperArrow from '../../popper/src/arrow2.mjs';\nimport { useId } from '../../../hooks/use-id/index.mjs';\nimport { isBoolean } from '../../../utils/types.mjs';\nconst __default__ = defineComponent({\n name: \"ElTooltip\"\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: useTooltipProps,\n emits: tooltipEmits,\n setup(__props, {\n expose,\n emit\n }) {\n const props = __props;\n usePopperContainer();\n const id = useId();\n const popperRef = ref();\n const contentRef = ref();\n const updatePopper = () => {\n var _a;\n const popperComponent = unref(popperRef);\n if (popperComponent) {\n (_a = popperComponent.popperInstanceRef) == null ? void 0 : _a.update();\n }\n };\n const open = ref(false);\n const toggleReason = ref();\n const {\n show,\n hide,\n hasUpdateHandler\n } = useTooltipModelToggle({\n indicator: open,\n toggleReason\n });\n const {\n onOpen,\n onClose\n } = useDelayedToggle({\n showAfter: toRef(props, \"showAfter\"),\n hideAfter: toRef(props, \"hideAfter\"),\n autoClose: toRef(props, \"autoClose\"),\n open: show,\n close: hide\n });\n const controlled = computed(() => isBoolean(props.visible) && !hasUpdateHandler.value);\n provide(TOOLTIP_INJECTION_KEY, {\n controlled,\n id,\n open: readonly(open),\n trigger: toRef(props, \"trigger\"),\n onOpen: event => {\n onOpen(event);\n },\n onClose: event => {\n onClose(event);\n },\n onToggle: event => {\n if (unref(open)) {\n onClose(event);\n } else {\n onOpen(event);\n }\n },\n onShow: () => {\n emit(\"show\", toggleReason.value);\n },\n onHide: () => {\n emit(\"hide\", toggleReason.value);\n },\n onBeforeShow: () => {\n emit(\"before-show\", toggleReason.value);\n },\n onBeforeHide: () => {\n emit(\"before-hide\", toggleReason.value);\n },\n updatePopper\n });\n watch(() => props.disabled, disabled => {\n if (disabled && open.value) {\n open.value = false;\n }\n });\n const isFocusInsideContent = event => {\n var _a;\n return (_a = contentRef.value) == null ? void 0 : _a.isFocusInsideContent(event);\n };\n onDeactivated(() => open.value && hide());\n expose({\n popperRef,\n contentRef,\n isFocusInsideContent,\n updatePopper,\n onOpen,\n onClose,\n hide\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(ElPopper), {\n ref_key: \"popperRef\",\n ref: popperRef,\n role: _ctx.role\n }, {\n default: withCtx(() => [createVNode(ElTooltipTrigger, {\n disabled: _ctx.disabled,\n trigger: _ctx.trigger,\n \"trigger-keys\": _ctx.triggerKeys,\n \"virtual-ref\": _ctx.virtualRef,\n \"virtual-triggering\": _ctx.virtualTriggering\n }, {\n default: withCtx(() => [_ctx.$slots.default ? renderSlot(_ctx.$slots, \"default\", {\n key: 0\n }) : createCommentVNode(\"v-if\", true)]),\n _: 3\n }, 8, [\"disabled\", \"trigger\", \"trigger-keys\", \"virtual-ref\", \"virtual-triggering\"]), createVNode(ElTooltipContent, {\n ref_key: \"contentRef\",\n ref: contentRef,\n \"aria-label\": _ctx.ariaLabel,\n \"boundaries-padding\": _ctx.boundariesPadding,\n content: _ctx.content,\n disabled: _ctx.disabled,\n effect: _ctx.effect,\n enterable: _ctx.enterable,\n \"fallback-placements\": _ctx.fallbackPlacements,\n \"hide-after\": _ctx.hideAfter,\n \"gpu-acceleration\": _ctx.gpuAcceleration,\n offset: _ctx.offset,\n persistent: _ctx.persistent,\n \"popper-class\": _ctx.popperClass,\n \"popper-style\": _ctx.popperStyle,\n placement: _ctx.placement,\n \"popper-options\": _ctx.popperOptions,\n pure: _ctx.pure,\n \"raw-content\": _ctx.rawContent,\n \"reference-el\": _ctx.referenceEl,\n \"trigger-target-el\": _ctx.triggerTargetEl,\n \"show-after\": _ctx.showAfter,\n strategy: _ctx.strategy,\n teleported: _ctx.teleported,\n transition: _ctx.transition,\n \"virtual-triggering\": _ctx.virtualTriggering,\n \"z-index\": _ctx.zIndex,\n \"append-to\": _ctx.appendTo\n }, {\n default: withCtx(() => [renderSlot(_ctx.$slots, \"content\", {}, () => [_ctx.rawContent ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n innerHTML: _ctx.content\n }, null, 8, [\"innerHTML\"])) : (openBlock(), createElementBlock(\"span\", {\n key: 1\n }, toDisplayString(_ctx.content), 1))]), _ctx.showArrow ? (openBlock(), createBlock(unref(ElPopperArrow), {\n key: 0,\n \"arrow-offset\": _ctx.arrowOffset\n }, null, 8, [\"arrow-offset\"])) : createCommentVNode(\"v-if\", true)]),\n _: 3\n }, 8, [\"aria-label\", \"boundaries-padding\", \"content\", \"disabled\", \"effect\", \"enterable\", \"fallback-placements\", \"hide-after\", \"gpu-acceleration\", \"offset\", \"persistent\", \"popper-class\", \"popper-style\", \"placement\", \"popper-options\", \"pure\", \"raw-content\", \"reference-el\", \"trigger-target-el\", \"show-after\", \"strategy\", \"teleported\", \"transition\", \"virtual-triggering\", \"z-index\", \"append-to\"])]),\n _: 3\n }, 8, [\"role\"]);\n };\n }\n});\nvar Tooltip = /* @__PURE__ */_export_sfc(_sfc_main, [[\"__file\", \"tooltip.vue\"]]);\nexport { Tooltip as default };","map":{"version":3,"names":["name","usePopperContainer","id","useId","popperRef","ref","contentRef","updatePopper","_a","popperComponent","unref","popperInstanceRef","update","open","toggleReason","show","hide","hasUpdateHandler","useTooltipModelToggle","indicator","onOpen","onClose","useDelayedToggle","showAfter","toRef","props","hideAfter","autoClose","close","controlled","computed","isBoolean","visible","value","provide","TOOLTIP_INJECTION_KEY","readonly","trigger","event","onToggle","onShow","emit","onHide","onBeforeShow","onBeforeHide","watch","disabled","isFocusInsideContent","onDeactivated","expose","_ctx","_cache","openBlock","createBlock","ElPopper","ref_key","role","default","withCtx","createVNode","ElTooltipTrigger","triggerKeys","virtualRef","virtualTriggering","$slots","renderSlot","key","createCommentVNode","_","ElTooltipContent","ariaLabel","boundariesPadding"],"sources":["../../../../../../packages/components/tooltip/src/tooltip.vue"],"sourcesContent":["<template>\n <el-popper ref=\"popperRef\" :role=\"role\">\n <el-tooltip-trigger\n :disabled=\"disabled\"\n :trigger=\"trigger\"\n :trigger-keys=\"triggerKeys\"\n :virtual-ref=\"virtualRef\"\n :virtual-triggering=\"virtualTriggering\"\n >\n <slot v-if=\"$slots.default\" />\n </el-tooltip-trigger>\n <el-tooltip-content\n ref=\"contentRef\"\n :aria-label=\"ariaLabel\"\n :boundaries-padding=\"boundariesPadding\"\n :content=\"content\"\n :disabled=\"disabled\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :fallback-placements=\"fallbackPlacements\"\n :hide-after=\"hideAfter\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :persistent=\"persistent\"\n :popper-class=\"popperClass\"\n :popper-style=\"popperStyle\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :pure=\"pure\"\n :raw-content=\"rawContent\"\n :reference-el=\"referenceEl\"\n :trigger-target-el=\"triggerTargetEl\"\n :show-after=\"showAfter\"\n :strategy=\"strategy\"\n :teleported=\"teleported\"\n :transition=\"transition\"\n :virtual-triggering=\"virtualTriggering\"\n :z-index=\"zIndex\"\n :append-to=\"appendTo\"\n >\n <slot name=\"content\">\n <span v-if=\"rawContent\" v-html=\"content\" />\n <span v-else>{{ content }}</span>\n </slot>\n <el-popper-arrow v-if=\"showArrow\" :arrow-offset=\"arrowOffset\" />\n </el-tooltip-content>\n </el-popper>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n onDeactivated,\n provide,\n readonly,\n ref,\n toRef,\n unref,\n watch,\n} from 'vue'\nimport { ElPopper, ElPopperArrow } from '@element-plus/components/popper'\n\nimport { isBoolean } from '@element-plus/utils'\nimport {\n useDelayedToggle,\n useId,\n usePopperContainer,\n} from '@element-plus/hooks'\nimport { TOOLTIP_INJECTION_KEY } from './constants'\nimport { tooltipEmits, useTooltipModelToggle, useTooltipProps } from './tooltip'\nimport ElTooltipTrigger from './trigger.vue'\nimport ElTooltipContent from './content.vue'\nimport type { TooltipContentInstance } from './content'\nimport type { PopperInstance } from '@element-plus/components/popper'\nimport type { Ref } from 'vue'\n\ndefineOptions({\n name: 'ElTooltip',\n})\n\nconst props = defineProps(useTooltipProps)\nconst emit = defineEmits(tooltipEmits)\n\nusePopperContainer()\n\nconst id = useId()\nconst popperRef = ref<PopperInstance>()\nconst contentRef = ref<TooltipContentInstance>()\n\nconst updatePopper = () => {\n const popperComponent = unref(popperRef)\n if (popperComponent) {\n popperComponent.popperInstanceRef?.update()\n }\n}\nconst open = ref(false)\nconst toggleReason = ref<Event>()\n\nconst { show, hide, hasUpdateHandler } = useTooltipModelToggle({\n indicator: open,\n toggleReason,\n})\n\nconst { onOpen, onClose } = useDelayedToggle({\n showAfter: toRef(props, 'showAfter'),\n hideAfter: toRef(props, 'hideAfter'),\n autoClose: toRef(props, 'autoClose'),\n open: show,\n close: hide,\n})\n\nconst controlled = computed(\n () => isBoolean(props.visible) && !hasUpdateHandler.value\n)\n\nprovide(TOOLTIP_INJECTION_KEY, {\n controlled,\n id,\n open: readonly(open),\n trigger: toRef(props, 'trigger'),\n onOpen: (event?: Event) => {\n onOpen(event)\n },\n onClose: (event?: Event) => {\n onClose(event)\n },\n onToggle: (event?: Event) => {\n if (unref(open)) {\n onClose(event)\n } else {\n onOpen(event)\n }\n },\n onShow: () => {\n emit('show', toggleReason.value)\n },\n onHide: () => {\n emit('hide', toggleReason.value)\n },\n onBeforeShow: () => {\n emit('before-show', toggleReason.value)\n },\n onBeforeHide: () => {\n emit('before-hide', toggleReason.value)\n },\n updatePopper,\n})\n\nwatch(\n () => props.disabled,\n (disabled) => {\n if (disabled && open.value) {\n open.value = false\n }\n }\n)\n\nconst isFocusInsideContent = (event?: FocusEvent) => {\n return contentRef.value?.isFocusInsideContent(event)\n}\n\nonDeactivated(() => open.value && hide())\n\ndefineExpose<{\n popperRef: Ref<PopperInstance | undefined>\n contentRef: Ref<TooltipContentInstance | undefined>\n isFocusInsideContent: (event?: FocusEvent) => boolean | undefined\n updatePopper: () => void\n onOpen: (event?: Event) => void\n onClose: (event?: Event) => void\n hide: () => void\n}>({\n /**\n * @description el-popper component instance\n */\n popperRef,\n /**\n * @description el-tooltip-content component instance\n */\n contentRef,\n /**\n * @description validate current focus event is trigger inside el-tooltip-content\n */\n isFocusInsideContent,\n /**\n * @description update el-popper component instance\n */\n updatePopper,\n /**\n * @description expose onOpen function to mange el-tooltip open state\n */\n onOpen,\n /**\n * @description expose onOpen function to mange el-tooltip open state\n */\n onClose,\n /**\n * @description expose hide function\n */\n hide,\n})\n</script>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}