@5minds/processcube_app_sdk
Version:
The SDK for ProcessCube Apps
62 lines (61 loc) • 2.05 kB
TypeScript
import React from 'react';
type SplitterLayoutProps = React.PropsWithChildren<{
customClassName: string;
vertical: boolean;
percentage: boolean;
primaryIndex: number;
primaryMinSize: number;
secondaryMinSize: number;
secondaryDefaultSize: number | null;
secondaryInitialSize: number | null;
onSizeChanged: ((secondarySize: number) => void) | null;
onDragStart: ((prev: number) => void) | null;
onDragEnd: ((prev: number, current: number) => void) | null;
}>;
type SplitterLayoutState = {
lastMouseDown: number;
secondaryPaneSize: number;
resizing: boolean;
size?: number;
};
export declare class SplitterLayout extends React.Component<SplitterLayoutProps, SplitterLayoutState> {
static defaultProps: SplitterLayoutProps;
private container;
private splitter;
constructor(props: SplitterLayoutProps);
componentDidMount(): void;
componentDidUpdate(_prevProps: SplitterLayoutProps, prevState: SplitterLayoutState): void;
componentWillUnmount(): void;
private clearSelection;
private getSecondaryPaneSize;
/**
* Set the size of the secondary pane.
*/
setSecondaryPaneSize(secondaryPaneSize: number): void;
/**
* Maximize the secondary pane.
*
* Only works if `percentage` is set to `true`.
*/
maximizeSecondaryPane(): void;
/**
* Check if the layout is in the default state, i.e. the secondary pane is at its default size.
*/
isReset(): boolean;
/**
* Reset the layout to the default state, i.e. set the secondary pane to its default size.
*
* If `secondaryDefaultSize` is not set, the secondary pane will be set to its `secondaryMinSize`.
*
* If `secondaryMinSize` is not set, the secondary pane will be set to 0.
*/
reset(): void;
private handleResize;
private handleMouseMove;
private handleTouchMove;
private handleSplitterMouseDown;
private handleSplitterDoubleClick;
private handleMouseUp;
render(): JSX.Element;
}
export {};