import { Options, Placement } from '@popperjs/core'; import { ExtractPropTypes, InjectionKey, PropType, Ref, StyleValue } from 'vue'; interface PopoverInstance { hide: () => void; show: () => void; } type PopoverTriggerType = 'hover' | 'click' | 'manual'; type PopoverEffect = 'light' | 'dark'; type ClassObjectType = Record; type ClassType = string | ClassObjectType | ClassType[]; declare const popoverProps: { /** * 触发方式 */ trigger: { type: PropType; default: string; }; /** * 显示的内容 */ content: { type: StringConstructor; default: string; }; /** * popover 内容的宽度 */ width: { type: PropType; validator: (value: number | string) => boolean; default: number; }; /** * 出现的位置 */ placement: { type: PropType; default: string; }; /** * 是否禁用 */ disabled: { type: BooleanConstructor; default: boolean; }; /** * popover 内容的偏移量 */ offset: { type: NumberConstructor; default: undefined; }; /** * 是否显示 */ visible: { type: PropType; default: null; }; /** * 切换 visible 状态的回调 */ 'onUpdate:visible': { type: PropType<(visible: boolean) => void>; }; /** * 是否显示箭头 */ showArrow: { type: BooleanConstructor; default: boolean; }; /** * popover 的参数 */ popperOptions: { type: PropType>; default: () => {}; }; /** * popover 策略 */ strategy: { type: PropType<"absolute" | "fixed">; default: string; }; /** * popover 回退位置 */ fallbackPlacements: { type: PropType; default: undefined; }; /** * popover 是否开启 GPU 加速 */ gpuAcceleration: { type: BooleanConstructor; default: boolean; }; /** * popover 类名 */ popperClass: { type: PropType; default: string; }; /** * 延迟显示,单位毫秒 */ showAfter: { type: NumberConstructor; default: number; }; /** * 延迟关闭,单位毫秒 */ hideAfter: { type: NumberConstructor; default: number; }; /** * 是否自动关闭 */ autoClose: { type: BooleanConstructor; default: boolean; }; /** * popover 样式 */ popperStyle: { type: PropType; default: () => {}; }; /** * Content 挂载到哪个 DOM 元素 */ appendTo: { type: PropType; default: string; }; /** * Content 主题 */ effect: { type: PropType; default: string; }; /** * 是否将 content 作为 HTML 字符串处理 */ rawContent: { type: BooleanConstructor; default: boolean; }; /** * 是否虚拟触发 */ virtualTriggering: { type: BooleanConstructor; default: boolean; }; /** * 虚拟触发的元素 */ virtualRef: { type: PropType>; default: () => null; }; /** * popover 内容的 z-index */ zIndex: { type: NumberConstructor; }; /** * 是否可进入 */ enterable: { type: BooleanConstructor; default: boolean; }; /** * 是否启用 teleport 功能 */ teleported: { type: BooleanConstructor; default: boolean; }; }; interface PopoverEmits { 'update:visible': [boolean]; 'show': []; 'hide': []; 'beforeEnter': []; 'beforeLeave': []; } type PopoverProps = ExtractPropTypes; interface MtPopperInjectionContext { triggerRef: Ref; contentRef: Ref; arrowRef: Ref; contentVisible: Ref; onShow: () => void; onHide: () => void; onToggle: () => void; } export declare const POPPER_INJECTION_KEY: InjectionKey; interface MtPopperContentInjectionContext { arrowRef: Ref; } export declare const POPPER_CONTENT_INJECTION_KEY: InjectionKey; export type { PopoverEffect, PopoverEmits, PopoverInstance, PopoverProps, PopoverTriggerType, }; export { popoverProps, };