zent
Version:
一套前端设计语言和基于React的实现
73 lines (72 loc) • 3.38 kB
TypeScript
import { Component } from 'react';
import Popover, { IPositionFunction, IPopoverClickTriggerChildProps, IPopoverClickTriggerProps, IPopoverTriggerProps, IPopoverHoverTriggerChildProps, IPopoverHoverTriggerProps, IPopoverFocusTriggerChildProps, IPopoverFocusTriggerProps, IPopoverBeforeHook } from '../popover';
import { IPopActionCallback } from './Action';
export interface IPopNoneTriggerProps<Props = {}> extends IPopoverTriggerProps<Props>, IPopCommonProps {
trigger: 'none';
}
export interface IPopClickTriggerProps<Props extends IPopoverClickTriggerChildProps> extends IPopoverClickTriggerProps<Props>, IPopCommonProps {
trigger: 'click';
}
export interface IPopHoverTriggerProps<Props extends IPopoverHoverTriggerChildProps> extends IPopoverHoverTriggerProps<Props>, IPopCommonProps {
trigger: 'hover';
mouseEnterDelay?: number;
mouseLeaveDelay?: number;
fixMouseEventsOnDisabledChildren?: boolean;
}
export interface IPopFocusTriggerProps<Props extends IPopoverFocusTriggerChildProps> extends IPopoverFocusTriggerProps<Props>, IPopCommonProps {
trigger: 'focus';
}
export declare type PopPositions = 'left-top' | 'left-center' | 'left-bottom' | 'right-top' | 'right-center' | 'right-bottom' | 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'auto-bottom-center' | 'auto-bottom-left' | 'auto-bottom-right' | 'auto-top-center' | 'auto-top-left' | 'auto-top-right';
export interface IPopCommonProps {
content: React.ReactNode;
position?: PopPositions | IPositionFunction;
cushion?: number;
centerArrow?: boolean;
header?: React.ReactNode;
onShow?: () => void;
onClose?: () => void;
onBeforeShow?: IPopoverBeforeHook;
onBeforeClose?: IPopoverBeforeHook;
type?: 'primary' | 'default' | 'danger' | 'success';
visible?: boolean;
onVisibleChange?: (visible: boolean) => void;
onPositionUpdated?: () => void;
onPositionReady?: () => void;
className?: string;
style?: React.CSSProperties;
containerSelector?: string;
onConfirm?: IPopActionCallback;
onCancel?: IPopActionCallback;
confirmText?: string;
cancelText?: string;
}
export declare type IPopProps = IPopNoneTriggerProps<any> | IPopClickTriggerProps<any> | IPopHoverTriggerProps<any> | IPopFocusTriggerProps<any>;
export interface IPopState {
confirmPending: boolean;
cancelPending: boolean;
}
export declare class Pop extends Component<IPopProps, IPopState> {
static defaultProps: {
trigger: string;
position: string;
cushion: number;
type: string;
mouseLeaveDelay: number;
mouseEnterDelay: number;
containerSelector: string;
};
static withPop: <Props extends Record<"pop", Popover> = Record<"pop", Popover>>(Base: import("react").ComponentType<Props>) => import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<Omit<Props, "pop">> & import("react").RefAttributes<any>>;
private popoverRef;
private isUnmounted;
state: {
confirmPending: boolean;
cancelPending: boolean;
};
changePending: (key: keyof IPopState, pending: boolean, callback?: () => void) => void;
adjustPosition(): void;
getWrappedPopover(): Popover;
renderTrigger(): JSX.Element;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default Pop;