dockview-core
Version:
Zero dependency layout manager supporting tabs, grids and splitviews
41 lines (40 loc) • 1.48 kB
TypeScript
import { CompositeDisposable } from '../lifecycle';
import { IFrameworkPart, PanelUpdateEvent, PanelInitParameters, IPanel, Parameters } from '../panel/types';
import { PanelApi, PanelApiImpl } from '../api/panelApi';
export interface BasePanelViewState {
readonly id: string;
readonly component: string;
readonly params?: Parameters;
}
export interface BasePanelViewExported<T extends PanelApi> {
readonly id: string;
readonly api: T;
readonly width: number;
readonly height: number;
readonly params: Parameters | undefined;
focus(): void;
toJSON(): object;
update(event: PanelUpdateEvent): void;
}
export declare abstract class BasePanelView<T extends PanelApiImpl> extends CompositeDisposable implements IPanel, BasePanelViewExported<T> {
readonly id: string;
protected readonly component: string;
readonly api: T;
private _height;
private _width;
private readonly _element;
protected part?: IFrameworkPart;
protected _params?: PanelInitParameters;
protected abstract getComponent(): IFrameworkPart;
get element(): HTMLElement;
get width(): number;
get height(): number;
get params(): Parameters | undefined;
constructor(id: string, component: string, api: T);
focus(): void;
layout(width: number, height: number): void;
init(parameters: PanelInitParameters): void;
update(event: PanelUpdateEvent): void;
toJSON(): BasePanelViewState;
dispose(): void;
}