New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

v-hotkey

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

v-hotkey - npm Package Compare versions

Comparing version 0.8.0 to 0.9.0

351

dist/v-hotkey.common.js

@@ -193,24 +193,2 @@ module.exports =

});
// CONCATENATED MODULE: ./src/keycodes/numpad.js
/* harmony default export */ var numpad = ({
'numpad *': 106,
// 'numpad +': 107,
'numpad +': 43,
'numpad add': 43,
// as a trick
'numpad -': 109,
'numpad .': 110,
'numpad /': 111,
'num lock': 144,
'numpad 0': 96,
'numpad 1': 97,
'numpad 2': 98,
'numpad 3': 99,
'numpad 4': 100,
'numpad 5': 101,
'numpad 6': 102,
'numpad 7': 103,
'numpad 8': 104,
'numpad 9': 105
});
// CONCATENATED MODULE: ./src/keycodes/lowercase.js

@@ -245,2 +223,22 @@ /* harmony default export */ var lowercase = ({

});
// CONCATENATED MODULE: ./src/keycodes/numpad.js
/* harmony default export */ var numpad = ({
'numpad*': 106,
'numpad+': 43,
numpadadd: 43,
'numpad-': 109,
'numpad.': 110,
'numpad/': 111,
numlock: 144,
numpad0: 96,
numpad1: 97,
numpad2: 98,
numpad3: 99,
numpad4: 100,
numpad5: 101,
numpad6: 102,
numpad7: 103,
numpad8: 104,
numpad9: 105
});
// CONCATENATED MODULE: ./src/keycodes/codes.js

@@ -256,2 +254,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

