// @ts-nocheck import { buildProps, definePropType } from '@element-plus-next/vue-utils' import { POPPER_CONTAINER_SELECTOR, useDelayedToggleProps, useNamespace, } from '@element-plus-next/vue-hooks' import { EVENT_CODE } from '@element-plus-next/constants' import { usePopperContentProps, usePopperTriggerProps } from '../../popper' import type Tooltip from '../tooltip.vue' import type { ExtractPropTypes } from 'vue' const triggers = ['hover', 'focus', 'click', 'contextmenu'] as const const ns = useNamespace('tooltip') export type Trigger = typeof triggers[number] export const useTooltipContentProps = buildProps({ ...useDelayedToggleProps, ...usePopperContentProps, appendTo: { type: definePropType([String, Object]), default: POPPER_CONTAINER_SELECTOR, }, content: { type: String, default: '', }, rawContent: { type: Boolean, default: false, }, persistent: Boolean, ariaLabel: String, // because model toggle prop is generated dynamically // so the typing cannot be evaluated by typescript as type: // [name]: { type: Boolean, default: null } // so we need to declare that again for type checking. visible: { type: definePropType(Boolean), default: null, }, transition: { type: String, default: `${ns.namespace.value}-fade-in-linear`, }, teleported: { type: Boolean, default: true, }, disabled: { type: Boolean, }, } as const) export const useTooltipTriggerProps = buildProps({ ...usePopperTriggerProps, disabled: Boolean, trigger: { type: definePropType([String, Array]), default: 'hover', }, triggerKeys: { type: definePropType(Array), default: () => [EVENT_CODE.enter, EVENT_CODE.space], }, } as const) export const useTooltipProps = buildProps({ openDelay: { type: Number, }, visibleArrow: { type: Boolean, default: undefined, }, hideAfter: { type: Number, default: 200, }, showArrow: { type: Boolean, default: true, }, }) export type ElTooltipContentProps = ExtractPropTypes< typeof useTooltipContentProps > export type ElTooltipTriggerProps = ExtractPropTypes< typeof useTooltipTriggerProps > export type ElTooltipProps = ExtractPropTypes & ElTooltipContentProps & ElTooltipTriggerProps export type TooltipInstance = InstanceType