UNPKG

@alifd/overlay

Version:
83 lines (82 loc) 2.14 kB
import React, { CSSProperties, ReactElement } from 'react'; import { pointsType, placementType, PositionResult, TargetRect } from './placement'; export interface OverlayEvent extends MouseEvent, KeyboardEvent { target: EventTarget | null; } export interface OverlayProps { /** * 弹窗定位的参考元素 */ target?: (() => TargetRect | HTMLElement) | string; container?: () => HTMLElement; placement?: placementType; /** * 偏离 placement 对其方向像素 */ placementOffset?: number; /** * 弹窗定位方式 */ points?: pointsType; /** * 偏移 */ offset?: [number, number]; /** * 是否固定 */ fixed?: boolean; /** * 是否显示 */ visible?: boolean; onRequestClose?: (targetType: string, event: OverlayEvent) => void; cache?: boolean; /** * 弹窗打开后的回调(此时弹窗挂载成功) */ onOpen?: Function; /** * 弹窗关闭后的回调 */ onClose?: Function; hasMask?: boolean; canCloseByMask?: boolean; /** * 是否禁止滚动 */ disableScroll?: boolean; canCloseByOutSideClick?: boolean; canCloseByEsc?: boolean; wrapperClassName?: string; wrapperStyle?: CSSProperties; maskClassName?: string; maskStyle?: CSSProperties; maskRender?: (node: ReactElement) => ReactElement; /** * 弹窗内容 */ children?: ReactElement; style?: CSSProperties; safeNode?: () => Element | Array<() => Element>; onMouseEnter?: () => void; onMouseLeave?: () => void; beforePosition?: (result: PositionResult) => PositionResult; onPosition?: Function; autoAdjust?: boolean; autoHideScrollOverflow?: boolean; /** * 是否自动聚焦弹窗 */ autoFocus?: boolean; isAnimationEnd?: boolean; rtl?: boolean; } /** * 传入的组件可能是没有 forwardRef 包裹的 Functional Component, 会导致取不到 ref */ export declare class RefWrapper extends React.Component { render(): any; } declare const Overlay: any; export default Overlay;