Commit Graph

1447 Commits

Author SHA1 Message Date
Chenlei Hu
d0e1998415 [TS] Add null-checks for LGraphNode layouts (#772)
Ref: https://github.com/Comfy-Org/litegraph.js/issues/616
Resolves https://github.com/Comfy-Org/litegraph.js/issues/770

This PR adds null-checks to various part of layout code to avoid we get
into irrecoverable state.
2025-03-13 13:50:04 -04:00
filtered
18811f50fc Add serialisation support for floating links (#771)
Adds the serialisation code to support the new floating links impl.
2025-03-13 15:20:14 +00:00
filtered
df36b23db8 [TS] Prefer narrow interface - readonly network (#769)
Uses new readonly link network interface in APIs that do not require
write.
2025-03-13 15:00:57 +00:00
filtered
835e22d754 [Cleanup] Removed unused convenience setter - reroutes (#768)
- New features are making the reroutes convenience setter unmanageable.
- Not currently in use.
- Prefer `configure()`, as it includes validation.
2025-03-13 14:53:26 +00:00
filtered
2e9f877bbd [Cleanup] Reroute and serialisation (#767)
- Fixes root cause of minor in-memory-only corruption when deleting
reroutes from output slots
  - Already automatically corrected via serialisation
- If `reroutes` or `links` are empty arrays, removes them from newer
object-based serialised output entirely
- Minor refactors
- Removes unused code
- Fixes some serialisation types
- Adds `ReadonlyLinkNetwork` interface
2025-03-13 14:40:12 +00:00
filtered
bcaeccfc45 Fix #346 last reroute is never deleted (#766)
Clears the reroutes in extras when exporting for serialisation, if none
exist.

- Resolves #346
2025-03-13 00:35:05 +00:00
filtered
486c5ad6c0 [Refactor] Split link render code to private method (#765)
- Enables floating reroutes
- Allows rendering logic for a chain of reroutes to be called without a
real `LLink` connected to an input
- Deprecates unused `visible_links` array
2025-03-13 00:00:52 +00:00
filtered
cca2ac28e0 [Refactor] Prefer for loop over reduce (#764)
- Follow-up on #763
2025-03-13 10:12:04 +11:00
Chenlei Hu
77465113cd Implement _.pick to simplify serialization (#763)
Simplify the serialization code, so that we only write each prop once.
2025-03-12 16:08:54 -04:00
filtered
9dd0ff3eb3 Fix zoom to nodes (#762)
- Resolves #761
2025-03-12 18:53:57 +00:00
Comfy Org PR Bot
07d7c533da 0.10.3 (#760)
Patch version increment to 0.10.3

Co-authored-by: webfiltered <176114999+webfiltered@users.noreply.github.com>
2025-03-13 04:25:19 +11:00
filtered
6805643204 Snap to widget - fast widget conversion (#758)
- Initial basic impl.
- Tracking issue for proper impl. #757
2025-03-11 19:28:15 +00:00
filtered
a26a5c9a87 [Refactor] Prefer param destructuring over manual (#756)
- Replaces manual runtime destructuring with built-in param
destructuring
- Standardises naming
- Reorders deprecated code
2025-03-11 18:19:56 +00:00
filtered
fbcf5315f4 [CI] Fix release workflow PR message (#755)
Fixes missing word in PR body.
2025-03-12 03:48:21 +11:00
filtered
27873d0351 [Cleanup] Remove duplicate code (#754)
- Removes null widget skip - this _should_ throw
- Removes widget locator that was on LGraphCanvas - canvas should not
functions that find things in graph space.
2025-03-11 16:41:37 +00:00
Comfy Org PR Bot
b223c60cd0 0.10.2 (#753)
Patch version increment to 0.10.2

Co-authored-by: webfiltered <176114999+webfiltered@users.noreply.github.com>
2025-03-12 03:32:14 +11:00
filtered
a7f2ff16a9 [TS] Remove optional from widget y and type (#752)
- Fixes widget `type` marked as optional - it is required
- Fixes widget `y` marked as optional - now initialised to 0
2025-03-11 15:46:10 +00:00
filtered
f6c605434b Fix fast widget connect indicator (#751)
Remains as visual artifact when pointer leaves widget.
2025-03-11 14:49:19 +00:00
filtered
9981d19b36 Fix connecting link regressions (#750)
- Fix move link creates link bypassing reroutes
- Fix move link creates new link instead of moving
2025-03-11 14:10:42 +00:00
filtered
5ed264ce8e Allow reroutes to be re-connected (#749)
- Resolves #305
- Allows links to be dragged from inputs to reroutes
2025-03-11 13:47:26 +00:00
Comfy Org PR Bot
35dd90b6b0 0.10.1 (#748)
Patch version increment to 0.10.1

Co-authored-by: webfiltered <176114999+webfiltered@users.noreply.github.com>
2025-03-11 13:10:58 +00:00
filtered
314095a3c1 Enable reroutes globally (#747)
Removes the opt-in to enable flag for reroutes, which are now a
permanent feature.
2025-03-11 12:43:59 +00:00
filtered
35ec2a3fa1 [API] Remove unused drag & drop interface (#746)
Not maintained or functional.
2025-03-11 11:46:22 +00:00
filtered
35827b8494 [Refactor] Move animate code to DragAndScale (#745) 2025-03-11 11:31:21 +00:00
filtered
58011e77b6 [Refactor] Simplify & standardise canvas code (#744)
Various clean up & minor refactors / nits.
2025-03-11 10:21:11 +00:00
filtered
8ba671a5eb Fix animate to bounding rect interpolation (#743)
- Resolves #738
2025-03-11 09:41:28 +00:00
Comfy Org PR Bot
5531a884a6 0.10.0 (#742)
version increment to 0.10.0

Co-authored-by: huchenlei <20929282+huchenlei@users.noreply.github.com>
2025-03-10 14:38:38 -04:00
Chenlei Hu
214defbdb4 [TS] Remove IBaseWidget.element prop (#741)
Remove the prop as it is a impl detail of the frontend.
2025-03-10 14:34:09 -04:00
Chenlei Hu
db680c96ad [Bug] Fix node empty space on converted widget (#740)
Resolves https://github.com/Comfy-Org/litegraph.js/issues/739

This is a temporary measurement to fix the issue. We should probably
consider build a more robust layout mechanism later.
2025-03-10 14:31:50 -04:00
filtered
1a482d750b [TMP] Support downstream output widget in serialisation (#735)
- Ref: https://github.com/Comfy-Org/litegraph.js/pull/732#issuecomment-2710796369
2025-03-10 16:05:06 +00:00
filtered
84dad03f4d Remove static circular dependency workaround (#734)
Workaround originally implemented when converting to ES modules, but is
now redundant.

`DEFAULT_EVENT_LINK_COLOR` confirmed unused in code search (litegraph
events).
2025-03-10 15:29:33 +00:00
filtered
c5cb4cea43 [TS] Clean up serialisation interfaces (#733)
Removes legacy generic & dynamic typing, and standardises TS styles.
2025-03-10 15:07:56 +00:00
filtered
e632f5c69b Fix all unknown slot props are serialised (#732)
Ensures only specified properties are cloned for serialisation.
2025-03-10 12:20:34 +00:00
filtered
4589938ceb [TS] Fix invalid type assertion (#731)
- Follow-up on #728
2025-03-10 08:55:51 +00:00
VeeloxShadow
acdbbd547e Fix downstream extension context menu does not load (#728)
- Adds optional chaining for event target
2025-03-10 19:41:46 +11:00
Comfy Org PR Bot
9c60788948 0.10.0-0 (#727)
version increment to 0.10.0-0

Co-authored-by: webfiltered <176114999+webfiltered@users.noreply.github.com>
2025-03-09 00:21:06 +00:00
filtered
c0bfe5489f [API] Add LinkConnector - replaces connecting_links (#726)
### LinkConnector

Replaces the minimal-change effort of `connecting_links` with a more
reliable implementation.

- Subscribable, event-based API
- Uses browser-standard `e.preventDefault()` to cancel `before-*` events
- Uses standard `state` POJO - can be proxied without issue
- Structures code and separates concerns out of `LGraphCanvas`
- Link creation calls can now be made from anywhere, without the need
for a rewrite
- New canvas sub-components now live in `src/canvas/`

### Rendering

- Skips link segments by setting a `_dragging` bool flag on the LLink or
Reroute
- Moves some previously nested code to event listeners, configured in
the `LGraphCanvas` constructor

### Deprecation

`LGraphCanvas.connecting_links` is now deprecated and will later be
removed.

Until it is removed, to prevent breaking extensions it will continue to
be set and cleared by a legacy callback. The contents of this property
are ignored; code search revealed no exentsions actually modifying the
array.
2025-03-08 23:48:45 +00:00
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
filtered
7119480f84 [CI] Add pre-release options (#722)
Adds release steps to README.
2025-03-08 16:20:21 +11:00
filtered
8153e65b3b [CI] Pin third party action to SHA (#721)
Pins third party GitHub action to specific SHA. This will need to be
updated, but removes the possibility of any unexpected surprises (new
bugs / security concerns).
2025-03-08 04:35:40 +00:00
Comfy Org PR Bot
a9ace409a4 0.9.9 (#720)
version increment to 0.9.9

Co-authored-by: huchenlei <20929282+huchenlei@users.noreply.github.com>
2025-03-07 13:22:05 -05: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
Comfy Org PR Bot
c1af1e29d2 0.9.8 (#714)
version increment to 0.9.8

Co-authored-by: webfiltered <176114999+webfiltered@users.noreply.github.com>
2025-03-07 09:31:10 +00:00
filtered
7e2009188d [Refactor] Split functions out to file (#713)
Splits code out from `LGraphCanvas`.
2025-03-07 09:07:38 +00:00
Comfy Org PR Bot
1d31635072 0.9.7 (#712)
version increment to 0.9.7

Co-authored-by: huchenlei <20929282+huchenlei@users.noreply.github.com>
2025-03-06 15:22:28 -05:00