jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
60 lines (59 loc) • 1.9 kB
TypeScript
import type { ReactNode } from 'react';
import React from 'react';
import type { OverlayProps } from './types';
export interface PositionProps {
container?: React.ReactNode | Function;
containerPadding?: number;
target?: ReactNode | Function;
placement?: string;
shouldUpdatePosition?: boolean;
onUpdatePlacement?: OverlayProps['onUpdatePlacement'];
offset?: [number?, number?] | {
x?: number;
y?: number;
left?: number;
top?: number;
};
[prop: string]: any;
}
interface PositionState {
activePlacement?: string;
arrowOffsetLeft?: number | null;
arrowOffsetTop?: number | null;
positionLeft?: number;
positionTop?: number;
}
export declare class Position extends React.Component<PositionProps, PositionState> {
props: PositionProps;
_lastTarget: any;
resizeDispose: Array<() => void>;
watchedTarget: any;
setState: (state: PositionState) => void;
static defaultProps: PositionProps;
constructor(props: PositionProps);
updatePosition(target: any): void;
componentDidMount(): void;
getTarget: () => any;
componentDidUpdate(prevProps: PositionProps, prevState: PositionState): void;
maybeUpdatePosition: (placementChanged: any) => void;
componentWillUnmount(): void;
render(): React.DetailedReactHTMLElement<{
offset: {
x: number;
y: number;
};
positionLeft: number | undefined;
positionTop: number | undefined;
className: string;
style: any;
activePlacement?: string;
arrowOffsetLeft?: number | null;
arrowOffsetTop?: number | null;
container?: React.ReactNode | Function;
containerPadding?: number;
target?: ReactNode | Function;
placement?: string;
shouldUpdatePosition?: boolean;
}, HTMLElement>;
}
export {};