{"version":3,"names":["KeyInput","__SystemJSRewritingHack","CONTEXT","setters","_srcClientLangUtilsJs","extend","execute","_recorder_","_src_client_keys_input_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","KeyboardEvent","prototype","ctrlRight","self","input","key","shiftRight","altRight","constructor","_resetStates","state","action","Error","code","_keys","allKeys","keys","_setKey","setKeyState","e","onKeydown","onKeyup","onFocus","load","options","capture","passive","lively","removeEventListener","addEventListener","document","bind","window"],"sources":["keys-input.js"],"sourcesContent":["/* global input */\n\nimport { extend } from 'src/client/lang/utils.js';\n\nconst CONTEXT = 'key-state';\n\nextend(KeyboardEvent.prototype, {\n\n  get ctrlRight() { return !!self.input.key('ControlRight'); },\n  get shiftRight() { return !!self.input.key('ShiftRight'); },\n  get altRight() { return !!self.input.key('AltRight'); },\n\n});\n\nclass KeyInput {\n  \n  constructor() {\n    this._resetStates()\n  }\n  \n  /*MD ## querying state key MD*/\n  // #TODO: bind actions to keys\n  state(action) {\n    throw new Error('not yet implemented')\n  }\n  \n  key(code) {\n    return !!this._keys[code]\n  }\n  \n  allKeys() {\n    return Object.keys(input._keys)\n  }\n\n  /*MD ## writing key state MD*/\n  _setKey(code, state) {\n    if (state) {\n      this._keys[code] = true\n    } else {\n      delete this._keys[code]\n    }\n  }\n  \n  _resetStates() {\n    this._keys = {}\n  }\n  \n  /*MD ## hooks MD*/\n  static setKeyState(e, state) {\n    self.input._setKey(e.code, state)\n  }\n\n  static onKeydown(e) {\n    this.setKeyState(e, true);\n  }\n\n  static onKeyup(e) {\n    this.setKeyState(e, false);\n  }\n\n  static onFocus(e) {\n    self.input._resetStates();\n  }\n\n  // #important\n  static load() {\n    self.input = new this();\n    \n    const options = {\n      capture: true,\n      passive: true\n    };\n    \n    lively.removeEventListener(CONTEXT);\n    lively.addEventListener(CONTEXT, document, \"keydown\", ::this.onKeydown, options);\n    lively.addEventListener(CONTEXT, document, \"keyup\", ::this.onKeyup, options);\n    lively.addEventListener(CONTEXT, window, 'focus', ::this.onFocus, options);\n  }\n}\n\nKeyInput.load();"],"mappings":"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"}