import { createInput } from './input-factory'; export class Input { constructor(InputIDs, element) { this.InputIDs = InputIDs; this.element = element; this.inputs = new Map(); this.init(); } init() { this.InputIDs.forEach((inputID) => { const thing = createInput(inputID); const instance = new thing(this.element); this.inputs.set(inputID, instance); }); } addInput(id, input) { this.inputs.set(id, input); return this; } capture(preventDefault = true) { this.inputs.forEach((input) => input.capture(preventDefault)); } release() { this.inputs.forEach((input) => input.release()); } getState() { const state = {}; this.inputs.forEach((input, inputID) => { if (input) state[inputID] = input.getState(); }); return state; } }