Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
protected onArrowLeft(grid: DataGrid, event: KeyboardEvent): void {
// Stop the event propagation.
event.preventDefault();
event.stopPropagation();
// Fetch the selection model.
let model = grid.selectionModel;
// Fetch the modifier flags.
let shift = event.shiftKey;
let accel = Platform.accelKey(event);
// Handle no model with the accel modifier.
if (!model && accel) {
grid.scrollTo(0, grid.scrollY);
return;
}
// Handle no model and no modifier. (ignore shift)
if (!model) {
grid.scrollByStep('left');
return;
}
// Fetch the selection mode.
let mode = model.selectionMode;
protected onKeyC(grid: DataGrid, event: KeyboardEvent): void {
// Bail early if the modifiers aren't correct for copy.
if (event.shiftKey || !Platform.accelKey(event)) {
return;
}
// Stop the event propagation.
event.preventDefault();
event.stopPropagation();
// Copy the current selection to the clipboard.
grid.copyToClipboard();
}
protected onArrowDown(grid: DataGrid, event: KeyboardEvent): void {
// Stop the event propagation.
event.preventDefault();
event.stopPropagation();
// Fetch the selection model.
let model = grid.selectionModel;
// Fetch the modifier flags.
let shift = event.shiftKey;
let accel = Platform.accelKey(event);
// Handle no model with the accel modifier.
if (!model && accel) {
grid.scrollTo(grid.scrollX, grid.maxScrollY);
return;
}
// Handle no model and no modifier. (ignore shift)
if (!model) {
grid.scrollByStep('down');
return;
}
// Fetch the selection mode.
let mode = model.selectionMode;
protected onArrowUp(grid: DataGrid, event: KeyboardEvent): void {
// Stop the event propagation.
event.preventDefault();
event.stopPropagation();
// Fetch the selection model.
let model = grid.selectionModel;
// Fetch the modifier flags.
let shift = event.shiftKey;
let accel = Platform.accelKey(event);
// Handle no model with the accel modifier.
if (!model && accel) {
grid.scrollTo(grid.scrollX, 0);
return;
}
// Handle no model and no modifier. (ignore shift)
if (!model) {
grid.scrollByStep('up');
return;
}
// Fetch the selection mode.
let mode = model.selectionMode;
protected onPageDown(grid: DataGrid, event: KeyboardEvent): void {
// Ignore the event if the accel key is pressed.
if (Platform.accelKey(event)) {
return;
}
// Stop the event propagation.
event.preventDefault();
event.stopPropagation();
// Fetch the selection model.
let model = grid.selectionModel;
// Scroll by page if there is no selection model.
if (!model || model.selectionMode === 'column') {
grid.scrollByPage('down');
return;
}
protected onPageUp(grid: DataGrid, event: KeyboardEvent): void {
// Ignore the event if the accel key is pressed.
if (Platform.accelKey(event)) {
return;
}
// Stop the event propagation.
event.preventDefault();
event.stopPropagation();
// Fetch the selection model.
let model = grid.selectionModel;
// Scroll by page if there is no selection model.
if (!model || model.selectionMode === 'column') {
grid.scrollByPage('up');
return;
}
let { clientX, clientY } = event;
// Hit test the grid.
let hit = grid.hitTest(clientX, clientY);
// Unpack the hit test.
let { region, row, column } = hit;
// Bail if the hit test is on an uninteresting region.
if (region === 'void') {
return;
}
// Fetch the modifier flags.
let shift = event.shiftKey;
let accel = Platform.accelKey(event);
// If the hit test is the body region, the only option is select.
if (region === 'body') {
// Fetch the selection model.
let model = grid.selectionModel;
// Bail early if there is no selection model.
if (!model) {
return;
}
// Override the document cursor.
let override = Drag.overrideCursor('default');
// Set up the press data.
this._pressData = {