import {createState,toggleField,share,revoke} from './demo.mjs'; const state=createState(); const fields=[...document.querySelectorAll('[data-field]')]; const status=document.querySelector('#demo-status'); const shareButton=document.querySelector('#share'); const revokeButton=document.querySelector('#revoke'); const labels={name:'nome',email:'email',phone:'telefono',social:'profilo social'}; function render(){fields.forEach(button=>button.setAttribute('aria-checked',String(state.selected.includes(button.dataset.field))));document.querySelector('#counter').textContent=`${state.selected.length} di 4`;shareButton.disabled=state.selected.length===0;revokeButton.hidden=!state.active;} fields.forEach(button=>button.addEventListener('click',()=>{toggleField(state,button.dataset.field);render();if(!state.selected.length)status.textContent='Seleziona almeno un dato per provare lo scambio.';else status.textContent=state.active?'Selezione modificata. Condividi per aggiornare lo scambio.':'È una simulazione: nessun dato viene inviato.';})); shareButton.addEventListener('click',()=>{if(share(state)){status.textContent=`Scambio simulato: ${state.shared.map(key=>labels[key]).join(', ')}. Nessun dato inviato.`;render();}}); revokeButton.addEventListener('click',()=>{revoke(state);render();status.textContent='Consenso revocato. Lo scambio simulato è stato azzerato.';shareButton.focus();}); const menu=document.querySelector('.menu');const navigation=document.querySelector('#navigation'); menu.addEventListener('click',()=>{const open=menu.getAttribute('aria-expanded')!=='true';menu.setAttribute('aria-expanded',String(open));menu.setAttribute('aria-label',open?'Chiudi menu':'Apri menu');navigation.classList.toggle('open',open);}); navigation.querySelectorAll('a').forEach(link=>link.addEventListener('click',()=>{navigation.classList.remove('open');menu.setAttribute('aria-expanded','false');menu.setAttribute('aria-label','Apri menu');})); document.addEventListener('keydown',event=>{if(event.key==='Escape'){navigation.classList.remove('open');if(menu.getAttribute('aria-expanded')==='true')menu.focus();menu.setAttribute('aria-expanded','false');menu.setAttribute('aria-label','Apri menu');}}); document.querySelector('#year').textContent=new Date().getFullYear();render();