UNPKG

@minto-ai/mt-ui

Version:

UI组件库

218 lines (217 loc) 4.76 kB
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<string, boolean>; type ClassType = string | ClassObjectType | ClassType[]; declare const popoverProps: { /** * 触发方式 */ trigger: { type: PropType<PopoverTriggerType>; default: string; }; /** * 显示的内容 */ content: { type: StringConstructor; default: string; }; /** * popover 内容的宽度 */ width: { type: PropType<number | string>; validator: (value: number | string) => boolean; default: number; }; /** * 出现的位置 */ placement: { type: PropType<Placement>; default: string; }; /** * 是否禁用 */ disabled: { type: BooleanConstructor; default: boolean; }; /** * popover 内容的偏移量 */ offset: { type: NumberConstructor; default: undefined; }; /** * 是否显示 */ visible: { type: PropType<boolean | null>; default: null; }; /** * 切换 visible 状态的回调 */ 'onUpdate:visible': { type: PropType<(visible: boolean) => void>; }; /** * 是否显示箭头 */ showArrow: { type: BooleanConstructor; default: boolean; }; /** * popover 的参数 */ popperOptions: { type: PropType<Partial<Options>>; default: () => {}; }; /** * popover 策略 */ strategy: { type: PropType<"absolute" | "fixed">; default: string; }; /** * popover 回退位置 */ fallbackPlacements: { type: PropType<Placement[]>; default: undefined; }; /** * popover 是否开启 GPU 加速 */ gpuAcceleration: { type: BooleanConstructor; default: boolean; }; /** * popover 类名 */ popperClass: { type: PropType<ClassType>; default: string; }; /** * 延迟显示,单位毫秒 */ showAfter: { type: NumberConstructor; default: number; }; /** * 延迟关闭,单位毫秒 */ hideAfter: { type: NumberConstructor; default: number; }; /** * 是否自动关闭 */ autoClose: { type: BooleanConstructor; default: boolean; }; /** * popover 样式 */ popperStyle: { type: PropType<StyleValue>; default: () => {}; }; /** * Content 挂载到哪个 DOM 元素 */ appendTo: { type: PropType<string | HTMLElement>; default: string; }; /** * Content 主题 */ effect: { type: PropType<PopoverEffect>; default: string; }; /** * 是否将 content 作为 HTML 字符串处理 */ rawContent: { type: BooleanConstructor; default: boolean; }; /** * 是否虚拟触发 */ virtualTriggering: { type: BooleanConstructor; default: boolean; }; /** * 虚拟触发的元素 */ virtualRef: { type: PropType<Ref<HTMLElement | null>>; 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<typeof popoverProps>; interface MtPopperInjectionContext { triggerRef: Ref<HTMLElement | null>; contentRef: Ref<HTMLElement | null>; arrowRef: Ref<HTMLElement | null>; contentVisible: Ref<boolean>; onShow: () => void; onHide: () => void; onToggle: () => void; } export declare const POPPER_INJECTION_KEY: InjectionKey<MtPopperInjectionContext>; interface MtPopperContentInjectionContext { arrowRef: Ref<HTMLElement | null>; } export declare const POPPER_CONTENT_INJECTION_KEY: InjectionKey<MtPopperContentInjectionContext>; export type { PopoverEffect, PopoverEmits, PopoverInstance, PopoverProps, PopoverTriggerType, }; export { popoverProps, };