@selenite/graph-editor
Version:
A graph editor for visual programming, based on rete and svelte.
31 lines (30 loc) • 1.27 kB
TypeScript
import { ClassicPreset } from 'rete';
import type { DataType, SocketType } from '../plugins/typed-sockets';
import type { Node } from '../nodes/Node.svelte';
declare const socketDatastructures: readonly ["scalar", "array"];
export type SocketDatastructure = (typeof socketDatastructures)[number];
export type SocketValueWithDatastructure<T, D extends SocketDatastructure> = D extends 'scalar' ? T : D extends 'array' ? T[] : never;
export type Scalar<S extends DataType = DataType> = Socket<S, 'scalar'>;
export declare class Socket<S extends SocketType = SocketType, D extends SocketDatastructure = SocketDatastructure> extends ClassicPreset.Socket {
datastructure: D;
readonly isRequired: boolean;
type: S;
value: unknown;
selected: boolean;
readonly node: Node;
displayLabel: boolean | undefined;
port: ClassicPreset.Port<Socket<SocketType, "scalar" | "array">> | undefined;
element: HTMLElement | undefined;
constructor({ name, datastructure, isRequired, type, displayLabel, node }: {
name?: string;
isRequired?: boolean;
datastructure?: D;
type?: S;
node: Node;
displayLabel?: boolean;
});
select(): void;
deselect(): void;
toggleSelection(): void;
}
export {};