react-resizable-box
Version:
<p align="center"><img src ="https://github.com/bokuweb/react-resizable-box/blob/master/logo.png?raw=true" /></p>
113 lines (95 loc) • 2.56 kB
TypeScript
// Type definitions for react-resizable-box 2.0
// Project: https://github.com/bokuweb/react-resizable-box
// Definitions by: Kalle Ott <https://github.com/kaoDev>
// Definitions: https://github.com/kaoDev/react-resizable-box
// TypeScript Version: 2.2
import * as React from 'react';
export interface ResizableState {
width?: number | string;
height?: number | string;
direction?: string;
original?: {
x: number,
y: number,
width: number,
height: number,
},
isResizing?: boolean;
}
export type Size = {
width: number;
height: number;
}
export type CSSSize = {
width: string;
height: string;
}
export type ResizeHandler = (
event: MouseEvent | TouchEvent,
direction: string,
refToElement: HTMLElement,
delta: Size,
) => void;
export type ResizeStartCallBack = (
e: React.MouseEvent<any> | React.TouchEvent<any>,
dir: string,
refToElement: HTMLElement,
) => void;
export interface ResizableProps {
onResizeStop?: ResizeHandler;
onResizeStart?: ResizeStartCallBack;
onResize?: ResizeHandler;
style?: React.CSSProperties;
handlerStyles?: {
top?: React.CSSProperties,
right?: React.CSSProperties,
bottom?: React.CSSProperties,
left?: React.CSSProperties,
topRight?: React.CSSProperties,
bottomRight?: React.CSSProperties,
bottomLeft?: React.CSSProperties,
topLeft?: React.CSSProperties,
},
handlerClasses?: {
top?: string,
right?: string,
bottom?: string,
left?: string,
topRight?: string,
bottomRight?: string,
bottomLeft?: string,
topLeft?: string,
},
enable?: {
top: boolean,
right: boolean,
bottom: boolean,
left: boolean,
topRight: boolean,
bottomRight: boolean,
bottomLeft: boolean,
topLeft: boolean,
},
className?: string,
width?: string | number,
height?: string | number,
minWidth?: number,
minHeight?: number,
maxWidth?: number,
maxHeight?: number,
grid?: number[],
bounds?: 'parent' | 'window' | HTMLElement,
lockAspectRatio?: boolean,
extendsProps?: object,
}
export default class Resizable extends React.Component<ResizableProps, ResizableState> {
resizable: HTMLElement;
onTouchMove(event: React.TouchEvent<any>): void;
onMouseMove(event: MouseEvent | TouchEvent): void;
onMouseUp(event: MouseEvent | TouchEvent): void;
onResizeStart(event: React.TouchEvent<any> | React.MouseEvent<any>, direction: string): void
getBoxSize(): Size;
setSize(size: Size): void;
getBoxStyle(): CSSSize;
updateSize({ width, height }: Size): void;
}