react-simple-resizer
Version:
An intuitive React component set for multi-column resizing
52 lines (51 loc) • 1.29 kB
TypeScript
import { RefObject } from 'react';
import { Observable } from 'rxjs';
export interface Coordinate {
x: number;
y: number;
}
export declare type Trend = -1 | 0 | 1;
export declare enum BarActionType {
ACTIVATE = "activate",
MOVE = "move",
DEACTIVATE = "deactivate"
}
export interface BarAction {
type: BarActionType;
coordinate: Coordinate;
barID: number;
}
export interface SizeInfo {
isSolid: boolean;
currentSize: number;
maxSize?: number;
minSize?: number;
disableResponsive?: boolean;
}
export interface SizeRelatedInfo {
discard?: boolean;
sizeInfoArray: SizeInfo[];
flexGrowRatio: number;
}
export interface ChildProps {
size?: number;
defaultSize?: number;
maxSize?: number;
minSize?: number;
context: ResizerContext;
disableResponsive?: boolean;
innerRef?: RefObject<HTMLDivElement>;
}
export interface ResizerContext {
vertical: boolean;
createID: (props: ChildProps) => number;
populateInstance: (id: number, ref: RefObject<HTMLElement>) => void;
triggerBarAction: (action: BarAction) => void;
sizeRelatedInfo$: Observable<SizeRelatedInfo>;
}
export interface ExpandInteractiveArea {
top?: number;
left?: number;
right?: number;
bottom?: number;
}