dockview
Version:
React docking layout manager — tabs, groups, grids, splitviews, drag and drop, floating panels
34 lines (33 loc) • 2.5 kB
TypeScript
import React from 'react';
import { DockviewWillDropEvent, DockviewDidDropEvent, IWatermarkPanelProps, IDockviewHeaderActionsProps, IDockviewPanelHeaderProps, IDockviewPanelProps, DockviewOptions, DockviewReadyEvent, BuiltInContextMenuItem, BuiltInChipContextMenuItem, ContextMenuItemConfig, GetTabContextMenuItemsParams, GetTabGroupChipContextMenuItemsParams, IContextMenuItemComponentProps } from 'dockview-core';
import { IDockviewTabGroupChipProps } from './reactTabGroupChipPart';
import { IDockviewGroupDragGhostProps } from './reactGroupDragGhostPart';
export interface ReactContextMenuItemConfig extends Omit<ContextMenuItemConfig, 'component'> {
component?: React.FunctionComponent<IContextMenuItemComponentProps>;
}
export interface IDockviewReactProps extends DockviewOptions {
tabComponents?: Record<string, React.FunctionComponent<IDockviewPanelHeaderProps>>;
components: Record<string, React.FunctionComponent<IDockviewPanelProps>>;
watermarkComponent?: React.FunctionComponent<IWatermarkPanelProps>;
defaultTabComponent?: React.FunctionComponent<IDockviewPanelHeaderProps>;
rightHeaderActionsComponent?: React.FunctionComponent<IDockviewHeaderActionsProps>;
leftHeaderActionsComponent?: React.FunctionComponent<IDockviewHeaderActionsProps>;
prefixHeaderActionsComponent?: React.FunctionComponent<IDockviewHeaderActionsProps>;
getTabContextMenuItems?: (params: GetTabContextMenuItemsParams) => (BuiltInContextMenuItem | ReactContextMenuItemConfig)[];
getTabGroupChipContextMenuItems?: (params: GetTabGroupChipContextMenuItemsParams) => (BuiltInChipContextMenuItem | ReactContextMenuItemConfig)[];
tabGroupChipComponent?: React.FunctionComponent<IDockviewTabGroupChipProps>;
/**
* Component rendered as the drag ghost (the small floating chip) while
* a group of panels is being dragged. If omitted, the default
* `"Multiple Panels (N)"` ghost is used.
*
* Note: the ghost is captured by the browser at drag start, so the
* component must render fast / synchronously enough to be visible
* before the browser snapshots it.
*/
groupDragGhostComponent?: React.FunctionComponent<IDockviewGroupDragGhostProps>;
onReady: (event: DockviewReadyEvent) => void;
onDidDrop?: (event: DockviewDidDropEvent) => void;
onWillDrop?: (event: DockviewWillDropEvent) => void;
}
export declare const DockviewReact: React.ForwardRefExoticComponent<IDockviewReactProps & React.RefAttributes<HTMLDivElement>>;