function initializeControls( controlsHtmlUrl, warpedMapLayer, handleAddMapClicked ) { fetch(controlsHtmlUrl) .then((response) => response.text()) .then((html) => { document.getElementById('controls').innerHTML = html initializeEventListeners() }) function initializeEventListeners() { document.querySelector('#opacity').addEventListener('input', (event) => { const opacity = event.target.valueAsNumber warpedMapLayer.setOpacity(opacity) }) function setRemoveColor() { const color = document.querySelector('#background-color').value const threshold = document.querySelector( '#background-color-threshold' ).valueAsNumber const hardness = document.querySelector( '#background-color-hardness' ).valueAsNumber warpedMapLayer.setRemoveColor({ hexColor: color, threshold, hardness }) } function setColorize() { const colorize = document.querySelector('#colorize').checked if (colorize) { const colorizeColor = document.querySelector('#colorize-color').value warpedMapLayer.setColorize(colorizeColor) } else { warpedMapLayer.resetColorize() } } document .querySelector('#background-color') .addEventListener('input', () => setRemoveColor()) document .querySelector('#background-color-threshold') .addEventListener('input', () => setRemoveColor()) document .querySelector('#background-color-hardness') .addEventListener('input', () => setRemoveColor()) document .querySelector('#colorize') .addEventListener('input', () => setColorize()) document .querySelector('#colorize-color') .addEventListener('input', () => setColorize()) document.querySelector('#add-map').addEventListener('click', () => { if (handleAddMapClicked) { handleAddMapClicked() } }) // Toggle the opacity using the 'Space' key document.addEventListener('keydown', (event) => { if (event.code === 'Space') { warpedMapLayer.setOpacity(0) } }) document.addEventListener('keyup', (event) => { if (event.code === 'Space') { warpedMapLayer.setOpacity(1) } }) } }