dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
60 lines (59 loc) • 2.22 kB
TypeScript
import { IDisposable } from '../lifecycle';
import { IDockviewComponent } from '../dockview/dockviewComponent';
import { DockviewPanelApi } from '../api/groupPanelApi';
import { PanelInitParameters, IPanel } from '../panel/types';
import { DockviewApi } from '../api/component.api';
import { GroupviewPanel } from './groupviewPanel';
import { Event } from '../events';
import { WrappedTab } from '../dockview/components/tab/defaultTab';
export interface IRenderable {
id: string;
element: HTMLElement;
onDidFocus?: Event<void>;
onDidBlur?: Event<void>;
}
export interface HeaderPartInitParameters {
title: string;
suppressClosable?: boolean;
}
export interface GroupPanelPartInitParameters extends PanelInitParameters, HeaderPartInitParameters {
api: DockviewPanelApi;
containerApi: DockviewApi;
}
export interface GroupPanelContentPartInitParameters extends GroupPanelPartInitParameters {
tab: WrappedTab;
}
export interface IWatermarkRenderer extends IPanel {
readonly element: HTMLElement;
init: (params: GroupPanelPartInitParameters) => void;
updateParentGroup(group: GroupviewPanel, visible: boolean): void;
}
export interface ITabRenderer extends IPanel {
readonly element: HTMLElement;
init(parameters: GroupPanelPartInitParameters): void;
updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
}
export interface IActionsRenderer extends IDisposable {
readonly element: HTMLElement;
}
export interface IContentRenderer extends IPanel {
readonly element: HTMLElement;
readonly actions?: HTMLElement;
readonly onDidFocus?: Event<void>;
readonly onDidBlur?: Event<void>;
updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
init(parameters: GroupPanelContentPartInitParameters): void;
close?(): Promise<boolean>;
}
export interface WatermarkPartInitParameters {
accessor: IDockviewComponent;
}
export interface PanelHeaderPartConstructor {
new (): ITabRenderer;
}
export interface PanelContentPartConstructor {
new (): IContentRenderer;
}
export interface WatermarkConstructor {
new (): IWatermarkRenderer;
}