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)