import React from 'react'; import { ListenerEventHandler } from '../utils/addEventListener'; declare function noop(): void; export declare type ArrowStyleProps = { top: string; left: string; transform: string; } | {}; declare type PrevPopupSize = { width: number; height: number; } | null; export interface TriggerProps { children: React.ReactElement; popup: React.ReactNode | (() => React.ReactNode); name?: string; placement?: string; trigger?: string; visible?: boolean; translateX?: number; translateY?: number; showMask?: boolean; isInsertNode?: boolean; monitorWindowResize?: boolean; scrollClosable?: boolean; mouseEnterDelay?: number; mouseLeaveDelay?: number; maxHeight?: number; isMinRootWidth?: boolean; isMaxRootWidth?: boolean; rootToPopupSpacing?: number; popupLimitSpacing?: number; isTransformHorizontalDirection?: boolean; hiddenArrow?: boolean; arrowClassName?: string; wrapClassName?: string; innerClassName?: string; closeClassName?: string; onVisibleChange?: (visible: boolean, name?: string) => void; getCurrentDOMNode?: (node: React.ReactInstance | null) => HTMLElement; onDestroy?: () => void; onArrowStyleChange?: (v: ArrowStyleProps) => void; } interface TriggerStates { visible: boolean; isUserOperated: boolean; } declare class Trigger extends React.Component { static defaultProps: { placement: string; trigger: string; translateX: number; translateY: number; mouseEnterDelay: number; mouseLeaveDelay: number; monitorWindowResize: boolean; scrollClosable: boolean; showMask: boolean; isInsertNode: boolean; isMinRootWidth: boolean; isMaxRootWidth: boolean; rootToPopupSpacing: number; popupLimitSpacing: number; isTransformHorizontalDirection: boolean; hiddenArrow: boolean; onVisibleChange: typeof noop; onDestroy: typeof noop; }; prefixCls: string; clickOutsideHandler: ListenerEventHandler | null; touchOutsideHandler: ListenerEventHandler | null; resizeHandler: ListenerEventHandler | null; scrollHandler: ListenerEventHandler | null; hasPopupMouseDown: boolean; mouseDownTimeout: any; delayTimer: any; popupTimer: any; prevArrowStyle: ArrowStyleProps; prevPopupSize: PrevPopupSize; popupRef: React.RefObject; maskRef: React.RefObject; triggerRef: React.RefObject; isClickToHide: () => boolean; static getPopupInnerHeight(element: any): number; constructor(props: TriggerProps); static getDerivedStateFromProps(nextProps: TriggerProps, preState: TriggerStates): TriggerStates; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; clearPopupTimer: (popupEl?: HTMLElement) => void; forceAlign: (popupEl: HTMLElement) => void; getRootDomNode: () => HTMLElement; getPopupDomNode(): HTMLDivElement; getMaskDomNode(): HTMLDivElement; clearOutsideHandler(ignoreDelayTimer?: boolean): void; /** * 全局事件回调 * @param event */ onDocumentClick: (event: any) => void; showPopup: () => void; hidePopup: (ev?: any) => void; delaySetPopupVisible(visible: boolean, delayTime: number): void; onVisibleChange: (visible: boolean) => void; /** * 设置显示与隐藏 * @param nextVisible */ triggerPopup: (nextVisible: boolean) => void; onPopupMouseDown: () => void; onClick: (event: React.TouchEvent | React.MouseEvent) => void; onMouseEnter: () => void; onMouseLeave: () => void; onPopupMouseEnter: () => void; onPopupMouseLeave: () => void; onExited: () => void; isCurrentTrigger: (eventName: string, trigger: string) => boolean; isOutsideControl: () => boolean; onPreventThrough: (event: React.TouchEvent) => void; renderMask(): JSX.Element; renderPopupContent(): JSX.Element; /** * 扩充children属性,根据trigger绑定不同事件 */ renderChildComponent(): React.ReactElement React.ReactElement React.Component)>) | (new (props: any) => React.Component)>; renderPopupComponent(): JSX.Element; render(): JSX.Element; } export default Trigger;