functions showMailgo and hideMailgo

This commit is contained in:
Matteo Manzinello 2019-05-11 10:03:51 +02:00
parent b9fcffa127
commit 56e7d2bcd0
3 changed files with 19 additions and 11 deletions

14
dist/mailgo.js vendored
View File

@ -226,7 +226,7 @@ mailgoInit = () => {
event.preventDefault(); event.preventDefault();
// modal is now showing // modal is now showing
mailgo.nextElementSibling.style.display = "flex"; showMailgo(mailgo.nextElementSibling);
}, },
false false
); );
@ -236,7 +236,7 @@ mailgoInit = () => {
"keydown", "keydown",
event => { event => {
if (event.keyCode === 27) { if (event.keyCode === 27) {
mailgo.nextElementSibling.style.display = "flex"; hideMailgo(mailgo.nextElementSibling);
} }
}, },
false false
@ -245,9 +245,7 @@ mailgoInit = () => {
// every click outside the modal will hide the modal // every click outside the modal will hide the modal
modalBackground.addEventListener( modalBackground.addEventListener(
"click", "click",
event => { event => hideMailgo(mailgo.nextElementSibling),
mailgo.nextElementSibling.style.display = "none";
},
false false
); );
}); });
@ -283,6 +281,12 @@ copyToClipboard = str => {
} }
}; };
// show the modal
showMailgo = m => (m.style.display = "flex");
// hide the modal
hideMailgo = m => (m.style.display = "none");
// decrypt email // decrypt email
mailToEncoded = encoded => (window.location.href = MAILTO + atob(encoded)); mailToEncoded = encoded => (window.location.href = MAILTO + atob(encoded));

2
dist/mailgo.min.js vendored
View File

