mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
// Type definitions for react-resizable 1.7
|
|
// Project: https://github.com/STRML/react-resizable
|
|
// Definitions by: Harry Brrundage <https://github.com/airhorns>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.8
|
|
|
|
import * as React from "react";
|
|
|
|
export type Axis = "both" | "x" | "y" | "none";
|
|
|
|
export interface ResizableState {
|
|
resizing: boolean;
|
|
width: number;
|
|
height: number;
|
|
slackW: number;
|
|
slackH: number;
|
|
}
|
|
|
|
export interface DragCallbackData {
|
|
node: HTMLElement;
|
|
x: number;
|
|
y: number;
|
|
deltaX: number;
|
|
deltaY: number;
|
|
lastX: number;
|
|
lastY: number;
|
|
}
|
|
|
|
export interface ResizeCallbackData {
|
|
node: HTMLElement;
|
|
size: { width: number; height: number };
|
|
}
|
|
|
|
export interface ResizableProps {
|
|
className?: string;
|
|
width: number;
|
|
height: number;
|
|
handleSize?: [number, number];
|
|
lockAspectRatio?: boolean;
|
|
axis?: Axis;
|
|
minConstraints?: [number, number];
|
|
maxConstraints?: [number, number];
|
|
onResizeStop?: (e: React.SyntheticEvent, data: ResizeCallbackData) => any;
|
|
onResizeStart?: (e: React.SyntheticEvent, data: ResizeCallbackData) => any;
|
|
onResize?: (e: React.SyntheticEvent, data: ResizeCallbackData) => any;
|
|
draggableOpts?: any;
|
|
resizeHandles?: string[];
|
|
}
|
|
|
|
export class Resizable extends React.Component<
|
|
ResizableProps,
|
|
ResizableState
|
|
> {}
|
|
|
|
export interface ResizableBoxState {
|
|
height: number;
|
|
width: number;
|
|
}
|
|
|
|
export type ResizableBoxProps = ResizableProps;
|
|
|
|
export class ResizableBox extends React.Component<
|
|
ResizableBoxProps,
|
|
ResizableBoxState
|
|
> {}
|