Commit Graph

5036 Commits (ea5cc1f53cb15ae10fe4f63d60152b7fd674197c)

Author SHA1 Message Date
Nick O'Leary ea5cc1f53c
Fix touchmove event handling for panning workspace 2025-12-04 14:35:22 +00:00
Nick O'Leary 108b861ae0
Merge pull request #5370 from node-red/beta-tour
Update tour for 5-beta
2025-12-04 13:48:56 +00:00
Nick O'Leary ebc079730d
Merge pull request #5312 from node-red/pan-zoom
Workspace pan/zoom updates
2025-12-04 13:40:20 +00:00
Nick O'Leary 39dc8073d3
Update tour for 5-beta 2025-12-04 13:37:44 +00:00
Nick O'Leary cab7ce247b
Prep dev branch for beta releases 2025-12-03 16:51:19 +00:00
Nick O'Leary 892bda813c
Bump for 4.1.2 2025-12-03 15:50:47 +00:00
Nick O'Leary fd1f534b56
Merge pull request #5352 from GogoVega/fix-5347-history
Fix invalid `dirty` state during redo after deployment
2025-12-03 14:39:15 +00:00
Nick O'Leary 8cf1e73a02
Merge pull request #5276 from GogoVega/fix-plugins-getConfig
Handle plugin name in `plugins.getConfig`
2025-12-03 13:58:27 +00:00
Ben Hardill ddff7c3170
Bump to 4.22.1 2025-12-02 19:57:52 +00:00
Ben Hardill a79284ca0f
Missed one 2025-12-02 11:43:10 +00:00
Ben Hardill 724eafe2d3
Make runtime version match 2025-12-02 11:38:02 +00:00
Ben Hardill e200576d08
Update express version
Update to pick up new version with CVE fixes

CVE: cve-2024-51999
2025-12-02 11:33:16 +00:00
GogoVega 2b65cf02b1
`markAllDirty` also needs to modify the redo list 2025-11-12 10:28:28 +01:00
Nick O'Leary 7b6c838e7e
Reshow scrollbars and disable navigator temporary show 2025-10-31 11:29:37 +00:00
Nick O'Leary 351d25a7d6
Fix nls message name 2025-10-31 11:29:37 +00:00
Nick O'Leary ccf8772dc0
Merge branch 'master' into pan-zoom 2025-10-30 14:18:51 +00:00
Nick O'Leary 9d019e25c2
Fix up port event cancelling on node-select 2025-10-29 17:50:50 +00:00
Nick O'Leary 603a6f0c11
Merge pull request #5337 from node-red/selection-to-subflow-menu
Add selection-to-subflow context menu item
2025-10-29 17:40:26 +00:00
Nick O'Leary ea5c134866
Merge pull request #5315 from stoprocent/master
Fix race condition in projects initialization by returning gitTools.init() promise
2025-10-29 17:32:20 +00:00
Nick O'Leary 18f2285a48
Add selection-to-subflow context menu item 2025-10-29 17:31:23 +00:00
Nick O'Leary c015645c03
Merge pull request #5325 from node-red/5319-subflow-port-fixes
Show subflow input label on virtual port
2025-10-29 17:16:27 +00:00
Nick O'Leary e9fa3f0a2b
Merge pull request #5323 from node-red/5244-clear-suggestions
Clear suggestions on node/port mouse down
2025-10-29 17:16:17 +00:00
Nick O'Leary 6924b399cc
Fix lock icon for read-only user 2025-10-29 15:29:35 +00:00
Nick O'Leary fe4d40a776
Show subflow input label on virtual port 2025-10-23 15:37:07 +01:00
Nick O'Leary 6bb32775ba
Clear suggestions on node/port mouse down
Closes #5244
2025-10-23 13:52:44 +01:00
Nick O'Leary c9e0aaf34e
Make zoom scale 1 sticky to make it easier to get to 2025-10-21 09:24:58 +01:00
Nick O'Leary fa05811b08
Fix linting 2025-10-20 13:20:30 +01:00
Nick O'Leary 6813f373c6
Fix issues with navigator show/hide lifecycle 2025-10-20 13:15:52 +01:00
Nick O'Leary 3bbdc77300
Fix up space-to-pan event handling 2025-10-20 13:15:37 +01:00
Nick O'Leary 9cedcd0a78
Add nls message for zoom to fit 2025-10-20 13:15:09 +01:00
Marek Serafin 25e92c3501 Fix race condition in projects initialization
Add missing return statement for gitTools.init() promise to ensure
activeProject is set before getFlows() is called during startup.

