change the visibility of the modal (now in js, not in css)

This commit is contained in:
Matteo Manzinello 2019-05-11 00:28:32 +02:00
parent 16e3729f85
commit 71df7e916a
8 changed files with 17 additions and 25 deletions

View File

@ -7,7 +7,7 @@
mailgo will substitute all the `mailto:` links with the **mailgo modal**
[![mailgo.min.js size](https://img.shields.io/github/size/manzinello/mailgo/dist/mailgo.min.js.svg?label=mailgo.min.js&style=flat-square)](https://unpkg.com/mailgo@0.2.8/dist/mailgo.min.js)
[![mailgo.min.js size](https://img.shields.io/github/size/manzinello/mailgo/dist/mailgo.min.js.svg?label=mailgo.min.js&style=flat-square)](https://unpkg.com/mailgo@0.2.9/dist/mailgo.min.js)
<img src="assets/img/screen-1.png" alt="mailgo modal" width="200"/>
@ -20,7 +20,7 @@ add at the end of the `<body>`
```
<body>
...
<script src="https://unpkg.com/mailgo@0.2.8/dist/mailgo.min.js"></script>
<script src="https://unpkg.com/mailgo@0.2.9/dist/mailgo.min.js"></script>
</body>
```
@ -29,7 +29,7 @@ you can also import mailgo in `<head>` using `defer`
```
<head>
...
<script src="https://unpkg.com/mailgo@0.2.8/dist/mailgo.min.js" defer></script>
<script src="https://unpkg.com/mailgo@0.2.9/dist/mailgo.min.js" defer></script>
</head>
```

5
dist/mailgo.css vendored
View File

@ -20,7 +20,6 @@
right: 0;
bottom: 0;
left: 0;
display: none;
justify-content: center;
align-items: center;
flex-direction: column;
@ -29,10 +28,6 @@
font-size: 15px;
}
.mailgo-modal.is-active {
display: flex;
}
.mailgo-title {
display: block;
margin-bottom: 5px;

11
dist/mailgo.js vendored
View File

@ -1,4 +1,4 @@
const VERSION = "0.2.8";
const VERSION = "0.2.9";
const MAILTO = "mailto:";
mailgoInit = () => {
@ -58,6 +58,7 @@ mailgoInit = () => {
// modal
let modal = document.createElement("div");
modal.classList.add("mailgo-modal");
modal.style.display = "none";
modal.setAttribute("data-index", index);
// background
@ -225,17 +226,17 @@ mailgoInit = () => {
event.preventDefault();
// modal is now active (showing)
mailgo.nextElementSibling.classList.add("is-active");
mailgo.nextElementSibling.style.display = "flex";
},
false
);
// allow the escape key to hide the modal
mailgo.addEventListener(
"keydown",
event => {
if (event.keyCode === 27) {
mailgo.nextElementSibling.classList.remove("is-active");
mailgo.nextElementSibling.style.display = "flex";
}
},
false
@ -245,7 +246,7 @@ mailgoInit = () => {
modalBackground.addEventListener(
"click",
event => {
mailgo.nextElementSibling.classList.remove("is-active");
mailgo.nextElementSibling.style.display = "none";
},
false
);

2
dist/mailgo.min.css vendored
View File

@ -1 +1 @@
.mailgo-modal a,.mailgo-modal p,.mailgo-modal span,.mailgo-modal strong{margin:0;padding:0;font-size:100%;line-height:1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.mailgo-modal strong{font-weight:700}.mailgo-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:none;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;z-index:100000;font-size:15px}.mailgo-modal.is-active{display:flex}.mailgo-title{display:block;margin-bottom:5px}.mailgo-details{margin-bottom:10px}.mailgo-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.mailgo-modal-background{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(10,10,10,.75);opacity:.8}.mailgo-modal-content{z-index:1000;box-sizing:content-box;text-align:center;width:200px;background-color:#fff;border-radius:6px;box-shadow:0 2px 6px 0 rgba(10,10,10,.39);color:#4a4a4a;display:block;overflow:auto;padding:1.25rem}.mailgo-modal-content:hover{box-shadow:0 6px 20px rgba(10,10,10,.23)}.mailgo-modal-content a{display:block;color:#4a4a4a;border-radius:4px;text-decoration:none;padding:10px}.mailgo-modal-content a.mailgo-copy:hover,.mailgo-modal-content a.mailgo-open:hover{background-color:rgba(0,0,0,.08)}.mailgo-modal-content a.outlook{color:#0072c6}.mailgo-modal-content a.gmail{color:#d44638}.mailgo-modal-content a.outlook:hover{background-color:rgba(0,114,198,.08)}.mailgo-modal-content a.gmail:hover{background-color:rgba(212,70,56,.08)}.mailgo-modal-content a.mailgo-copy{padding:16px 10px}.mailgo-modal-content a.mailgo-by{display:block;font-size:8px;margin-top:1rem;padding:0;font-style:italic}.mailgo-weight-500{font-weight:500}
.mailgo-modal a,.mailgo-modal p,.mailgo-modal span,.mailgo-modal strong{margin:0;padding:0;font-size:100%;line-height:1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.mailgo-modal strong{font-weight:700}.mailgo-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;z-index:100000;font-size:15px}.mailgo-title{display:block;margin-bottom:5px}.mailgo-details{margin-bottom:10px}.mailgo-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.mailgo-modal-background{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(10,10,10,.75);opacity:.8}.mailgo-modal-content{z-index:1000;box-sizing:content-box;text-align:center;width:200px;background-color:#fff;border-radius:6px;box-shadow:0 2px 6px 0 rgba(10,10,10,.39);color:#4a4a4a;display:block;overflow:auto;padding:1.25rem}.mailgo-modal-content:hover{box-shadow:0 6px 20px rgba(10,10,10,.23)}.mailgo-modal-content a{display:block;color:#4a4a4a;border-radius:4px;text-decoration:none;padding:10px}.mailgo-modal-content a.mailgo-copy:hover,.mailgo-modal-content a.mailgo-open:hover{background-color:rgba(0,0,0,.08)}.mailgo-modal-content a.outlook{color:#0072c6}.mailgo-modal-content a.gmail{color:#d44638}.mailgo-modal-content a.outlook:hover{background-color:rgba(0,114,198,.08)}.mailgo-modal-content a.gmail:hover{background-color:rgba(212,70,56,.08)}.mailgo-modal-content a.mailgo-copy{padding:16px 10px}.mailgo-modal-content a.mailgo-by{display:block;font-size:8px;margin-top:1rem;padding:0;font-style:italic}.mailgo-weight-500{font-weight:500}

2
dist/mailgo.min.js vendored
View File

@ -1 +1 @@
const VERSION="0.2.8",MAILTO="mailto:";mailgoInit=(()=>{const e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href="https://unpkg.com/mailgo@0.2.8/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="",d="",l="",n="",o="",c="";if(e.href&&e.href.toLowerCase().startsWith(MAILTO)){a=decodeURIComponent(e.href.split("?")[0].split(MAILTO)[1].trim()),d=e.href,url=new URL(d);let t=new URLSearchParams(url.search);l=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"),d=MAILTO+encodeURIComponent(a),url=new URL(d);if(!validateEmail(a))return;let i=document.createElement("div");i.classList.add("mailgo-modal"),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",l&&""!=l){let e=document.createElement("p"),t=document.createElement("span");t.className="mailgo-weight-500";let a=document.createTextNode("cc");t.appendChild(a);let d=document.createTextNode(": "+l);e.appendChild(t),e.appendChild(d),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 d=document.createTextNode(": "+n);e.appendChild(t),e.appendChild(d),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 d=document.createTextNode(": "+o);e.appendChild(t),e.appendChild(d),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 d=document.createTextNode(": "+c);e.appendChild(t),e.appendChild(d),u.appendChild(e)}p.appendChild(u);let h=document.createElement("a");h.href="https://mail.google.com/mail?extsrc=mailto&url="+encodeURIComponent(d),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 N=document.createElement("a");N.href="https://outlook.office.com/owa/?rru=compose&to="+encodeURIComponent(a)+url.search.replace(/^[$]/,"&"),N.classList.add("mailgo-open"),N.classList.add("outlook");let x=document.createTextNode("open in ");N.appendChild(x);let L=document.createElement("span");L.className="mailgo-weight-500";let T=document.createTextNode("Outlook");L.appendChild(T),N.appendChild(L),p.appendChild(N);let f=document.createElement("a");f.href="#mailgo-open";let b=encodeEmail(a);f.addEventListener("click",()=>{mailToEncoded(b)},!1),f.classList.add("mailgo-open"),f.classList.add("mailgo-weight-500");let v=document.createTextNode("open");f.appendChild(v),p.appendChild(f);let y=document.createElement("a");y.href="#mailgo-copy",y.classList.add("mailgo-copy"),y.classList.add("mailgo-weight-500");let w=document.createTextNode("copy");y.appendChild(w),y.addEventListener("click",e=>{copyToClipboard(a),y.textContent="copied",setTimeout(()=>{y.textContent="copy"},999)},!1),p.appendChild(y);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.classList.add("is-active")},!1),e.addEventListener("keydown",t=>{27===t.keyCode&&e.nextElementSibling.classList.remove("is-active")},!1),m.addEventListener("click",t=>{e.nextElementSibling.classList.remove("is-active")},!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="",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));

View File

@ -1,6 +1,6 @@
{
"name": "mailgo",
"version": "0.2.8",
"version": "0.2.9",
"description": "a different mailto",
"scripts": {
"build": "gulp"

View File

@ -20,7 +20,6 @@
right: 0;
bottom: 0;
left: 0;
display: none;
justify-content: center;
align-items: center;
flex-direction: column;
@ -29,10 +28,6 @@
font-size: 15px;
}
.mailgo-modal.is-active {
display: flex;
}
.mailgo-title {
display: block;
margin-bottom: 5px;

View File

@ -58,6 +58,7 @@ mailgoInit = () => {
// modal
let modal = document.createElement("div");
modal.classList.add("mailgo-modal");
modal.style.display = "none";
modal.setAttribute("data-index", index);
// background
@ -225,17 +226,17 @@ mailgoInit = () => {
event.preventDefault();
// modal is now active (showing)
mailgo.nextElementSibling.classList.add("is-active");
mailgo.nextElementSibling.style.display = "flex";
},
false
);
// allow the escape key to hide the modal
mailgo.addEventListener(
"keydown",
event => {
if (event.keyCode === 27) {
mailgo.nextElementSibling.classList.remove("is-active");
mailgo.nextElementSibling.style.display = "flex";
}
},
false
@ -245,7 +246,7 @@ mailgoInit = () => {
modalBackground.addEventListener(
"click",
event => {
mailgo.nextElementSibling.classList.remove("is-active");
mailgo.nextElementSibling.style.display = "none";
},
false
);