import { DockviewApi } from '../api/component.api'; import { PanelTransfer } from '../dnd/dataTransfer'; import { Position } from '../dnd/droptarget'; import { DockviewComponent } from './dockviewComponent'; import { DockviewEvent, Event } from '../events'; import { DockviewGroupDropLocation, DockviewWillShowOverlayLocationEvent } from './events'; import { IViewSize } from '../gridview/gridview'; import { CompositeDisposable } from '../lifecycle'; import { IPanel, PanelInitParameters, PanelUpdateEvent, Parameters } from '../panel/types'; import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer'; import { DockviewGroupPanel } from './dockviewGroupPanel'; import { IDockviewPanel } from './dockviewPanel'; import { DockviewDndOverlayEvent, DockviewHeaderDirection, DockviewHeaderPosition } from './options'; import { OverlayRenderContainer } from '../overlay/overlayRenderContainer'; import { TitleEvent } from '../api/dockviewPanelApi'; import { Contraints } from '../gridview/gridviewPanel'; import { DropTargetAnchorContainer } from '../dnd/dropTargetAnchorContainer'; interface GroupMoveEvent { groupId: string; itemId?: string; target: Position; index?: number; } interface CoreGroupOptions { locked?: DockviewGroupPanelLocked; hideHeader?: boolean; headerPosition?: 'top' | 'bottom' | 'left' | 'right'; skipSetActive?: boolean; constraints?: Partial; initialWidth?: number; initialHeight?: number; } export interface GroupOptions extends CoreGroupOptions { readonly panels?: IDockviewPanel[]; readonly activePanel?: IDockviewPanel; readonly id?: string; } export interface GroupPanelViewState extends CoreGroupOptions { views: string[]; activeView?: string; id: string; } export interface DockviewGroupChangeEvent { readonly panel: IDockviewPanel; } export declare class DockviewDidDropEvent extends DockviewEvent { private readonly options; get nativeEvent(): DragEvent; get position(): Position; get panel(): IDockviewPanel | undefined; get group(): DockviewGroupPanel | undefined; get api(): DockviewApi; constructor(options: { readonly nativeEvent: DragEvent; readonly position: Position; readonly panel?: IDockviewPanel; getData(): PanelTransfer | undefined; group?: DockviewGroupPanel; api: DockviewApi; }); getData(): PanelTransfer | undefined; } export declare class DockviewWillDropEvent extends DockviewDidDropEvent { private readonly _kind; get kind(): DockviewGroupDropLocation; constructor(options: { readonly nativeEvent: DragEvent; readonly position: Position; readonly panel?: IDockviewPanel; getData(): PanelTransfer | undefined; kind: DockviewGroupDropLocation; group?: DockviewGroupPanel; api: DockviewApi; }); } export interface IHeader { hidden: boolean; direction: DockviewHeaderDirection; } export type DockviewGroupPanelLocked = boolean | 'no-drop-target'; export interface IDockviewGroupPanelModel extends IPanel { readonly isActive: boolean; readonly size: number; readonly panels: IDockviewPanel[]; readonly activePanel: IDockviewPanel | undefined; readonly header: IHeader; readonly isContentFocused: boolean; readonly onDidDrop: Event; readonly onWillDrop: Event; readonly onDidAddPanel: Event; readonly onDidRemovePanel: Event; readonly onDidActivePanelChange: Event; readonly onMove: Event; locked: DockviewGroupPanelLocked; headerPosition: DockviewHeaderPosition; setActive(isActive: boolean): void; initialize(): void; isPanelActive: (panel: IDockviewPanel) => boolean; indexOf(panel: IDockviewPanel): number; openPanel(panel: IDockviewPanel, options?: { index?: number; skipFocus?: boolean; skipSetPanelActive?: boolean; skipSetGroupActive?: boolean; }): void; closePanel(panel: IDockviewPanel): void; closeAllPanels(): void; containsPanel(panel: IDockviewPanel): boolean; removePanel: (panelOrId: IDockviewPanel | string) => IDockviewPanel; moveToNext(options?: { panel?: IDockviewPanel; suppressRoll?: boolean; }): void; moveToPrevious(options?: { panel?: IDockviewPanel; suppressRoll?: boolean; }): void; canDisplayOverlay(event: DragEvent, position: Position, target: DockviewGroupDropLocation): boolean; } export type DockviewGroupLocation = { type: 'grid'; } | { type: 'floating'; } | { type: 'popout'; getWindow: () => Window; popoutUrl?: string; }; export declare class DockviewGroupPanelModel extends CompositeDisposable implements IDockviewGroupPanelModel { private readonly container; private readonly accessor; id: string; private readonly options; private readonly groupPanel; private readonly tabsContainer; private readonly contentContainer; private _activePanel; private watermark?; private _isGroupActive; private _locked; private _rightHeaderActions; private _leftHeaderActions; private _prefixHeaderActions; private readonly _rightHeaderActionsDisposable; private readonly _leftHeaderActionsDisposable; private readonly _prefixHeaderActionsDisposable; private _headerPosition; private _location; private mostRecentlyUsed; private _overwriteRenderContainer; private _overwriteDropTargetContainer; private readonly _onDidChange; readonly onDidChange: Event; private _width; private _height; private readonly _panels; private readonly _panelDisposables; private readonly _onMove; readonly onMove: Event; private readonly _onDidDrop; readonly onDidDrop: Event; private readonly _onWillDrop; readonly onWillDrop: Event; private readonly _onWillShowOverlay; readonly onWillShowOverlay: Event; private readonly _onTabDragStart; readonly onTabDragStart: Event; private readonly _onGroupDragStart; readonly onGroupDragStart: Event; private readonly _onDidAddPanel; readonly onDidAddPanel: Event; private readonly _onDidPanelTitleChange; readonly onDidPanelTitleChange: Event; private readonly _onDidPanelParametersChange; readonly onDidPanelParametersChange: Event; private readonly _onDidRemovePanel; readonly onDidRemovePanel: Event; private readonly _onDidActivePanelChange; readonly onDidActivePanelChange: Event; private readonly _onUnhandledDragOverEvent; readonly onUnhandledDragOverEvent: Event; private readonly _api; get element(): HTMLElement; get activePanel(): IDockviewPanel | undefined; get locked(): DockviewGroupPanelLocked; set locked(value: DockviewGroupPanelLocked); get isActive(): boolean; get panels(): IDockviewPanel[]; get size(): number; get isEmpty(): boolean; get hasWatermark(): boolean; get header(): IHeader; get isContentFocused(): boolean; get headerPosition(): DockviewHeaderPosition; set headerPosition(value: DockviewHeaderPosition); get location(): DockviewGroupLocation; set location(value: DockviewGroupLocation); constructor(container: HTMLElement, accessor: DockviewComponent, id: string, options: GroupOptions, groupPanel: DockviewGroupPanel); focusContent(): void; set renderContainer(value: OverlayRenderContainer | null); get renderContainer(): OverlayRenderContainer; set dropTargetContainer(value: DropTargetAnchorContainer | null); get dropTargetContainer(): DropTargetAnchorContainer | null; initialize(): void; updateHeaderActions(): void; rerender(panel: IDockviewPanel): void; indexOf(panel: IDockviewPanel): number; toJSON(): GroupPanelViewState; moveToNext(options?: { panel?: IDockviewPanel; suppressRoll?: boolean; }): void; moveToPrevious(options?: { panel?: IDockviewPanel; suppressRoll?: boolean; }): void; containsPanel(panel: IDockviewPanel): boolean; init(_params: PanelInitParameters): void; update(_params: PanelUpdateEvent): void; focus(): void; openPanel(panel: IDockviewPanel, options?: { index?: number; skipSetActive?: boolean; skipSetGroupActive?: boolean; }): void; removePanel(groupItemOrId: IDockviewPanel | string, options?: { skipSetActive?: boolean; skipSetActiveGroup?: boolean; }): IDockviewPanel; closeAllPanels(): void; closePanel(panel: IDockviewPanel): void; private doClose; isPanelActive(panel: IDockviewPanel): boolean; updateActions(element: HTMLElement | undefined): void; setActive(isGroupActive: boolean, force?: boolean): void; layout(width: number, height: number): void; private _removePanel; private doRemovePanel; private doAddPanel; private doSetActivePanel; private updateMru; private updateContainer; canDisplayOverlay(event: DragEvent, position: Position, target: DockviewGroupDropLocation): boolean; private handleDropEvent; updateDragAndDropState(): void; dispose(): void; } export {};