chowa
Version:
UI component library based on React
113 lines (112 loc) • 3.94 kB
TypeScript
/**
* @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;