@deephaven/golden-layout
Version:
A multi-screen javascript Layout manager
150 lines • 4.83 kB
TypeScript
import type { ItemConfig } from './ItemConfig';
export type Config = {
settings: Partial<Settings>;
dimensions: Dimensions;
labels: Labels;
content: ItemConfig[];
maximisedItemId?: string;
openPopouts?: PopoutConfig[];
};
export type PopoutConfig = Config & {
parentId: string;
indexInParent: number;
dimensions: Dimensions & {
width: number;
height: number;
left: number;
top: number;
};
};
export interface Settings {
/**
* Turns headers on or off. If false, the layout will be displayed with splitters only.
* Default: true
*/
hasHeaders: boolean;
/**
* Constrains the area in which items can be dragged to the layout's container. Will be set to false
* automatically when layout.createDragSource() is called.
* Default: true
*/
constrainDragToContainer: boolean;
/**
* If true, the user can re-arrange the layout by dragging items by their tabs to the desired location.
* Default: true
*/
reorderEnabled: boolean;
/**
* If true, the user can select items by clicking on their header. This sets the value of layout.selectedItem to
* the clicked item, highlights its header and the layout emits a 'selectionChanged' event.
* Default: false
*/
selectionEnabled: boolean;
/**
* Decides what will be opened in a new window if the user clicks the popout icon. If true the entire stack will
* be transferred to the new window, if false only the active component will be opened.
* Default: false
*/
popoutWholeStack: boolean;
/**
* Specifies if an error is thrown when a popout is blocked by the browser (e.g. by opening it programmatically).
* If false, the popout call will fail silently.
* Default: true
*/
blockedPopoutsThrowError: boolean;
/**
* Specifies if all popouts should be closed when the page that created them is closed. Popouts don't have a
* strong dependency on their parent and can exist on their own, but can be quite annoying to close by hand. In
* addition, any changes made to popouts won't be stored after the parent is closed.
* Default: true
*/
closePopoutsOnUnload: boolean;
/**
* Specifies if the popout icon should be displayed in the header-bar.
* Default: true
*/
showPopoutIcon: boolean;
/**
* Specifies if the maximise icon should be displayed in the header-bar.
* Default: true
*/
showMaximiseIcon: boolean;
/**
* Specifies if the close icon should be displayed in the header-bar.
* Default: true
*/
showCloseIcon: boolean;
responsiveMode: 'onload' | 'always' | 'none';
/**
* Maximum pixel overlap per tab
*/
tabOverlapAllowance: number;
tabControlOffset: number;
/**
* The default config to apply to Components
*/
defaultComponentConfig: Partial<Omit<ItemConfig, 'type'>>;
}
export interface Dimensions {
/**
* The width of the borders between the layout items in pixel. Please note: The actual draggable area is wider
* than the visible one, making it safe to set this to small values without affecting usability.
* Default: 5
*/
borderWidth: number;
borderGrabWidth: number;
/**
* The minimum height an item can be resized to (in pixel).
* Default: 10
*/
minItemHeight: number;
/**
* The minimum width an item can be resized to (in pixel).
* Default: 10
*/
minItemWidth: number;
/**
* The height of the header elements in pixel. This can be changed, but your theme's header css needs to be
* adjusted accordingly.
* Default: 20
*/
headerHeight: number;
/**
* The width of the element that appears when an item is dragged (in pixel).
* Default: 300
*/
dragProxyWidth: number;
/**
* The height of the element that appears when an item is dragged (in pixel).
* Default: 200
*/
dragProxyHeight: number;
}
export interface Labels {
/**
* The tooltip text that appears when hovering over the close icon.
* Default: 'close'
*/
close: string;
/**
* The tooltip text that appears when hovering over the maximise icon.
* Default: 'maximise'
*/
maximise: string;
/**
* The tooltip text that appears when hovering over the minimise icon.
* Default: 'minimise'
*/
minimise: string;
/**
* The tooltip text that appears when hovering over the popout icon.
* Default: 'open in new window'
*/
popout: string;
tabDropdown: string;
tabNextLabel: string;
tabPreviousLabel: string;
popin: string;
}
export declare const defaultConfig: Config;
//# sourceMappingURL=Config.d.ts.map