diff --git a/src/LGraphCanvas.ts b/src/LGraphCanvas.ts index b0a0f5db8..d8e5ac807 100644 --- a/src/LGraphCanvas.ts +++ b/src/LGraphCanvas.ts @@ -7393,6 +7393,10 @@ export class LGraphCanvas implements ConnectionColorContext { } if (!_slot.nameLocked) menu_info.push({ content: "Rename Slot", slot: slot }) + + if (node.getExtraSlotMenuOptions) { + menu_info.push(...node.getExtraSlotMenuOptions(slot)) + } } // @ts-expect-error Slot type can be number and has number checks options.title = (slot.input ? slot.input.type : slot.output.type) || "*" diff --git a/src/LGraphNode.ts b/src/LGraphNode.ts index 82c4f3c10..2b6523ba8 100644 --- a/src/LGraphNode.ts +++ b/src/LGraphNode.ts @@ -458,7 +458,15 @@ export class LGraphNode implements Positionable, IPinnable { canvasElement: HTMLCanvasElement, ): void onMouseLeave?(this: LGraphNode, e: CanvasMouseEvent): void + /** + * Override the default slot menu options. + */ getSlotMenuOptions?(this: LGraphNode, slot: IFoundSlot): IContextMenuValue[] + /** + * Add extra menu options to the slot context menu. + */ + getExtraSlotMenuOptions?(this: LGraphNode, slot: IFoundSlot): IContextMenuValue[] + // FIXME: Re-typing onDropItem?(this: LGraphNode, event: Event): boolean onDropData?(