function handleClick()

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;
		}