1 | import { Component, HTMLAttributes, ReactElement } from "react";
|
2 | export type Size = {
|
3 | height?: number;
|
4 | width?: number;
|
5 | scaledHeight?: number;
|
6 | scaledWidth?: number;
|
7 | };
|
8 | export type Props = {
|
9 | children: (size: Size) => ReactElement;
|
10 | defaultHeight?: number;
|
11 | defaultWidth?: number;
|
12 | disableHeight?: boolean;
|
13 | disableWidth?: boolean;
|
14 | nonce?: string;
|
15 | onResize?: (size: Size) => void;
|
16 | tagName?: string;
|
17 | } & Omit<HTMLAttributes<HTMLDivElement>, "children" | "onResize">;
|
18 | type State = {
|
19 | height: number;
|
20 | scaledHeight: number;
|
21 | scaledWidth: number;
|
22 | width: number;
|
23 | };
|
24 | type ResizeHandler = (element: HTMLElement, onResize: () => void) => void;
|
25 | type DetectElementResize = {
|
26 | addResizeListener: ResizeHandler;
|
27 | removeResizeListener: ResizeHandler;
|
28 | };
|
29 | declare class AutoSizer extends Component<Props, State> {
|
30 | static defaultProps: {
|
31 | onResize: () => void;
|
32 | disableHeight: boolean;
|
33 | disableWidth: boolean;
|
34 | style: {};
|
35 | };
|
36 | state: {
|
37 | height: number;
|
38 | scaledHeight: number;
|
39 | scaledWidth: number;
|
40 | width: number;
|
41 | };
|
42 | _autoSizer: HTMLElement | null;
|
43 | _detectElementResize: DetectElementResize | null;
|
44 | _parentNode: HTMLElement | null;
|
45 | _resizeObserver: ResizeObserver | null;
|
46 | componentDidMount(): void;
|
47 | componentWillUnmount(): void;
|
48 | render(): ReactElement;
|
49 | _onResize: () => void;
|
50 | _setRef: (autoSizer: HTMLElement | null) => void;
|
51 | }
|
52 | export default AutoSizer;
|
53 |
|
54 |
|