dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
86 lines (85 loc) • 3.45 kB
TypeScript
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;
}