UNPKG

dockview

Version:

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

86 lines (85 loc) 3.45 kB
import { PaneviewApi } from '../api/component.api'; import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi'; import { Event } from '../events'; import { BasePanelView, BasePanelViewExported, BasePanelViewState } from '../gridview/basePanelView'; import { IDisposable } from '../lifecycle'; import { IFrameworkPart, PanelInitParameters, PanelUpdateEvent } from '../panel/types'; import { IView, Orientation } from '../splitview/core/splitview'; export interface PanePanelViewState extends BasePanelViewState { headerComponent?: string; title: string; } export interface PanePanelInitParameter extends PanelInitParameters { minimumBodySize?: number; maximumBodySize?: number; isExpanded?: boolean; title: string; containerApi: PaneviewApi; } export interface PanePanelComponentInitParameter extends PanePanelInitParameter { api: PaneviewPanelApiImpl; } export interface IPaneBodyPart extends IDisposable { readonly element: HTMLElement; update(params: PanelUpdateEvent): void; init(parameters: PanePanelComponentInitParameter): void; } export interface IPaneHeaderPart extends IDisposable { readonly element: HTMLElement; update(params: PanelUpdateEvent): void; init(parameters: PanePanelComponentInitParameter): void; } export interface IPaneview extends IView { onDidChangeExpansionState: Event<boolean>; } export interface IPaneviewPanel extends BasePanelViewExported<PaneviewPanelApiImpl> { readonly minimumSize: number; readonly maximumSize: number; readonly minimumBodySize: number; readonly maximumBodySize: number; isExpanded(): boolean; setExpanded(isExpanded: boolean): void; } export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelApiImpl> implements IPaneview, IPaneviewPanel { private readonly headerComponent; private _onDidChangeExpansionState; onDidChangeExpansionState: Event<boolean>; private readonly _onDidChange; readonly onDidChange: Event<number | undefined>; private headerSize; private _orthogonalSize; private _size; private _minimumBodySize; private _maximumBodySize; private _isExpanded; protected header?: HTMLElement; protected body?: HTMLElement; private bodyPart?; private headerPart?; private expandedSize; private animationTimer; private _orientation; set orientation(value: Orientation); get orientation(): Orientation; get minimumSize(): number; get maximumSize(): number; get size(): number; get orthogonalSize(): number; set orthogonalSize(size: number); get minimumBodySize(): number; set minimumBodySize(value: number); get maximumBodySize(): number; set maximumBodySize(value: number); constructor(id: string, component: string, headerComponent: string | undefined, orientation: Orientation, isExpanded: boolean); setVisible(isVisible: boolean): void; setActive(isActive: boolean): void; isExpanded(): boolean; setExpanded(expanded: boolean): void; layout(size: number, orthogonalSize: number): void; init(parameters: PanePanelInitParameter): void; toJSON(): PanePanelViewState; private renderOnce; getComponent(): IFrameworkPart; protected abstract getBodyComponent(): IPaneBodyPart; protected abstract getHeaderComponent(): IPaneHeaderPart; }