46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import layoutStates from "$lib/stores/layoutStates"
|
|
import { BuiltInSlotType, LGraphNode, LiteGraph, type ITextWidget, type OptionalSlots, type PropertyLayout, type SlotLayout, type Vector2 } from "@litegraph-ts/core"
|
|
import { get } from "svelte/store"
|
|
import ComfyGraphNode from "./ComfyGraphNode"
|
|
|
|
export default class ComfyConfigureQueuePromptButton extends ComfyGraphNode {
|
|
static slotLayout: SlotLayout = {
|
|
inputs: [
|
|
{ name: "config", type: BuiltInSlotType.ACTION },
|
|
],
|
|
}
|
|
|
|
static propertyLayout: PropertyLayout = [
|
|
]
|
|
|
|
static optionalSlots: OptionalSlots = {
|
|
}
|
|
|
|
override size: Vector2 = [60, 30];
|
|
|
|
constructor(title?: string) {
|
|
super(title)
|
|
}
|
|
|
|
override onAction(action: any, param: any, options: { action_call?: string }) {
|
|
if (action === "config" && param != null) {
|
|
if (this.layoutState == null) {
|
|
console.error(this, this.getRootGraph(), Object.keys(get(layoutStates).all))
|
|
throw new Error(`Could not find layout attached to this node! ${this.id}`)
|
|
}
|
|
|
|
if (typeof param === "string")
|
|
this.workflow.setAttribute("queuePromptButtonName", param || "")
|
|
else if (typeof param === "object" && "buttonName" in param)
|
|
this.workflow.setAttribute("queuePromptButtonName", param.buttonName || "")
|
|
}
|
|
}
|
|
}
|
|
|
|
LiteGraph.registerNodeType({
|
|
class: ComfyConfigureQueuePromptButton,
|
|
title: "Comfy.ConfigureQueuePromptButton",
|
|
desc: "Sets the properties of the global queue prompt button",
|
|
type: "workflow/configure_queue_prompt_button"
|
|
})
|