mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-02 14:27:40 +00:00
* Format only * Revert accidental change * Fix redundant falsy check - uninit. var * nit - Refactor const/let * nit - Refactor const/let (manual) * nit - Redeclared params * Add TS types & minor refactor only * Refactor - Clean up / reformat - Add strings.ts helper functions - Remove unused vars & local function params - Simplifies code - Rename vars for clarity - Add TODOs and other comments - Add ts-expect-error * Redirect draw.ts enums to global file (temp.) Should be revisited after TS merge complete Corrects import of types from draw.ts into interfaces * Add measure.ts - move util funcs from Global * Add all imports required for TS conversion * Refactor - TS narrowing * nit - TS types & minor refactor * Add missing types from recent PRs Removes duplicate declarations Fixes some type mismatches * nit - Refactor recent PRs * Revert incorrect decls backported * Remove unused params * Add TS types only * Fix minor TS type coercion issues Also removes redundant code * nit - Refactor * Remove @ts-nocheck * Fix refactor regression - drag link to output Issue was the result of fixing var declared outside of closure * Restore original logic --------- Co-authored-by: huchenlei <huchenlei@proton.me>
75 lines
2.1 KiB
TypeScript
75 lines
2.1 KiB
TypeScript
import type { CanvasColour, ISlotType } from "./interfaces"
|
|
import type { NodeId } from "./LGraphNode"
|
|
|
|
export type LinkId = number | string
|
|
|
|
export type SerialisedLLinkArray = [LinkId, NodeId, number, NodeId, number, ISlotType]
|
|
|
|
//this is the class in charge of storing link information
|
|
export class LLink {
|
|
/** Link ID */
|
|
id?: LinkId
|
|
type?: ISlotType
|
|
/** Output node ID */
|
|
origin_id?: NodeId
|
|
/** Output slot index */
|
|
origin_slot?: number
|
|
/** Input node ID */
|
|
target_id?: NodeId
|
|
/** Input slot index */
|
|
target_slot?: number
|
|
data?: number | string | boolean | { toToolTip?(): string }
|
|
_data?: unknown
|
|
_pos: Float32Array
|
|
_last_time?: number
|
|
path?: Path2D
|
|
|
|
#color?: CanvasColour
|
|
/** Custom colour for this link only */
|
|
public get color(): CanvasColour { return this.#color }
|
|
public set color(value: CanvasColour) {
|
|
this.#color = value === "" ? null : value
|
|
}
|
|
|
|
constructor(id: LinkId, type: ISlotType, origin_id: NodeId, origin_slot: number, target_id: NodeId, target_slot: number) {
|
|
this.id = id
|
|
this.type = type
|
|
this.origin_id = origin_id
|
|
this.origin_slot = origin_slot
|
|
this.target_id = target_id
|
|
this.target_slot = target_slot
|
|
|
|
this._data = null
|
|
this._pos = new Float32Array(2) //center
|
|
}
|
|
|
|
configure(o: LLink | SerialisedLLinkArray) {
|
|
if (Array.isArray(o)) {
|
|
this.id = o[0]
|
|
this.origin_id = o[1]
|
|
this.origin_slot = o[2]
|
|
this.target_id = o[3]
|
|
this.target_slot = o[4]
|
|
this.type = o[5]
|
|
} else {
|
|
this.id = o.id
|
|
this.type = o.type
|
|
this.origin_id = o.origin_id
|
|
this.origin_slot = o.origin_slot
|
|
this.target_id = o.target_id
|
|
this.target_slot = o.target_slot
|
|
}
|
|
}
|
|
|
|
serialize(): SerialisedLLinkArray {
|
|
return [
|
|
this.id,
|
|
this.origin_id,
|
|
this.origin_slot,
|
|
this.target_id,
|
|
this.target_slot,
|
|
this.type
|
|
]
|
|
}
|
|
}
|