UNPKG

prong-editor

Version:

Prong (PRojectional jsON Gui) is an editor framework for creating bespoke in-browser editors for JSON-based domain-specific languages (such as [Vega](https://vega.github.io/vega/), [Vega-Lite](https://vega.github.io/vega-lite/), [Tracery](https://tracery.

44 lines (43 loc) 1.46 kB
import { SyntaxNode } from "@lezer/common"; import { UpdateDispatch } from "./popover-menu/PopoverState"; export declare type MenuEvent = addElementAsSiblingInArrayEvent | addObjectKeyEvent | nullEvent | removeElementFromArrayEvent | removeObjectKeyEvent | simpleSwapEvent | increaseItemIdxEvent | decreaseItemIdxEvent; declare type baseEvent = { nodeId: string; }; interface nullEvent extends baseEvent { type: "nullEvent"; } interface simpleSwapEvent extends baseEvent { type: "simpleSwap"; payload: string; } interface addObjectKeyEvent extends baseEvent { type: "addObjectKey"; payload: { key: string; value: string; }; } interface addElementAsSiblingInArrayEvent extends baseEvent { type: "addElementAsSiblingInArray"; payload: string; } interface removeObjectKeyEvent extends baseEvent { type: "removeObjectKey"; } interface removeElementFromArrayEvent extends baseEvent { type: "removeElementFromArray"; } interface increaseItemIdxEvent extends baseEvent { type: "increaseItemIdx"; } interface decreaseItemIdxEvent extends baseEvent { type: "decreaseItemIdx"; } declare type ModifyCmd<A extends MenuEvent> = (value: A, syntaxNode: SyntaxNode, currentText: string, cursorPos: number) => UpdateDispatch | undefined; export declare const boundCheck: (node: SyntaxNode) => { isFirst: boolean; isLast: boolean; }; export declare const modifyCodeByCommand: ModifyCmd<any>; export {};