in src/draft-components/grid/grid.tsx [296:336]
private onCellKeydown(event: KeyboardEvent) {
const { pageLength } = this;
const maxCellIndex = this.rowSelection === RowSelectionPattern.Checkbox ? this.columns.length : this.columns.length - 1;
let [colIndex, rowIndex] = this.activeCell;
switch(event.key) {
case 'ArrowUp':
rowIndex = Math.max(0, rowIndex - 1);
break;
case 'ArrowDown':
rowIndex = Math.min(this.cells.length - 1, rowIndex + 1);
break;
case 'ArrowLeft':
colIndex = Math.max(0, colIndex - 1);
break;
case 'ArrowRight':
colIndex = Math.min(maxCellIndex, colIndex + 1);
break;
case 'Home':
colIndex = 0;
break;
case 'End':
colIndex = maxCellIndex;
break;
case 'Enter':
case ' ':
if (this.simpleEditable) return;
event.preventDefault();
this.updateEditing(true, true);
break;
case 'PageUp':
rowIndex = Math.max(0, rowIndex - pageLength);
break;
case 'PageDown':
rowIndex = Math.min(this.cells.length - 1, rowIndex + pageLength);
break;
}
if (this.updateActiveCell(colIndex, rowIndex)) {
event.preventDefault();
}
}