UNPKG

dockview

Version:

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

60 lines (59 loc) 2.22 kB
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; }