in modules/core/src/controllers/controller.js [422:483]
_onKeyDown(event) {
if (!this.keyboard) {
return false;
}
const funcKey = this.isFunctionKeyPressed(event);
const {controllerState} = this;
let newControllerState;
const interactionState = {};
switch (event.srcEvent.code) {
case 'Minus':
newControllerState = funcKey
? controllerState.zoomOut().zoomOut()
: controllerState.zoomOut();
interactionState.isZooming = true;
break;
case 'Equal':
newControllerState = funcKey ? controllerState.zoomIn().zoomIn() : controllerState.zoomIn();
interactionState.isZooming = true;
break;
case 'ArrowLeft':
if (funcKey) {
newControllerState = controllerState.rotateLeft();
interactionState.isRotating = true;
} else {
newControllerState = controllerState.moveLeft();
interactionState.isPanning = true;
}
break;
case 'ArrowRight':
if (funcKey) {
newControllerState = controllerState.rotateRight();
interactionState.isRotating = true;
} else {
newControllerState = controllerState.moveRight();
interactionState.isPanning = true;
}
break;
case 'ArrowUp':
if (funcKey) {
newControllerState = controllerState.rotateUp();
interactionState.isRotating = true;
} else {
newControllerState = controllerState.moveUp();
interactionState.isPanning = true;
}
break;
case 'ArrowDown':
if (funcKey) {
newControllerState = controllerState.rotateDown();
interactionState.isRotating = true;
} else {
newControllerState = controllerState.moveDown();
interactionState.isPanning = true;
}
break;
default:
return false;
}
this.updateViewport(newControllerState, this._getTransitionProps(), interactionState);
return true;
}