feat(viewboxes): add drag-to-resize on all four edges and corners #298

Merged
allan merged 4 commits from issue-190 into version7-13 2026-08-11 08:08:10 +00:00
Owner

Summary

Adds drag-to-resize support to all four edges and both bottom corners of a viewbox, alongside the existing bottom-right corner handle, plus test coverage for the new handles and the underlying resize math.

Issue

Closes #190

Intent

Viewboxes could previously only be resized from a single corner. This extends that to give users full control over a viewbox's footprint - width from either side, height from the bottom, and combined width+height from either bottom corner.

Changes

  • New resize handles: right-edge, left-edge, bottom-edge, and bottom-left-corner handles added alongside the existing bottom-right corner handle, each driven by plain pointer events rather than Angular CDK drag directives.
  • Left-edge-aware resizing: handles that move the box's own left edge (left, bottom-left-corner) derive width/position from raw pointer coordinates rather than the handle element's own rect, keeping the calculation independent of the box's own live transform.
  • Z-index fix: raised resize handles above Handsontable's internal frozen row/column-header overlay layers, so clicks on a handle near the table's edge reach the handle instead of the table underneath it.
  • Cypress coverage: added end-to-end tests for all five resize handles (corner, right, bottom-left-corner, left, bottom), verifying both the dimension that should change and the one that should stay fixed.
  • Unit test coverage: new spec file for ViewboxesComponent covering the resize math, handle-transform positioning, and pointer-event drag handlers in isolation.
# Summary Adds drag-to-resize support to all four edges and both bottom corners of a viewbox, alongside the existing bottom-right corner handle, plus test coverage for the new handles and the underlying resize math. # Issue Closes #190 # Intent Viewboxes could previously only be resized from a single corner. This extends that to give users full control over a viewbox's footprint - width from either side, height from the bottom, and combined width+height from either bottom corner. # Changes - **New resize handles**: right-edge, left-edge, bottom-edge, and bottom-left-corner handles added alongside the existing bottom-right corner handle, each driven by plain pointer events rather than Angular CDK drag directives. - **Left-edge-aware resizing**: handles that move the box's own left edge (left, bottom-left-corner) derive width/position from raw pointer coordinates rather than the handle element's own rect, keeping the calculation independent of the box's own live transform. - **Z-index fix**: raised resize handles above Handsontable's internal frozen row/column-header overlay layers, so clicks on a handle near the table's edge reach the handle instead of the table underneath it. - **Cypress coverage**: added end-to-end tests for all five resize handles (corner, right, bottom-left-corner, left, bottom), verifying both the dimension that should change and the one that should stay fixed. - **Unit test coverage**: new spec file for `ViewboxesComponent` covering the resize math, handle-transform positioning, and pointer-event drag handlers in isolation.
Yury added 1 commit 2026-08-10 12:42:47 +00:00
feat(viewboxes): add drag-to-resize on all four edges and corners
Build / Build-and-ng-test (pull_request) Failing after 1m41s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 20m36s
e5a5bf2144
Adds right, left, bottom, and bottom-left-corner resize handles
alongside the existing bottom-right corner, and raises resize handle
z-index above Handsontable's frozen header clones so clicks reach the
handle instead of the table underneath it.
Yury added 1 commit 2026-08-10 14:09:31 +00:00
fix: fixed npm vuln
Build / Build-and-ng-test (pull_request) Successful in 5m16s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m7s
Build / Build-and-test-development (pull_request) Successful in 23m55s
26b55b1bde
Yury added 1 commit 2026-08-11 06:16:20 +00:00
chore: merge remote-tracking branch 'origin/version7-13' into issue-190
Build / Build-and-ng-test (pull_request) Failing after 2m17s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 21m8s
7c33839b99
Yury added 1 commit 2026-08-11 06:42:42 +00:00
fix(deps): override nanoid to 3.3.18 in sas/
Build / Build-and-ng-test (pull_request) Successful in 5m8s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m12s
Build / Build-and-test-development (pull_request) Successful in 24m44s
d57ae03fc4
@sasjs/cli's own nanoid override doesn't propagate to consumers - npm
only reads overrides from the root project being installed. Adding it
here directly, rather than a raw lockfile patch, so it survives future
npm install runs instead of silently reverting again.
Yury marked the pull request as ready for review 2026-08-11 07:23:31 +00:00
allan merged commit fabb9e5bfd into version7-13 2026-08-11 08:08:10 +00:00
allan deleted branch issue-190 2026-08-11 08:08:10 +00:00
Sign in to join this conversation.