diff --git a/package.json b/package.json index b29e246ee..fd905fff0 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@comfyorg/litegraph", - "version": "0.7.17", + "version": "0.7.18", "description": "A graph node editor similar to PD or UDK Blueprints. It works in an HTML5 Canvas and allows to export graphs to be included in applications.", "main": "build/litegraph.core.js", "types": "src/litegraph.d.ts", diff --git a/src/litegraph.d.ts b/src/litegraph.d.ts index 8dd8a51a1..7f7cfc2d5 100755 --- a/src/litegraph.d.ts +++ b/src/litegraph.d.ts @@ -52,6 +52,9 @@ export type WidgetCallback = ( ) => void; export interface IWidget { + // linked widgets, e.g. seed+seedControl + linkedWidgets: IWidget[]; + name: string | null; value: TValue; options?: TOptions; @@ -144,6 +147,11 @@ export type ContextMenuEventListener = ( ) => boolean | void; export const LiteGraph: { + DEFAULT_GROUP_FONT_SIZE: any; + overlapBounding(visible_area: any, _bounding: any): unknown; + release_link_on_empty_shows_menu: boolean; + alt_drag_do_clone_nodes: boolean; + GRID_SHAPE: number; VERSION: number; CANVAS_GRID_SIZE: number; @@ -299,7 +307,7 @@ export const LiteGraph: { * @method getNodeTypesCategories * @param {String} filter only nodes with ctor.filter equal can be shown * @return {Array} array with all the names of the categories - */ + */ getNodeTypesCategories(filter: string): string[]; /** debug purposes: reloads all the js scripts that matches a wildcard */ @@ -348,6 +356,7 @@ export declare class LGraph { static supported_types: string[]; static STATUS_STOPPED: 1; static STATUS_RUNNING: 2; + extra: any; constructor(o?: object); @@ -407,7 +416,7 @@ export declare class LGraph { */ updateExecutionOrder(): void; /** This is more internal, it computes the executable nodes in order and returns it */ - computeExecutionOrder(only_onExecute: boolean, set_level: any): T; + computeExecutionOrder(only_onExecute: boolean, set_level?: any): T; /** * Returns all the nodes that could affect this one (ancestors) by crawling all the inputs recursively. * It doesn't include the node itself @@ -535,7 +544,7 @@ export declare class LGraph { triggerInput(name: string, value: any): void; setCallback(name: string, func: (...args: any[]) => any): void; beforeChange(info?: LGraphNode): void; - afterChange(info?: LGraphNode): void; + afterChange(info?: LGraphNode): void; connectionChange(node: LGraphNode): void; /** returns if the graph is in live mode */ isLive(): boolean; @@ -543,7 +552,7 @@ export declare class LGraph { clearTriggeredSlots(): void; /* Called when something visually changed (not the graph!) */ change(): void; - setDirtyCanvas(fg: boolean, bg: boolean): void; + setDirtyCanvas(fg: boolean, bg?: boolean): void; /** Destroys a link */ removeLink(link_id: number): void; /** Creates a Object containing all the info about this graph, it can be serialized */ @@ -593,6 +602,11 @@ export type SerializedLGraphNode = { /** https://github.com/jagenjo/litegraph.js/blob/master/guides/README.md#lgraphnode */ export declare class LGraphNode { + onResize?: Function; + + // Used in group node + setInnerNodes(nodes: LGraphNode[]); + static title_color: string; static title: string; static type: null | string; @@ -643,6 +657,8 @@ export declare class LGraphNode { | typeof LiteGraph.NEVER | typeof LiteGraph.ALWAYS; + widgets: IWidget[]; + /** If set to true widgets do not start after the slots */ widgets_up: boolean; /** widgets start at y distance from the top of the node */ @@ -1013,7 +1029,7 @@ export declare class LGraphNode { onBeforeConnectInput?( inputIndex: number ): number; - + /** a connection changed (new one or removed) (LiteGraph.INPUT or LiteGraph.OUTPUT, slot, true if connected, link_info, input_info or output_info ) */ onConnectionsChange( type: number, @@ -1021,7 +1037,7 @@ export declare class LGraphNode { isConnected: boolean, link: LLink, ioSlot: (INodeOutputSlot | INodeInputSlot) - ): void; + ): void; /** * if returns false, will abort the `LGraphNode.setProperty` @@ -1038,6 +1054,7 @@ export declare class LGraphNode { } export type LGraphNodeConstructor = { + nodeData: any; // Used by group node. new (): T; }; @@ -1143,7 +1160,7 @@ export declare class LGraphCanvas { ); static active_canvas: HTMLCanvasElement; - + allow_dragcanvas: boolean; allow_dragnodes: boolean; /** allow to control widgets, buttons, collapse, etc */ @@ -1210,6 +1227,8 @@ export declare class LGraphCanvas { node_over: LGraphNode | null; node_title_color: string; node_widget: [LGraphNode, IWidget] | null; + last_mouse_dragging: boolean; + /** Called by `LGraphCanvas.drawBackCanvas` */ onDrawBackground: | ((ctx: CanvasRenderingContext2D, visibleArea: Vector4) => void) @@ -1269,6 +1288,12 @@ export declare class LGraphCanvas { visible_links: LLink[]; visible_nodes: LGraphNode[]; zoom_modify_alpha: boolean; + //mouse in canvas coordinates, where 0,0 is the top-left corner of the blue rectangle + mouse: Vector2; + //mouse in graph coordinates, where 0,0 is the top-left corner of the blue rectangle + graph_mouse: Vector2; + + pointer_is_down?: boolean; /** clears all the data inside */ clear(): void;