/**
* 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)
})()