UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

188 lines (187 loc) 9.2 kB
import React, { CSSProperties, Key, MouseEvent as ReactMouseEvent, ReactElement, ReactNode } from 'react'; import PropTypes from 'prop-types'; import ViewComponent, { ViewComponentProps } from '../core/ViewComponent'; import Button, { ButtonProps } from '../button/Button'; import EventManager from '../_util/EventManager'; import { modalChildrenProps } from './interface'; import { MousePosition } from '../_util/DocumentUtils'; export declare type DrawerTransitionName = 'slide-up' | 'slide-right' | 'slide-down' | 'slide-left'; export interface ModalProps extends ViewComponentProps { __deprecate__?: boolean; eventKey?: Key; children?: any; closable?: boolean; movable?: boolean; fullScreen?: boolean; maskClosable?: boolean | 'click' | 'dblclick'; maskStyle?: CSSProperties; autoCenter?: boolean; mask?: boolean; maskClassName?: string; keyboardClosable?: boolean; modalTitle?: ReactNode; header?: ((title: ReactNode, closeBtn: ReactNode, okBtn: ReactElement<ButtonProps>, cancelBtn: ReactElement<ButtonProps>) => ReactNode) | ReactNode | boolean; footer?: ((okBtn: ReactElement<ButtonProps>, cancelBtn: ReactElement<ButtonProps>, modalChildrenProps: any) => ReactNode) | ReactNode | boolean; destroyOnClose?: boolean; okText?: ReactNode; cancelText?: ReactNode; okProps?: ButtonProps; cancelProps?: ButtonProps; onClose?: () => Promise<boolean | undefined> | boolean | undefined; onOk?: () => Promise<boolean | undefined> | boolean | undefined; onCancel?: () => Promise<boolean | undefined> | boolean | undefined; afterClose?: () => void; close?: () => void; update?: (props?: ModalProps) => void; okButton?: boolean; cancelButton?: boolean; /** * @deprecated */ okCancel?: boolean; drawer?: boolean; drawerOffset?: number; drawerTransitionName?: DrawerTransitionName; transitionAppear?: boolean; key?: Key; border?: boolean; drawerBorder?: boolean; okFirst?: boolean; active?: boolean; onTop?: (key?: Key) => void; mousePosition?: MousePosition | null; contentStyle?: CSSProperties; bodyStyle?: CSSProperties; closeOnLocationChange?: boolean; } export default class Modal extends ViewComponent<ModalProps> { static displayName: string; static propTypes: { closable: PropTypes.Requireable<boolean>; movable: PropTypes.Requireable<boolean>; fullScreen: PropTypes.Requireable<boolean>; maskClosable: PropTypes.Requireable<string | boolean>; maskStyle: PropTypes.Requireable<object>; mask: PropTypes.Requireable<boolean>; maskClassName: PropTypes.Requireable<string>; keyboardClosable: PropTypes.Requireable<boolean>; footer: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>; destroyOnClose: PropTypes.Requireable<boolean>; okText: PropTypes.Requireable<PropTypes.ReactNodeLike>; cancelText: PropTypes.Requireable<PropTypes.ReactNodeLike>; okProps: PropTypes.Requireable<object>; autoCenter: PropTypes.Requireable<boolean>; cancelProps: PropTypes.Requireable<object>; onClose: PropTypes.Requireable<(...args: any[]) => any>; onOk: PropTypes.Requireable<(...args: any[]) => any>; onCancel: PropTypes.Requireable<(...args: any[]) => any>; afterClose: PropTypes.Requireable<(...args: any[]) => any>; okButton: PropTypes.Requireable<boolean>; cancelButton: PropTypes.Requireable<boolean>; okCancel: PropTypes.Requireable<boolean>; drawer: PropTypes.Requireable<boolean>; drawerOffset: PropTypes.Requireable<number>; drawerTransitionName: PropTypes.Requireable<string>; okFirst: PropTypes.Requireable<boolean>; mousePosition: PropTypes.Requireable<PropTypes.InferProps<{ x: PropTypes.Requireable<number>; y: PropTypes.Requireable<number>; }>>; contentStyle: PropTypes.Requireable<object>; bodyStyle: PropTypes.Requireable<object>; closeOnLocationChange: PropTypes.Requireable<boolean>; id: PropTypes.Requireable<string>; size: PropTypes.Requireable<import("../core/enum").Size>; suffixCls: PropTypes.Requireable<string>; prefixCls: PropTypes.Requireable<string>; title: PropTypes.Requireable<PropTypes.ReactNodeLike>; disabled: PropTypes.Requireable<boolean>; hidden: PropTypes.Requireable<boolean>; autoFocus: PropTypes.Requireable<boolean>; accessKey: PropTypes.Requireable<string | boolean>; dir: PropTypes.Requireable<string>; contentEditable: PropTypes.Requireable<string | boolean>; draggable: PropTypes.Requireable<string | boolean>; style: PropTypes.Requireable<object>; className: PropTypes.Requireable<string>; tabIndex: PropTypes.Requireable<number>; lang: PropTypes.Requireable<string>; spellCheck: PropTypes.Requireable<boolean>; onFocus: PropTypes.Requireable<(...args: any[]) => any>; onBlur: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>; onMouseUp: PropTypes.Requireable<(...args: any[]) => any>; onMouseDown: PropTypes.Requireable<(...args: any[]) => any>; onMouseMove: PropTypes.Requireable<(...args: any[]) => any>; onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; onMouseOver: PropTypes.Requireable<(...args: any[]) => any>; onMouseOut: PropTypes.Requireable<(...args: any[]) => any>; onContextMenu: PropTypes.Requireable<(...args: any[]) => any>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onKeyUp: PropTypes.Requireable<(...args: any[]) => any>; onKeyPress: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { suffixCls: string; closable: boolean; movable: boolean; mask: boolean; okButton: boolean; okCancel: boolean; destroyOnClose: boolean; fullScreen: boolean; drawer: boolean; drawerOffset: number; autoFocus: boolean; closeOnLocationChange: boolean; }; static key: any; static open: any; static preview: any; static confirm: any; static info: any; static success: any; static error: any; static warning: any; static destroyAll: () => void; mousePosition?: MousePosition | null; moveEvent: EventManager; okCancelEvent: EventManager; offset?: [number | string | undefined, number | string | undefined]; cancelButton: Button | null; get okBtn(): ReactElement<ButtonProps>; get cancelBtn(): ReactElement<ButtonProps>; contentNode: HTMLElement; childrenProps: modalChildrenProps; constructor(props: any, context: any); componentWillReceiveProps(nextProps: ModalProps, nextContext: any): void; saveCancelRef(node: any): void; handleKeyDown(e: any): void; getOmitPropsKeys(): string[]; getOtherProps(): any; contentReference(node: any): void; getClassName(): string | undefined; render(): JSX.Element; componentWillUpdate({ hidden }: { hidden: any; }): void; componentWillUnmount(): void; handleMouseDown(e: any): void; handleHeaderMouseDown(downEvent: ReactMouseEvent<HTMLDivElement, MouseEvent>): void; handleOk(): Promise<void>; handleCancel(): Promise<void>; getHeader(): ReactNode; getWrappedHeader(header: ReactNode): ReactNode; getCloseButton(): ReactNode; getBody(): ReactNode; getFooter(): ReactNode; getWrappedFooter(footer: ReactNode): JSX.Element; getDefaultHeader: (title: any, closeButton: React.ReactNode, _okBtn: React.ReactElement<ButtonProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>, _cancelBtn: React.ReactElement<ButtonProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>) => JSX.Element | undefined; getDefaultFooter: (okBtn: React.ReactElement<ButtonProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>, cancelBtn: React.ReactElement<ButtonProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>, _modalChildrenProps: modalChildrenProps) => JSX.Element; registerOk: (ok: any) => void; registerCancel: (cancel: any) => void; renderChildren(children: ReactNode): ReactNode; close(): void; }