dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
35 lines (34 loc) • 1.01 kB
TypeScript
import { State } from '../api/panelApi';
import { IDisposable } from '../lifecycle';
import { LayoutPriority } from '../splitview/core/splitview';
/**
* A key-value object of anything that is a valid JavaScript Object.
*/
export interface Parameters {
[key: string]: any;
}
export interface PanelInitParameters {
params: Parameters;
state?: State;
}
export interface PanelUpdateEvent<T extends Parameters = Parameters> {
params: Partial<T>;
}
export interface IPanel extends IDisposable {
readonly id: string;
init(params: PanelInitParameters): void;
layout(width: number, height: number): void;
update(event: PanelUpdateEvent<Parameters>): void;
toJSON(): object;
focus(): void;
}
export interface IFrameworkPart extends IDisposable {
update(params: Parameters): void;
}
export interface BaseComponentOptions {
id: string;
component: string;
params?: Parameters;
snap?: boolean;
priority?: LayoutPriority;
}