import calculator from './calculator.html?raw'; /** * Renders the calculator component into the target element. * @param {HTMLElement} target The target element to render the calculator into. */ export function renderCalculator(target) { target.innerHTML = calculator; let buffer = 0; /** @type {HTMLInputElement} */ const display = target.querySelector('#display'); /** @type {NodeListOf} */ const numbers = target.querySelectorAll('.number'); /** @type {NodeListOf} */ const operators = target.querySelectorAll('.operator'); /** @type {HTMLButtonElement} */ const clear = target.querySelector('#clear'); /** @type {HTMLButtonElement} */ const equals = target.querySelector('#equals'); numbers.forEach((number) => { number.addEventListener('click', () => { display.value += number.dataset.value; }); }); operators.forEach((operator) => { operator.addEventListener('click', () => { buffer = display.valueAsNumber; display.value = ''; }); }); clear.addEventListener('click', () => { buffer = 0; display.value = ''; }); equals.addEventListener('click', () => { const result = buffer + display.valueAsNumber; display.value = String(result); }); }