1import {enterClick} from './events.js'; 2import {abre as abreMenu} from './menu.js'; 3 4const menu = document.querySelector('#acessibilidade a'); 5const dd = document.querySelector('#acess-drop-down'); 6const close = document.querySelector('#acess-drop-down .close'); 7 8const toggle = () => { 9 menu.classList.toggle('aberto'); 10 dd.classList.toggle('aberto'); 11}; 12 13const abre = () => { 14 menu.classList.add('aberto'); 15 dd.classList.add('aberto'); 16}; 17 18const fecha = () => { 19 menu.classList.remove('aberto'); 20 dd.classList.remove('aberto'); 21}; 22 23const irConteudo = () => { 24 document.querySelector('main').scrollIntoView({block: 'start', inline: 'start'}); 25 fecha(); 26}; 27 28const irMenu = () => { 29 abreMenu(); 30 const aberto = document.querySelector('#menu .menu div.aberto'); 31 if (aberto) { 32 const primeiro = aberto.querySelector('a'); 33 if (primeiro) { 34 primeiro.focus(); 35 } 36 return; 37 } 38 const primeiro = document.querySelector('#menu .menu > a'); 39 if (primeiro) { 40 primeiro.focus(); 41 } 42 fecha(); 43}; 44 45const irRodape = () => { 46 document.querySelector('footer').scrollIntoView({block: 'center', inline: 'center'}); 47 fecha(); 48}; 49 50const toggleContraste = () => { 51 document.querySelector('body').classList.toggle('alto-contraste'); 52 const contem = document.querySelector('body').classList.contains('alto-contraste'); 53 localStorage.setItem('alto-contraste', contem ? '1' : '0'); 54 fecha(); 55}; 56 57const registraAcoes = () => { 58 document.querySelector('#acess-drop-down .conteudo').addEventListener('click', irConteudo); 59 document.querySelector('#acess-drop-down .menu').addEventListener('click', irMenu); 60 document.querySelector('#acess-drop-down .rodape').addEventListener('click', irRodape); 61 document.querySelector('#acess-drop-down .contraste').addEventListener('click', toggleContraste); 62 63 window.addEventListener('keydown', ev => { 64 if (!ev.altKey) { 65 return; 66 } 67 ev.preventDefault(); 68 switch (ev.key) { 69 case '1': 70 irConteudo(); 71 break; 72 case '2': 73 irMenu() 74 break; 75 case '3': 76 irRodape() 77 break; 78 case '4': 79 toggleContraste(); 80 break; 81 } 82 }); 83 84}; 85 86if (menu) { 87 menu.addEventListener('click', ev => { 88 ev.stopPropagation(); 89 toggle(); 90 }); 91 dd.addEventListener('click', ev => ev.stopPropagation()); 92 document.body.addEventListener('click', () => fecha()); 93 close.addEventListener('click', () => fecha()); 94 95 enterClick(menu); 96 enterClick(dd); 97 enterClick(close); 98 registraAcoes(); 99} 100 101const altoContraste = localStorage.getItem('alto-contraste') ?? '0'; 102if (altoContraste == '1') { 103 document.querySelector('body').classList.add('alto-contraste'); 104} 105 106
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.