import { VNode } from 'snabbdom/vnode'; import { Renderable, RenderableConfig, RenderableDestroyContext } from '../dom'; import { StackHeader } from './StackHeader'; import { Stack } from './Stack'; import { StackItemContainer } from './StackItemContainer'; import { TabControl } from './tabControls'; export interface StackTabConfig extends RenderableConfig { maxSize: number; title: string; } export declare type StackTabConfigArgs = { [P in keyof StackTabConfig]?: StackTabConfig[P]; }; /** * Renderable representing a stack tab. * @export * @class StackTab * @extends {Renderable} */ export declare class StackTab extends Renderable { private _element; private _isDragging; protected _container: StackHeader; private _draggable; private _dragHost; private _document; private _lockState; protected _config: StackTabConfig; readonly width: number; readonly height: number; /** * The HTML element for this tab. * @readonly * @type {HTMLElement} */ readonly element: HTMLElement; /** * The StackItemContainer associated with this tab. * @see {@link StackItemContainer} * @readonly * @type {(StackItemContainer|null)} */ readonly item: StackItemContainer | null; readonly offsetX: number; readonly offsetY: number; /** * Whether this tab is dragging. * @readonly * @type {boolean} */ readonly isDragging: boolean; /** * The stack that this tab belongs to. * @readonly * @type {(Stack|null)} */ readonly stack: Stack | null; /** * The list of tab controls. * @readonly * @type {TabControl[]} */ readonly controls: TabControl[]; readonly isDraggable: boolean; private readonly _resizeHashId; initialize(): void; resize(): void; render(): VNode; isRenderable(): boolean; destroy(context: RenderableDestroyContext): void; private _getStyles; private _onMouseDown; private _onDragStart; private _onDragMove; private _onDragStop; private _onDragHostStart; private _onDragHostDropped; private _onClick; }