dockview-core
Version:
Zero dependency layout manager supporting tabs, groups, grids and splitviews for vanilla TypeScript
95 lines (94 loc) • 3.83 kB
TypeScript
import { Position } from '../dnd/droptarget';
import { DockviewComponent } from '../dockview/dockviewComponent';
import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
import { DockviewGroupChangeEvent, DockviewGroupLocation, DockviewGroupPanelLocked } from '../dockview/dockviewGroupPanelModel';
import { DockviewHeaderPosition } from '../dockview/options';
import { Emitter, Event } from '../events';
import { GridviewPanelApi, GridviewPanelApiImpl, SizeEvent } from './gridviewPanelApi';
export interface DockviewGroupMoveParams {
group?: DockviewGroupPanel;
position?: Position;
/**
* The index to place the panel within a group, only applicable if the placement is within an existing group
*/
index?: number;
/**
* Whether to skip setting the group as active after moving
*/
skipSetActive?: boolean;
}
export interface DockviewGroupPanelCollapsedChangeEvent {
readonly isCollapsed: boolean;
}
export interface DockviewGroupPanelApi extends GridviewPanelApi {
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
/**
* Fired when an edge group's collapsed state changes.
* Never fires for non-edge groups.
*/
readonly onDidCollapsedChange: Event<DockviewGroupPanelCollapsedChangeEvent>;
readonly location: DockviewGroupLocation;
/**
* Whether this group is locked against drop interactions.
* - `true`: panels cannot be dropped into the group (center / tabs),
* but the group can still be split from its edges.
* - `'no-drop-target'`: all drop zones are disabled for this group.
*/
locked: DockviewGroupPanelLocked;
/**
* If you require the Window object
*/
getWindow(): Window;
moveTo(options: DockviewGroupMoveParams): void;
setHeaderPosition(position: DockviewHeaderPosition): void;
getHeaderPosition(): DockviewHeaderPosition;
maximize(): void;
isMaximized(): boolean;
exitMaximized(): void;
close(): void;
/**
* Collapse this group (edge groups only). No-op for non-edge groups.
*/
collapse(): void;
/**
* Expand this group (edge groups only). No-op for non-edge groups.
*/
expand(): void;
/**
* Returns true if this edge group is currently collapsed.
* Always returns false for non-edge groups.
*/
isCollapsed(): boolean;
}
export interface DockviewGroupPanelFloatingChangeEvent {
readonly location: DockviewGroupLocation;
}
export declare class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
private readonly accessor;
private _group;
private _pendingSize;
readonly _onDidLocationChange: Emitter<DockviewGroupPanelFloatingChangeEvent>;
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
readonly _onDidActivePanelChange: Emitter<DockviewGroupChangeEvent>;
readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
readonly _onDidCollapsedChange: Emitter<DockviewGroupPanelCollapsedChangeEvent>;
readonly onDidCollapsedChange: Event<DockviewGroupPanelCollapsedChangeEvent>;
get location(): DockviewGroupLocation;
get locked(): DockviewGroupPanelLocked;
set locked(value: DockviewGroupPanelLocked);
constructor(id: string, accessor: DockviewComponent);
setSize(event: SizeEvent): void;
close(): void;
getWindow(): Window;
setHeaderPosition(position: DockviewHeaderPosition): void;
getHeaderPosition(): DockviewHeaderPosition;
moveTo(options: DockviewGroupMoveParams): void;
maximize(): void;
isMaximized(): boolean;
exitMaximized(): void;
collapse(): void;
expand(): void;
isCollapsed(): boolean;
initialize(group: DockviewGroupPanel): void;
}