UNPKG

zent

Version:

一套前端设计语言和基于React的实现

73 lines (72 loc) 3.38 kB
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;