choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
47 lines (46 loc) • 1.93 kB
TypeScript
import { cloneElement, Component } from 'react';
import PropTypes from 'prop-types';
import EventManager from '../_util/EventManager';
import TaskRunner from '../_util/TaskRunner';
declare type FirstParam<T extends (...args: any[]) => any> = T extends (arg1: infer A, ...rest: any[]) => any ? A : never;
export interface AlignProps {
childrenProps?: object;
align: object;
target?: () => Node | Window;
onAlign?: (source: Element | Text | null, align: object, target: Node | Window, translate: {
x: number;
y: number;
}) => void;
monitorBufferTime?: number;
monitorWindowResize?: boolean;
hidden?: boolean;
children: FirstParam<typeof cloneElement>;
}
export default class Align extends Component<AlignProps, any> {
static displayName: string;
static propTypes: {
childrenProps: PropTypes.Requireable<object>;
align: PropTypes.Validator<object>;
target: PropTypes.Requireable<(...args: any[]) => any>;
onAlign: PropTypes.Requireable<(...args: any[]) => any>;
monitorBufferTime: PropTypes.Requireable<number>;
monitorWindowResize: PropTypes.Requireable<boolean>;
hidden: PropTypes.Requireable<boolean>;
children: PropTypes.Requireable<any>;
};
static defaultProps: {
monitorBufferTime: number;
monitorWindowResize: boolean;
hidden: boolean;
};
resizeHandler: EventManager | null;
bufferMonitor: TaskRunner | null;
forceAlign(): void;
componentDidMount(): void;
componentDidUpdate(prevProps: any): void;
componentWillUnmount(): void;
startMonitorWindowResize(): void;
stopMonitorWindowResize(): void;
render(): import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, string | any | (new (props: any) => Component<any, any, any>)> | null) | (new (props: any) => Component<any, any, any>)>;
}
export {};