UNPKG

2.21 kBTypeScriptView Raw
1import * as React from "react";
2
3export type Axis = "both" | "x" | "y" | "none";
4export type ResizeHandle = "s" | "w" | "e" | "n" | "sw" | "nw" | "se" | "ne";
5
6export interface ResizableState {
7 resizing: boolean;
8 width: number;
9 height: number;
10 slackW: number;
11 slackH: number;
12}
13
14export interface DragCallbackData {
15 node: HTMLElement;
16 x: number;
17 y: number;
18 deltaX: number;
19 deltaY: number;
20 lastX: number;
21 lastY: number;
22}
23
24export interface ResizeCallbackData {
25 node: HTMLElement;
26 size: { width: number; height: number };
27 handle: ResizeHandle;
28}
29
30export type ResizableProps =
31 & {
32 children?: React.ReactNode;
33 className?: string | undefined;
34 handle?:
35 | React.ReactNode
36 | ((resizeHandle: ResizeHandle, ref: React.RefObject<any>) => React.ReactNode)
37 | undefined;
38 handleSize?: [number, number] | undefined;
39 lockAspectRatio?: boolean | undefined;
40 minConstraints?: [width: number, height: number] | undefined;
41 maxConstraints?: [width: number, height: number] | undefined;
42 onResizeStop?: ((e: React.SyntheticEvent, data: ResizeCallbackData) => any) | undefined;
43 onResizeStart?: ((e: React.SyntheticEvent, data: ResizeCallbackData) => any) | undefined;
44 onResize?: ((e: React.SyntheticEvent, data: ResizeCallbackData) => any) | undefined;
45 draggableOpts?: any;
46 resizeHandles?: ResizeHandle[] | undefined;
47 transformScale?: number;
48 }
49 & (
50 | {
51 width: number;
52 height?: number | undefined;
53 axis: "x";
54 }
55 | {
56 width?: number | undefined;
57 height: number;
58 axis: "y";
59 }
60 | {
61 width: number;
62 height: number;
63 axis?: "both";
64 }
65 );
66
67export class Resizable extends React.Component<ResizableProps, ResizableState> {}
68
69export interface ResizableBoxState {
70 height: number;
71 width: number;
72}
73
74export type ResizableBoxProps = ResizableProps & { style?: React.CSSProperties };
75
76export class ResizableBox extends React.Component<ResizableBoxProps, ResizableBoxState> {}
77
\No newline at end of file