UNPKG

@bigfishtv/cockpit

Version:

84 lines (71 loc) 1.97 kB
'use strict'; 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();