UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 5.63 kB
{"version":3,"file":"trigger.mjs","sources":["../../../../../../packages/components/tooltip/src/trigger.vue"],"sourcesContent":["<template>\n <el-popper-trigger\n :id=\"id\"\n :virtual-ref=\"virtualRef\"\n :open=\"open\"\n :virtual-triggering=\"virtualTriggering\"\n :class=\"ns.e('trigger')\"\n @blur=\"onBlur\"\n @click=\"onClick\"\n @contextmenu=\"onContextMenu\"\n @focus=\"onFocus\"\n @mouseenter=\"onMouseenter\"\n @mouseleave=\"onMouseleave\"\n @keydown=\"onKeydown\"\n >\n <slot />\n </el-popper-trigger>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, toRef, unref } from 'vue'\nimport { ElPopperTrigger } from '@element-plus/components/popper'\nimport { composeEventHandlers } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useNamespace } from '@element-plus/hooks'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\nimport { useTooltipTriggerProps } from './tooltip'\nimport { whenTrigger } from './utils'\n\nimport type { OnlyChildExpose } from '@element-plus/components/slot'\n\nexport default defineComponent({\n name: 'ElTooltipTrigger',\n components: {\n ElPopperTrigger,\n },\n props: useTooltipTriggerProps,\n setup(props) {\n const ns = useNamespace('tooltip')\n const { controlled, id, open, onOpen, onClose, onToggle } = inject(\n TOOLTIP_INJECTION_KEY,\n undefined\n )!\n const triggerRef = ref<OnlyChildExpose | null>(null)\n\n const stopWhenControlledOrDisabled = () => {\n if (unref(controlled) || props.disabled) {\n return true\n }\n }\n const trigger = toRef(props, 'trigger')\n const onMouseenter = composeEventHandlers(\n stopWhenControlledOrDisabled,\n whenTrigger(trigger, 'hover', onOpen)\n )\n const onMouseleave = composeEventHandlers(\n stopWhenControlledOrDisabled,\n whenTrigger(trigger, 'hover', onClose)\n )\n const onClick = composeEventHandlers(\n stopWhenControlledOrDisabled,\n whenTrigger(trigger, 'click', (e) => {\n // distinguish left click\n if ((e as MouseEvent).button === 0) {\n onToggle(e)\n }\n })\n )\n\n const onFocus = composeEventHandlers(\n stopWhenControlledOrDisabled,\n whenTrigger(trigger, 'focus', onOpen)\n )\n\n const onBlur = composeEventHandlers(\n stopWhenControlledOrDisabled,\n whenTrigger(trigger, 'focus', onClose)\n )\n\n const onContextMenu = composeEventHandlers(\n stopWhenControlledOrDisabled,\n whenTrigger(trigger, 'contextmenu', (e: Event) => {\n e.preventDefault()\n onToggle(e)\n })\n )\n\n const onKeydown = composeEventHandlers(\n stopWhenControlledOrDisabled,\n (e: KeyboardEvent) => {\n const { code } = e\n if (code === EVENT_CODE.enter || code === EVENT_CODE.space) {\n onToggle(e)\n }\n }\n )\n\n return {\n onBlur,\n onContextMenu,\n onFocus,\n onMouseenter,\n onMouseleave,\n onClick,\n onKeydown,\n open,\n id,\n triggerRef,\n ns,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_normalizeClass","_renderSlot"],"mappings":"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"}