class LedCard extends HTMLElement { connectedCallback() { this.innerHTML = `

LED

0

      
`; this.brightness = this.querySelector('#brightness'); this.value = this.querySelector('#value'); this.brightness.addEventListener('input', () => this.value.value = this.brightness.value); this.querySelector('#apply').addEventListener('click', () => this.setLed()); window.addEventListener('app:settings-loaded', event => this.applySettings(event.detail.settings)); } applySettings(settings) { if (!settings || settings.ledBrightness === undefined) return; this.brightness.value = settings.ledBrightness; this.value.value = settings.ledBrightness; } async setLed() { this.querySelector('#out').textContent = await window.App.req('POST', '/api/led', {brightness: +this.brightness.value}); } } customElements.define('led-card', LedCard);