UNPKG

tinykeys

Version:

A tiny (~400 B) & modern library for keybindings.

3 lines (2 loc) 891 B
var e=["Shift","Meta","Alt","Control"],t=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"Meta":"Control";export default function(n,r){var i=Object.keys(r).map(function(e){return[(n=e,n.trim().split(" ").map(function(e){var n=e.split("+"),r=n.pop();return[n=n.map(function(e){return"$mod"===e?t:e}),r]})),r[e]];var n}),o=new Map,a=null,u=function(t){t.getModifierState(t.key)||(i.forEach(function(n){var r=n[0],i=n[1],a=o.get(r)||r;!function(t,n){return!(n[1].toUpperCase()!==t.key.toUpperCase()&&n[1]!==t.code||n[0].find(function(e){return!t.getModifierState(e)})||e.find(function(e){return!n[0].includes(e)&&t.getModifierState(e)}))}(t,a[0])?o.delete(r):a.length>1?o.set(r,a.slice(1)):(o.delete(r),i(t))}),clearTimeout(a),a=setTimeout(o.clear.bind(o),1e3))};return n.addEventListener("keydown",u),function(){n.removeEventListener("keydown",u)}} //# sourceMappingURL=tinykeys.module.js.map