Comparing version 0.2.2 to 0.3.0
import Component from "@egjs/component"; | ||
export declare function getKey(keyCode: number): string; | ||
export declare function getCombi(e: KeyboardEvent, key?: string): string[]; | ||
export interface KeyControllerEvent { | ||
@@ -18,3 +20,3 @@ inputEvent: KeyboardEvent; | ||
constructor(container?: Window | Document | HTMLElement); | ||
clear: () => void; | ||
clear: () => this; | ||
keydown(comb: string | string[], callback: (e: KeyControllerEvent) => void): this; | ||
@@ -21,0 +23,0 @@ keydown(callback: (e: KeyControllerEvent) => void): this; |
/* | ||
Copyright (c) 2019 Daybrush | ||
Copyright (c) Daybrush | ||
name: keycon | ||
@@ -7,3 +7,3 @@ license: MIT | ||
repository: git+https://github.com/daybrush/keycon.git | ||
version: 0.2.2 | ||
version: 0.3.0 | ||
*/ | ||
@@ -67,2 +67,3 @@ import Component from '@egjs/component'; | ||
*/ | ||
function keyCode(searchInput) { | ||
@@ -73,18 +74,24 @@ // Keyboard Events | ||
if (hasKeyCode) searchInput = hasKeyCode; | ||
} // Numbers | ||
} | ||
// Numbers | ||
if ('number' === typeof searchInput) return names[searchInput] | ||
if ('number' === typeof searchInput) return names[searchInput]; // Everything else (cast to string) | ||
// Everything else (cast to string) | ||
var search = String(searchInput); | ||
var search = String(searchInput); // check codes | ||
// check codes | ||
var foundNamedKey = codes[search.toLowerCase()]; | ||
if (foundNamedKey) return foundNamedKey; // check aliases | ||
if (foundNamedKey) return foundNamedKey | ||
// check aliases | ||
var foundNamedKey = aliases[search.toLowerCase()]; | ||
if (foundNamedKey) return foundNamedKey; // weird character? | ||
if (foundNamedKey) return foundNamedKey | ||
if (search.length === 1) return search.charCodeAt(0); | ||
return undefined; | ||
// weird character? | ||
if (search.length === 1) return search.charCodeAt(0) | ||
return undefined | ||
} | ||
/** | ||
@@ -98,30 +105,17 @@ * Compares a keyboard event with a given keyCode or keyName. | ||
*/ | ||
keyCode.isEventKey = function isEventKey(event, nameOrCode) { | ||
if (event && 'object' === typeof event) { | ||
var keyCode = event.which || event.keyCode || event.charCode; | ||
if (keyCode === null || keyCode === undefined) { | ||
return false; | ||
} | ||
if (keyCode === null || keyCode === undefined) { return false; } | ||
if (typeof nameOrCode === 'string') { | ||
// check codes | ||
var foundNamedKey = codes[nameOrCode.toLowerCase()]; | ||
if (foundNamedKey) { return foundNamedKey === keyCode; } | ||
if (foundNamedKey) { | ||
return foundNamedKey === keyCode; | ||
} // check aliases | ||
// check aliases | ||
var foundNamedKey = aliases[nameOrCode.toLowerCase()]; | ||
if (foundNamedKey) { | ||
return foundNamedKey === keyCode; | ||
} | ||
if (foundNamedKey) { return foundNamedKey === keyCode; } | ||
} else if (typeof nameOrCode === 'number') { | ||
return nameOrCode === keyCode; | ||
} | ||
return false; | ||
@@ -132,2 +126,3 @@ } | ||
exports = module.exports = keyCode; | ||
/** | ||
@@ -182,5 +177,7 @@ * Get by name | ||
']': 221, | ||
"'": 222 // Helper aliases | ||
"'": 222 | ||
}; | ||
}; | ||
// Helper aliases | ||
var aliases = exports.aliases = { | ||
@@ -207,19 +204,20 @@ 'windows': 91, | ||
'cmd': 91 | ||
/*! | ||
* Programatically add the following | ||
*/ | ||
// lower case chars | ||
}; | ||
for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32; // numbers | ||
/*! | ||
* Programatically add the following | ||
*/ | ||
// lower case chars | ||
for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32; | ||
for (var i = 48; i < 58; i++) codes[i - 48] = i; // function keys | ||
// numbers | ||
for (var i = 48; i < 58; i++) codes[i - 48] = i; | ||
// function keys | ||
for (i = 1; i < 13; i++) codes['f'+i] = i + 111; | ||
for (i = 1; i < 13; i++) codes['f' + i] = i + 111; // numpad keys | ||
// numpad keys | ||
for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96; | ||
for (i = 0; i < 10; i++) codes['numpad ' + i] = i + 96; | ||
/** | ||
@@ -231,9 +229,8 @@ * Get by code | ||
var names = exports.names = exports.title = {}; // title for backward compat | ||
var names = exports.names = exports.title = {}; // title for backward compat | ||
// Create reverse mapping | ||
for (i in codes) names[codes[i]] = i; | ||
for (i in codes) names[codes[i]] = i; // Add aliases | ||
// Add aliases | ||
for (var alias in aliases) { | ||
@@ -281,3 +278,2 @@ codes[alias] = aliases[alias]; | ||
function isArray(value) { | ||
@@ -300,3 +296,2 @@ return Array.isArray(value); | ||
function isString(value) { | ||
@@ -320,3 +315,2 @@ return typeof value === STRING; | ||
function addEvent(el, type, listener, options) { | ||
@@ -337,2 +331,5 @@ el.addEventListener(type, listener, options); | ||
}; | ||
/** | ||
* @memberof KeyController | ||
*/ | ||
@@ -348,4 +345,11 @@ function getKey(keyCode) { | ||
} | ||
/** | ||
* @memberof KeyController | ||
*/ | ||
function getCombi(e, key) { | ||
if (key === void 0) { | ||
key = getKey(e.keyCode); | ||
} | ||
var keys = [e.shiftKey && "shift", e.ctrlKey && "ctrl", e.altKey && "alt", e.metaKey && "meta"]; | ||
@@ -409,2 +413,3 @@ keys.indexOf(key) === -1 && keys.push(key); | ||
_this.metaKey = false; | ||
return _this; | ||
}; | ||
@@ -483,2 +488,3 @@ | ||
export default KeyController; | ||
export { getCombi, getKey }; | ||
//# sourceMappingURL=keycon.esm.js.map |
/* | ||
Copyright (c) 2019 Daybrush | ||
Copyright (c) Daybrush | ||
name: keycon | ||
@@ -7,5 +7,5 @@ license: MIT | ||
repository: git+https://github.com/daybrush/keycon.git | ||
version: 0.2.2 | ||
version: 0.3.0 | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@egjs/component"),require("@daybrush/utils")):"function"==typeof define&&define.amd?define(["@egjs/component","@daybrush/utils"],t):(e=e||self).keycon=t(e.eg.Component,e.utils)}(this,function(e,r){"use strict";var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var t,n=(function(e,t){function n(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return a[e];var n,r=String(e);return(n=o[r.toLowerCase()])?n:(n=i[r.toLowerCase()])||(1===r.length?r.charCodeAt(0):void 0)}n.isEventKey=function(e,t){if(e&&"object"==typeof e){var n=e.which||e.keyCode||e.charCode;if(null==n)return!1;if("string"==typeof t){var r;if(r=o[t.toLowerCase()])return r===n;if(r=i[t.toLowerCase()])return r===n}else if("number"==typeof t)return t===n;return!1}};var o=(t=e.exports=n).code=t.codes={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,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},i=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91};for(r=97;r<123;r++)o[String.fromCharCode(r)]=r-32;for(var r=48;r<58;r++)o[r-48]=r;for(r=1;r<13;r++)o["f"+r]=r+111;for(r=0;r<10;r++)o["numpad "+r]=r+96;var a=t.names=t.title={};for(r in o)a[o[r]]=r;for(var c in i)o[c]=i[c]}(t={exports:{}},t.exports),t.exports),i=(n.code,n.codes,n.aliases,n.names),a=(n.title,{"+":"plus","left command":"meta","right command":"meta"}),c={shift:1,ctrl:2,alt:3,meta:4};return function(n){function e(e){void 0===e&&(e=window);var t=n.call(this)||this;return t.ctrlKey=!1,t.altKey=!1,t.shiftKey=!1,t.metaKey=!1,t.clear=function(){t.ctrlKey=!1,t.altKey=!1,t.shiftKey=!1,t.metaKey=!1},t.keydownEvent=function(e){t.triggerEvent("keydown",e)},t.keyupEvent=function(e){t.triggerEvent("keyup",e)},r.addEvent(e,"blur",t.clear),r.addEvent(e,"keydown",t.keydownEvent),r.addEvent(e,"keyup",t.keyupEvent),t}!function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(e,n);var t=e.prototype;return t.keydown=function(e,t){return this.addEvent("keydown",e,t)},t.keyup=function(e,t){return this.addEvent("keyup",e,t)},t.addEvent=function(e,t,n){return r.isArray(t)?this.on(e+"."+function(e){var t=e.slice();return t.sort(function(e,t){return(c[e]||5)-(c[t]||5)}),t}(t).join("."),n):r.isString(t)?this.on(e+"."+t,n):this.on(e,t),this},t.triggerEvent=function(e,t){this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey;var n=function(e){var t=i[e]||"";for(var n in a)t=t.replace(n,a[n]);return t.replace(/\s/g,"")}(t.keyCode),r={key:n,isToggle:"ctrl"===n||"shift"===n||"meta"===n||"alt"===n,inputEvent:t,keyCode:t.keyCode,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey};this.trigger(e,r),this.trigger(e+"."+n,r);var o=function(e,t){var n=[e.shiftKey&&"shift",e.ctrlKey&&"ctrl",e.altKey&&"alt",e.metaKey&&"meta"];return-1===n.indexOf(t)&&n.push(t),n.filter(Boolean)}(t,n);1<o.length&&this.trigger(e+"."+o.join("."),r)},e}(e)}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@egjs/component"),require("@daybrush/utils")):"function"==typeof define&&define.amd?define(["@egjs/component","@daybrush/utils"],t):(e=e||self).keycon=t(e.eg.Component,e.utils)}(this,function(e,n){"use strict";var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};var t,r=(function(e,t){function r(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return a[e];var r,n=String(e);return(r=o[n.toLowerCase()])?r:(r=i[n.toLowerCase()])||(1===n.length?n.charCodeAt(0):void 0)}r.isEventKey=function(e,t){if(e&&"object"==typeof e){var r=e.which||e.keyCode||e.charCode;if(null==r)return!1;if("string"==typeof t){var n;if(n=o[t.toLowerCase()])return n===r;if(n=i[t.toLowerCase()])return n===r}else if("number"==typeof t)return t===r;return!1}};var o=(t=e.exports=r).code=t.codes={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,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},i=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91};for(n=97;n<123;n++)o[String.fromCharCode(n)]=n-32;for(var n=48;n<58;n++)o[n-48]=n;for(n=1;n<13;n++)o["f"+n]=n+111;for(n=0;n<10;n++)o["numpad "+n]=n+96;var a=t.names=t.title={};for(n in o)a[o[n]]=n;for(var c in i)o[c]=i[c]}(t={exports:{}},t.exports),t.exports),i=(r.code,r.codes,r.aliases,r.names),a=(r.title,{"+":"plus","left command":"meta","right command":"meta"}),c={shift:1,ctrl:2,alt:3,meta:4};function s(e){var t=i[e]||"";for(var r in a)t=t.replace(r,a[r]);return t.replace(/\s/g,"")}function u(e,t){void 0===t&&(t=s(e.keyCode));var r=[e.shiftKey&&"shift",e.ctrlKey&&"ctrl",e.altKey&&"alt",e.metaKey&&"meta"];return-1===r.indexOf(t)&&r.push(t),r.filter(Boolean)}var f=function(r){function e(e){void 0===e&&(e=window);var t=r.call(this)||this;return t.ctrlKey=!1,t.altKey=!1,t.shiftKey=!1,t.metaKey=!1,t.clear=function(){return t.ctrlKey=!1,t.altKey=!1,t.shiftKey=!1,t.metaKey=!1,t},t.keydownEvent=function(e){t.triggerEvent("keydown",e)},t.keyupEvent=function(e){t.triggerEvent("keyup",e)},n.addEvent(e,"blur",t.clear),n.addEvent(e,"keydown",t.keydownEvent),n.addEvent(e,"keyup",t.keyupEvent),t}!function(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(e,r);var t=e.prototype;return t.keydown=function(e,t){return this.addEvent("keydown",e,t)},t.keyup=function(e,t){return this.addEvent("keyup",e,t)},t.addEvent=function(e,t,r){return n.isArray(t)?this.on(e+"."+function(e){var t=e.slice();return t.sort(function(e,t){return(c[e]||5)-(c[t]||5)}),t}(t).join("."),r):n.isString(t)?this.on(e+"."+t,r):this.on(e,t),this},t.triggerEvent=function(e,t){this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey;var r=s(t.keyCode),n={key:r,isToggle:"ctrl"===r||"shift"===r||"meta"===r||"alt"===r,inputEvent:t,keyCode:t.keyCode,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey};this.trigger(e,n),this.trigger(e+"."+r,n);var o=u(t,r);1<o.length&&this.trigger(e+"."+o.join("."),n)},e}(e);return f.getKey=s,f.getCombi=u,f}); | ||
//# sourceMappingURL=keycon.js.map |
/* | ||
Copyright (c) 2019 Daybrush | ||
Copyright (c) Daybrush | ||
name: keycon | ||
@@ -7,3 +7,3 @@ license: MIT | ||
repository: git+https://github.com/daybrush/keycon.git | ||
version: 0.2.2 | ||
version: 0.3.0 | ||
*/ | ||
@@ -63,3 +63,2 @@ (function (global, factory) { | ||
*/ | ||
/** | ||
@@ -363,2 +362,3 @@ * Copyright (c) 2015 NAVER Corp. | ||
*/ | ||
function keyCode(searchInput) { | ||
@@ -369,18 +369,24 @@ // Keyboard Events | ||
if (hasKeyCode) searchInput = hasKeyCode; | ||
} // Numbers | ||
} | ||
// Numbers | ||
if ('number' === typeof searchInput) return names[searchInput] | ||
if ('number' === typeof searchInput) return names[searchInput]; // Everything else (cast to string) | ||
// Everything else (cast to string) | ||
var search = String(searchInput); | ||
var search = String(searchInput); // check codes | ||
// check codes | ||
var foundNamedKey = codes[search.toLowerCase()]; | ||
if (foundNamedKey) return foundNamedKey; // check aliases | ||
if (foundNamedKey) return foundNamedKey | ||
// check aliases | ||
var foundNamedKey = aliases[search.toLowerCase()]; | ||
if (foundNamedKey) return foundNamedKey; // weird character? | ||
if (foundNamedKey) return foundNamedKey | ||
if (search.length === 1) return search.charCodeAt(0); | ||
return undefined; | ||
// weird character? | ||
if (search.length === 1) return search.charCodeAt(0) | ||
return undefined | ||
} | ||
/** | ||
@@ -394,30 +400,17 @@ * Compares a keyboard event with a given keyCode or keyName. | ||
*/ | ||
keyCode.isEventKey = function isEventKey(event, nameOrCode) { | ||
if (event && 'object' === typeof event) { | ||
var keyCode = event.which || event.keyCode || event.charCode; | ||
if (keyCode === null || keyCode === undefined) { | ||
return false; | ||
} | ||
if (keyCode === null || keyCode === undefined) { return false; } | ||
if (typeof nameOrCode === 'string') { | ||
// check codes | ||
var foundNamedKey = codes[nameOrCode.toLowerCase()]; | ||
if (foundNamedKey) { return foundNamedKey === keyCode; } | ||
if (foundNamedKey) { | ||
return foundNamedKey === keyCode; | ||
} // check aliases | ||
// check aliases | ||
var foundNamedKey = aliases[nameOrCode.toLowerCase()]; | ||
if (foundNamedKey) { | ||
return foundNamedKey === keyCode; | ||
} | ||
if (foundNamedKey) { return foundNamedKey === keyCode; } | ||
} else if (typeof nameOrCode === 'number') { | ||
return nameOrCode === keyCode; | ||
} | ||
return false; | ||
@@ -428,2 +421,3 @@ } | ||
exports = module.exports = keyCode; | ||
/** | ||
@@ -478,5 +472,7 @@ * Get by name | ||
']': 221, | ||
"'": 222 // Helper aliases | ||
"'": 222 | ||
}; | ||
}; | ||
// Helper aliases | ||
var aliases = exports.aliases = { | ||
@@ -503,19 +499,20 @@ 'windows': 91, | ||
'cmd': 91 | ||
/*! | ||
* Programatically add the following | ||
*/ | ||
// lower case chars | ||
}; | ||
for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32; // numbers | ||
/*! | ||
* Programatically add the following | ||
*/ | ||
// lower case chars | ||
for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32; | ||
for (var i = 48; i < 58; i++) codes[i - 48] = i; // function keys | ||
// numbers | ||
for (var i = 48; i < 58; i++) codes[i - 48] = i; | ||
// function keys | ||
for (i = 1; i < 13; i++) codes['f'+i] = i + 111; | ||
for (i = 1; i < 13; i++) codes['f' + i] = i + 111; // numpad keys | ||
// numpad keys | ||
for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96; | ||
for (i = 0; i < 10; i++) codes['numpad ' + i] = i + 96; | ||
/** | ||
@@ -527,9 +524,8 @@ * Get by code | ||
var names = exports.names = exports.title = {}; // title for backward compat | ||
var names = exports.names = exports.title = {}; // title for backward compat | ||
// Create reverse mapping | ||
for (i in codes) names[codes[i]] = i; | ||
for (i in codes) names[codes[i]] = i; // Add aliases | ||
// Add aliases | ||
for (var alias in aliases) { | ||
@@ -577,3 +573,2 @@ codes[alias] = aliases[alias]; | ||
function isArray(value) { | ||
@@ -596,3 +591,2 @@ return Array.isArray(value); | ||
function isString(value) { | ||
@@ -616,3 +610,2 @@ return typeof value === STRING; | ||
function addEvent(el, type, listener, options) { | ||
@@ -633,2 +626,5 @@ el.addEventListener(type, listener, options); | ||
}; | ||
/** | ||
* @memberof KeyController | ||
*/ | ||
@@ -644,4 +640,11 @@ function getKey(keyCode) { | ||
} | ||
/** | ||
* @memberof KeyController | ||
*/ | ||
function getCombi(e, key) { | ||
if (key === void 0) { | ||
key = getKey(e.keyCode); | ||
} | ||
var keys = [e.shiftKey && "shift", e.ctrlKey && "ctrl", e.altKey && "alt", e.metaKey && "meta"]; | ||
@@ -705,2 +708,3 @@ keys.indexOf(key) === -1 && keys.push(key); | ||
_this.metaKey = false; | ||
return _this; | ||
}; | ||
@@ -778,2 +782,5 @@ | ||
KeyController.getKey = getKey; | ||
KeyController.getCombi = getCombi; | ||
return KeyController; | ||
@@ -780,0 +787,0 @@ |
/* | ||
Copyright (c) 2019 Daybrush | ||
Copyright (c) Daybrush | ||
name: keycon | ||
@@ -7,5 +7,5 @@ license: MIT | ||
repository: git+https://github.com/daybrush/keycon.git | ||
version: 0.2.2 | ||
version: 0.3.0 | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).keycon=e()}(this,function(){"use strict";var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function f(t){return void 0===t}var t=function(){var t=function(){function t(){this._eventHandler={},this.options={}}var e=t.prototype;return e.trigger=function(t,e){void 0===e&&(e={});var n=this._eventHandler[t]||[];if(!(0<n.length))return!0;n=n.concat(),e.eventType=t;var r=!1,o=[e],i=0;e.stop=function(){r=!0},e.currentTarget=this;for(var a=arguments.length,f=new Array(2<a?a-2:0),s=2;s<a;s++)f[s-2]=arguments[s];for(1<=f.length&&(o=o.concat(f)),i=0;n[i];i++)n[i].apply(this,o);return!r},e.once=function(o,i){if("object"==typeof o&&f(i)){var t,e=o;for(t in e)this.once(t,e[t]);return this}if("string"==typeof o&&"function"==typeof i){var a=this;this.on(o,function t(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];i.apply(a,n),a.off(o,t)})}return this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,e){if("object"==typeof t&&f(e)){var n,r=t;for(n in r)this.on(n,r[n]);return this}if("string"==typeof t&&"function"==typeof e){var o=this._eventHandler[t];f(o)&&(this._eventHandler[t]=[],o=this._eventHandler[t]),o.push(e)}return this},e.off=function(t,e){if(f(t))return this._eventHandler={},this;if(f(e)){if("string"==typeof t)return this._eventHandler[t]=void 0,this;var n,r=t;for(n in r)this.off(n,r[n]);return this}var o,i,a=this._eventHandler[t];if(a)for(o=0;void 0!==(i=a[o]);o++)if(i===e){a=a.splice(o,1);break}return this},t}();return t.VERSION="2.1.2",t}();var e,n=(function(t,e){function n(t){if(t&&"object"==typeof t){var e=t.which||t.keyCode||t.charCode;e&&(t=e)}if("number"==typeof t)return a[t];var n,r=String(t);return(n=o[r.toLowerCase()])?n:(n=i[r.toLowerCase()])||(1===r.length?r.charCodeAt(0):void 0)}n.isEventKey=function(t,e){if(t&&"object"==typeof t){var n=t.which||t.keyCode||t.charCode;if(null==n)return!1;if("string"==typeof e){var r;if(r=o[e.toLowerCase()])return r===n;if(r=i[e.toLowerCase()])return r===n}else if("number"==typeof e)return e===n;return!1}};var o=(e=t.exports=n).code=e.codes={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,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},i=e.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91};for(r=97;r<123;r++)o[String.fromCharCode(r)]=r-32;for(var r=48;r<58;r++)o[r-48]=r;for(r=1;r<13;r++)o["f"+r]=r+111;for(r=0;r<10;r++)o["numpad "+r]=r+96;var a=e.names=e.title={};for(r in o)a[o[r]]=r;for(var f in i)o[f]=i[f]}(e={exports:{}},e.exports),e.exports),i=(n.code,n.codes,n.aliases,n.names);n.title;function o(t,e,n,r){t.addEventListener(e,n,r)}var a={"+":"plus","left command":"meta","right command":"meta"},s={shift:1,ctrl:2,alt:3,meta:4};return function(n){function t(t){void 0===t&&(t=window);var e=n.call(this)||this;return e.ctrlKey=!1,e.altKey=!1,e.shiftKey=!1,e.metaKey=!1,e.clear=function(){e.ctrlKey=!1,e.altKey=!1,e.shiftKey=!1,e.metaKey=!1},e.keydownEvent=function(t){e.triggerEvent("keydown",t)},e.keyupEvent=function(t){e.triggerEvent("keyup",t)},o(t,"blur",e.clear),o(t,"keydown",e.keydownEvent),o(t,"keyup",e.keyupEvent),e}!function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(t,n);var e=t.prototype;return e.keydown=function(t,e){return this.addEvent("keydown",t,e)},e.keyup=function(t,e){return this.addEvent("keyup",t,e)},e.addEvent=function(t,e,n){return!function(t){return Array.isArray(t)}(e)?!function(t){return"string"==typeof t}(e)?this.on(t,e):this.on(t+"."+e,n):this.on(t+"."+function(t){var e=t.slice();return e.sort(function(t,e){return(s[t]||5)-(s[e]||5)}),e}(e).join("."),n),this},e.triggerEvent=function(t,e){this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey;var n=function(t){var e=i[t]||"";for(var n in a)e=e.replace(n,a[n]);return e.replace(/\s/g,"")}(e.keyCode),r={key:n,isToggle:"ctrl"===n||"shift"===n||"meta"===n||"alt"===n,inputEvent:e,keyCode:e.keyCode,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey};this.trigger(t,r),this.trigger(t+"."+n,r);var o=function(t,e){var n=[t.shiftKey&&"shift",t.ctrlKey&&"ctrl",t.altKey&&"alt",t.metaKey&&"meta"];return-1===n.indexOf(e)&&n.push(e),n.filter(Boolean)}(e,n);1<o.length&&this.trigger(t+"."+o.join("."),r)},t}(t)}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).keycon=e()}(this,function(){"use strict";var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function f(t){return void 0===t}var t=function(){var t=function(){function t(){this._eventHandler={},this.options={}}var e=t.prototype;return e.trigger=function(t,e){void 0===e&&(e={});var n=this._eventHandler[t]||[];if(!(0<n.length))return!0;n=n.concat(),e.eventType=t;var r=!1,o=[e],i=0;e.stop=function(){r=!0},e.currentTarget=this;for(var a=arguments.length,f=new Array(2<a?a-2:0),s=2;s<a;s++)f[s-2]=arguments[s];for(1<=f.length&&(o=o.concat(f)),i=0;n[i];i++)n[i].apply(this,o);return!r},e.once=function(o,i){if("object"==typeof o&&f(i)){var t,e=o;for(t in e)this.once(t,e[t]);return this}if("string"==typeof o&&"function"==typeof i){var a=this;this.on(o,function t(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];i.apply(a,n),a.off(o,t)})}return this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,e){if("object"==typeof t&&f(e)){var n,r=t;for(n in r)this.on(n,r[n]);return this}if("string"==typeof t&&"function"==typeof e){var o=this._eventHandler[t];f(o)&&(this._eventHandler[t]=[],o=this._eventHandler[t]),o.push(e)}return this},e.off=function(t,e){if(f(t))return this._eventHandler={},this;if(f(e)){if("string"==typeof t)return this._eventHandler[t]=void 0,this;var n,r=t;for(n in r)this.off(n,r[n]);return this}var o,i,a=this._eventHandler[t];if(a)for(o=0;void 0!==(i=a[o]);o++)if(i===e){a=a.splice(o,1);break}return this},t}();return t.VERSION="2.1.2",t}();var e,n=(function(t,e){function n(t){if(t&&"object"==typeof t){var e=t.which||t.keyCode||t.charCode;e&&(t=e)}if("number"==typeof t)return a[t];var n,r=String(t);return(n=o[r.toLowerCase()])?n:(n=i[r.toLowerCase()])||(1===r.length?r.charCodeAt(0):void 0)}n.isEventKey=function(t,e){if(t&&"object"==typeof t){var n=t.which||t.keyCode||t.charCode;if(null==n)return!1;if("string"==typeof e){var r;if(r=o[e.toLowerCase()])return r===n;if(r=i[e.toLowerCase()])return r===n}else if("number"==typeof e)return e===n;return!1}};var o=(e=t.exports=n).code=e.codes={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,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},i=e.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91};for(r=97;r<123;r++)o[String.fromCharCode(r)]=r-32;for(var r=48;r<58;r++)o[r-48]=r;for(r=1;r<13;r++)o["f"+r]=r+111;for(r=0;r<10;r++)o["numpad "+r]=r+96;var a=e.names=e.title={};for(r in o)a[o[r]]=r;for(var f in i)o[f]=i[f]}(e={exports:{}},e.exports),e.exports),o=(n.code,n.codes,n.aliases,n.names);n.title;function i(t,e,n,r){t.addEventListener(e,n,r)}var a={"+":"plus","left command":"meta","right command":"meta"},s={shift:1,ctrl:2,alt:3,meta:4};function c(t){var e=o[t]||"";for(var n in a)e=e.replace(n,a[n]);return e.replace(/\s/g,"")}function u(t,e){void 0===e&&(e=c(t.keyCode));var n=[t.shiftKey&&"shift",t.ctrlKey&&"ctrl",t.altKey&&"alt",t.metaKey&&"meta"];return-1===n.indexOf(e)&&n.push(e),n.filter(Boolean)}var y=function(n){function t(t){void 0===t&&(t=window);var e=n.call(this)||this;return e.ctrlKey=!1,e.altKey=!1,e.shiftKey=!1,e.metaKey=!1,e.clear=function(){return e.ctrlKey=!1,e.altKey=!1,e.shiftKey=!1,e.metaKey=!1,e},e.keydownEvent=function(t){e.triggerEvent("keydown",t)},e.keyupEvent=function(t){e.triggerEvent("keyup",t)},i(t,"blur",e.clear),i(t,"keydown",e.keydownEvent),i(t,"keyup",e.keyupEvent),e}!function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(t,n);var e=t.prototype;return e.keydown=function(t,e){return this.addEvent("keydown",t,e)},e.keyup=function(t,e){return this.addEvent("keyup",t,e)},e.addEvent=function(t,e,n){return!function(t){return Array.isArray(t)}(e)?!function(t){return"string"==typeof t}(e)?this.on(t,e):this.on(t+"."+e,n):this.on(t+"."+function(t){var e=t.slice();return e.sort(function(t,e){return(s[t]||5)-(s[e]||5)}),e}(e).join("."),n),this},e.triggerEvent=function(t,e){this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey;var n=c(e.keyCode),r={key:n,isToggle:"ctrl"===n||"shift"===n||"meta"===n||"alt"===n,inputEvent:e,keyCode:e.keyCode,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey};this.trigger(t,r),this.trigger(t+"."+n,r);var o=u(e,n);1<o.length&&this.trigger(t+"."+o.join("."),r)},t}(t);return y.getKey=c,y.getCombi=u,y}); | ||
//# sourceMappingURL=keycon.pkgd.min.js.map |
{ | ||
"name": "keycon", | ||
"version": "0.2.2", | ||
"version": "0.3.0", | ||
"description": "Keyboard Controller", | ||
@@ -40,5 +40,5 @@ "main": "./dist/keycon.js", | ||
"devDependencies": { | ||
"@daybrush/builder": "0.0.4", | ||
"@daybrush/builder": "^0.1.1", | ||
"@daybrush/jsdoc": "^0.3.7", | ||
"@daybrush/release": "^0.1.1", | ||
"@daybrush/release": "^0.2.4", | ||
"daybrush-jsdoc-template": "^1.5.3", | ||
@@ -45,0 +45,0 @@ "print-sizes": "0.0.4", |
@@ -20,3 +20,3 @@ # keycon [![npm version](https://badge.fury.io/js/keycon.svg)](https://badge.fury.io/js/keycon) | ||
```js | ||
import KeyController from "keycon"; | ||
import KeyController, { getCombi, getKey } from "keycon"; | ||
@@ -35,2 +35,7 @@ const keycon = new KeyController(); | ||
keycon.keydown(["alt", "space"], e => { | ||
// ["alt", "space"] | ||
console.log(getCombi(e)); | ||
// "space" | ||
console.log(getKey(e.keyCode)); | ||
console.log(e); | ||
@@ -37,0 +42,0 @@ }); |
@@ -1,3 +0,6 @@ | ||
import keycon from "./KeyController"; | ||
import keycon, { getKey, getCombi } from "./KeyController"; | ||
(keycon as any).getKey = getKey; | ||
(keycon as any).getCombi = getCombi; | ||
export default keycon; |
@@ -16,3 +16,6 @@ import Component from "@egjs/component"; | ||
}; | ||
function getKey(keyCode: number) { | ||
/** | ||
* @memberof KeyController | ||
*/ | ||
export function getKey(keyCode: number): string { | ||
let key = names[keyCode] || ""; | ||
@@ -25,3 +28,7 @@ | ||
} | ||
function getCombi(e: KeyboardEvent, key: string) { | ||
/** | ||
* @memberof KeyController | ||
*/ | ||
export function getCombi(e: KeyboardEvent, key: string = getKey(e.keyCode)): string[] { | ||
const keys = [e.shiftKey && "shift", e.ctrlKey && "ctrl", e.altKey && "alt", e.metaKey && "meta"]; | ||
@@ -32,2 +39,3 @@ keys.indexOf(key) === -1 && keys.push(key); | ||
} | ||
function getArrangeCombi(keys: string[]) { | ||
@@ -85,3 +93,3 @@ const arrangeKeys = keys.slice(); | ||
} | ||
public clear = () => { | ||
public clear = (): this => { | ||
this.ctrlKey = false; | ||
@@ -91,2 +99,3 @@ this.altKey = false; | ||
this.metaKey = false; | ||
return this; | ||
} | ||
@@ -101,3 +110,3 @@ public keydown(comb: string | string[], callback: (e: KeyControllerEvent) => void): this; | ||
callback?: (e: KeyControllerEvent) => void, | ||
) { | ||
): this { | ||
return this.addEvent("keydown", comb, callback); | ||
@@ -113,3 +122,3 @@ } | ||
callback?: (e: KeyControllerEvent) => void, | ||
) { | ||
): this { | ||
return this.addEvent("keyup", comb, callback); | ||
@@ -116,0 +125,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
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1466
54
87420