Do not edit this file. It is a report generated by API Extractor.
import { CommandRegistry } from '@lumino/commands';
import { ConflatableMessage } from '@lumino/messaging';
import { ElementARIAAttrs } from '@lumino/virtualdom';
import { ElementDataset } from '@lumino/virtualdom';
import { ElementInlineStyle } from '@lumino/virtualdom';
import { h } from '@lumino/virtualdom';
import { IDisposable } from '@lumino/disposable';
import { IIterable } from '@lumino/algorithm';
import { IIterator } from '@lumino/algorithm';
import { IMessageHandler } from '@lumino/messaging';
import { IObservableDisposable } from '@lumino/disposable';
import { ISignal } from '@lumino/signaling';
import { Message } from '@lumino/messaging';
import { ReadonlyJSONObject } from '@lumino/coreutils';
import { VirtualElement } from '@lumino/virtualdom';
// @public
export class AccordionLayout extends SplitLayout {
constructor(options: AccordionLayout.IOptions);
protected attachWidget(index: number, widget: Widget): void;
protected detachWidget(index: number, widget: Widget): void;
dispose(): void;
protected moveWidget(fromIndex: number, toIndex: number, widget: Widget): void;
readonly renderer: AccordionLayout.IRenderer;
readonly titles: ReadonlyArray<HTMLElement>;
titleSpace: number;
protected updateItemPosition(i: number, isHorizontal: boolean, left: number, top: number, height: number, width: number, size: number): void;
// (undocumented)
updateTitle(index: number, widget: Widget): void;
}
// @public (undocumented)
export namespace AccordionLayout {
export type Alignment = SplitLayout.Alignment;
export interface IOptions extends SplitLayout.IOptions {
renderer: IRenderer;
titleSpace?: number;
}
export interface IRenderer extends SplitLayout.IRenderer {
createSectionTitle(title: Title<Widget>): HTMLElement;
readonly titleClassName: string;
}
export type Orientation = SplitLayout.Orientation;
}
// @public
export class AccordionPanel extends SplitPanel {
constructor(options?: AccordionPanel.IOptions);
addWidget(widget: Widget): void;
collapse(index: number): void;
expand(index: number): void;
handleEvent(event: Event): void;
insertWidget(index: number, widget: Widget): void;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
readonly renderer: AccordionPanel.IRenderer;
readonly titles: ReadonlyArray<HTMLElement>;
titleSpace: number;
}
// @public
export namespace AccordionPanel {
export type Alignment = SplitLayout.Alignment;
export interface IOptions extends Partial<AccordionLayout.IOptions> {
layout?: AccordionLayout;
}
export type IRenderer = AccordionLayout.IRenderer;
export type Orientation = SplitLayout.Orientation;
export class Renderer extends SplitPanel.Renderer implements IRenderer {
constructor();
createCollapseIcon(data: Title<Widget>): HTMLElement;
createSectionTitle(data: Title<Widget>): HTMLElement;
createTitleKey(data: Title<Widget>): string;
readonly titleClassName = "lm-AccordionPanel-title";
}
const defaultRenderer: Renderer;
}
// @public
export namespace BoxEngine {
export function adjust(sizers: ArrayLike<BoxSizer>, index: number, delta: number): void;
export function calc(sizers: ArrayLike<BoxSizer>, space: number): number;
}
// @public
export class BoxLayout extends PanelLayout {
constructor(options?: BoxLayout.IOptions);
alignment: BoxLayout.Alignment;
protected attachWidget(index: number, widget: Widget): void;
protected detachWidget(index: number, widget: Widget): void;
direction: BoxLayout.Direction;
dispose(): void;
protected init(): void;
protected moveWidget(fromIndex: number, toIndex: number, widget: Widget): void;
protected onBeforeAttach(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildHidden(msg: Widget.ChildMessage): void;
protected onChildShown(msg: Widget.ChildMessage): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
spacing: number;
}
// @public
export namespace BoxLayout {
export type Alignment = 'start' | 'center' | 'end' | 'justify';
export type Direction = 'left-to-right' | 'right-to-left' | 'top-to-bottom' | 'bottom-to-top';
export function getSizeBasis(widget: Widget): number;
export function getStretch(widget: Widget): number;
export interface IOptions {
alignment?: Alignment;
direction?: Direction;
spacing?: number;
}
export function setSizeBasis(widget: Widget, value: number): void;
export function setStretch(widget: Widget, value: number): void;
}
// @public
export class BoxPanel extends Panel {
constructor(options?: BoxPanel.IOptions);
alignment: BoxPanel.Alignment;
direction: BoxPanel.Direction;
protected onChildAdded(msg: Widget.ChildMessage): void;
protected onChildRemoved(msg: Widget.ChildMessage): void;
spacing: number;
}
// @public
export namespace BoxPanel {
export type Alignment = BoxLayout.Alignment;
export type Direction = BoxLayout.Direction;
export function getSizeBasis(widget: Widget): number;
export function getStretch(widget: Widget): number;
export interface IOptions {
alignment?: Alignment;
direction?: Direction;
layout?: BoxLayout;
spacing?: number;
}
export function setSizeBasis(widget: Widget, value: number): void;
export function setStretch(widget: Widget, value: number): void;
}
// @public
export class BoxSizer {
done: boolean;
maxSize: number;
minSize: number;
size: number;
sizeHint: number;
stretch: number;
}
// @public
export class CommandPalette extends Widget {
constructor(options: CommandPalette.IOptions);
addItem(options: CommandPalette.IItemOptions): CommandPalette.IItem;
addItems(items: CommandPalette.IItemOptions[]): CommandPalette.IItem[];
clearItems(): void;
readonly commands: CommandRegistry;
readonly contentNode: HTMLUListElement;
dispose(): void;
handleEvent(event: Event): void;
readonly inputNode: HTMLInputElement;
readonly items: ReadonlyArray<CommandPalette.IItem>;
protected onActivateRequest(msg: Message): void;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onUpdateRequest(msg: Message): void;
refresh(): void;
removeItem(item: CommandPalette.IItem): void;
removeItemAt(index: number): void;
readonly renderer: CommandPalette.IRenderer;
readonly searchNode: HTMLDivElement;
}
// @public
export namespace CommandPalette {
export interface IEmptyMessageRenderData {
query: string;
}
export interface IHeaderRenderData {
readonly category: string;
readonly indices: ReadonlyArray<number> | null;
}
export interface IItem {
readonly args: ReadonlyJSONObject;
readonly caption: string;
readonly category: string;
readonly className: string;
readonly command: string;
readonly dataset: CommandRegistry.Dataset;
readonly icon: VirtualElement.IRenderer | undefined | string;
readonly iconClass: string;
readonly iconLabel: string;
readonly isEnabled: boolean;
readonly isToggleable: boolean;
readonly isToggled: boolean;
readonly isVisible: boolean;
readonly keyBinding: CommandRegistry.IKeyBinding | null;
readonly label: string;
readonly rank: number;
}
export interface IItemOptions {
args?: ReadonlyJSONObject;
category: string;
command: string;
rank?: number;
}
export interface IItemRenderData {
readonly active: boolean;
readonly indices: ReadonlyArray<number> | null;
readonly item: IItem;
}
export interface IOptions {
commands: CommandRegistry;
renderer?: IRenderer;
}
export interface IRenderer {
renderEmptyMessage(data: IEmptyMessageRenderData): VirtualElement;
renderHeader(data: IHeaderRenderData): VirtualElement;
renderItem(data: IItemRenderData): VirtualElement;
}
export class Renderer implements IRenderer {
createIconClass(data: IItemRenderData): string;
createItemClass(data: IItemRenderData): string;
createItemDataset(data: IItemRenderData): ElementDataset;
formatEmptyMessage(data: IEmptyMessageRenderData): h.Child;
formatHeader(data: IHeaderRenderData): h.Child;
formatItemCaption(data: IItemRenderData): h.Child;
formatItemLabel(data: IItemRenderData): h.Child;
formatItemShortcut(data: IItemRenderData): h.Child;
renderEmptyMessage(data: IEmptyMessageRenderData): VirtualElement;
renderHeader(data: IHeaderRenderData): VirtualElement;
renderItem(data: IItemRenderData): VirtualElement;
renderItemCaption(data: IItemRenderData): VirtualElement;
renderItemContent(data: IItemRenderData): VirtualElement;
renderItemIcon(data: IItemRenderData): VirtualElement;
renderItemLabel(data: IItemRenderData): VirtualElement;
renderItemShortcut(data: IItemRenderData): VirtualElement;
}
const defaultRenderer: Renderer;
}
// @public
export class ContextMenu {
constructor(options: ContextMenu.IOptions);
addItem(options: ContextMenu.IItemOptions): IDisposable;
readonly menu: Menu;
open(event: MouseEvent): boolean;
}
// @public
export namespace ContextMenu {
export interface IItemOptions extends Menu.IItemOptions {
rank?: number;
selector: string;
}
export interface IOptions {
commands: CommandRegistry;
groupByTarget?: boolean;
renderer?: Menu.IRenderer;
sortBySelector?: boolean;
}
}
// @public
export class DockLayout extends Layout {
constructor(options: DockLayout.IOptions);
addWidget(widget: Widget, options?: DockLayout.IAddOptions): void;
protected attachWidget(widget: Widget): void;
protected detachWidget(widget: Widget): void;
dispose(): void;
handles(): IIterator<HTMLDivElement>;
hiddenMode: Widget.HiddenMode;
hitTestTabAreas(clientX: number, clientY: number): DockLayout.ITabAreaGeometry | null;
protected init(): void;
readonly isEmpty: boolean;
iter(): IIterator<Widget>;
moveHandle(handle: HTMLDivElement, offsetX: number, offsetY: number): void;
protected onBeforeAttach(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildHidden(msg: Widget.ChildMessage): void;
protected onChildShown(msg: Widget.ChildMessage): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
removeWidget(widget: Widget): void;
readonly renderer: DockLayout.IRenderer;
restoreLayout(config: DockLayout.ILayoutConfig): void;
saveLayout(): DockLayout.ILayoutConfig;
selectedWidgets(): IIterator<Widget>;
spacing: number;
tabBars(): IIterator<TabBar<Widget>>;
widgets(): IIterator<Widget>;
}
// @public
export namespace DockLayout {
export type AreaConfig = ITabAreaConfig | ISplitAreaConfig;
export interface IAddOptions {
mode?: InsertMode;
ref?: Widget | null;
}
export interface ILayoutConfig {
main: AreaConfig | null;
}
export type InsertMode = /**
* The area to the top of the reference widget.
*
* The widget will be inserted just above the reference widget.
*
* If the reference widget is null or invalid, the widget will be
* inserted at the top edge of the dock layout.
*/ 'split-top'
/**
* The area to the left of the reference widget.
*
* The widget will be inserted just left of the reference widget.
*
* If the reference widget is null or invalid, the widget will be
* inserted at the left edge of the dock layout.
*/
| 'split-left'
/**
* The area to the right of the reference widget.
*
* The widget will be inserted just right of the reference widget.
*
* If the reference widget is null or invalid, the widget will be
* inserted at the right edge of the dock layout.
*/
| 'split-right'
/**
* The area to the bottom of the reference widget.
*
* The widget will be inserted just below the reference widget.
*
* If the reference widget is null or invalid, the widget will be
* inserted at the bottom edge of the dock layout.
*/
| 'split-bottom'
/**
* The tab position before the reference widget.
*
* The widget will be added as a tab before the reference widget.
*
* If the reference widget is null or invalid, a sensible default
* will be used.
*/
| 'tab-before'
/**
* The tab position after the reference widget.
*
* The widget will be added as a tab after the reference widget.
*
* If the reference widget is null or invalid, a sensible default
* will be used.
*/
| 'tab-after';
export interface IOptions {
document?: Document | ShadowRoot;
hiddenMode?: Widget.HiddenMode;
renderer: IRenderer;
spacing?: number;
}
export interface IRenderer {
createHandle(): HTMLDivElement;
createTabBar(document?: Document | ShadowRoot): TabBar<Widget>;
}
export interface ISplitAreaConfig {
children: AreaConfig[];
orientation: 'horizontal' | 'vertical';
sizes: number[];
type: 'split-area';
}
export interface ITabAreaConfig {
currentIndex: number;
type: 'tab-area';
widgets: Widget[];
}
export interface ITabAreaGeometry {
bottom: number;
height: number;
left: number;
right: number;
tabBar: TabBar<Widget>;
top: number;
width: number;
x: number;
y: number;
}
}
// @public
export class DockPanel extends Widget {
constructor(options?: DockPanel.IOptions);
activateWidget(widget: Widget): void;
addButtonEnabled: boolean;
readonly addRequested: ISignal<this, TabBar<Widget>>;
addWidget(widget: Widget, options?: DockPanel.IAddOptions): void;
dispose(): void;
handleEvent(event: Event): void;
handles(): IIterator<HTMLDivElement>;
hiddenMode: Widget.HiddenMode;
readonly isEmpty: boolean;
readonly layoutModified: ISignal<this, void>;
mode: DockPanel.Mode;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onChildAdded(msg: Widget.ChildMessage): void;
protected onChildRemoved(msg: Widget.ChildMessage): void;
readonly overlay: DockPanel.IOverlay;
processMessage(msg: Message): void;
readonly renderer: DockPanel.IRenderer;
restoreLayout(config: DockPanel.ILayoutConfig): void;
saveLayout(): DockPanel.ILayoutConfig;
selectedWidgets(): IIterator<Widget>;
selectWidget(widget: Widget): void;
spacing: number;
tabBars(): IIterator<TabBar<Widget>>;
tabsConstrained: boolean;
tabsMovable: boolean;
widgets(): IIterator<Widget>;
}
// @public
export namespace DockPanel {
export type IAddOptions = DockLayout.IAddOptions;
export interface IEdges {
bottom: number;
left: number;
right: number;
top: number;
}
export type ILayoutConfig = DockLayout.ILayoutConfig;
export type InsertMode = DockLayout.InsertMode;
export interface IOptions {
addButtonEnabled?: boolean;
document?: Document | ShadowRoot;
edges?: IEdges;
hiddenMode?: Widget.HiddenMode;
mode?: DockPanel.Mode;
overlay?: IOverlay;
renderer?: IRenderer;
spacing?: number;
tabsConstrained?: boolean;
tabsMovable?: boolean;
}
export interface IOverlay {
hide(delay: number): void;
readonly node: HTMLDivElement;
show(geo: IOverlayGeometry): void;
}
export interface IOverlayGeometry {
bottom: number;
left: number;
right: number;
top: number;
}
export type IRenderer = DockLayout.IRenderer;
export type Mode = /**
* The single document mode.
*
* In this mode, only a single widget is visible at a time, and that
* widget fills the available layout space. No tab bars are visible.
*/ 'single-document'
/**
* The multiple document mode.
*
* In this mode, multiple documents are displayed in separate tab
* areas, and those areas can be individually resized by the user.
*/
| 'multiple-document';
export class Overlay implements IOverlay {
constructor();
hide(delay: number): void;
readonly node: HTMLDivElement;
show(geo: IOverlayGeometry): void;
}
export class Renderer implements IRenderer {
createHandle(): HTMLDivElement;
createTabBar(document?: Document | ShadowRoot): TabBar<Widget>;
}
const defaultRenderer: Renderer;
}
// @public
export class FocusTracker<T extends Widget> implements IDisposable {
readonly activeChanged: ISignal<this, FocusTracker.IChangedArgs<T>>;
readonly activeWidget: T | null;
add(widget: T): void;
readonly currentChanged: ISignal<this, FocusTracker.IChangedArgs<T>>;
readonly currentWidget: T | null;
dispose(): void;
focusNumber(widget: T): number;
handleEvent(event: Event): void;
has(widget: T): boolean;
readonly isDisposed: boolean;
remove(widget: T): void;
readonly widgets: ReadonlyArray<T>;
}
// @public
export namespace FocusTracker {
export interface IChangedArgs<T extends Widget> {
newValue: T | null;
oldValue: T | null;
}
}
// @public
export class GridLayout extends Layout {
constructor(options?: GridLayout.IOptions);
addWidget(widget: Widget): void;
protected attachWidget(widget: Widget): void;
columnCount: number;
columnSpacing: number;
columnStretch(index: number): number;
protected detachWidget(widget: Widget): void;
dispose(): void;
protected init(): void;
iter(): IIterator<Widget>;
protected onBeforeAttach(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildHidden(msg: Widget.ChildMessage): void;
protected onChildShown(msg: Widget.ChildMessage): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
removeWidget(widget: Widget): void;
rowCount: number;
rowSpacing: number;
rowStretch(index: number): number;
setColumnStretch(index: number, value: number): void;
setRowStretch(index: number, value: number): void;
}
// @public
export namespace GridLayout {
export function getCellConfig(widget: Widget): ICellConfig;
export interface ICellConfig {
readonly column: number;
readonly columnSpan: number;
readonly row: number;
readonly rowSpan: number;
}
export interface IOptions extends Layout.IOptions {
columnCount?: number;
columnSpacing?: number;
rowCount?: number;
rowSpacing?: number;
}
export function setCellConfig(widget: Widget, value: Partial<ICellConfig>): void;
}
// @public
export abstract class Layout implements IIterable<Widget>, IDisposable {
constructor(options?: Layout.IOptions);
dispose(): void;
fitPolicy: Layout.FitPolicy;
protected init(): void;
readonly isDisposed: boolean;
abstract iter(): IIterator<Widget>;
protected onAfterAttach(msg: Message): void;
protected onAfterDetach(msg: Message): void;
protected onAfterHide(msg: Message): void;
protected onAfterShow(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onBeforeDetach(msg: Message): void;
protected onBeforeHide(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildHidden(msg: Widget.ChildMessage): void;
protected onChildRemoved(msg: Widget.ChildMessage): void;
protected onChildShown(msg: Widget.ChildMessage): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
parent: Widget | null;
processParentMessage(msg: Message): void;
abstract removeWidget(widget: Widget): void;
}
// @public
export namespace Layout {
export type FitPolicy = /**
* No size constraint will be applied to the parent widget.
*/ 'set-no-constraint'
/**
* The computed min size will be applied to the parent widget.
*/
| 'set-min-size';
export function getHorizontalAlignment(widget: Widget): HorizontalAlignment;
export function getVerticalAlignment(widget: Widget): VerticalAlignment;
export type HorizontalAlignment = 'left' | 'center' | 'right';
export interface IOptions {
fitPolicy?: FitPolicy;
}
export function setHorizontalAlignment(widget: Widget, value: HorizontalAlignment): void;
export function setVerticalAlignment(widget: Widget, value: VerticalAlignment): void;
export type VerticalAlignment = 'top' | 'center' | 'bottom';
}
// @public
export class LayoutItem implements IDisposable {
constructor(widget: Widget);
dispose(): void;
fit(): void;
readonly isAttached: boolean;
readonly isDisposed: boolean;
readonly isHidden: boolean;
readonly isVisible: boolean;
readonly maxHeight: number;
readonly maxWidth: number;
readonly minHeight: number;
readonly minWidth: number;
update(left: number, top: number, width: number, height: number): void;
readonly widget: Widget;
}
// @public
export class Menu extends Widget {
constructor(options: Menu.IOptions);
readonly aboutToClose: ISignal<this, void>;
activateNextItem(): void;
activatePreviousItem(): void;
activeIndex: number;
activeItem: Menu.IItem | null;
addItem(options: Menu.IItemOptions): Menu.IItem;
readonly childMenu: Menu | null;
clearItems(): void;
readonly commands: CommandRegistry;
readonly contentNode: HTMLUListElement;
dispose(): void;
handleEvent(event: Event): void;
insertItem(index: number, options: Menu.IItemOptions): Menu.IItem;
readonly items: ReadonlyArray<Menu.IItem>;
readonly leafMenu: Menu;
readonly menuRequested: ISignal<this, 'next' | 'previous'>;
protected onActivateRequest(msg: Message): void;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onCloseRequest(msg: Message): void;
protected onUpdateRequest(msg: Message): void;
open(x: number, y: number, options?: Menu.IOpenOptions): void;
readonly parentMenu: Menu | null;
removeItem(item: Menu.IItem): void;
removeItemAt(index: number): void;
readonly renderer: Menu.IRenderer;
readonly rootMenu: Menu;
static saveWindowData(): void;
triggerActiveItem(): void;
}
// @public
export namespace Menu {
export interface IItem {
readonly args: ReadonlyJSONObject;
readonly caption: string;
readonly className: string;
readonly command: string;
readonly dataset: CommandRegistry.Dataset;
readonly icon: VirtualElement.IRenderer | undefined | string;
readonly iconClass: string;
readonly iconLabel: string;
readonly isEnabled: boolean;
readonly isToggled: boolean;
readonly isVisible: boolean;
readonly keyBinding: CommandRegistry.IKeyBinding | null;
readonly label: string;
readonly mnemonic: number;
readonly submenu: Menu | null;
readonly type: ItemType;
}
export interface IItemOptions {
args?: ReadonlyJSONObject;
command?: string;
submenu?: Menu | null;
type?: ItemType;
}
export interface IOpenOptions {
forceX?: boolean;
forceY?: boolean;
}
export interface IOptions {
commands: CommandRegistry;
renderer?: IRenderer;
}
export interface IRenderData {
readonly active: boolean;
readonly collapsed: boolean;
readonly item: IItem;
readonly onfocus?: () => void;
}
export interface IRenderer {
renderItem(data: IRenderData): VirtualElement;
}
export type ItemType = 'command' | 'submenu' | 'separator';
export class Renderer implements IRenderer {
createIconClass(data: IRenderData): string;
createItemARIA(data: IRenderData): ElementARIAAttrs;
createItemClass(data: IRenderData): string;
createItemDataset(data: IRenderData): ElementDataset;
formatLabel(data: IRenderData): h.Child;
formatShortcut(data: IRenderData): h.Child;
renderIcon(data: IRenderData): VirtualElement;
renderItem(data: IRenderData): VirtualElement;
renderLabel(data: IRenderData): VirtualElement;
renderShortcut(data: IRenderData): VirtualElement;
renderSubmenu(data: IRenderData): VirtualElement;
}
const defaultRenderer: Renderer;
}
// @public
export class MenuBar extends Widget {
constructor(options?: MenuBar.IOptions);
activeIndex: number;
activeMenu: Menu | null;
addMenu(menu: Menu): void;
readonly childMenu: Menu | null;
clearMenus(): void;
readonly contentNode: HTMLUListElement;
dispose(): void;
handleEvent(event: Event): void;
insertMenu(index: number, menu: Menu): void;
readonly menus: ReadonlyArray<Menu>;
protected onActivateRequest(msg: Message): void;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onUpdateRequest(msg: Message): void;
openActiveMenu(): void;
removeMenu(menu: Menu): void;
removeMenuAt(index: number): void;
readonly renderer: MenuBar.IRenderer;
}
// @public
export namespace MenuBar {
export interface IOptions {
forceItemsPosition?: Menu.IOpenOptions;
renderer?: IRenderer;
}
export interface IRenderData {
readonly active: boolean;
// (undocumented)
readonly onfocus?: (event: FocusEvent) => void;
readonly tabbable?: boolean;
readonly title: Title<Widget>;
}
export interface IRenderer {
renderItem(data: IRenderData): VirtualElement;
}
export class Renderer implements IRenderer {
createIconClass(data: IRenderData): string;
createItemARIA(data: IRenderData): ElementARIAAttrs;
createItemClass(data: IRenderData): string;
createItemDataset(data: IRenderData): ElementDataset;
formatLabel(data: IRenderData): h.Child;
renderIcon(data: IRenderData): VirtualElement;
renderItem(data: IRenderData): VirtualElement;
renderLabel(data: IRenderData): VirtualElement;
}
const defaultRenderer: Renderer;
}
// @public
export class Panel extends Widget {
constructor(options?: Panel.IOptions);
addWidget(widget: Widget): void;
insertWidget(index: number, widget: Widget): void;
readonly widgets: ReadonlyArray<Widget>;
}
// @public
export namespace Panel {
export interface IOptions {
layout?: PanelLayout;
}
}
// @public
export class PanelLayout extends Layout {
addWidget(widget: Widget): void;
protected attachWidget(index: number, widget: Widget): void;
protected detachWidget(index: number, widget: Widget): void;
dispose(): void;
protected init(): void;
insertWidget(index: number, widget: Widget): void;
iter(): IIterator<Widget>;
protected moveWidget(fromIndex: number, toIndex: number, widget: Widget): void;
removeWidget(widget: Widget): void;
removeWidgetAt(index: number): void;
readonly widgets: ReadonlyArray<Widget>;
}
// @public
export class ScrollBar extends Widget {
constructor(options?: ScrollBar.IOptions);
readonly decrementNode: HTMLDivElement;
handleEvent(event: Event): void;
readonly incrementNode: HTMLDivElement;
maximum: number;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onUpdateRequest(msg: Message): void;
orientation: ScrollBar.Orientation;
page: number;
readonly pageRequested: ISignal<this, 'decrement' | 'increment'>;
readonly stepRequested: ISignal<this, 'decrement' | 'increment'>;
readonly thumbMoved: ISignal<this, number>;
readonly thumbNode: HTMLDivElement;
readonly trackNode: HTMLDivElement;
value: number;
}
// @public
export namespace ScrollBar {
export interface IOptions {
maximum?: number;
orientation?: Orientation;
page?: number;
value?: number;
}
export type Orientation = 'horizontal' | 'vertical';
}
// @public
export class SingletonLayout extends Layout {
protected attachWidget(widget: Widget): void;
protected detachWidget(widget: Widget): void;
dispose(): void;
protected init(): void;
iter(): IIterator<Widget>;
removeWidget(widget: Widget): void;
widget: Widget | null;
}
// @public
export class SplitLayout extends PanelLayout {
constructor(options: SplitLayout.IOptions);
absoluteSizes(): number[];
alignment: SplitLayout.Alignment;
protected attachWidget(index: number, widget: Widget): void;
protected detachWidget(index: number, widget: Widget): void;
dispose(): void;
readonly handles: ReadonlyArray<HTMLDivElement>;
protected init(): void;
moveHandle(index: number, position: number): void;
protected moveWidget(fromIndex: number, toIndex: number, widget: Widget): void;
protected onBeforeAttach(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildHidden(msg: Widget.ChildMessage): void;
protected onChildShown(msg: Widget.ChildMessage): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
orientation: SplitLayout.Orientation;
relativeSizes(): number[];
readonly renderer: SplitLayout.IRenderer;
setRelativeSizes(sizes: number[], update?: boolean): void;
spacing: number;
protected updateItemPosition(i: number, isHorizontal: boolean, left: number, top: number, height: number, width: number, size: number): void;
// (undocumented)
protected widgetOffset: number;
}
// @public
export namespace SplitLayout {
export type Alignment = 'start' | 'center' | 'end' | 'justify';
export function getStretch(widget: Widget): number;
export interface IOptions {
alignment?: Alignment;
orientation?: Orientation;
renderer: IRenderer;
spacing?: number;
}
export interface IRenderer {
createHandle(): HTMLDivElement;
}
export type Orientation = 'horizontal' | 'vertical';
export function setStretch(widget: Widget, value: number): void;
}
// @public
export class SplitPanel extends Panel {
constructor(options?: SplitPanel.IOptions);
alignment: SplitPanel.Alignment;
dispose(): void;
handleEvent(event: Event): void;
readonly handleMoved: ISignal<this, void>;
readonly handles: ReadonlyArray<HTMLDivElement>;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onChildAdded(msg: Widget.ChildMessage): void;
protected onChildRemoved(msg: Widget.ChildMessage): void;
orientation: SplitPanel.Orientation;
relativeSizes(): number[];
readonly renderer: SplitPanel.IRenderer;
setRelativeSizes(sizes: number[], update?: boolean): void;
spacing: number;
}
// @public
export namespace SplitPanel {
export type Alignment = SplitLayout.Alignment;
export function getStretch(widget: Widget): number;
export interface IOptions {
alignment?: Alignment;
layout?: SplitLayout;
orientation?: Orientation;
renderer?: IRenderer;
spacing?: number;
}
export type IRenderer = SplitLayout.IRenderer;
export type Orientation = SplitLayout.Orientation;
const defaultRenderer: Renderer;
export class Renderer implements IRenderer {
createHandle(): HTMLDivElement;
}
export function setStretch(widget: Widget, value: number): void;
}
// @public
export class StackedLayout extends PanelLayout {
constructor(options?: StackedLayout.IOptions);
protected attachWidget(index: number, widget: Widget): void;
protected detachWidget(index: number, widget: Widget): void;
dispose(): void;
hiddenMode: Widget.HiddenMode;
protected moveWidget(fromIndex: number, toIndex: number, widget: Widget): void;
protected onBeforeAttach(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildHidden(msg: Widget.ChildMessage): void;
protected onChildShown(msg: Widget.ChildMessage): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
}
// @public
export namespace StackedLayout {
export interface IOptions extends Layout.IOptions {
hiddenMode?: Widget.HiddenMode;
}
}
// @public
export class StackedPanel extends Panel {
constructor(options?: StackedPanel.IOptions);
hiddenMode: Widget.HiddenMode;
protected onChildAdded(msg: Widget.ChildMessage): void;
protected onChildRemoved(msg: Widget.ChildMessage): void;
readonly widgetRemoved: ISignal<this, Widget>;
}
// @public
export namespace StackedPanel {
export interface IOptions {
layout?: StackedLayout;
}
}
// @public
export class TabBar<T> extends Widget {
constructor(options?: TabBar.IOptions<T>);
addButtonEnabled: boolean;
readonly addButtonNode: HTMLDivElement;
readonly addRequested: ISignal<this, void>;
addTab(value: Title<T> | Title.IOptions<T>): Title<T>;
allowDeselect: boolean;
clearTabs(): void;
readonly contentNode: HTMLUListElement;
readonly currentChanged: ISignal<this, TabBar.ICurrentChangedArgs<T>>;
currentIndex: number;
currentTitle: Title<T> | null;
dispose(): void;
readonly document: Document | ShadowRoot;
handleEvent(event: Event): void;
insertBehavior: TabBar.InsertBehavior;
insertTab(index: number, value: Title<T> | Title.IOptions<T>): Title<T>;
name: string;
protected onAfterDetach(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onUpdateRequest(msg: Message): void;
orientation: TabBar.Orientation;
releaseMouse(): void;
removeBehavior: TabBar.RemoveBehavior;
removeTab(title: Title<T>): void;
removeTabAt(index: number): void;
readonly renderer: TabBar.IRenderer<T>;
readonly tabActivateRequested: ISignal<this, TabBar.ITabActivateRequestedArgs<T>>;
readonly tabCloseRequested: ISignal<this, TabBar.ITabCloseRequestedArgs<T>>;
readonly tabDetachRequested: ISignal<this, TabBar.ITabDetachRequestedArgs<T>>;
readonly tabMoved: ISignal<this, TabBar.ITabMovedArgs<T>>;
tabsMovable: boolean;
readonly titles: ReadonlyArray<Title<T>>;
titlesEditable: boolean;
}
// @public
export namespace TabBar {
export interface ICurrentChangedArgs<T> {
readonly currentIndex: number;
readonly currentTitle: Title<T> | null;
readonly previousIndex: number;
readonly previousTitle: Title<T> | null;
}
export type InsertBehavior = /**
* The selected tab will not be changed.
*/ 'none'
/**
* The inserted tab will be selected.
*/
| 'select-tab'
/**
* The inserted tab will be selected if the current tab is null.
*/
| 'select-tab-if-needed';
export interface IOptions<T> {
addButtonEnabled?: boolean;
allowDeselect?: boolean;
document?: Document | ShadowRoot;
insertBehavior?: TabBar.InsertBehavior;
name?: string;
orientation?: TabBar.Orientation;
removeBehavior?: TabBar.RemoveBehavior;
renderer?: IRenderer<T>;
tabsMovable?: boolean;
titlesEditable?: boolean;
}
export interface IRenderData<T> {
readonly current: boolean;
readonly title: Title<T>;
readonly zIndex: number;
}
export interface IRenderer<T> {
readonly closeIconSelector: string;
renderTab(data: IRenderData<T>): VirtualElement;
}
export interface ITabActivateRequestedArgs<T> {
readonly index: number;
readonly title: Title<T>;
}
export interface ITabCloseRequestedArgs<T> {
readonly index: number;
readonly title: Title<T>;
}
export interface ITabDetachRequestedArgs<T> {
readonly clientX: number;
readonly clientY: number;
readonly index: number;
readonly tab: HTMLElement;
readonly title: Title<T>;
}
export interface ITabMovedArgs<T> {
readonly fromIndex: number;
readonly title: Title<T>;
readonly toIndex: number;
}
export type Orientation = /**
* The tabs are arranged in a single row, left-to-right.
*
* The tab text orientation is horizontal.
*/ 'horizontal'
/**
* The tabs are arranged in a single column, top-to-bottom.
*
* The tab text orientation is horizontal.
*/
| 'vertical';
export type RemoveBehavior = /**
* No tab will be selected.
*/ 'none'
/**
* The tab after the removed tab will be selected if possible.
*/
| 'select-tab-after'
/**
* The tab before the removed tab will be selected if possible.
*/
| 'select-tab-before'
/**
* The previously selected tab will be selected if possible.
*/
| 'select-previous-tab';
export class Renderer implements IRenderer<any> {
constructor();
readonly closeIconSelector = ".lm-TabBar-tabCloseIcon";
createIconClass(data: IRenderData<any>): string;
createTabARIA(data: IRenderData<any>): ElementARIAAttrs;
createTabClass(data: IRenderData<any>): string;
createTabDataset(data: IRenderData<any>): ElementDataset;
createTabKey(data: IRenderData<any>): string;
createTabStyle(data: IRenderData<any>): ElementInlineStyle;
renderCloseIcon(data: IRenderData<any>): VirtualElement;
renderIcon(data: IRenderData<any>): VirtualElement;
renderLabel(data: IRenderData<any>): VirtualElement;
renderTab(data: IRenderData<any>): VirtualElement;
}
const defaultRenderer: Renderer;
const addButtonSelector = ".lm-TabBar-addButton";
}
// @public
export class TabPanel extends Widget {
constructor(options?: TabPanel.IOptions);
addButtonEnabled: boolean;
readonly addRequested: ISignal<this, TabBar<Widget>>;
addWidget(widget: Widget): void;
readonly currentChanged: ISignal<this, TabPanel.ICurrentChangedArgs>;
currentIndex: number;
currentWidget: Widget | null;
insertWidget(index: number, widget: Widget): void;
readonly stackedPanel: StackedPanel;
readonly tabBar: TabBar<Widget>;
tabPlacement: TabPanel.TabPlacement;
tabsMovable: boolean;
readonly widgets: ReadonlyArray<Widget>;
}
// @public
export namespace TabPanel {
export interface ICurrentChangedArgs {
currentIndex: number;
currentWidget: Widget | null;
previousIndex: number;
previousWidget: Widget | null;
}
export interface IOptions {
addButtonEnabled?: boolean;
document?: Document | ShadowRoot;
renderer?: TabBar.IRenderer<Widget>;
tabPlacement?: TabPlacement;
tabsMovable?: boolean;
}
export type TabPlacement = /**
* The tabs are placed as a row above the content.
*/ 'top'
/**
* The tabs are placed as a column to the left of the content.
*/
| 'left'
/**
* The tabs are placed as a column to the right of the content.
*/
| 'right'
/**
* The tabs are placed as a row below the content.
*/
| 'bottom';
}
// @public
export class Title<T> implements IDisposable {
constructor(options: Title.IOptions<T>);
caption: string;
readonly changed: ISignal<this, void>;
className: string;
closable: boolean;
dataset: Title.Dataset;
dispose(): void;
icon: VirtualElement.IRenderer | undefined | string;
iconClass: string;
iconLabel: string;
// @deprecated (undocumented)
iconRenderer: VirtualElement.IRenderer | undefined;
readonly isDisposed: boolean;
label: string;
mnemonic: number;
readonly owner: T;
}
// @public
export namespace Title {
export type Dataset = {
readonly [key: string]: string;
};
export interface IOptions<T> {
caption?: string;
className?: string;
closable?: boolean;
dataset?: Dataset;
icon?: VirtualElement.IRenderer | string;
iconClass?: string;
iconLabel?: string;
// @deprecated (undocumented)
iconRenderer?: VirtualElement.IRenderer;
label?: string;
mnemonic?: number;
owner: T;
}
}
// @public
export class Widget implements IMessageHandler, IObservableDisposable {
constructor(options?: Widget.IOptions);
activate(): void;
addClass(name: string): void;
children(): IIterator<Widget>;
clearFlag(flag: Widget.Flag): void;
close(): void;
contains(widget: Widget): boolean;
readonly dataset: DOMStringMap;
dispose(): void;
readonly disposed: ISignal<this, void>;
fit(): void;
hasClass(name: string): boolean;
hiddenMode: Widget.HiddenMode;
hide(): void;
id: string;
readonly isAttached: boolean;
readonly isDisposed: boolean;
readonly isHidden: boolean;
readonly isVisible: boolean;
layout: Layout | null;
readonly node: HTMLElement;
protected notifyLayout(msg: Message): void;
protected onActivateRequest(msg: Message): void;
protected onAfterAttach(msg: Message): void;
protected onAfterDetach(msg: Message): void;
protected onAfterHide(msg: Message): void;
protected onAfterShow(msg: Message): void;
protected onBeforeAttach(msg: Message): void;
protected onBeforeDetach(msg: Message): void;
protected onBeforeHide(msg: Message): void;
protected onBeforeShow(msg: Message): void;
protected onChildAdded(msg: Widget.ChildMessage): void;
protected onChildRemoved(msg: Widget.ChildMessage): void;
protected onCloseRequest(msg: Message): void;
protected onFitRequest(msg: Message): void;
protected onResize(msg: Widget.ResizeMessage): void;
protected onUpdateRequest(msg: Message): void;
parent: Widget | null;
processMessage(msg: Message): void;
removeClass(name: string): void;
setFlag(flag: Widget.Flag): void;
setHidden(hidden: boolean): void;
show(): void;
testFlag(flag: Widget.Flag): boolean;
readonly title: Title<Widget>;
toggleClass(name: string, force?: boolean): boolean;
update(): void;
}
// @public
export namespace Widget {
export function attach(widget: Widget, host: HTMLElement, ref?: HTMLElement | null): void;
export class ChildMessage extends Message {
constructor(type: string, child: Widget);
readonly child: Widget;
}
export function detach(widget: Widget): void;
export enum Flag {
DisallowLayout = 16,
IsAttached = 2,
IsDisposed = 1,
IsHidden = 4,
IsVisible = 8
}
export enum HiddenMode {
ContentVisibility = 2,
Display = 0,
Scale = 1
}
export interface IOptions {
node?: HTMLElement;
tag?: keyof HTMLElementTagNameMap;
}
export namespace Msg {
const BeforeShow: Message;
const AfterShow: Message;
const BeforeHide: Message;
const AfterHide: Message;
const BeforeAttach: Message;
const AfterAttach: Message;
const BeforeDetach: Message;
const AfterDetach: Message;
const ParentChanged: Message;
const UpdateRequest: ConflatableMessage;
const FitRequest: ConflatableMessage;
const ActivateRequest: ConflatableMessage;
const CloseRequest: ConflatableMessage;
}
export class ResizeMessage extends Message {
constructor(width: number, height: number);
readonly height: number;
readonly width: number;
}
export namespace ResizeMessage {
const UnknownSize: ResizeMessage;
}
}
// (No @packageDocumentation comment for this package)