class KeyDownManager { handlerList = []; // return id; register(handler, name) { this.handlerList.push([name, handler]); console.log("register keydown", name); } deregister(name) { console.log("deregister keydown", name); this.handlerList = this.handlerList.filter(v=>v[0]!== name); } constructor() { document.addEventListener( 'keydown', (event)=>{ for (let i = this.handlerList.length-1; i >= 0; i--) { let ret = this.handlerList[i][1](event); if (!ret) { break; } } }); } } var globalKeyDownManager = new KeyDownManager(); export{globalKeyDownManager};