UNPKG

flexlayout-react

Version:

A multi-tab docking layout manager

154 lines (153 loc) 4.4 kB
import { ICloseType } from './ICloseType'; export type IBorderLocation = "top" | "bottom" | "left" | "right"; export type ITabLocation = "top" | "bottom"; export type IInsets = { "top": number; "right": number; "bottom": number; "left": number; }; export interface IJsonModel { global?: IGlobalAttributes; borders?: IJsonBorderNode[]; layout: IJsonRowNode; popouts: Record<string, IJsonPopout>; } export interface IJsonPopout { layout: IJsonRowNode; } export interface IJsonBorderNode extends IBorderAttributes { location: IBorderLocation; children: IJsonTabNode[]; } export interface IJsonRowNode extends IRowAttributes { children: (IJsonRowNode | IJsonTabSetNode)[]; } export interface IJsonTabSetNode extends ITabSetAttributes { active?: boolean; maximized?: boolean; children: IJsonTabNode[]; } export interface IJsonTabNode extends ITabAttributes { } export interface IGlobalAttributes { borderAutoSelectTabWhenClosed?: boolean; borderAutoSelectTabWhenOpen?: boolean; borderBarSize?: number; borderClassName?: string; borderEnableAutoHide?: boolean; borderEnableDrop?: boolean; borderMinSize?: number; borderSize?: number; enableEdgeDock?: boolean; enableRotateBorderIcons?: boolean; enableUseVisibility?: boolean; legacyOverflowMenu?: boolean; marginInsets?: IInsets; rootOrientationVertical?: boolean; splitterExtra?: number; splitterSize?: number; tabBorderHeight?: number; tabBorderWidth?: number; tabClassName?: string; tabCloseType?: ICloseType; tabContentClassName?: string; tabDragSpeed?: number; tabEnableClose?: boolean; tabEnableDrag?: boolean; tabEnableFloat?: boolean; tabEnableRename?: boolean; tabEnableRenderOnDemand?: boolean; tabIcon?: string; tabSetAutoSelectTab?: boolean; tabSetBorderInsets?: IInsets; tabSetClassNameHeader?: string; tabSetClassNameTabStrip?: string; tabSetEnableClose?: boolean; tabSetEnableDeleteWhenEmpty?: boolean; tabSetEnableDivide?: boolean; tabSetEnableDrag?: boolean; tabSetEnableDrop?: boolean; tabSetEnableMaximize?: boolean; tabSetEnableSingleTabStretch?: boolean; tabSetEnableTabStrip?: boolean; tabSetHeaderHeight?: number; tabSetMarginInsets?: IInsets; tabSetMinHeight?: number; tabSetMinWidth?: number; tabSetTabLocation?: ITabLocation; tabSetTabStripHeight?: number; } export interface IRowAttributes { height?: number; id?: string; type: "row"; weight?: number; width?: number; } export interface ITabSetAttributes { autoSelectTab?: boolean; borderInsets?: IInsets; classNameHeader?: string; classNameTabStrip?: string; config?: any; enableClose?: boolean; enableDeleteWhenEmpty?: boolean; enableDivide?: boolean; enableDrag?: boolean; enableDrop?: boolean; enableMaximize?: boolean; enableSingleTabStretch?: boolean; enableTabStrip?: boolean; headerHeight?: number; height?: number; id?: string; marginInsets?: IInsets; minHeight?: number; minWidth?: number; name?: string; selected?: number; tabLocation?: ITabLocation; tabStripHeight?: number; type: "tabset"; weight?: number; width?: number; maximized?: boolean; active?: boolean; } export interface ITabAttributes { altName?: string; borderHeight?: number; borderWidth?: number; className?: string; closeType?: ICloseType; component?: string; config?: any; contentClassName?: string; tabsetClassName?: string; enableClose?: boolean; enableDrag?: boolean; enableFloat?: boolean; enableRename?: boolean; enableRenderOnDemand?: boolean; floating?: boolean; helpText?: string; icon?: string; id?: string; name?: string; type?: string; } export interface IBorderAttributes { autoSelectTabWhenClosed?: boolean; autoSelectTabWhenOpen?: boolean; barSize?: number; className?: string; config?: any; enableAutoHide?: boolean; enableDrop?: boolean; minSize?: number; selected?: number; show?: boolean; size?: number; type: "border"; }