UNPKG

chowa

Version:

UI component library based on React

113 lines (112 loc) 3.94 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import * as React from 'react'; import * as PropTypes from 'prop-types'; import { OmitProps } from '../utils'; export interface OverlayProps extends OmitProps<React.HTMLAttributes<HTMLElement>, 'role'> { className?: string; style?: React.CSSProperties; trigger?: React.ReactNode; disabled?: boolean; externalWheelHide?: boolean; role?: string; delay?: number; action?: 'click' | 'hover' | 'focus' | 'contextMenu'; enter: string; appear: string; leave: string; defaultVisible?: boolean; visible?: boolean; onVisibleChange?: (visible: boolean) => any; placement?: 'top' | 'left' | 'bottom' | 'right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; fixSpace?: number; offsetX?: number; offsetY?: number; matchTriggerWidth?: boolean; onShow?: () => void; onHide?: () => void; onEnter?: () => void; onLeave?: () => void; } export interface OverlayState { selfVisible: boolean; zIndex: number; top: number; left: number; triggerWidth: number; } declare class Overlay extends React.PureComponent<OverlayProps, OverlayState> { static propTypes: { className: PropTypes.Requireable<string>; style: PropTypes.Requireable<object>; trigger: PropTypes.Requireable<PropTypes.ReactNodeLike>; disabled: PropTypes.Requireable<boolean>; externalWheelHide: PropTypes.Requireable<boolean>; role: PropTypes.Requireable<string>; delay: PropTypes.Requireable<number>; action: PropTypes.Requireable<string>; enter: PropTypes.Validator<string>; appear: PropTypes.Validator<string>; leave: PropTypes.Validator<string>; defaultVisible: PropTypes.Requireable<boolean>; visible: PropTypes.Requireable<boolean>; onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>; placement: PropTypes.Requireable<string>; fixSpace: PropTypes.Requireable<number>; offsetX: PropTypes.Requireable<number>; offsetY: PropTypes.Requireable<number>; matchTriggerWidth: PropTypes.Requireable<boolean>; onShow: PropTypes.Requireable<(...args: any[]) => any>; onHide: PropTypes.Requireable<(...args: any[]) => any>; onEnter: PropTypes.Requireable<(...args: any[]) => any>; onLeave: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { disabled: boolean; externalWheelHide: boolean; role: string; delay: number; action: string; enter: string; appear: string; leave: string; defaultVisible: boolean; visible: boolean; fixSpace: number; size: string; offsetX: number; offsetY: number; matchTriggerWidth: boolean; }; static zIndex: number; static getZIndex: () => number; private overlayMountElement; private overlayElenment; private triggerElement; private timer; constructor(props: OverlayProps); componentDidMount(): void; componentDidUpdate(preProps: OverlayProps): void; componentWillUnmount(): void; private setVisible; private bindListeners; private unbindListeners; private onVisibleChangeHandler; private clearTimer; private onOverlayMouseLeaveHandler; private onOverlayMouseEnterHandler; private externalMouseDownListener; setTriggerElement(node: HTMLElement): void; private onExternalWheelHandler; private updatePosition; private onOverlayMouseDownHandler; private renderOverlay; render(): any[]; } export default Overlay;