UNPKG

dockview

Version:

Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support

47 lines (46 loc) 1.56 kB
import { CompositeDisposable } from '../lifecycle'; import { IFrameworkPart, PanelUpdateEvent, PanelInitParameters, IPanel } from '../panel/types'; import { PanelApiImpl } from '../api/panelApi'; export interface BasePanelViewState { id: string; component: string; params?: { [key: string]: any; }; state?: { [key: string]: any; }; } export interface BasePanelViewExported<T extends PanelApiImpl> { readonly id: string; readonly api: T; readonly width: number; readonly height: number; focus(): void; toJSON(): object; update(params: 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 _element; protected part?: IFrameworkPart; protected params?: PanelInitParameters; /** * Provide an IFrameworkPart that will determine the rendered UI of this view piece. */ protected abstract getComponent(): IFrameworkPart; get element(): HTMLElement; get width(): number; get height(): number; 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; }