1window.addEventListener('load', function () { 2 piano_checkLoginStatus(); 3 piano_init_login_dropdown(); 4 5 tp.push(["init", function () { 6 tp.pianoId.init({ 7 loggedIn: piano_checkLoginStatus, 8 loggedOut: () => { 9 piano_checkLoginStatus(); 10 location.reload(); 11 } 12 }); 13 }]); 14}); 15 16function piano_checkLoginStatus() { 17 if (tp.pianoId.isUserValid()) { 18 document.querySelectorAll('.piano_login_button').forEach(el => el.style.display = 'none'); 19 document.querySelectorAll('.piano_loggedin_dropdown').forEach(el => el.style.display = 'block'); 20 } else { 21 document.querySelectorAll('.piano_login_button').forEach(el => el.style.display = 'flex'); 22 document.querySelectorAll('.piano_loggedin_dropdown').forEach(el => el.style.display = 'none'); 23 } 24} 25 26function piano_init_login_dropdown() { 27 const dropdownButton = document.querySelectorAll('.piano_loggedin_dropdown .piano_loggedin_button'); 28 29 dropdownButton.forEach(function (button) { 30 button.addEventListener('click', () => { 31 const dropdownMenu = button.parentElement.querySelector('.piano_loggedin_dropdown_menu'); 32 const dropdownIcon = button.querySelector('.piano_loggedin_status_text'); 33 34 if (tp.pianoId.isUserValid()) { 35 dropdownMenu.classList.toggle('active'); 36 dropdownIcon.classList.toggle('active'); 37 } 38 }); 39 }); 40 41 document.addEventListener('click', (event) => { 42 if (!event.target.classList.contains('piano_loggedin_button') && !event.target.closest('.piano_loggedin_dropdown')) { 43 document.querySelectorAll('.piano_loggedin_dropdown .piano_loggedin_dropdown_menu').forEach(el => el.classList.remove('active')); 44 document.querySelectorAll('.piano_loggedin_dropdown .piano_loggedin_status_text').forEach(el => el.classList.remove('active')); 45 } 46 }); 47} 48 49function piano_toggleLogin(event) { 50 if (event) 51 event.preventDefault(); 52 53 if (tp.pianoId.isUserValid()) { 54 tp.pianoId.logout(); 55 } else { 56 tp.pianoId.show(); 57 } 58}
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.