import { DashboardConfig } from './config/dashboard.config'; import { RegisteredComponent } from './config/components'; import { NodeArgs } from './node.args'; import { JSON } from './json.type'; export declare abstract class DashboardNode { protected args: NodeArgs; private readonly systemClass; readonly config: DashboardConfig; private _parent; private _toolbarVisible; protected _classes: string[]; readonly id: string; readonly data: any; private focuseTimeout; name: string; get parent(): DashboardNode | null; get classes(): string[]; get toolbarVisible(): boolean; constructor(args: NodeArgs); protected getFieldValue(name: string, object: any): any; /** * * @param classes List of classes to add */ addClasses(classes: string[]): void; /** * * @param classes List of classes to remove */ removeClasses(classes: string[]): void; focus(): void; private executeFocus; protected executeToolbarToggle(): void; protected executeMoveTo(container: Container, node: Layout | Collapse | Widget, index: number): void; protected executeDelete(): void; protected submitDropEvent(target: Container, targetIndex: number, node: Layout | Collapse | Widget, sourceIndex: number | undefined, args: { isMovingInArray: boolean; isTransfertToArray: boolean; }): void; toJSON(): JSON; } export interface Draggable { readonly component: RegisteredComponent; get isDraggable(): boolean; moveTo(container: Container, index: number): void; delete(): void; clone(): DashboardNode; toggleToolbar(): void; } export declare abstract class HierachicNode extends DashboardNode { protected readonly children: T[]; constructor(args: NodeArgs); /** * To change container position * @param id container id * @param targetIndex new container index */ protected moveContainer(id: string, targetIndex: number): void; exist(node: T, strategy?: { deep: boolean; }): boolean; private executeExistCheck; toJSON(): JSON; } export declare class Container extends HierachicNode { get isDroppable(): boolean; get items(): Array; constructor(args: NodeArgs); addNode(node: any, index: number): void; private getNodeInstance; } export declare class Layout extends HierachicNode implements Draggable { readonly component: RegisteredComponent; get isDraggable(): boolean; get containers(): Container[]; constructor(args: NodeArgs); select(): void; delete(): void; toggleToolbar(): void; clone(): Layout; moveTo(container: Container, index: number): void; } export declare class Navigation extends Layout { private _activeNavigation; get activeNavigation(): Container | undefined; get navs(): Container[]; constructor(args: NodeArgs); /** * * @param id navigation id */ selectNavigation(id: string): void; addNavigation(params: { name: string; }): void; /** * * @param id navigation id */ removeNavigation(id: string): void; /** * To change navigation position * @param id navaigation id * @param targetIndex new navaigation position */ moveNavigation(id: string, targetIndex: number): void; clone(): Navigation; } export declare abstract class ExpandableNode extends DashboardNode { private _isExpanded; get isDraggable(): boolean; get isExpanded(): boolean; constructor(args: NodeArgs); toggle(): void; expand(args?: { stateIgnore: boolean; }): void; collapse(args?: { stateIgnore: boolean; }): void; delete(): void; private saveState; } export declare class Collapse extends ExpandableNode implements Draggable { readonly component: RegisteredComponent; readonly container: Container; constructor(args: NodeArgs); select(): void; clone(): Collapse; toggleToolbar(): void; moveTo(container: Container, index: number): void; toJSON(): JSON; } export declare class Widget extends ExpandableNode implements Draggable { readonly component: RegisteredComponent; constructor(args: NodeArgs); clone(): Widget; toggleToolbar(): void; /** * * @param container Target container * @param index Position in container */ moveTo(container: Container, index: number): void; }