UNPKG

matrix-react-sdk

Version:
46 lines (45 loc) 1.87 kB
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 {};