* animateToNodes
- modify existing animation method to support passing multiple nodes, in which case the view is fit to the bounding box around them
* animateToBounds
* amend
* format
* amend
* nit
* Add LGraph state POCO
Moves last_link_id, last_node_id and creates same for group and reroute
fix import
* Add new serialisation to LGraph
Add LGraph schema 1
Remove reroute from old serialised graph
Remove brittle inherited types
Ensure stale links are not kept when clearing graph
* Add serialisable exports
* Ensure valid LGraph.state during deserialise
* Backport group header from frontend
* nit - TS types & redundant code
* Refactor - simplify group resize
* Fix group resize can be inverted
* Move group resize check to group class
* Add config for group padding & default colour
* nit - Remove redundant code
* Add multi-select all canvas items (groups, nodes)
* Add Feat: Group & Node Multi-Select / Nesting
- Groups can now contain groups
- Nested groups re-order on top of parent groups
- Groups can be added / removed from selection
- Uses new Positionable interface - easily extensible to new types
* Enhance add / remove from selection UX
More in line with normal desktop UX. Structured for keys to be customisable (if impl. later).
* Fix regression in link highlight
Legacy selection code still in use
* Allow nested groups to align perfectly on edges
* Remove group-move position rounding
Did not work under all circumstances, and resulted in misalignment more often than it helped.
* Add Positionable interface to canvas elements
* Add group resizeTo children
Refactor out duplicated code from Node
* Remove redundant "is_selected" check
* Improve measure pass - interface, caching
Node bounds once per render
Cached results
* Use cached bounds for repeat canvas calls
- Removes margin param from getNodeOnPos
- Removes margin param from getGroupOnPos
- Hitboxes now uniform for render / mouse features
- Simplifies code
* nit - Refactor
* Fix top-left edge of hitbox missing
* Add ID to groups
* Fix intermittent links bug - graph.links Map()
Replaces graph.links with Map()
Adds a Proxy to provide for...in and indexer access
Temporarily uses merged Map+Record type, to ease downstream migration
* nit - Remove redundant code
* nit - Remove redundant null checks
* Add Serializable interface, used in LLink
Allows LLink to be serialised as an object rather than an array, bringing it inline with the rest of LiteGraph.
* Fix TS errors - use correct property
* Fix graph version bumped without change
* Fix onDrawForeground callback has wrong area
* Move node pos getter/setter to class decl
* Fix circular depdency in global
* Add TS type guard private function
* Add TS type
* Add TS types & doc
* Add TS type initialisers
* Add NullableProperties type
* Add TS types
* Split node arrange code out to separate file
* Add Snaps for Comfy
* Add snap visual effects
* Update node measure to work everywhere
* Fix findConnectByTypeSlot does not work for "*"
* Fix regression in fast widget conversion
* Move canvas state to plain object
POCO that can be proxied without side-effects.
LGraphCanvasState interface added to package exports
* Add item dragging to canvas state
* Add connectByType wrappers
Can find slots without actually connecting. Will be used for link snapping.
* Refactor - generic find free slot
* Fix link/links TS types - should not be undefined
* Fix / add TS types, docs
* Refactor - fix overloads TS types
* Refactor - optional chaining
* Extend node before-connect callback
The callback can now determine if connection is to a specific input, or just trying to connect any valid slot on the node.
* Add TS types - finish IOptionalInputsData
* Add new hover highlight and link dragging features
- Hovering effects added for node inputs and outputs
- Adds "mouseout" handler to properly clear node state when mousing off a node
- Fixes bug that causes outputs to always be dimmed out when connecting from inputs
- Slight performance improvement
* Add node highlight text colour option
* Add slot highlight colour fallback
* Add distribute nodes
* Fix node alt-clone does not work like copy/paste
* Impl. emitEvent across LGraphCanvas
- Create TS types and union for all events
- Replaces all relevant dispatchEvent calls with emitEvent()
* Remove unused code
- showShowGraphOptionsPanel throws an exception when run. Safe to assume this function not in use.
- Remove old commented code
* Refactor - minor changes to clear TS errors
* Add TS types
* nit - ts-expect-error, comments
* Remove legacy hook
* Refactor - prefer typeof / instanceof / isArray
* Refactor - TS type narrowing
* nit
* nit - Format
* nit - auto const/let
* nit - Refactor / format
* Add TS types
* Replace dynamic getter/setter with class decls
* Make group move nodes param optional