Fixes #18619: shift-select selects hidden items

This also fixes the inverse, when a range is unselected via shift-click,
previously checked checkboxes that are hidden are not changed.
This commit is contained in:
Jason Novinger 2025-02-18 10:03:49 -06:00 committed by Jeremy Stretch
parent b5bc0bad38
commit ed79e3bbf4
3 changed files with 6 additions and 2 deletions

Binary file not shown.

Binary file not shown.

View File

@ -43,8 +43,10 @@ function toggleCheckboxRange(
const typedElement = element as HTMLInputElement; const typedElement = element as HTMLInputElement;
//Change loop's current checkbox state to eventTargetElement checkbox state //Change loop's current checkbox state to eventTargetElement checkbox state
if (changePkCheckboxState === true) { if (changePkCheckboxState === true) {
if (!typedElement.closest('tr')?.classList.contains('d-none')) {
typedElement.checked = eventTargetElement.checked; typedElement.checked = eventTargetElement.checked;
} }
}
//The previously clicked checkbox was above the shift clicked checkbox //The previously clicked checkbox was above the shift clicked checkbox
if (element === previousStateElement) { if (element === previousStateElement) {
if (changePkCheckboxState === true) { if (changePkCheckboxState === true) {
@ -52,8 +54,10 @@ function toggleCheckboxRange(
return; return;
} }
changePkCheckboxState = true; changePkCheckboxState = true;
if (!typedElement.closest('tr')?.classList.contains('d-none')) {
typedElement.checked = eventTargetElement.checked; typedElement.checked = eventTargetElement.checked;
} }
}
//The previously clicked checkbox was below the shift clicked checkbox //The previously clicked checkbox was below the shift clicked checkbox
if (element === eventTargetElement) { if (element === eventTargetElement) {
if (changePkCheckboxState === true) { if (changePkCheckboxState === true) {