UNPKG

@protocraft/core

Version:

A React Framework for building extensible drag and drop page editors

78 lines (77 loc) 2.8 kB
import React from 'react'; import { NodeId, EditorState, Indicator, Node, Options, NodeEventTypes, NodeSelector, NodeTree, SerializedNodes, SerializedNode, FreshNode } from '../interfaces'; export declare function QueryMethods(state: EditorState): { /** * Determine the best possible location to drop the source Node relative to the target Node * * TODO: replace with Positioner.computeIndicator(); */ getDropPlaceholder: (source: NodeSelector, target: NodeId, pos: { x: number; y: number; }, nodesToDOM?: (node: Node) => HTMLElement) => Indicator; /** * Get the current Editor options */ getOptions(): Options; getNodes(): import("../interfaces").Nodes; /** * Helper methods to describe the specified Node * @param id */ node(id: NodeId): { isCanvas(): boolean; isRoot(): boolean; isLinkedNode(): boolean; isTopLevelNode(): any; isDeletable(): boolean; isParentOfTopLevelNodes: () => boolean; isParentOfTopLevelCanvas(): any; isSelected(): boolean; isHovered(): boolean; isDragged(): boolean; get(): Node; ancestors(deep?: boolean): string[]; descendants(deep?: boolean, includeOnly?: "linkedNodes" | "childNodes"): string[]; linkedNodes(): string[]; childNodes(): string[]; isDraggable(onError?: (err: string) => void): boolean; isDroppable(selector: (string | string[]) | (Node | Node[]), onError?: (err: string) => void): boolean; toSerializedNode(): SerializedNode; toNodeTree(includeOnly?: "linkedNodes" | "childNodes"): { rootNodeId: string; nodes: any; }; decendants(deep?: boolean): any; isTopLevelCanvas(): boolean; }; /** * Returns all the `nodes` in a serialized format */ getSerializedNodes(): SerializedNodes; getEvent(eventType: NodeEventTypes): { contains(id: string): boolean; isEmpty(): boolean; first(): any; last(): any; all(): string[]; size(): any; at(i: number): any; raw(): Set<string>; }; /** * Retrieve the JSON representation of the editor's Nodes */ serialize(): string; parseReactElement: (reactElement: React.ReactElement) => { toNodeTree(normalize?: (node: Node, jsx: React.ReactElement) => void): NodeTree; }; parseSerializedNode: (serializedNode: SerializedNode) => { toNode(normalize?: (node: Node) => void): Node; }; parseFreshNode: (node: FreshNode) => { toNode(normalize?: (node: Node) => void): Node; }; createNode(reactElement: React.ReactElement, extras?: any): any; getState(): EditorState; };