UNPKG

react-movable-block-editor

Version:

React component for creating layouts and content via drag-and-drop blocks.

39 lines (38 loc) 1.46 kB
import * as React from 'react'; import { BlockNode, BlockNodeType } from '../data'; import { BlockEditorValue } from '../components/editor/BlockEditorProps'; export interface DraggedInfo { startLeft: number; startTop: number; } export declare function parseTypes(types: Array<string>): { draggedNodeId: string; draggedNodeType: BlockNodeType | null; }; export declare function getDragPositionRelativeToTarget(e: React.DragEvent<HTMLDivElement>, targetRect: ClientRect | null): { left: number; top: number; width: number; height: number; } | null; export declare function getDragPositionRelativeToTarget2({ clientX, clientY }: { clientX: number; clientY: number; }, targetRect: ClientRect | null): { left: number; top: number; width: number; height: number; } | null; export declare function onDragStart(e: React.DragEvent<HTMLDivElement>, draggedNode: BlockNode, getBoundingRect: () => any): void; export interface MoveOpts { beforeItemId?: string; afterItemId?: string; isPlaceHolder?: boolean; absolutePos?: { left: number; top: number; }; } export declare function onDropped(types: Array<string>, targetNodeId: string, opts?: MoveOpts): (value: BlockEditorValue) => BlockEditorValue; export declare function onDropped2(draggedNodeId: string, targetNodeId: string, opts?: MoveOpts): (value: BlockEditorValue) => BlockEditorValue;