in src/views/htmlcontent/src/js/slick.dragrowselector.ts [282:328]
function handleClick(e): boolean {
let cell = _grid.getCellFromEvent(e);
if (!cell || !_grid.canCellBeActive(cell.row, cell.cell)) {
return false;
}
if (!e.ctrlKey && !e.shiftKey && !e.metaKey) {
if (cell.cell !== 0) {
_ranges = [new Slick.Range(cell.row, cell.cell - 1, cell.row, cell.cell - 1)];
setSelectedRanges(_ranges);
_grid.setActiveCell(cell.row, cell.cell);
return true;
} else {
_ranges = [new Slick.Range(cell.row, 0, cell.row, _grid.getColumns().length - 1)];
setSelectedRanges(_ranges);
_grid.setActiveCell(cell.row, 1);
return true;
}
} else if (_grid.getOptions().multiSelect) {
if (e.ctrlKey || e.metaKey) {
if (cell.cell === 0) {
_ranges.push(new Slick.Range(cell.row, 0, cell.row, _grid.getColumns().length - 1));
_grid.setActiveCell(cell.row, 1);
} else {
_ranges.push(new Slick.Range(cell.row, cell.cell - 1, cell.row, cell.cell - 1));
_grid.setActiveCell(cell.row, cell.cell);
}
} else if (_ranges.length && e.shiftKey) {
let last = _ranges.pop();
if (cell.cell === 0) {
let fromRow = Math.min(cell.row, last.fromRow);
let toRow = Math.max(cell.row, last.fromRow);
_ranges = [new Slick.Range(fromRow, 0, toRow, _grid.getColumns().length - 1)];
} else {
let fromRow = Math.min(cell.row, last.fromRow);
let fromCell = Math.min(cell.cell - 1, last.fromCell);
let toRow = Math.max(cell.row, last.toRow);
let toCell = Math.max(cell.cell - 1, last.toCell);
_ranges = [new Slick.Range(fromRow, fromCell, toRow, toCell)];
}
}
}
setSelectedRanges(_ranges);
return true;
}