Skip to content

feat(selection): support multi-range selection with drag previews - #1287

Merged
6pac merged 1 commit into
masterfrom
feat/multi-range-selections
Sep 1, 2026
Merged

feat(selection): support multi-range selection with drag previews#1287
6pac merged 1 commit into
masterfrom
feat/multi-range-selections

Conversation

@ghiscoding

@ghiscoding ghiscoding commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

## Summary

This PR selectively ports the multi-range selection functionality and related fixes from upstream PRs #2748, #2759, and #2777.

## Why

Users can select multiple non-contiguous cell or row ranges using Excel-like Ctrl/Cmd interactions.

## Changes

  • Added the enableMultiSelection selection option.
  • Added SelectionModel.setOptions().
  • Added Ctrl/Cmd-click range toggling and rectangular range splitting.
  • Added Ctrl/Cmd-drag range additions for cells and rows.
  • Preserved existing ranges during live drag previews.
  • Synchronized the active cell when selectActiveRow is disabled.
  • Preserved gaps when copying non-contiguous ranges.
  • Updated the draggable interaction to support selection-model options after initialization.
  • Added and updated Cypress coverage and the Hybrid Selection Model example.

PR #2757 is intentionally excluded because Shift-click range extension is a separate scope.

## Validation

  • Cypress E2E tests passed in Cypress UI/dev-watch mode.
  • npx tsc --noEmit --incremental false
  • npm run lint
  • npm run build:prod
  • git diff --check

## Comments

The changes are limited to the core SlickGrid selection behavior and related Vanilla example/test coverage.

The local npm run cypress:ci command could not be used for final validation because the browser process exits with code 132 in the current environment.

## AI / LLM assistance

  • AI / LLM assistance used:
    • No
    • Yes
  • If Yes:
    • which tool/model: OpenAI Codex / GPT-5
    • how was it used: Reviewed the upstream PRs, implemented the corresponding SlickGrid changes, added Cypress coverage, investigated test failures, and validated the implementation.

## Checklist

  • The changes are limited to only one scope.
  • Tests were added or updated where appropriate.
  • Documentation was updated where appropriate.
image

@6pac
6pac merged commit 9ef0df8 into master Sep 1, 2026
4 checks passed
@6pac
6pac deleted the feat/multi-range-selections branch September 1, 2026 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants