{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-event-sourcing/src/client/keyinfo.js"],"names":["keyInfo","KeyInfo","constructor","evt","char","String","fromCharCode","keyCode","charCode","meta","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","enter","esc","escape","space","backspace","del","delete","tab","pageup","pagedown","left","up","right","down","match","pattern","toString","modifiers","push","join","log","console","notify","lively"],"mappings":"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","file":"keyinfo.js","sourcesContent":["'use strict';\n\nexport class KeyInfo {\n\n  constructor(evt) {\n    this.evt = evt;\n  }\n  \n  get char() { return String.fromCharCode(this.evt.keyCode || this.evt.charCode); }\n\n  get meta() { return this.metaKey; }\n  get metaKey() { return this.evt.metaKey; }\n\n  get ctrl() { return this.ctrlKey; }\n  get ctrlKey() { return this.evt.ctrlKey; }\n\n  get shift() { return this.shiftKey; }\n  get shiftKey() { return this.evt.shiftKey; }\n\n  get alt() { return  this.altKey; }\n  get altKey() { return this.evt.altKey; }\n\n  get keyCode() { return this.evt.keyCode; }\n\n  get charCode() { return this.evt.charCode; }\n  \n  get enter() { return this.keyCode === 13; }\n  get esc() { return this.escape; }\n  get escape() { return this.keyCode === 27; }\n  get space() { return this.keyCode === 32; }\n  get backspace() { return this.keyCode === 8; }\n  get del() { return this.delete; }\n  get delete() { return this.keyCode === 46; }\n  get tab() { return this.keyCode === 9; }\n\n  get pageup() { return this.keyCode === 33; }\n  get pagedown() { return this.keyCode === 34; }\n\n  get left() { return this.keyCode === 37; }\n  get up() { return this.keyCode === 38; }\n  get right() { return this.keyCode === 39; }\n  get down() { return this.keyCode === 40; }\n\n  // #TODO\n  match(pattern) {}\n  /*MD ### logging MD*/\n  toString() {\n    const modifiers = [];\n    if (this.meta) { modifiers.push('meta'); }\n    if (this.ctrl) { modifiers.push('ctrl'); }\n    if (this.shift) { modifiers.push('shift'); }\n    if (this.alt) { modifiers.push('alt'); }\n    \n    return `${this.char} (${this.keyCode}, ${this.charCode})[${modifiers.join(', ')}]`;\n  }\n\n  log() { console.log(this.toString()); }\n\n  notify() { lively.notify(this.toString()); }\n\n}\n\nexport default function keyInfo(evt) {\n  return new KeyInfo(evt);\n}\n"]}