UNPKG

dockview

Version:

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

114 lines (113 loc) 4.05 kB
import { Event } from '../events'; import { CompositeDisposable, IDisposable } from '../lifecycle'; import { LayoutPriority, Orientation } from '../splitview/core/splitview'; import { PaneviewComponentOptions } from './options'; import { Paneview } from './paneview'; import { IPaneBodyPart, IPaneHeaderPart, PaneviewPanel, IPaneviewPanel } from './paneviewPanel'; import { DraggablePaneviewPanel, PaneviewDropEvent2 } from './draggablePaneviewPanel'; export interface SerializedPaneviewPanel { snap?: boolean; priority?: LayoutPriority; minimumSize?: number; maximumSize?: number; data: { id: string; component: string; title: string; headerComponent?: string; params?: { [index: string]: any; }; state?: { [index: string]: any; }; }; size: number; expanded?: boolean; } export interface SerializedPaneview { size: number; views: SerializedPaneviewPanel[]; } export declare class PaneFramework extends DraggablePaneviewPanel { private readonly options; constructor(options: { id: string; component: string; headerComponent: string | undefined; body: IPaneBodyPart; header: IPaneHeaderPart; orientation: Orientation; isExpanded: boolean; disableDnd: boolean; }); getBodyComponent(): IPaneBodyPart; getHeaderComponent(): IPaneHeaderPart; } export interface AddPaneviewCompponentOptions { id: string; component: string; headerComponent?: string; params?: { [key: string]: any; }; minimumBodySize?: number; maximumBodySize?: number; isExpanded?: boolean; title: string; index?: number; size?: number; } export interface IPaneviewComponent extends IDisposable { readonly width: number; readonly height: number; readonly minimumSize: number; readonly maximumSize: number; readonly onDidDrop: Event<PaneviewDropEvent2>; readonly onDidLayoutChange: Event<void>; addPanel(options: AddPaneviewCompponentOptions): IDisposable; layout(width: number, height: number): void; toJSON(): SerializedPaneview; fromJSON(serializedPaneview: SerializedPaneview, deferComponentLayout?: boolean): void; resizeToFit(): void; focus(): void; getPanels(): IPaneviewPanel[]; removePanel(panel: IPaneviewPanel): void; getPanel(id: string): IPaneviewPanel | undefined; movePanel(from: number, to: number): void; updateOptions(options: Partial<PaneviewComponentOptions>): void; } export declare class PaneviewComponent extends CompositeDisposable implements IPaneviewComponent { private element; private _disposable; private _paneview; private readonly _onDidLayoutChange; readonly onDidLayoutChange: Event<void>; private readonly _onDidDrop; readonly onDidDrop: Event<PaneviewDropEvent2>; get onDidAddView(): Event<PaneviewPanel>; get onDidRemoveView(): Event<PaneviewPanel>; set paneview(value: Paneview); get paneview(): Paneview; get minimumSize(): number; get maximumSize(): number; get height(): number; get width(): number; private _options; get options(): PaneviewComponentOptions; constructor(element: HTMLElement, options: PaneviewComponentOptions); focus(): void; updateOptions(options: Partial<PaneviewComponentOptions>): void; addPanel(options: AddPaneviewCompponentOptions): IDisposable; getPanels(): PaneviewPanel[]; removePanel(panel: PaneviewPanel): void; movePanel(from: number, to: number): void; getPanel(id: string): PaneviewPanel | undefined; layout(width: number, height: number): void; /** * Resize the layout to fit the parent container */ resizeToFit(): void; toJSON(): SerializedPaneview; fromJSON(serializedPaneview: SerializedPaneview, deferComponentLayout?: boolean): void; }