Commit Graph

898 Commits

Author SHA1 Message Date
filtered
8e59fbfaa2 Prep link connector (#725)
Prepration for LinkConnector replacement

- Simplifies code
- Minor perf improvement
- nits and clean up
2025-03-08 20:43:27 +00:00
filtered
5ab9d9d25c Warn users if calling connectSlots incorrectly (#724)
Prevents silent failures from going unnoticed.
2025-03-08 18:21:10 +00:00
filtered
68945cb54d Remove getTime workaround and Node.js type bleeding (#723)
- Removes legacy timer workaround (redundant on Chrome v6 / Node.js v16)
- Removes old type workarounds
- Improves type inference speed
2025-03-08 13:27:49 +00:00
Chenlei Hu
c21510773e [Bug] Fix link drop on multi-line string dom widget (#718)
Resolves https://github.com/Comfy-Org/ComfyUI_frontend/issues/2905
2025-03-07 10:28:07 -05:00
filtered
20bdc47550 [API] Add convenience methods to LGraphNode (#717)
- getInputOnPos
- getOutputOnPos
- getSlotOnPos
- Follow-up on #716 
- Uses more explicit names for class methods moved to module functions
2025-03-07 14:38:55 +00:00
filtered
3e44f6a0c1 [API] Add improved slot locator functions (#716)
- Returns object with slot, index, and pos
- Locate-by-type returns object with slot & index
- Uses standard `undefined` return for concise chaining & validation
- Free 10x perf increase over getConnectionPos (used basic random data
to test, out of curiosity)
2025-03-07 13:18:06 +00:00
filtered
84fad5b8a5 [Perf] Fix unnecessary canvas redraw (null vs undefined) (#715)
Fixes regression added in TS strict conversion. A fallback to `null`
added to match the TS type, however value being stored was actually
uncaught use of `undefined`.

`null` !== `undefined` -> redraw every frame the pointer moves
2025-03-07 11:50:53 +00:00
filtered
7e2009188d [Refactor] Split functions out to file (#713)
Splits code out from `LGraphCanvas`.
2025-03-07 09:07:38 +00:00
Chenlei Hu
54f96ca028 Add LGraphCanvas.isNodeVisible (#711)
Add LGraphCanvas.isNodeVisible or more efficient node visibility checks.
2025-03-06 15:20:51 -05:00
filtered
a5c2464c88 [Refactor] Simplify code - getConnectionOnPos (#710)
Improves readability of `LGraphNode.getConnectionOnPos`.
2025-03-06 12:00:51 +00:00
filtered
e62ef2e0aa [Refactor] Prefer undefined over explicit null (#709)
- Ref: #595
2025-03-05 10:22:51 +00:00
filtered
7a2af7008b [Refactor] Rename to connectSlots (#708)
- Follow-up on #703 
- Changes name to match original intent
2025-03-05 19:01:26 +11:00
filtered
3411ecbc15 [Refactor] Allow bypassing legacy duck-typed API (#703)
`LGraphNode.connect()` has been altered many times and attempts to
handle too many scenarios in a single public call.

- Moves link creation to a separate function
- Allows the legacy duck-typed API to continue functioning as-is
2025-03-04 14:23:53 +00:00
filtered
8a3487a209 Remove redundant code - LGraphNode (#702)
- Removes unreachable and redundant code.
- Fixes TS type
2025-03-05 00:58:02 +11:00
filtered
8bee428375 [API] Remove unused LGraph.onNodeConnectionChange (#701)
Confirmed unused via code search.
2025-03-04 09:18:38 +00:00
filtered
e4a41669f6 Fix moving output links loses subsequent reroutes
Now maintains any level of reroute chain complexity when moving links.
2025-03-04 07:25:10 +11:00
filtered
32b6b7eff9 Fix reroutes lost when moving links via outputs (#699)
- Resolves #309

https://github.com/user-attachments/assets/70c8b9ba-b4e6-4293-a254-6ae95930d1f1
2025-03-03 19:16:55 +00:00
filtered
aca81a99c8 Fix regression in legacy search (#698)
- Resolves https://github.com/Comfy-Org/ComfyUI_frontend/issues/2828
- Issue caused by earlier instantiation of `input` object
2025-03-03 17:42:00 +00:00
filtered
b227eefbdd Improve connecting link logic (#697)
### Current

- Connections are disconnected the moment a link starts being dragged
- Reseating a connection where it came from creates a new connection
- If the process is somehow interrupted, the links are already gone

### Proposed

- Connection is disconnected after a new connection is made
- Rendering is bypassed for the link segment being moved
- Does nothing if dropping a link exactly where it came from
- Adds early return when trying to connect a node to itself
2025-03-03 17:03:31 +00:00
filtered
cef6ab6ced Improve link drag & drop (#380)
- Resolves
https://github.com/Comfy-Org/litegraph.js/issues/309#issuecomment-2508726168
- Output issue still pending
- Splits connecting links `pointerup` handler to separate function,
which can now be called from `CanvasPointer` callbacks
  - Minor refactor; no functional changes

### Behaviour change

When moving existing links from an input slot, the link will not be
disconnected until the drop event occurs.

### Current

Shift + drag


https://github.com/user-attachments/assets/0b98f9bf-3d5f-467e-9a9b-e5695e5a0d0b

### Proposed

Shift + drag

https://github.com/user-attachments/assets/0bc36215-0247-41da-8050-e8df09addf23
2025-03-04 01:26:56 +11:00
bymyself
83fb246119 Fix Selection Marquee display is offset when DPI < 1 (#692)
Fixes https://github.com/Comfy-Org/ComfyUI_frontend/issues/2481. The
canvas scaling behavior is not consistent with DPI which is the source
of many bugs. To verify, add console log somewhere:
2025-03-03 17:06:15 +11:00
Chenlei Hu
4cbf12849e [BugFix] Fix add node via context menu (2) (#689)
https://github.com/Comfy-Org/litegraph.js/pull/647 failed to convert
`return` to `continue` when converting forEach to for-lop.
2025-03-02 21:21:39 -05:00
Chenlei Hu
9af4ee120c Revert "[BugFix] Fix adding node via context menu" (#688)
Reverts Comfy-Org/litegraph.js#682

Reason: Revert improper fix.
2025-03-02 21:15:45 -05:00
Chenlei Hu
326670206d [BugFix] Fix adding node via context menu (#682)
Resolves https://github.com/Comfy-Org/ComfyUI_frontend/issues/2814

Culprit: https://github.com/Comfy-Org/litegraph.js/pull/647
2025-03-02 18:38:31 -05:00
filtered
af7db40fce [chore] Clean up ignores after strict mode enabled (#680)
- Replaces all `ts-ignore` with `ts-expect-error`
- Resolves https://github.com/Comfy-Org/litegraph.js/issues/578
2025-03-02 14:56:15 +00:00
filtered
a815ce92a8 Add final refactoring to enable TS strict (#678)
- Removes long-deprecated onMenuNodePin
  - Code search empty
- Fixes TS types
- Minor refactors to ensure type-safety
- Adds explicit throws and null checks
2025-03-02 14:42:24 +00:00
filtered
972527de70 [Refactor] Use strict mode in Add Node menus (#677)
- Improves TS types
- Adds type guards / null checks
2025-03-02 14:17:25 +00:00
filtered
77b274f27f Add link context menu info to replace console error (#676)
Shows a single menu item with an error message when a link is corrupt.
2025-03-02 14:10:43 +00:00
filtered
b1885ebec8 Remove redundant code - onGetInputs / onGetOutputs (#674)
- Removes unused context menu for optional in/outputs
- At the top of the node context menu, greyed out `Inputs` and `Outputs`
- API does not fit with current design
- If required, rewrite would be simpler
2025-03-02 13:47:48 +00:00
filtered
6cb9131035 [TS] Use strict mode in LGraphCanvas (#673)
- Adds remaining TS nullable types
- Adds type guards to allow strict mode
  - Uses explicit throw in places that would throw regardless
- Adds ts-ignore that must be removed later
  * [ ] #578
2025-03-02 13:34:02 +00:00
filtered
02d991d669 [Refactor] Minor refactors to support strict mode (#671)
- Removes unnecessary `null`-init
- Deprecates unused drag / drop code
- Adds null checks
2025-03-02 09:02:29 +00:00
filtered
1aba15bbca Fix incorrect links highlighted (#670)
Fixes rare issue where incorrect links could be highlighted (and
seemingly remain highlighted).

Requires corrupt links & null coercion.
2025-03-02 08:49:13 +00:00
filtered
78175e2c1b [TS] Add strict nullability to LGraphCanvas (#669)
- Updates typing in copy & paste
- Clean up
2025-03-02 08:34:26 +00:00
filtered
d597271954 Add runtime type guards to search box (#668)
- Prevents unnecessary property access exceptions
- Adds TS strict types
- Removes inline polyfill for `Array.filter`
2025-03-02 08:12:15 +00:00
filtered
9b6a78e7df [Refactor] Prefer createElement over innerHTML (#667)
- Part of TS strict conversion
- Improves type safety of canvas panel / dialog functions
- Removes more instances of pointer event wrapper
2025-03-02 02:47:22 +00:00
filtered
193b09999f [TS] Use strict mode in dialog & panel (#666)
Includes minor refactors to retain inferred types in branches.
2025-03-02 02:27:10 +00:00
filtered
6a42484669 [TS] Use strict nullability in LGraphCanvas (#665)
- Adds runtime null checking
- Converts canvas context to non-nullable
- Adds explicit throws for some edge cases
- Improves TS types
2025-03-01 22:44:34 +00:00
filtered
539fa91b0d [TS] Use strict mode in LGraphCanvas (#664)
- Prefer `undefined` over `null`
- Primarily nullable type updates
2025-03-01 21:58:50 +00:00
filtered
ab25d1fc6e [Cleanup] Remove redundant code (#663)
Removes:

- Unused option from public API `getWidgetAtCursor` - use without params
- Unused workaround impl. for WebGL
- Invalid code (incorrect `tabIndex` casing)
2025-03-01 17:54:35 +00:00
filtered
7b4bea8e62 Remove deprecated code - webGL (#660)
Removes long-deprecated WebGL code.
2025-03-01 16:33:17 +00:00
filtered
177a5a0d54 [CodeHealth] Remove wheel listener & event wrapper (#656)
- Replaces the long-deprecated `mousewheel` and `DOMMouseScroll` event
listeners with `wheel` listener
  - Verified no change in Chromium behaviour (desktop, mouse)
- Removes redundant pointer listener wrapper
- Fixes types
2025-03-01 13:18:15 +00:00
Miguel C
5721b1c27c [Refactor] Fix step calculation in Knob Widget (#651)
Removes a stray console.log and fixes the step calculation.
2025-03-01 23:36:55 +11:00
filtered
c473130499 [TS] Use strict mode in LGraphCanvas (#654)
- Prefer creating HTML elements in JS and `append()` over innerHTML &
`querySelector()`
- Removes redundant code
- Adds/fixes TS types
2025-03-01 11:52:42 +00:00
filtered
bad923a7f0 [Refactor] Remove deprecated mousewheel events (#652)
Prefer "wheel" event (added around Chrome v31).
2025-03-01 11:34:23 +00:00
filtered
b36bf3d4a2 [CodeHealth] Apply modern standards to LGraphCanvas (#650)
- Prefer template string
- Prefer explicit throw to undefined TypeError
- Remove unnecessary `this` assignment
2025-02-28 22:08:23 +00:00
filtered
c4faaf4210 [TS] Fix ContextMenu types (#649)
- No runtime changes
- Drastically improves ContextMenu type accuracy / safety
- Allows TS strict conversion
2025-02-28 14:52:07 +00:00
filtered
b877312336 [Refactor] Fix TS types, remove redundant code (#648)
Minor clean up and graph null deref checks.

Minor runtime change: due to optional chaining, it is possible a
downstream consumer is catching this extremely rare behaviour on purpose
and handling it.
2025-02-28 11:13:23 +00:00
filtered
4365873039 [Refactor] Prefer NullGraphError & standardisation (#647)
- Best effort code search for convert explicit `null` to `undefined`
- Prefer explicit throw over `TypeError`
- Prefer template strings
2025-02-28 20:16:34 +11:00
filtered
b4688e18f9 [Refactor] Prefer includes over indexOf -1 (#646)
Enables ESLint auto-fix rule.
2025-02-28 08:53:29 +00:00
filtered
7b19abf83a [TS] Use strict mode in Canvas: initializers (#645)
- Code search verified no consumers expecting explicit null on callbacks
(best effort)
- Removes redundant code
2025-02-28 08:48:53 +00:00