matrix-react-sdk
Version:
SDK for matrix.org using React
46 lines (45 loc) • 1.87 kB
TypeScript
import FixedDistributor from "./distributors/fixed";
import ResizeItem from "./item";
import Sizer from "./sizer";
interface IClassNames {
handle?: string;
reverse?: string;
vertical?: string;
resizing?: string;
}
export interface IConfig {
onResizeStart?(): void;
onResizeStop?(): void;
onResized?(size: number | null, id: string | null, element: HTMLElement): void;
handler?: HTMLDivElement;
}
export default class Resizer<C extends IConfig, I extends ResizeItem<C> = ResizeItem<C>> {
container: HTMLElement | null;
private readonly distributorCtor;
readonly config?: C | undefined;
private classNames;
constructor(container: HTMLElement | null, distributorCtor: {
new (item: I): FixedDistributor<C, I>;
createItem(resizeHandle: HTMLDivElement, resizer: Resizer<C, I>, sizer: Sizer, container?: HTMLElement): I;
createSizer(containerElement: HTMLElement | null, vertical: boolean, reverse: boolean): Sizer;
}, config?: C | undefined);
setClassNames(classNames: IClassNames): void;
attach(): void;
detach(): void;
/**
Gives the distributor for a specific resize handle, as if you would have started
to drag that handle. Can be used to manipulate the size of an item programmatically.
@param {number} handleIndex the index of the resize handle in the container
@return {FixedDistributor} a new distributor for the given handle
*/
forHandleAt(handleIndex: number): FixedDistributor<C, I> | undefined;
forHandleWithId(id: string): FixedDistributor<C, I> | undefined;
isReverseResizeHandle(el: HTMLElement): boolean;
isResizeHandle(el: HTMLElement): boolean;
private onMouseDown;
private onResize;
getDistributors: () => FixedDistributor<C, I>[];
private createSizerAndDistributor;
private getResizeHandles;
}
export {};