/* harmony default export */ var codes = (_objectSpread({

@@ -265,7 +264,7 @@ backspace: 8,

'pause/break': 19,
'caps lock': 20,
capslock: 20,
esc: 27,
space: 32,
'page up': 33,
'page down': 34,
pageup: 33,
pagedown: 34,
end: 35,

@@ -277,11 +276,11 @@ home: 36,

down: 40,
// 'add': 43,
insert: 45,
"delete": 46,
command: 91,
'left command': 91,
'right command': 93,
'scroll lock': 145,
'my computer': 182,
'my calculator': 183,
meta: 91,
leftcommand: 91,
rightcommand: 93,
scrolllock: 145,
mycomputer: 182,
mycalculator: 183,
';': 186,

@@ -297,43 +296,58 @@ '=': 187,

']': 221,
"'": 222
}, lowercase, {}, numpad, {}, functionkeys));
// CONCATENATED MODULE: ./src/keycodes/index.js
"'": 222,
':': 186,
'+': 187,
'<': 188,
_: 189,
'>': 190,
'?': 191,
'~': 192,
'{': 219,
'|': 220,
'}': 221,
'"': 222
}, lowercase, {}, numpad, {}, functionkeys, {}, aliases));
// CONCATENATED MODULE: ./src/helpers.js
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
var noop = function noop() {};
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var getKeyMap = function getKeyMap(keymap, alias) {
return Object.keys(keymap).map(function (input) {
var result = {};
var _keymap$input = keymap[input],
keyup = _keymap$input.keyup,
keydown = _keymap$input.keydown;
input.replace('numpad +', 'numpad add').split('+').forEach(function (keyName) {
switch (keyName.toLowerCase()) {
case 'ctrl':
case 'alt':
case 'shift':
case 'meta':
result[keyName] = true;
break;
var FORBIDDEN_NODES = ['INPUT', 'TEXTAREA', 'SELECT'];
/**
*
* @param {Object} a
* @param {Object} b
* @returns {Boolean}
*/
default:
result.keyCode = alias[keyName] || keycodes_searchKeyCode(keyName);
}
});
result.callback = {
keydown: keydown || (keyup ? noop : keymap[input]),
keyup: keyup || noop
};
return result;
var areObjectsEqual = function areObjectsEqual(a, b) {
return Object.entries(a).every(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
return b[key] === value;
});
};
/**
*
* @param {String} combination
*/
var keycodes_searchKeyCode = function searchKeyCode(key) {
if (!key) return; // Keyboard Events
key = hasKeyCode(key) || String(key);
return codes[key.toLowerCase()] || aliases[key.toLowerCase()] || returnCharCode(key);
var splitCombination = function splitCombination(combination) {
combination = combination.replace(/\s/g, '');
combination = combination.includes('numpad+') ? combination.replace('numpad+', 'numpadadd') : combination;
combination = combination.includes('++') ? combination.replace('++', '+=') : combination;
return combination.split(/\+{1}/);
};
/**
*
* @param {String} key
* @returns {String|undefined}
*/

@@ -343,67 +357,190 @@ var returnCharCode = function returnCharCode(key) {

};
/**
*
* @param {Array} keyMap
* @param {Number} keyCode
* @param {Object} eventKeyModifiers
* @returns {Function|Boolean}
*/
var isPlainObject = function isPlainObject(obj) {
return Object.prototype.toString.call(obj) === '[object Object]';
var getHotkeyCallback = function getHotkeyCallback(keyMap, keyCode, eventKeyModifiers) {
var key = keyMap.find(function (_ref3) {
var code = _ref3.code,
modifiers = _ref3.modifiers;
return code === keyCode && areObjectsEqual(eventKeyModifiers, modifiers);
});
if (!key) return false;
return key.callback;
};
/**
*
* @param {Event} e
* @param {Array} keyMap
* @param {Object} modifiers Vue event modifiers
*/
var hasKeyCode = function hasKeyCode(key) {
return !isPlainObject(key) ? key : key.which || key.keyCode || key.charCode || false;
var assignKeyHandler = function assignKeyHandler(e, keyMap, modifiers) {
var keyCode = e.keyCode,
ctrlKey = e.ctrlKey,
altKey = e.altKey,
shiftKey = e.shiftKey,
metaKey = e.metaKey;
var eventKeyModifiers = {
ctrlKey: ctrlKey,
altKey: altKey,
shiftKey: shiftKey,
metaKey: metaKey
};
if (modifiers.prevent) {
e.preventDefault();
}
if (modifiers.stop) {
e.stopPropagation();
}
var _document$activeEleme = document.activeElement,
nodeName = _document$activeEleme.nodeName,
isContentEditable = _document$activeEleme.isContentEditable;
if (isContentEditable) return;
if (FORBIDDEN_NODES.includes(nodeName)) return;
var callback = getHotkeyCallback(keyMap, keyCode, eventKeyModifiers);
if (!callback) return e;
e.preventDefault();
callback[e.type](e);
};
// CONCATENATED MODULE: ./src/keycodes/index.js
function keycodes_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function keycodes_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { keycodes_ownKeys(source, true).forEach(function (key) { keycodes_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { keycodes_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
// CONCATENATED MODULE: ./src/main.js
function keycodes_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function bindEvent(el, _ref, alias) {
var value = _ref.value,
modifiers = _ref.modifiers;
el._keymap = getKeyMap(value, alias);
el._keyHandler = function (e) {
if (modifiers.prevent) e.preventDefault();
if (modifiers.stop) {
var _document$activeEleme = document.activeElement,
nodeName = _document$activeEleme.nodeName,
isContentEditable = _document$activeEleme.isContentEditable;
if (isContentEditable) return;
var noop = function noop() {};
switch (nodeName) {
case 'INPUT':
case 'TEXTAREA':
case 'SELECT':
return;
var defaultModifiers = {
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false
};
var alternativeKeyNames = {
option: 'alt',
command: 'meta',
"return": 'enter',
escape: 'esc',
plus: '+',
mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'
};
/**
*
* @param {Object} combinations
* @param {Object} alias
* @returns {Object}
*/
var keycodes_getKeyMap = function getKeyMap(combinations, alias) {
var result = [];
Object.keys(combinations).forEach(function (combination) {
var _combinations$combina = combinations[combination],
keyup = _combinations$combina.keyup,
keydown = _combinations$combina.keydown;
var callback = {
keydown: keydown || (keyup ? noop : combinations[combination]),
keyup: keyup || noop
};
var keys = splitCombination(combination);
var _resolveCodesAndModif = resolveCodesAndModifiers(keys, alias),
code = _resolveCodesAndModif.code,
modifiers = _resolveCodesAndModif.modifiers;
result.push({
code: code,
modifiers: modifiers,
callback: callback
});
});
return result;
};
/**
*
* @param {Array} keys
* @param {Object} alias
* @returns {Object}
*/
var resolveCodesAndModifiers = function resolveCodesAndModifiers(keys, alias) {
var modifiers = keycodes_objectSpread({}, defaultModifiers);
if (keys.length > 1) {
return keys.reduce(function (acc, key) {
key = alternativeKeyNames[key] || key;
if (defaultModifiers.hasOwnProperty("".concat(key, "Key"))) {
acc.modifiers = keycodes_objectSpread({}, acc.modifiers, keycodes_defineProperty({}, "".concat(key, "Key"), true));
} else {
acc.code = alias[key] || keycodes_searchKeyCode(key);
}
}
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
return acc;
}, {
modifiers: modifiers
});
}
try {
for (var _iterator = el._keymap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var hotkey = _step.value;
var callback = hotkey.keyCode === e.keyCode && !!hotkey.ctrl === e.ctrlKey && !!hotkey.alt === e.altKey && !!hotkey.shift === e.shiftKey && !!hotkey.meta === e.metaKey && hotkey.callback[e.type];
callback && callback(e);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
var key = alternativeKeyNames[keys[0]] || keys[0];
if (defaultModifiers.hasOwnProperty("".concat(key, "Key"))) {
modifiers = keycodes_objectSpread({}, modifiers, keycodes_defineProperty({}, "".concat(key, "Key"), true));
}
var code = alias[key] || keycodes_searchKeyCode(key);
return {
modifiers: modifiers,
code: code
};
};
/**
*
* @param {String} key
*/
var keycodes_searchKeyCode = function searchKeyCode(key) {
return codes[key.toLowerCase()] || returnCharCode(key);
};
// CONCATENATED MODULE: ./src/main.js
/**
*
* @param {Object} el
* @param {Object} bindings
* @param {Object} alias
*/
function bindEvent(el, _ref, alias) {
var value = _ref.value,
modifiers = _ref.modifiers;
el._keyMap = keycodes_getKeyMap(value, alias);
el._keyHandler = function (e) {
return assignKeyHandler(e, el._keyMap, modifiers);
};
document.addEventListener('keydown', el._keyHandler);
document.addEventListener('keyup', el._keyHandler);
}
/**
*
* @param {Object} el
*/
function unbindEvent(el) {

@@ -410,0 +547,0 @@ document.removeEventListener('keydown', el._keyHandler);

@@ -202,24 +202,2 @@ (function webpackUniversalModuleDefinition(root, factory) {

});
// CONCATENATED MODULE: ./src/keycodes/numpad.js
/* harmony default export */ var numpad = ({
'numpad *': 106,
// 'numpad +': 107,
'numpad +': 43,
'numpad add': 43,
// as a trick
'numpad -': 109,
'numpad .': 110,
'numpad /': 111,
'num lock': 144,
'numpad 0': 96,
'numpad 1': 97,
'numpad 2': 98,
'numpad 3': 99,
'numpad 4': 100,
'numpad 5': 101,
'numpad 6': 102,
'numpad 7': 103,
'numpad 8': 104,
'numpad 9': 105
});
// CONCATENATED MODULE: ./src/keycodes/lowercase.js

@@ -254,2 +232,22 @@ /* harmony default export */ var lowercase = ({

});
// CONCATENATED MODULE: ./src/keycodes/numpad.js
/* harmony default export */ var numpad = ({
'numpad*': 106,
'numpad+': 43,
numpadadd: 43,
'numpad-': 109,
'numpad.': 110,
'numpad/': 111,
numlock: 144,
numpad0: 96,
numpad1: 97,
numpad2: 98,
numpad3: 99,
numpad4: 100,
numpad5: 101,
numpad6: 102,
numpad7: 103,
numpad8: 104,
numpad9: 105
});
// CONCATENATED MODULE: ./src/keycodes/codes.js

@@ -265,2 +263,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

/* harmony default export */ var codes = (_objectSpread({

@@ -274,7 +273,7 @@ backspace: 8,

'pause/break': 19,
'caps lock': 20,
capslock: 20,
esc: 27,
space: 32,
'page up': 33,
'page down': 34,
pageup: 33,
pagedown: 34,
end: 35,

@@ -286,11 +285,11 @@ home: 36,

down: 40,
// 'add': 43,
insert: 45,
"delete": 46,
command: 91,
'left command': 91,
'right command': 93,
'scroll lock': 145,
'my computer': 182,
'my calculator': 183,
meta: 91,
leftcommand: 91,
rightcommand: 93,
scrolllock: 145,
mycomputer: 182,
mycalculator: 183,
';': 186,

@@ -306,43 +305,58 @@ '=': 187,

']': 221,
"'": 222
}, lowercase, {}, numpad, {}, functionkeys));
// CONCATENATED MODULE: ./src/keycodes/index.js
"'": 222,
':': 186,
'+': 187,
'<': 188,
_: 189,
'>': 190,
'?': 191,
'~': 192,
'{': 219,
'|': 220,
'}': 221,
'"': 222
}, lowercase, {}, numpad, {}, functionkeys, {}, aliases));
// CONCATENATED MODULE: ./src/helpers.js
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
var noop = function noop() {};
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var getKeyMap = function getKeyMap(keymap, alias) {
return Object.keys(keymap).map(function (input) {
var result = {};
var _keymap$input = keymap[input],
keyup = _keymap$input.keyup,
keydown = _keymap$input.keydown;
input.replace('numpad +', 'numpad add').split('+').forEach(function (keyName) {
switch (keyName.toLowerCase()) {
case 'ctrl':
case 'alt':
case 'shift':
case 'meta':
result[keyName] = true;
break;
var FORBIDDEN_NODES = ['INPUT', 'TEXTAREA', 'SELECT'];
/**
*
* @param {Object} a
* @param {Object} b
* @returns {Boolean}
*/
default:
result.keyCode = alias[keyName] || keycodes_searchKeyCode(keyName);
}
});
result.callback = {
keydown: keydown || (keyup ? noop : keymap[input]),
keyup: keyup || noop
};
return result;
var areObjectsEqual = function areObjectsEqual(a, b) {
return Object.entries(a).every(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
return b[key] === value;
});
};
/**
*
* @param {String} combination
*/
var keycodes_searchKeyCode = function searchKeyCode(key) {
if (!key) return; // Keyboard Events
key = hasKeyCode(key) || String(key);
return codes[key.toLowerCase()] || aliases[key.toLowerCase()] || returnCharCode(key);
var splitCombination = function splitCombination(combination) {
combination = combination.replace(/\s/g, '');
combination = combination.includes('numpad+') ? combination.replace('numpad+', 'numpadadd') : combination;
combination = combination.includes('++') ? combination.replace('++', '+=') : combination;
return combination.split(/\+{1}/);
};
/**
*
* @param {String} key
* @returns {String|undefined}
*/

@@ -352,67 +366,190 @@ var returnCharCode = function returnCharCode(key) {

};
/**
*
* @param {Array} keyMap
* @param {Number} keyCode
* @param {Object} eventKeyModifiers
* @returns {Function|Boolean}
*/
var isPlainObject = function isPlainObject(obj) {
return Object.prototype.toString.call(obj) === '[object Object]';
var getHotkeyCallback = function getHotkeyCallback(keyMap, keyCode, eventKeyModifiers) {
var key = keyMap.find(function (_ref3) {
var code = _ref3.code,
modifiers = _ref3.modifiers;
return code === keyCode && areObjectsEqual(eventKeyModifiers, modifiers);
});
if (!key) return false;
return key.callback;
};
/**
*
* @param {Event} e
* @param {Array} keyMap
* @param {Object} modifiers Vue event modifiers
*/
var hasKeyCode = function hasKeyCode(key) {
return !isPlainObject(key) ? key : key.which || key.keyCode || key.charCode || false;
var assignKeyHandler = function assignKeyHandler(e, keyMap, modifiers) {
var keyCode = e.keyCode,
ctrlKey = e.ctrlKey,
altKey = e.altKey,
shiftKey = e.shiftKey,
metaKey = e.metaKey;
var eventKeyModifiers = {
ctrlKey: ctrlKey,
altKey: altKey,
shiftKey: shiftKey,
metaKey: metaKey
};
if (modifiers.prevent) {
e.preventDefault();
}
if (modifiers.stop) {
e.stopPropagation();
}
var _document$activeEleme = document.activeElement,
nodeName = _document$activeEleme.nodeName,
isContentEditable = _document$activeEleme.isContentEditable;
if (isContentEditable) return;
if (FORBIDDEN_NODES.includes(nodeName)) return;
var callback = getHotkeyCallback(keyMap, keyCode, eventKeyModifiers);
if (!callback) return e;
e.preventDefault();
callback[e.type](e);
};
// CONCATENATED MODULE: ./src/keycodes/index.js
function keycodes_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function keycodes_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { keycodes_ownKeys(source, true).forEach(function (key) { keycodes_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { keycodes_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
// CONCATENATED MODULE: ./src/main.js
function keycodes_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function bindEvent(el, _ref, alias) {
var value = _ref.value,
modifiers = _ref.modifiers;
el._keymap = getKeyMap(value, alias);
el._keyHandler = function (e) {
if (modifiers.prevent) e.preventDefault();
if (modifiers.stop) {
var _document$activeEleme = document.activeElement,
nodeName = _document$activeEleme.nodeName,
isContentEditable = _document$activeEleme.isContentEditable;
if (isContentEditable) return;
var noop = function noop() {};
switch (nodeName) {
case 'INPUT':
case 'TEXTAREA':
case 'SELECT':
return;
var defaultModifiers = {
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false
};
var alternativeKeyNames = {
option: 'alt',
command: 'meta',
"return": 'enter',
escape: 'esc',
plus: '+',
mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'
};
/**
*
* @param {Object} combinations
* @param {Object} alias
* @returns {Object}
*/
var keycodes_getKeyMap = function getKeyMap(combinations, alias) {
var result = [];
Object.keys(combinations).forEach(function (combination) {
var _combinations$combina = combinations[combination],
keyup = _combinations$combina.keyup,
keydown = _combinations$combina.keydown;
var callback = {
keydown: keydown || (keyup ? noop : combinations[combination]),
keyup: keyup || noop
};
var keys = splitCombination(combination);
var _resolveCodesAndModif = resolveCodesAndModifiers(keys, alias),
code = _resolveCodesAndModif.code,
modifiers = _resolveCodesAndModif.modifiers;
result.push({
code: code,
modifiers: modifiers,
callback: callback
});
});
return result;
};
/**
*
* @param {Array} keys
* @param {Object} alias
* @returns {Object}
*/
var resolveCodesAndModifiers = function resolveCodesAndModifiers(keys, alias) {
var modifiers = keycodes_objectSpread({}, defaultModifiers);
if (keys.length > 1) {
return keys.reduce(function (acc, key) {
key = alternativeKeyNames[key] || key;
if (defaultModifiers.hasOwnProperty("".concat(key, "Key"))) {
acc.modifiers = keycodes_objectSpread({}, acc.modifiers, keycodes_defineProperty({}, "".concat(key, "Key"), true));
} else {
acc.code = alias[key] || keycodes_searchKeyCode(key);
}
}
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
return acc;
}, {
modifiers: modifiers
});
}
try {
for (var _iterator = el._keymap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var hotkey = _step.value;
var callback = hotkey.keyCode === e.keyCode && !!hotkey.ctrl === e.ctrlKey && !!hotkey.alt === e.altKey && !!hotkey.shift === e.shiftKey && !!hotkey.meta === e.metaKey && hotkey.callback[e.type];
callback && callback(e);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
var key = alternativeKeyNames[keys[0]] || keys[0];
if (defaultModifiers.hasOwnProperty("".concat(key, "Key"))) {
modifiers = keycodes_objectSpread({}, modifiers, keycodes_defineProperty({}, "".concat(key, "Key"), true));
}
var code = alias[key] || keycodes_searchKeyCode(key);
return {
modifiers: modifiers,
code: code
};
};
/**
*
* @param {String} key
*/
var keycodes_searchKeyCode = function searchKeyCode(key) {
return codes[key.toLowerCase()] || returnCharCode(key);
};
// CONCATENATED MODULE: ./src/main.js
/**
*
* @param {Object} el
* @param {Object} bindings
* @param {Object} alias
*/
function bindEvent(el, _ref, alias) {
var value = _ref.value,
modifiers = _ref.modifiers;
el._keyMap = keycodes_getKeyMap(value, alias);
el._keyHandler = function (e) {
return assignKeyHandler(e, el._keyMap, modifiers);
};
document.addEventListener('keydown', el._keyHandler);
document.addEventListener('keyup', el._keyHandler);
}
/**
*
* @param {Object} el
*/
function unbindEvent(el) {

@@ -419,0 +556,0 @@ document.removeEventListener('keydown', el._keyHandler);

@@ -1,2 +0,2 @@

(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["v-hotkey"]=t():e["v-hotkey"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({f6fd:function(e,t){(function(e){var t="currentScript",n=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(r){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(r.stack)||[!1])[1];for(e in n)if(n[e].src==t||"interactive"==n[e].readyState)return n[e];return null}}})})(document)},fb15:function(e,t,n){"use strict";var r;(n.r(t),"undefined"!==typeof window)&&(n("f6fd"),(r=window.document.currentScript)&&(r=r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=r[1]));var o={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91},a={f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123},c={"numpad *":106,"numpad +":43,"numpad add":43,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"numpad 0":96,"numpad 1":97,"numpad 2":98,"numpad 3":99,"numpad 4":100,"numpad 5":101,"numpad 6":102,"numpad 7":103,"numpad 8":104,"numpad 9":105},u={a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(n,!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=f({backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,command:91,"left command":91,"right command":93,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},u,{},c,{},a),p=function(){},s=function(e,t){return Object.keys(e).map((function(n){var r={},o=e[n],a=o.keyup,c=o.keydown;return n.replace("numpad +","numpad add").split("+").forEach((function(e){switch(e.toLowerCase()){case"ctrl":case"alt":case"shift":case"meta":r[e]=!0;break;default:r.keyCode=t[e]||y(e)}})),r.callback={keydown:c||(a?p:e[n]),keyup:a||p},r}))},y=function(e){if(e)return e=v(e)||String(e),l[e.toLowerCase()]||o[e.toLowerCase()]||m(e)},m=function(e){return 1===e.length?e.charCodeAt(0):void 0},b=function(e){return"[object Object]"===Object.prototype.toString.call(e)},v=function(e){return b(e)?e.which||e.keyCode||e.charCode||!1:e};function k(e,t,n){var r=t.value,o=t.modifiers;e._keymap=s(r,n),e._keyHandler=function(t){if(o.prevent&&t.preventDefault(),o.stop){var n=document.activeElement,r=n.nodeName,a=n.isContentEditable;if(a)return;switch(r){case"INPUT":case"TEXTAREA":case"SELECT":return}}var c=!0,u=!1,i=void 0;try{for(var f,d=e._keymap[Symbol.iterator]();!(c=(f=d.next()).done);c=!0){var l=f.value,p=l.keyCode===t.keyCode&&!!l.ctrl===t.ctrlKey&&!!l.alt===t.altKey&&!!l.shift===t.shiftKey&&!!l.meta===t.metaKey&&l.callback[t.type];p&&p(t)}}catch(s){u=!0,i=s}finally{try{c||null==d["return"]||d["return"]()}finally{if(u)throw i}}},document.addEventListener("keydown",e._keyHandler),document.addEventListener("keyup",e._keyHandler)}function h(e){document.removeEventListener("keydown",e._keyHandler),document.removeEventListener("keyup",e._keyHandler)}var g=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{bind:function(t,n){k(t,n,e)},componentUpdated:function(t,n){n.value!==n.oldValue&&(h(t),k(t,n,e))},unbind:h}},w={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.directive("hotkey",g(t))},directive:g()},j=w;t["default"]=j}})}));
(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["v-hotkey"]=t():e["v-hotkey"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({f6fd:function(e,t){(function(e){var t="currentScript",n=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(r){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(r.stack)||[!1])[1];for(e in n)if(n[e].src==t||"interactive"==n[e].readyState)return n[e];return null}}})})(document)},fb15:function(e,t,n){"use strict";var r;(n.r(t),"undefined"!==typeof window)&&(n("f6fd"),(r=window.document.currentScript)&&(r=r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=r[1]));var o={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91},c={f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123},u={a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90},a={"numpad*":106,"numpad+":43,numpadadd:43,"numpad-":109,"numpad.":110,"numpad/":111,numlock:144,numpad0:96,numpad1:97,numpad2:98,numpad3:99,numpad4:100,numpad5:101,numpad6:102,numpad7:103,numpad8:104,numpad9:105};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(n,!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=f({backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,capslock:20,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,command:91,meta:91,leftcommand:91,rightcommand:93,scrolllock:145,mycomputer:182,mycalculator:183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222,":":186,"+":187,"<":188,_:189,">":190,"?":191,"~":192,"{":219,"|":220,"}":221,'"':222},u,{},a,{},c,{},o);function l(e,t){return m(e)||y(e,t)||s()}function s(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function y(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var n=[],r=!0,o=!1,c=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done);r=!0)if(n.push(u.value),t&&n.length===t)break}catch(i){o=!0,c=i}finally{try{r||null==a["return"]||a["return"]()}finally{if(o)throw c}}return n}}function m(e){if(Array.isArray(e))return e}var b=["INPUT","TEXTAREA","SELECT"],v=function(e,t){return Object.entries(e).every((function(e){var n=l(e,2),r=n[0],o=n[1];return t[r]===o}))},O=function(e){return e=e.replace(/\s/g,""),e=e.includes("numpad+")?e.replace("numpad+","numpadadd"):e,e=e.includes("++")?e.replace("++","+="):e,e.split(/\+{1}/)},g=function(e){return 1===e.length?e.charCodeAt(0):void 0},h=function(e,t,n){var r=e.find((function(e){var r=e.code,o=e.modifiers;return r===t&&v(n,o)}));return!!r&&r.callback},j=function(e,t,n){var r=e.keyCode,o=e.ctrlKey,c=e.altKey,u=e.shiftKey,a=e.metaKey,i={ctrlKey:o,altKey:c,shiftKey:u,metaKey:a};n.prevent&&e.preventDefault(),n.stop&&e.stopPropagation();var f=document.activeElement,d=f.nodeName,p=f.isContentEditable;if(!p&&!b.includes(d)){var l=h(t,r,i);if(!l)return e;e.preventDefault(),l[e.type](e)}};function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(n,!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=function(){},K={ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1},S={option:"alt",command:"meta",return:"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},_=function(e,t){var n=[];return Object.keys(e).forEach((function(r){var o=e[r],c=o.keyup,u=o.keydown,a={keydown:u||(c?E:e[r]),keyup:c||E},i=O(r),f=x(i,t),d=f.code,p=f.modifiers;n.push({code:d,modifiers:p,callback:a})})),n},x=function(e,t){var n=k({},K);if(e.length>1)return e.reduce((function(e,n){return n=S[n]||n,K.hasOwnProperty("".concat(n,"Key"))?e.modifiers=k({},e.modifiers,P({},"".concat(n,"Key"),!0)):e.code=t[n]||D(n),e}),{modifiers:n});var r=S[e[0]]||e[0];K.hasOwnProperty("".concat(r,"Key"))&&(n=k({},n,P({},"".concat(r,"Key"),!0)));var o=t[r]||D(r);return{modifiers:n,code:o}},D=function(e){return p[e.toLowerCase()]||g(e)};function T(e,t,n){var r=t.value,o=t.modifiers;e._keyMap=_(r,n),e._keyHandler=function(t){return j(t,e._keyMap,o)},document.addEventListener("keydown",e._keyHandler),document.addEventListener("keyup",e._keyHandler)}function M(e){document.removeEventListener("keydown",e._keyHandler),document.removeEventListener("keyup",e._keyHandler)}var A=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{bind:function(t,n){T(t,n,e)},componentUpdated:function(t,n){n.value!==n.oldValue&&(M(t),T(t,n,e))},unbind:M}},L={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.directive("hotkey",A(t))},directive:A()},C=L;t["default"]=C}})}));
//# sourceMappingURL=v-hotkey.umd.min.js.map
{
"name": "v-hotkey",
"version": "0.8.0",
"version": "0.9.0",
"description": "Vue 2.x directive - binding hotkeys for components.",

@@ -13,6 +13,6 @@ "author": {

"lint": "eslint --ext .js,.vue .",
"build:docs": "vue-cli-service build ./docs/src/main.js --dest docs/dist",
"build:docs": "vue-cli-service build ./src/docs/main.js --dest docs",
"build:docs:dev": "npm run build:docs -- --mode development",
"dev": "vue-cli-service serve",
"prepublishOnly": "npm run build",
"prepare": "npm run build",
"test": "vue-cli-service test:unit"

@@ -30,7 +30,7 @@ },

"devDependencies": {
"@babel/core": "^7.6.2",
"@babel/preset-env": "^7.6.2",
"@vue/cli-plugin-babel": "^3.12.0",
"@vue/cli-plugin-unit-jest": "^4.0.0-rc.7",
"@vue/cli-service": "^4.0.0-rc.7",
"@babel/core": "^7.6.4",
"@babel/preset-env": "^7.6.3",
"@vue/cli-plugin-babel": "^4.0.0-rc.8",
"@vue/cli-plugin-unit-jest": "^4.0.0-rc.8",
"@vue/cli-service": "^4.0.0-rc.8",
"@vue/test-utils": "1.0.0-beta.29",

@@ -43,3 +43,3 @@ "babel-eslint": "^10.0.3",

"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jest": "^22.17.0",
"eslint-plugin-jest": "^22.19.0",
"eslint-plugin-node": "^10.0.0",

@@ -68,2 +68,6 @@ "eslint-plugin-promise": "^4.2.1",

"url": "https://github.com/zcuric"
},
{
"name": "Dario Vladović",
"url": "https://github.com/vladimyr"
}

@@ -70,0 +74,0 @@ ],

@@ -17,3 +17,5 @@ # v-hotkey

```bash
$ npm i --save v-hotkey
$ npm i v-hotkey
# or
$ yarn add v-hotkey
```

@@ -32,3 +34,5 @@

<template>
<span v-hotkey="keymap" v-show="show"> Press `ctrl + esc` to toggle me! Hold `enter` to hide me! </span>
<span v-hotkey="keymap" v-show="show">
Press `ctrl + esc` to toggle me! Hold `enter` to hide me!
</span>
</template>

@@ -82,3 +86,4 @@

- shift
- meta (windows / command)
- command (MacOS)
- windows (Windows)

@@ -93,3 +98,5 @@ ## Modifiers

<template>
<span v-hotkey.prevent="keymap" v-show="show"> Press `ctrl + esc` to toggle me! Hold `enter` to hide me! </span>
<span v-hotkey.prevent="keymap" v-show="show">
Press `ctrl + esc` to toggle me! Hold `enter` to hide me!
</span>
</template>

@@ -96,0 +103,0 @@ ```

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc