import type { Instance, Modifier, OptionsGeneric, Placement, VirtualElement } from '@popperjs/core'; import React from 'react'; import ModalManager from '../Modal/ModalManager'; import type { ContainerElement } from '../utils/getContainerElement'; /** * */ interface TransitionProps { /** * */ in: boolean; /** * */ onEnter?: () => void; /** * */ onEntered?: () => void; /** * */ onExit?: () => void; } /** * */ export interface Props extends Omit, 'children'> { /** * 设置为`true`,则打开弹出内容。否则关闭弹出内容。 */ open: boolean; /** * 弹出窗内容 */ children: Omit | ((transitionProps: TransitionProps) => React.ReactNode); /** * 参考元素。弹出提示内容会基于参考内容进行定位 */ referenceElement: ContainerElement; /** * 弹出内容相对参考元素的定位位置。默认为`bottom`。 */ placement?: Placement; /** * 指定传送门渲染容器。默认为`document.body`。 */ container?: ContainerElement; /** * 是否将弹出内容以传送门的方式渲染。默认为`true`。 */ portal?: boolean; /** * 指向popper实例的引用 */ popperRef?: React.Ref; /** * 传给popper的插件。 */ modifiers?: Partial>[]; /** * 传给popper的配置。 */ popperOptions?: Partial>>>; /** * 模态框管理器 */ modalManager?: ModalManager; /** * 自动获取焦点 */ autoFocus?: boolean; /** * 设置焦点不离开模态框 */ enforceFocus?: boolean; /** * 指定弹层的z-index。如果是以portal的方式弹出的,则z-index默认为1300。 */ zIndex?: number; } /** * 弹出提示组件 * * 此组件封装的是[popper.js](https://popper.js.org),将包含的内容以弹出的方式定位到指定的相对位置。 */ declare const Popper: React.ForwardRefExoticComponent>; export default Popper;