Fixes intermittent 'No active project' warnings when projects feature
is enabled.
2025-10-18 18:04:06 +02:00
GogoVega ced0b30632
Fixe a typo in the variable name 2025-10-16 17:06:05 +02:00
dimitrieh 1638fa927b
Fix mouse wheel zoom sensitivity by detecting input device type
Mouse wheel events were being treated as trackpad input, causing excessive zoom jumps. Added delta magnitude detection (threshold: 50) to distinguish between mouse wheel (large deltas) and trackpad (small deltas), applying appropriate zoom calculation for each device.
2025-10-14 10:04:35 +01:00
dimitrieh 1ff980d190
Increase maximum zoom level to 2.0 2025-10-14 10:04:35 +01:00
dimitrieh 250f7ab897
Add minimap auto-show on flow startup and workspace changes
Shows minimap briefly when:
- Flow initially loads (if nodes exist)
- Switching between workspace tabs
- Continuing to show during zoom/pan navigation

Implementation:
- Listen to workspace:change events
- Check for active workspace with nodes before showing
- Use 100ms delay to ensure nodes are rendered
- Reuse existing showTemporary() for consistent behavior
2025-10-14 10:04:35 +01:00
dimitrieh d308bc7763
Remove debug console logs and update documentation 2025-10-14 10:04:35 +01:00
dimitrieh 79581bf51f
Refresh active nodes before zoom-to-fit to work immediately 2025-10-14 10:04:35 +01:00
dimitrieh f831df70ce
Fix zoom-to-fit to properly center nodes in viewport 2025-10-14 10:04:35 +01:00
dimitrieh 34d356230b
Set maximum zoom level to 1.0 2025-10-14 10:04:34 +01:00
dimitrieh 37a4440a5a
Make zoom animation duration relative to maintain consistent velocity 2025-10-14 10:04:34 +01:00
dimitrieh f22915e1b9
Add grabbing cursor for middle-click pan mode 2025-10-14 10:04:34 +01:00
dimitrieh 775d6181c9
Add grab/grabbing cursor for spacebar pan mode
- Show grab cursor (open hand) when spacebar is pressed
- Show grabbing cursor (closed hand) when actively panning with spacebar+drag
- Revert to grab cursor on mouse release if spacebar still held
- Clear cursor when spacebar is released
- Apply cursor to SVG element (outer) where mouse events occur
- Handle edge cases: window blur, canvas blur, spacebar release outside canvas
2025-10-14 10:04:34 +01:00
dimitrieh 47026ec744
Add minimap auto-show for zoom button/hotkey interactions
- Emit view:navigate event in animatedZoomView onStart callback
- Minimap now appears when using zoom buttons (in/out/reset/fit)
- Minimap now appears when using zoom hotkeys (Ctrl+/-/0/1)
- Auto-hides after 2 seconds as expected
- Applies to all animated zoom operations consistently
2025-10-14 10:04:34 +01:00
dimitrieh 79918f0187
Add focal point locking for sequential button/hotkey zooms
- Store workspace center on first button/hotkey zoom operation
- Maintain same focal point for sequential zooms within 1 second timeout
- Pass workspace center directly to animatedZoomView to prevent recalculation
- Focal point always at viewport center with consistent workspace point
- Works correctly at canvas edges where viewport may shift
- Does not interfere with wheel/pinch zoom which provide explicit focal points
2025-10-14 10:04:34 +01:00
dimitrieh 95b750060f
Fix zoom button animation and improve performance
- Fixed viewport jump to 0,0 by preventing click event from being passed as focal point
- Added smooth animation to zoom buttons and keyboard shortcuts (animatedZoomView)
- Doubled zoom step from 0.1 to 0.2 for faster zooming
- Optimized animation performance by only updating transforms during animation frames
- Fixed undefined variable issue (vis/gridScale -> eventLayer/outer)
- Full redraw only happens once at end of animation, eliminating jarring experience
2025-10-14 10:04:33 +01:00
dimitrieh 324ca52516
Fix zoom center calculation to use oldScaleFactor consistently 2025-10-14 10:04:33 +01:00
dimitrieh a1854806af
Fix viewport drift when using zoom buttons without focal point 2025-10-14 10:04:33 +01:00
dimitrieh 8286ec8131
Remove animation from zoom buttons for instant, smooth zooming
Replace animatedZoomView() with direct zoomView() calls for zoom
buttons and keyboard shortcuts to eliminate jagged animation caused
by redraw() being called on every frame.

- Change zoomIn/zoomOut/zoomZero to use instant zoom like trackpad
- Single redraw per zoom step instead of 8-10 redraws during animation
- Makes all zoom methods (buttons, keyboard, trackpad) feel consistent
- Keep animatedZoomView() only for zoomToFitAll() where animation helps

Fixes stuttering when zooming with buttons or Ctrl+/-/0 shortcuts.
2025-10-14 10:04:33 +01:00
dimitrieh f74beb6a92
Add Ctrl+1/Cmd+1 keyboard shortcut for zoom-to-fit 2025-10-14 10:04:33 +01:00
dimitrieh f6decfd589
Revert "Move zoom-to-fit button between reset and zoom-in"
This reverts commit e46cfc9479b2db429d4f73c981e1886b6c0cbbca.
2025-10-14 10:04:33 +01:00