@bigfishtv/cockpit
Version:
84 lines (71 loc) • 1.97 kB
JavaScript
;
exports.__esModule = true;
exports.isCtrlKeyPressed = exports.isShiftKeyPressed = undefined;
var _keycode = require('keycode');
var _keycode2 = _interopRequireDefault(_keycode);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var shiftKeyPressed = false; /**
* Select Key Utilities
* @module Utilities/selectKeyUtils
*/
var ctrlKeyPressed = false;
/**
* @return {Boolean}
*/
var isShiftKeyPressed = exports.isShiftKeyPressed = function isShiftKeyPressed() {
return shiftKeyPressed;
};
/**
* @return {Boolean}
*/
var isCtrlKeyPressed = exports.isCtrlKeyPressed = function isCtrlKeyPressed() {
return ctrlKeyPressed;
};
/**
* Callback to 'keydown' listener sets ctrl/shift down vars
* @param {Object} event - native key down event
*/
function handleKeyDown(event) {
switch ((0, _keycode2.default)(event)) {
case 'shift':
shiftKeyPressed = true;
break;
case 'ctrl':
ctrlKeyPressed = true;
break;
case 'command':
case 'left command':
case 'right command':
ctrlKeyPressed = true;
break;
}
}
/**
* Callback to 'keyup' listener sets ctrl/shift down vars
* @param {Object} event - native key down event
*/
function handleKeyUp(event) {
switch ((0, _keycode2.default)(event)) {
case 'shift':
shiftKeyPressed = false;
break;
case 'ctrl':
ctrlKeyPressed = false;
break;
case 'command':
case 'left command':
case 'right command':
ctrlKeyPressed = false;
break;
}
}
/**
* Attaches 'keydown' and 'keyup' event listeners to document
* @param {document} [element=document] - which element to attach event listeners to
*/
function init() {
var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
element.addEventListener('keydown', handleKeyDown);
element.addEventListener('keyup', handleKeyUp);
}
init();