kd-keyboard
Version:
keyboard module for kd
25 lines (17 loc) • 600 B
text/coffeescript
module.exports = class KDKeyboardMap
constructor: (options) ->
= {}
{ combos, } = options if options?
if combos?
combo, null, listener for own combo, listener of combos
addCombo: (combo, options, listener) ->
[listener, options] = [options, listener] unless listener?
[combo] = { listener, options }
return this
removeCombo: (combo) ->
[combo] = null
return this
eachCombo: (fn, thisArg) ->
for own combo, { options, listener } of
fn.call thisArg, combo, options, listener
return