github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/assets/scripts/password-visibility.js (about) 1 ;(function (d) { 2 var visible = false 3 var input = d.getElementById('password') 4 var button = d.getElementById('password-visibility-button') 5 var icon = d.getElementById('password-visibility-icon') 6 7 button.addEventListener('click', function (event) { 8 event.preventDefault() 9 visible = !visible 10 input.type = visible ? 'text' : 'password' 11 input.setAttribute('autocomplete', visible ? 'off' : 'current-password') 12 13 if (visible) { 14 icon.classList.remove('icon-eye-closed') 15 icon.classList.add('icon-eye-opened') 16 } else { 17 icon.classList.remove('icon-eye-opened') 18 icon.classList.add('icon-eye-closed') 19 } 20 21 button.setAttribute( 22 'title', 23 visible 24 ? button.getAttribute('data-hide') 25 : button.getAttribute('data-show'), 26 ) 27 28 input.focus() 29 }) 30 })(window.document)