/** * Toggling password visibility inside password input */ export default (() => { const initializePasswordToggle = (parentContainer) => { const icon = document.createElement('span') icon.className = 'password-toggle-button-icon d-flex' icon.innerHTML = ` ` const buttons = parentContainer.querySelectorAll('.password-toggle-button') const togglePassword = (e) => { const target = e.target if (target.type !== 'checkbox') return const passwordInput = target .closest('.password-toggle') .querySelector('.form-control') if (target.checked) { passwordInput.type = 'text' target.parentElement.querySelector( '.password-toggle-button-icon' ).innerHTML = ` ` } else { passwordInput.type = 'password' target.parentElement.querySelector( '.password-toggle-button-icon' ).innerHTML = ` ` } } parentContainer.addEventListener('click', togglePassword, false) buttons.forEach((button) => { button.appendChild(icon.cloneNode(true)) }) } const containers = document.querySelectorAll('.password-toggle') containers.forEach(initializePasswordToggle) })()