import { buildProps } from '@element-plus/utils' import { createModelToggleComposable } from '@element-plus/hooks' import { popperArrowProps, popperProps } from '@element-plus/components/popper' import { useTooltipContentProps } from './content' import { useTooltipTriggerProps } from './trigger' import type Tooltip from './tooltip.vue' import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue' export const { useModelToggleProps: useTooltipModelToggleProps, useModelToggleEmits: useTooltipModelToggleEmits, useModelToggle: useTooltipModelToggle, } = createModelToggleComposable('visible' as const) export const useTooltipProps = buildProps({ ...popperProps, ...useTooltipModelToggleProps, ...useTooltipContentProps, ...useTooltipTriggerProps, ...popperArrowProps, /** * @description whether the tooltip content has an arrow */ showArrow: { type: Boolean, default: true, }, }) export const tooltipEmits = [ ...useTooltipModelToggleEmits, 'before-show', 'before-hide', 'show', 'hide', 'open', 'close', ] export type ElTooltipProps = ExtractPropTypes export type ElTooltipPropsPublic = __ExtractPublicPropTypes< typeof useTooltipProps > export type TooltipInstance = InstanceType & unknown