@ichooss/xflow
Version:
[English (US)](README.md) | 简体中文
34 lines • 1.48 kB
TypeScript
import type { UseBoundStore, StoreApi } from 'zustand';
import type { NodeOptions, EdgeOptions } from '../types';
export type Command = 'init' | 'addNodes' | 'removeNodes' | 'updateNode' | 'addEdges' | 'removeEdges' | 'updateEdge';
export type ChangeItem = {
command: Command;
data: any;
};
export type State = {
changeList: ChangeItem[];
nodes: NodeOptions[];
edges: EdgeOptions[];
};
type ActionOptions = {
silent?: boolean;
};
type UpdateNodeDataOrFn = Partial<NodeOptions> | ((node: NodeOptions) => Partial<NodeOptions>);
type UpdateEdgeDataOrFn = Partial<EdgeOptions> | ((edge: EdgeOptions) => Partial<NodeOptions>);
export type Actions = {
initData: (data: {
nodes: NodeOptions[];
edges: EdgeOptions[];
}, options?: ActionOptions) => void;
addNodes: (ns: NodeOptions[], options?: ActionOptions) => void;
removeNodes: (ids: string[], options?: ActionOptions) => void;
updateNode: (id: string, data: UpdateNodeDataOrFn, options?: ActionOptions) => void;
addEdges: (es: EdgeOptions[], options?: ActionOptions) => void;
removeEdges: (ids: string[], options?: ActionOptions) => void;
updateEdge: (id: string, data: UpdateEdgeDataOrFn, options?: ActionOptions) => void;
clearChangeList: () => void;
};
export type GraphStore = UseBoundStore<StoreApi<State & Actions>>;
export declare const createGraphStore: () => UseBoundStore<StoreApi<State & Actions>>;
export {};
//# sourceMappingURL=index.d.ts.map