UNPKG

dockview-core

Version:

Zero dependency layout manager supporting tabs, grids and splitviews

99 lines (98 loc) 3.6 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/splitview'; import { PaneviewComponent } from './paneviewComponent'; export interface PanePanelViewState extends BasePanelViewState { headerComponent?: string; title: string; } export interface PanePanelInitParameter extends PanelInitParameters { minimumBodySize?: number; maximumBodySize?: number; isExpanded?: boolean; title: string; containerApi: PaneviewApi; accessor: PaneviewComponent; } export interface PanePanelComponentInitParameter extends PanePanelInitParameter { api: PaneviewPanelApiImpl; } export interface IPanePart 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; headerVisible: boolean; } export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelApiImpl> implements IPaneview, IPaneviewPanel { private readonly _onDidChangeExpansionState; onDidChangeExpansionState: Event<boolean>; private readonly _onDidChange; readonly onDidChange: Event<{ size?: number; orthogonalSize?: number; }>; private _orthogonalSize; private _size; private _minimumBodySize; private _maximumBodySize; private _isExpanded; protected header?: HTMLElement; protected body?: HTMLElement; private bodyPart?; private headerPart?; private animationTimer; private _orientation; private _headerVisible; readonly headerSize: number; readonly headerComponent: string | undefined; 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); get headerVisible(): boolean; set headerVisible(value: boolean); constructor(options: { id: string; component: string; headerComponent: string | undefined; orientation: Orientation; isExpanded: boolean; isHeaderVisible: boolean; headerSize: number; minimumBodySize: number; maximumBodySize: number; }); 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(): IPanePart; protected abstract getHeaderComponent(): IPanePart; }