@ -1 +1 @@
const VERSION="0.2.9",MAILTO="mailto:";mailgoInit=(()=>{const e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href="https://unpkg.com/mailgo@0.2.9/dist/mailgo.min.css",document.head.appendChild(e),document.querySelectorAll('a[href^="mailto:" i]:not(.no-mailgo), a[href="#mailgo"], a.mailgo').forEach((e,t)=>{let a="",l="",d="",n="",o="",c="";if(e.href&&e.href.toLowerCase().startsWith(MAILTO)){a=decodeURIComponent(e.href.split("?")[0].split(MAILTO)[1].trim()),l=e.href,url=new URL(l);let t=new URLSearchParams(url.search);d=t.get("cc"),n=t.get("bcc"),o=t.get("subject"),c=t.get("body")}else a=e.getAttribute("data-address")+"@"+e.getAttribute("data-domain"),l=MAILTO+encodeURIComponent(a),url=new URL(l);if(!validateEmail(a))return;let i=document.createElement("div");i.classList.add("mailgo-modal"),i.style.display="none",i.setAttribute("data-index",t);let m=document.createElement("div");m.className="mailgo-modal-background",i.appendChild(m);let p=document.createElement("div");p.className="mailgo-modal-content",i.appendChild(p);let s=document.createElement("strong");s.className="mailgo-title";let r=document.createTextNode(a);s.appendChild(r),p.appendChild(s);let u=document.createElement("div");if(u.className="mailgo-details",d&&""!=d){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let l=document.createTextNode(": "+d);e.appendChild(t),e.appendChild(l),u.appendChild(e)}if(n&&""!=n){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("bcc");t.appendChild(a);let l=document.createTextNode(": "+n);e.appendChild(t),e.appendChild(l),u.appendChild(e)}if(o&&""!=o){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let l=document.createTextNode(": "+o);e.appendChild(t),e.appendChild(l),u.appendChild(e)}if(c&&""!=c){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let l=document.createTextNode(": "+c);e.appendChild(t),e.appendChild(l),u.appendChild(e)}p.appendChild(u);let h=document.createElement("a");h.href="https://mail.google.com/mail?extsrc=mailto&url="+encodeURIComponent(l),h.classList.add("mailgo-open"),h.classList.add("gmail");let g=document.createTextNode("open in ");h.appendChild(g);let C=document.createElement("span");C.className="mailgo-weight-500";let E=document.createTextNode("Gmail");C.appendChild(E),h.appendChild(C),p.appendChild(h);let x=document.createElement("a");x.href="https://outlook.office.com/owa/?rru=compose&to="+encodeURIComponent(a)+url.search.replace(/^[$]/,"&"),x.classList.add("mailgo-open"),x.classList.add("outlook");let N=document.createTextNode("open in ");x.appendChild(N);let f=document.createElement("span");f.className="mailgo-weight-500";let y=document.createTextNode("Outlook");f.appendChild(y),x.appendChild(f),p.appendChild(x);let T=document.createElement("a");T.href="#mailgo-open";let L=encodeEmail(a);T.addEventListener("click",()=>{mailToEncoded(L)},!1),T.classList.add("mailgo-open"),T.classList.add("mailgo-weight-500");let b=document.createTextNode("open");T.appendChild(b),p.appendChild(T);let v=document.createElement("a");v.href="#mailgo-copy",v.classList.add("mailgo-copy"),v.classList.add("mailgo-weight-500");let w=document.createTextNode("copy");v.appendChild(w),v.addEventListener("click",e=>{copyToClipboard(a),v.textContent="copied",setTimeout(()=>{v.textContent="copy"},999)},!1),p.appendChild(v);let A=document.createElement("a");A.href="https://mailgo.js.org",A.className="mailgo-by",A.target="_blank";let k=document.createTextNode("mailgo.js.org");A.appendChild(k),p.appendChild(A),e.parentNode.insertBefore(i,e.nextSibling),e.addEventListener("click",t=>{t.preventDefault(),e.nextElementSibling.style.display="flex"},!1),e.addEventListener("keydown",t=>{27===t.keyCode&&(e.nextElementSibling.style.display="flex")},!1),m.addEventListener("click",t=>{e.nextElementSibling.style.display="none"},!1)})}),document.addEventListener("DOMContentLoaded",mailgoInit,!1),validateEmail=(e=>{return/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}),copyToClipboard=(e=>{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t);const a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);t.select(),document.execCommand("copy"),document.body.removeChild(t),a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a))}),mailToEncoded=(e=>window.location.href=MAILTO+atob(e)),encodeEmail=(e=>btoa(e)); const VERSION="0.2.9",MAILTO="mailto:";mailgoInit=(()=>{const e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href="https://unpkg.com/mailgo@0.2.9/dist/mailgo.min.css",document.head.appendChild(e),document.querySelectorAll('a[href^="mailto:" i]:not(.no-mailgo), a[href="#mailgo"], a.mailgo').forEach((e,t)=>{let a="",l="",d="",n="",o="",i="";if(e.href&&e.href.toLowerCase().startsWith(MAILTO)){a=decodeURIComponent(e.href.split("?")[0].split(MAILTO)[1].trim()),l=e.href,url=new URL(l);let t=new URLSearchParams(url.search);d=t.get("cc"),n=t.get("bcc"),o=t.get("subject"),i=t.get("body")}else a=e.getAttribute("data-address")+"@"+e.getAttribute("data-domain"),l=MAILTO+encodeURIComponent(a),url=new URL(l);if(!validateEmail(a))return;let c=document.createElement("div");c.classList.add("mailgo-modal"),c.style.display="none",c.setAttribute("data-index",t);let m=document.createElement("div");m.className="mailgo-modal-background",c.appendChild(m);let p=document.createElement("div");p.className="mailgo-modal-content",c.appendChild(p);let s=document.createElement("strong");s.className="mailgo-title";let r=document.createTextNode(a);s.appendChild(r),p.appendChild(s);let h=document.createElement("div");if(h.className="mailgo-details",d&&""!=d){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let l=document.createTextNode(": "+d);e.appendChild(t),e.appendChild(l),h.appendChild(e)}if(n&&""!=n){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("bcc");t.appendChild(a);let l=document.createTextNode(": "+n);e.appendChild(t),e.appendChild(l),h.appendChild(e)}if(o&&""!=o){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let l=document.createTextNode(": "+o);e.appendChild(t),e.appendChild(l),h.appendChild(e)}if(i&&""!=i){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let l=document.createTextNode(": "+i);e.appendChild(t),e.appendChild(l),h.appendChild(e)}p.appendChild(h);let u=document.createElement("a");u.href="https://mail.google.com/mail?extsrc=mailto&url="+encodeURIComponent(l),u.classList.add("mailgo-open"),u.classList.add("gmail");let g=document.createTextNode("open in ");u.appendChild(g);let C=document.createElement("span");C.className="mailgo-weight-500";let E=document.createTextNode("Gmail");C.appendChild(E),u.appendChild(C),p.appendChild(u);let x=document.createElement("a");x.href="https://outlook.office.com/owa/?rru=compose&to="+encodeURIComponent(a)+url.search.replace(/^[$]/,"&"),x.classList.add("mailgo-open"),x.classList.add("outlook");let N=document.createTextNode("open in ");x.appendChild(N);let f=document.createElement("span");f.className="mailgo-weight-500";let T=document.createTextNode("Outlook");f.appendChild(T),x.appendChild(f),p.appendChild(x);let y=document.createElement("a");y.href="#mailgo-open";let L=encodeEmail(a);y.addEventListener("click",()=>{mailToEncoded(L)},!1),y.classList.add("mailgo-open"),y.classList.add("mailgo-weight-500");let b=document.createTextNode("open");y.appendChild(b),p.appendChild(y);let w=document.createElement("a");w.href="#mailgo-copy",w.classList.add("mailgo-copy"),w.classList.add("mailgo-weight-500");let v=document.createTextNode("copy");w.appendChild(v),w.addEventListener("click",e=>{copyToClipboard(a),w.textContent="copied",setTimeout(()=>{w.textContent="copy"},999)},!1),p.appendChild(w);let A=document.createElement("a");A.href="https://mailgo.js.org",A.className="mailgo-by",A.target="_blank";let k=document.createTextNode("mailgo.js.org");A.appendChild(k),p.appendChild(A),e.parentNode.insertBefore(c,e.nextSibling),e.addEventListener("click",t=>{t.preventDefault(),showMailgo(e.nextElementSibling)},!1),e.addEventListener("keydown",t=>{27===t.keyCode&&hideMailgo(e.nextElementSibling)},!1),m.addEventListener("click",t=>hideMailgo(e.nextElementSibling),!1)})}),document.addEventListener("DOMContentLoaded",mailgoInit,!1),validateEmail=(e=>{return/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}),copyToClipboard=(e=>{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t);const a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);t.select(),document.execCommand("copy"),document.body.removeChild(t),a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a))}),showMailgo=(e=>e.style.display="flex"),hideMailgo=(e=>e.style.display="none"),mailToEncoded=(e=>window.location.href=MAILTO+atob(e)),encodeEmail=(e=>btoa(e));

