/** * @internal */ import { ButtonType } from "../constants"; import { IconClass } from "../utils/CommonUtils"; export declare class BasePanel = BasePanel> { private readonly container; protected element: HTMLElement; /** * @private **/ header: HTMLElement; protected body: HTMLElement; protected closeButton?: HTMLElement; private isFollowing; private diffX; private diffY; itemList: BasePanelButton[]; constructor(id: string, title: string, container?: HTMLElement); protected initHeader(title: string): HTMLDivElement; protected initCloseButton(): HTMLElement; protected initBody(): HTMLDivElement; setVisibility(visible: boolean): void; isVisible(): boolean; protected enableCloseButton(): void; protected close(): void; private start; private stop; private follow; protected createButton(cfg: PanelButtonConfig, parent?: T): BasePanelButton; protected stopPropagation(event: KeyboardEvent | MouseEvent): void; destroy(): void; } export interface PanelButtonConfig> { id: string; className?: string; title?: string; defaultActive?: boolean; type?: ButtonType; icon?: IconClass; enabled?: boolean; shown?: boolean; mutexIds?: string[]; getTitle?: (item: BasePanelButton) => void; getEnabled?: (item: BasePanelButton) => boolean; getShown?: (item: BasePanelButton) => boolean; getDefaultActive?: (item: BasePanelButton) => Promise | undefined; onActivate?: (item: BasePanelButton) => void; onDeactivate?: (item: BasePanelButton) => void; onClick?: (item: BasePanelButton) => void; hideText?: boolean; } export declare class BasePanelButton> { readonly cfg: PanelButtonConfig; readonly parent?: T | undefined; private eventBus; active: boolean; element: HTMLDivElement; id: string; onActiveChange?: (active: boolean) => void; protected icon?: HTMLDivElement; protected text?: HTMLDivElement; constructor(cfg: PanelButtonConfig, parent?: T | undefined); private createButton; private setActiveHandler; private isEnabled; private isShown; private getTitle; private isDefaultActive; updateItem(): void; setActive(active: boolean): void; }