import { Container, DashboardNode } from '../dashboard.node'; import { DropEvent } from '../events/drop.event'; import { DashboardState } from '../state'; import { Components } from './components'; export interface DashboardConfig { /** * To enable components drag & drop */ allowDrag?: boolean; /** * Custom data */ data?: any; /** * Components library */ components: Components; /** * Custom node fields configuration */ node?: NodeConfig; /** * Dashboard state */ state?: DashboardState; /** * Node to focus after dashboard view init */ focusedNodeId?: string; /** * Drop slot animation on drag enter */ dropslotAnimation?: boolean; /** * Collapse opening and navigation selection delay when a drag event occurs * Default value is 500 */ dragFocusTimeout?: number; stateChange?: (state: DashboardState) => void; canDrag?: (node: DashboardNode) => boolean; canDrop?: (node: Container) => boolean; dragStart?: (node: DashboardNode) => void; dragEnd?: (node: DashboardNode) => void; selected?: (node: DashboardNode) => void; drop?: (node: DropEvent) => void; } export interface NodeConfig { componentId?: string; name?: string; id?: string; }