1(function () { 2 const root = document.getElementById('cyber17-widget'); 3 const fab = document.getElementById('cyber17-fab'); 4 const panel = document.getElementById('cyber17-panel'); 5 const closeBtn = document.getElementById('cyber17-close'); 6 7 8 const open = () => { 9 root.setAttribute('aria-expanded', 'true'); 10 fab.setAttribute('aria-expanded', 'true'); 11 // Focus dans le panneau pour lâaccessibilité 12 panel.setAttribute('tabindex', '-1'); 13 panel.focus({ preventScroll: true }); 14 }; 15 const close = () => { 16 root.setAttribute('aria-expanded', 'false'); 17 fab.setAttribute('aria-expanded', 'false'); 18 }; 19 20 21 fab.addEventListener('click', () => { 22 const isOpen = root.getAttribute('aria-expanded') === 'true'; 23 if (isOpen) { close(); } else { open(); } 24 }); 25 closeBtn.addEventListener('click', close); 26 27 28 // Fermer avec Ãchap 29 document.addEventListener('keydown', (e) => { 30 if (e.key === 'Escape') close(); 31 }); 32 33 34 // Cliquer en dehors pour fermer 35 document.addEventListener('click', (e) => { 36 if (!root.contains(e.target) && root.getAttribute('aria-expanded') === 'true') close(); 37 }); 38 39 })();
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.