View File

@ -226,7 +226,7 @@ mailgoInit = () => {
event.preventDefault(); event.preventDefault();
// modal is now showing // modal is now showing
mailgo.nextElementSibling.style.display = "flex"; showMailgo(mailgo.nextElementSibling);
}, },
false false
); );
@ -236,7 +236,7 @@ mailgoInit = () => {
"keydown", "keydown",
event => { event => {
if (event.keyCode === 27) { if (event.keyCode === 27) {
mailgo.nextElementSibling.style.display = "flex"; hideMailgo(mailgo.nextElementSibling);
} }
}, },
false false
@ -245,9 +245,7 @@ mailgoInit = () => {
// every click outside the modal will hide the modal // every click outside the modal will hide the modal
modalBackground.addEventListener( modalBackground.addEventListener(
"click", "click",
event => { event => hideMailgo(mailgo.nextElementSibling),
mailgo.nextElementSibling.style.display = "none";
},
false false
); );
}); });
@ -283,6 +281,12 @@ copyToClipboard = str => {
} }
}; };
// show the modal
showMailgo = m => (m.style.display = "flex");
// hide the modal
hideMailgo = m => (m.style.display = "none");
// decrypt email // decrypt email
mailToEncoded = encoded => (window.location.href = MAILTO + atob(encoded)); mailToEncoded = encoded => (window.location.href = MAILTO + atob(encoded));