Files
element-plus/packages/components/tooltip/src/trigger.ts
yuhengshen cfc661c626 feat(types): [components] add public prop types (#21222)
* feat(types): [utils] add ExtractPublicPropTypes type

* feat(types): [components] add props public type

* chore(types): use type-only import for Prop from 'vue'

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
2025-07-07 00:51:32 +08:00

39 lines
1.2 KiB
TypeScript

import { buildProps, definePropType } from '@element-plus/utils'
import { popperTriggerProps } from '@element-plus/components/popper'
import { EVENT_CODE } from '@element-plus/constants'
import type { Arrayable } from '@element-plus/utils'
import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'
export type TooltipTriggerType = 'hover' | 'focus' | 'click' | 'contextmenu'
export const useTooltipTriggerProps = buildProps({
...popperTriggerProps,
/**
* @description whether Tooltip is disabled
*/
disabled: Boolean,
/**
* @description How should the tooltip be triggered (to show)
*/
trigger: {
type: definePropType<Arrayable<TooltipTriggerType>>([String, Array]),
default: 'hover',
},
/**
* @description When you click the mouse to focus on the trigger element, you can define a set of keyboard codes to control the display of tooltip through the keyboard
*/
triggerKeys: {
type: definePropType<string[]>(Array),
default: () => [EVENT_CODE.enter, EVENT_CODE.numpadEnter, EVENT_CODE.space],
},
} as const)
export type ElTooltipTriggerProps = ExtractPropTypes<
typeof useTooltipTriggerProps
>
export type ElTooltipTriggerPropsPublic = __ExtractPublicPropTypes<
typeof useTooltipTriggerProps
>