/* This file contains helpers which should not be part of client.js */ /* global angular */ angular.module('Application').directive('passwordReveal', function () { var svgEye = ''; var svgEyeSlash = ''; return { link: function (scope, elements) { var element = elements[0]; if (!element.parentNode) { console.error('Wrong password-reveal directive usage. Element has no parent.'); return; } var eye = document.createElement('i'); eye.innerHTML = svgEyeSlash; eye.style.width = '18px'; eye.style.height = '18px'; eye.style.position = 'relative'; eye.style.float = 'right'; eye.style.marginTop = '-24px'; eye.style.marginRight = '10px'; eye.style.cursor = 'pointer'; eye.addEventListener('click', function () { if (element.type === 'password') { element.type = 'text'; eye.innerHTML = svgEye; } else { element.type = 'password'; eye.innerHTML = svgEyeSlash; } }); element.parentNode.style.position = 'relative'; element.parentNode.insertBefore(eye, element.nextSibling); } }; });