diff --git a/dist/mailgo.dark.min.js b/dist/mailgo.dark.min.js index 765c9ac..7ae2c74 100644 --- a/dist/mailgo.dark.min.js +++ b/dist/mailgo.dark.min.js @@ -1,2 +1,2 @@ -window.mailgo=function(e){var t={};function a(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(o,n,function(t){return e[t]}.bind(null,n));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=4)}([function(e){e.exports=JSON.parse('{"languages":["en","it","es"],"translations":{"en":{"open_in":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"subject ","body_":"body ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"call","open":"open","_default":" default","_as_default":" as default","copy":"copy"},"it":{"open_in":"apri con ","cc_":"cc ","bcc_":"ccn ","subject_":"oggetto ","body_":"testo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"chiama","open":"apri","_default":" ","_as_default":" ","copy":"copia"},"es":{"open_in":"abrir con ","cc_":"cc ","bcc_":"cco ","subject_":"asunto ","body_":"cuerpo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"llamar","open":"abrir","_default":" predefinido","_as_default":" por defecto","copy":"copiar"}}}')},function(e,t,a){var o=a(2);e.exports="string"==typeof o?o:o.toString()},function(e,t,a){(t=a(3)(!1)).push([e.i,'.m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\n',""]),e.exports=t},function(e,t,a){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=function(e,t){var a=e[1]||"",o=e[3];if(!o)return a;if(t&&"function"==typeof btoa){var n=(i=o,l=btoa(unescape(encodeURIComponent(JSON.stringify(i)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),"/*# ".concat(c," */")),d=o.sources.map((function(e){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(e," */")}));return[a].concat(d).concat([n]).join("\n")}var i,l,c;return[a].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(a,"}"):a})).join("")},t.i=function(e,a,o){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(o)for(var d=0;d0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;if("mail"===e){var a,n;if(t.href&&t.href.toLowerCase().startsWith(E)){I=decodeURIComponent(t.href.split("?")[0].split(E)[1].trim());var d=new URL(t.href).searchParams;O=d.get("cc"),T=d.get("bcc"),z=d.get("subject"),W=d.get("body")}else I=t.getAttribute("data-address")+"@"+t.getAttribute("data-domain"),new URL(E+encodeURIComponent(I)),O=t.getAttribute("data-cc-address")+"@"+t.getAttribute("data-cc-domain"),T=t.getAttribute("data-bcc-address")+"@"+t.getAttribute("data-bcc-domain"),z=t.getAttribute("data-subject"),W=t.getAttribute("data-body");if(void 0===(null===(a=o)||void 0===a?void 0:a.validateEmail)||!0===(null===(n=o)||void 0===n?void 0:n.validateEmail)){if(!fe(I.split(",")))return;O&&!fe(O.split(","))&&(O=""),T&&!fe(T.split(","))&&(T="")}i.innerHTML=I.split(",").join("
"),O?(c.style.display="block",p.innerHTML=O.split(",").join("
")):c.style.display="none",T?(r.style.display="block",u.innerHTML=T.split(",").join("
")):r.style.display="none",z?(s.style.display="block",f.textContent=z):s.style.display="none",W?(m.style.display="block",h.textContent=W):m.style.display="none",g.addEventListener("click",J),b.addEventListener("click",Z),M=ce(I),v.addEventListener("click",$),L.addEventListener("click",(function(){return V(I)}))}if("tel"===e){if(t.href&&t.href.toLowerCase().startsWith(N)?P=decodeURIComponent(t.href.split("?")[0].split(N)[1].trim()):t.href&&t.href.toLowerCase().startsWith(S)?P=decodeURIComponent(t.href.split("?")[0].split(S)[1].trim()):t.hasAttribute("data-tel")&&(P=t.getAttribute("data-tel"),t.getAttribute("data-msg")),!he(P))return;H=t.hasAttribute("data-telegram")?t.getAttribute("data-telegram"):null,t.hasAttribute("data-skype")&&(D=t.getAttribute("data-skype")),l.innerHTML=P,k.addEventListener("click",K),H?(document.getElementById("m-tg").style.display="block",y.addEventListener("click",F)):document.getElementById("m-tg").style.display="none",C.addEventListener("click",q),w.addEventListener("click",Q),_.addEventListener("click",(function(){return V(P)}))}te(e),document.addEventListener("keydown",ee)},J=function(){var e="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(I);O&&(e=e.concat("&cc="+encodeURIComponent(O))),T&&(e=e.concat("&bcc="+encodeURIComponent(T))),z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},Z=function(){var e="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(I);z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},$=function(){le(M),ae()},F=function(){var e="https://t.me/"+H;window.open(e,"_blank"),ae()},q=function(){var e="skype:"+(""!==D?D:P);window.open(e,"_blank"),ae()},K=function(){var e="https://wa.me/"+P;window.open(e,"_blank"),ae()},Q=function(){var e="tel:"+P;window.open(e),ae()},V=function(e){var t;ge(e),(t=oe("mail")?L:_).textContent="copied",setTimeout((function(){t.textContent="copy",ae()}),999)},X=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",a=e.href;return"mail"===t?a&&a.toLowerCase().startsWith(E)&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-address")&&(a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo")):"tel"===t&&(a&&(a.toLowerCase().startsWith(N)||a.toLowerCase().startsWith(S))&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-tel")&&a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo"))},Y=function(e){if(!document.contains(n)||!document.contains(d))return!1;if(oe("mail")||oe("tel"))return!1;var t=e.composedPath&&e.composedPath()||pe(e.target);return t&&t.forEach((function(t){return!(t instanceof HTMLDocument||t instanceof Window)&&(X(t,"mail")?(e.preventDefault(),G("mail",t),!0):X(t,"tel")?(e.preventDefault(),G("tel",t),!0):void 0)})),!1},ee=function(e){if(oe("mail"))switch(e.keyCode){case 27:ae();break;case 71:J();break;case 79:Z();break;case 32:case 13:$();break;case 67:V(I);break;default:return}else if(oe("tel"))switch(e.keyCode){case 27:ae();break;case 84:F();break;case 87:K();break;case 32:case 13:Q();break;case 67:V(P);break;default:return}},te=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";me(e,"flex")},ae=function(){me("mail","none"),me("tel","none"),document.removeEventListener("keydown",ee)},oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===se(e)},ne=function(){var e=de("a");return e.href="https://mailgo.dev?ref=mailgo-modal",e.className="m-by",e.target="_blank",e.rel="noopener noreferrer",e.appendChild(ie("mailgo.dev")),e},de=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(e)},ie=function(e){return document.createTextNode(e)},le=function(e){return window.location.href=E+atob(e)},ce=function(e){return btoa(e)},re=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===e?d:n},se=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).style.display},me=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;return re(e).style.display=t},pe=function(e){for(var t=[];e;){if(t.push(e),"HTML"===e.tagName)return t.push(document),t.push(window),t;e=e.parentElement}},ue=function(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)},fe=function(e){return e.every(ue)},he=function(e){return/^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(e)},ge=function(e){var t=de("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t);var a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return t.select(),document.execCommand("copy"),document.body.removeChild(t),!!a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a),!0)};(function(e){var t;window&&"undefined"!=typeof window&&((t=de("style")).id="mailgo-style",t.type="text/css",t.appendChild(ie(A)),document.head.appendChild(t),(null==e?void 0:e.initEvent)?document.addEventListener(e.initEvent,(function(){B(e)})):B(e))})({initEvent:"DOMContentLoaded",dark:!0})}]); +window.mailgo=function(e){var t={};function a(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(o,n,function(t){return e[t]}.bind(null,n));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=4)}([function(e){e.exports=JSON.parse('{"languages":["en","it","es"],"translations":{"en":{"open_in":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"subject ","body_":"body ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"call","open":"open","_default":" default","_as_default":" as default","copy":"copy"},"it":{"open_in":"apri con ","cc_":"cc ","bcc_":"ccn ","subject_":"oggetto ","body_":"testo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"chiama","open":"apri","_default":" ","_as_default":" ","copy":"copia"},"es":{"open_in":"abrir con ","cc_":"cc ","bcc_":"cco ","subject_":"asunto ","body_":"cuerpo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"llamar","open":"abrir","_default":" predefinido","_as_default":" por defecto","copy":"copiar"}}}')},function(e,t,a){var o=a(2);e.exports="string"==typeof o?o:o.toString()},function(e,t,a){(t=a(3)(!1)).push([e.i,'.m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\n',""]),e.exports=t},function(e,t,a){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=function(e,t){var a=e[1]||"",o=e[3];if(!o)return a;if(t&&"function"==typeof btoa){var n=(l=o,d=btoa(unescape(encodeURIComponent(JSON.stringify(l)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(d),"/*# ".concat(c," */")),i=o.sources.map((function(e){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(e," */")}));return[a].concat(i).concat([n]).join("\n")}var l,d,c;return[a].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(a,"}"):a})).join("")},t.i=function(e,a,o){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(o)for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;if("mail"===e){var a,n;if(t.href&&t.href.toLowerCase().startsWith(E)){I=decodeURIComponent(t.href.split("?")[0].split(E)[1].trim());var i=new URL(t.href).searchParams;O=i.get("cc"),T=i.get("bcc"),z=i.get("subject"),W=i.get("body")}else I=t.getAttribute("data-address")+"@"+t.getAttribute("data-domain"),new URL(E+encodeURIComponent(I)),O=t.getAttribute("data-cc-address")+"@"+t.getAttribute("data-cc-domain"),T=t.getAttribute("data-bcc-address")+"@"+t.getAttribute("data-bcc-domain"),z=t.getAttribute("data-subject"),W=t.getAttribute("data-body");if(void 0===(null===(a=o)||void 0===a?void 0:a.validateEmail)||!0===(null===(n=o)||void 0===n?void 0:n.validateEmail)){if(!ge(I.split(",")))return;O&&!ge(O.split(","))&&(O=""),T&&!ge(T.split(","))&&(T="")}l.innerHTML=I.split(",").join("
"),O?(c.style.display="block",p.innerHTML=O.split(",").join("
")):c.style.display="none",T?(r.style.display="block",u.innerHTML=T.split(",").join("
")):r.style.display="none",z?(s.style.display="block",f.textContent=z):s.style.display="none",W?(m.style.display="block",h.textContent=W):m.style.display="none",g.addEventListener("click",J),v.addEventListener("click",Z),M=ce(I),b.addEventListener("click",$),L.addEventListener("click",(function(){return V(I)}))}else if("tel"===e){if(t.href&&t.href.toLowerCase().startsWith(N)?P=decodeURIComponent(t.href.split("?")[0].split(N)[1].trim()):t.href&&t.href.toLowerCase().startsWith(S)?P=decodeURIComponent(t.href.split("?")[0].split(S)[1].trim()):t.hasAttribute("data-tel")&&(P=t.getAttribute("data-tel"),t.getAttribute("data-msg")),!ve(P))return;H=t.hasAttribute("data-telegram")?t.getAttribute("data-telegram"):null,t.hasAttribute("data-skype")&&(D=t.getAttribute("data-skype")),d.innerHTML=P,k.addEventListener("click",K),H?(document.getElementById("m-tg").style.display="block",y.addEventListener("click",F)):document.getElementById("m-tg").style.display="none",C.addEventListener("click",q),w.addEventListener("click",Q),_.addEventListener("click",(function(){return V(P)}))}t.classList.contains("dark")&&pe(e),te(e),document.addEventListener("keydown",ee)},J=function(){var e="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(I);O&&(e=e.concat("&cc="+encodeURIComponent(O))),T&&(e=e.concat("&bcc="+encodeURIComponent(T))),z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},Z=function(){var e="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(I);z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},$=function(){de(M),ae()},F=function(){var e="https://t.me/"+H;window.open(e,"_blank"),ae()},q=function(){var e="skype:"+(""!==D?D:P);window.open(e,"_blank"),ae()},K=function(){var e="https://wa.me/"+P;window.open(e,"_blank"),ae()},Q=function(){var e="tel:"+P;window.open(e),ae()},V=function(e){var t;be(e),(t=oe("mail")?L:_).textContent="copied",setTimeout((function(){t.textContent="copy",ae()}),999)},X=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",a=e.href;return"mail"===t?a&&a.toLowerCase().startsWith(E)&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-address")&&(a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo")):"tel"===t&&(a&&(a.toLowerCase().startsWith(N)||a.toLowerCase().startsWith(S))&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-tel")&&a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo"))},Y=function(e){if(!document.contains(n)||!document.contains(i))return!1;if(oe("mail")||oe("tel"))return!1;var t=e.composedPath&&e.composedPath()||fe(e.target);return t&&t.forEach((function(t){return!(t instanceof HTMLDocument||t instanceof Window)&&(X(t,"mail")?(e.preventDefault(),G("mail",t),!0):X(t,"tel")?(e.preventDefault(),G("tel",t),!0):void 0)})),!1},ee=function(e){if(oe("mail"))switch(e.keyCode){case 27:ae();break;case 71:J();break;case 79:Z();break;case 32:case 13:$();break;case 67:V(I);break;default:return}else if(oe("tel"))switch(e.keyCode){case 27:ae();break;case 84:F();break;case 87:K();break;case 32:case 13:Q();break;case 67:V(P);break;default:return}},te=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";me(e,"flex")},ae=function(){me("mail","none"),me("tel","none"),document.removeEventListener("keydown",ee)},oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===se(e)},ne=function(){var e=ie("a");return e.href="https://mailgo.dev?ref=mailgo-modal",e.className="m-by",e.target="_blank",e.rel="noopener noreferrer",e.appendChild(le("mailgo.dev")),e},ie=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(e)},le=function(e){return document.createTextNode(e)},de=function(e){return window.location.href=E+atob(e)},ce=function(e){return btoa(e)},re=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===e?i:n},se=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).style.display},me=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;return re(e).style.display=t},pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).classList.add("m-dark")},ue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).classList.remove("m-dark")},fe=function(e){for(var t=[];e;){if(t.push(e),"HTML"===e.tagName)return t.push(document),t.push(window),t;e=e.parentElement}},he=function(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)},ge=function(e){return e.every(he)},ve=function(e){return/^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(e)},be=function(e){var t=ie("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t);var a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return t.select(),document.execCommand("copy"),document.body.removeChild(t),!!a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a),!0)};(function(e){var t;window&&"undefined"!=typeof window&&((t=ie("style")).id="mailgo-style",t.type="text/css",t.appendChild(le(A)),document.head.appendChild(t),(null==e?void 0:e.initEvent)?document.addEventListener(e.initEvent,(function(){B(e)})):B(e))})({initEvent:"DOMContentLoaded",dark:!0})}]); //# sourceMappingURL=mailgo.dark.min.js.map \ No newline at end of file diff --git a/dist/mailgo.dark.min.js.map b/dist/mailgo.dark.min.js.map index cc211ae..c9621a8 100644 --- a/dist/mailgo.dark.min.js.map +++ b/dist/mailgo.dark.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?6043","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.dist.dark.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","result","toString","___CSS_LOADER_API_IMPORT___","push","useSourceMap","list","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","config","modalMailto","modalTel","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","mailgoCSS","require","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","mailgoConfig","translations","i18n","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","dark","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in","gmailSpan","outlookSpan","openSpan","_default","copy","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgo","toLowerCase","startsWith","decodeURIComponent","split","trim","urlParams","URL","searchParams","getAttribute","validateEmail","validateEmails","innerHTML","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","getElementById","openTelegram","openSkype","callDefault","showMailgo","mailgoKeydown","gmailUrl","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","activeCopy","copyToClipboard","mailgoIsShowing","setTimeout","isMailgo","element","contains","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","getModalHTMLElement","ref","el","tagName","parentElement","test","arr","every","str","setAttribute","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoCSSElement","head","initEvent"],"mappings":"0BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,g7BCjF7C,IAAIC,EAAS,EAAQ,GAGjBjC,EAAOD,QADW,iBAAXkC,EACUA,EAEAA,EAAOC,Y,iBCJpCnC,EADkC,EAAQ,EAChCoC,EAA4B,IAE9BC,KAAK,CAACpC,EAAOC,EAAI,82FAAu3F,KAEh5FD,EAAOD,QAAUA,G,6BCEjBC,EAAOD,QAAU,SAAUsC,GACzB,IAAIC,EAAO,GAuDX,OArDAA,EAAKJ,SAAW,WACd,OAAOK,KAAKC,KAAI,SAAUC,GACxB,IAAIC,EAsDV,SAAgCD,EAAMJ,GACpC,IAAIK,EAAUD,EAAK,IAAM,GAErBE,EAAaF,EAAK,GAEtB,IAAKE,EACH,OAAOD,EAGT,GAAIL,GAAgC,mBAATO,KAAqB,CAC9C,IAAIC,GAWWC,EAXeH,EAa5BI,EAASH,KAAKI,SAASC,mBAAmBC,KAAKC,UAAUL,MACzDM,EAAO,+DAA+DC,OAAON,GAC1E,OAAOM,OAAOD,EAAM,QAdrBE,EAAaX,EAAWY,QAAQf,KAAI,SAAUgB,GAChD,MAAO,iBAAiBH,OAAOV,EAAWc,YAAc,IAAIJ,OAAOG,EAAQ,UAE7E,MAAO,CAACd,GAASW,OAAOC,GAAYD,OAAO,CAACR,IAAgBa,KAAK,MAOrE,IAAmBZ,EAEbC,EACAK,EAPJ,MAAO,CAACV,GAASgB,KAAK,MAvEJC,CAAuBlB,EAAMJ,GAE3C,OAAII,EAAK,GACA,UAAUY,OAAOZ,EAAK,GAAI,MAAMY,OAAOX,EAAS,KAGlDA,KACNgB,KAAK,KAKVpB,EAAKrC,EAAI,SAAUE,EAASyD,EAAYC,GACf,iBAAZ1D,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAI2D,EAAyB,GAE7B,GAAID,EACF,IAAK,IAAI5D,EAAI,EAAGA,EAAIsC,KAAKwB,OAAQ9D,IAAK,CAEpC,IAAI+D,EAAKzB,KAAKtC,GAAG,GAEP,MAAN+D,IACFF,EAAuBE,IAAM,GAKnC,IAAK,IAAIC,EAAK,EAAGA,EAAK9D,EAAQ4D,OAAQE,IAAM,CAC1C,IAAIxB,EAAO,GAAGY,OAAOlD,EAAQ8D,IAEzBJ,GAAUC,EAAuBrB,EAAK,MAKtCmB,IACGnB,EAAK,GAGRA,EAAK,GAAK,GAAGY,OAAOO,EAAY,SAASP,OAAOZ,EAAK,IAFrDA,EAAK,GAAKmB,GAMdtB,EAAKF,KAAKK,MAIPH,I,wCC9BL4B,EAMAC,EAA0BC,EAkB1BC,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGEC,EACFC,EACAC,EACAC,EACAC,EACAC,EACAhF,EACAiF,EACAC,E,kBAnEIC,EAAoBC,EAAQ,GAAiBtD,WAM7CuD,EAAiB,UACjBC,EAAc,OACdC,EAAiB,UAOjBC,EAA2B,sBAW7BC,EAvByB,KA8B3BC,EAAe,GACfC,EAAmB,GACnBC,EAAa,GACbC,EAAc,GACdC,EAAkB,GAClBC,EAAmB,GAGjBC,EAAc,GAEhBC,EAA2B,GAC3BC,EAAwB,GA6BpBC,EAAa,SAACC,GAAsC,QAExDtC,EAASsC,EAF+C,IAMtDC,EACwCC,EADxCD,aASF,IALU,QAAN,EAAAvC,SAAA,eAAQ2B,OAAQa,YAAeC,SAASzC,EAAO2B,QACjDA,EAAO3B,EAAO2B,QAIZ,UAAC3B,SAAD,aAAC,EAAQ0C,WAAW,CAEtB,IAAIC,EAAmBC,SAASC,gBAAgBlB,KAG5Ca,YAAeC,SAASE,KAC1BhB,EAAOiB,SAASC,gBAAgBlB,MAKpC,IAIA,EAJImB,EAAoCP,EAAY,GAChDQ,EAA6BR,EAAaZ,IAK5C1B,EAAc+C,MACFC,MAAMC,QAAU,OAC5BjD,EAAYH,GAAK,SACjBG,EAAYkD,UAAUC,IAAI,YAG1B,UAAIpD,SAAJ,aAAI,EAAQqD,OACVpD,EAAYkD,UAAUC,IAAI,UAI5B,IAAIE,EAA+BN,KACnCM,EAAgBC,UAAY,eAC5BtD,EAAYuD,YAAYF,GAGxB,IAAIG,EAA4BT,KAChCS,EAAaF,UAAY,kBACzBtD,EAAYuD,YAAYC,IAGxBtD,EAAQ6C,GAAc,WAChBlD,GAAK,UACXK,EAAMoD,UAAY,UAClBE,EAAaD,YAAYrD,GAGzB,IAAIuD,EAAuBV,KAC3BU,EAAQ5D,GAAK,YACb4D,EAAQH,UAAY,aAEpBlD,EAAW2C,GApHU,MAqHZlD,GAAK,OACd,IAAI6D,EAAsBX,GAxHF,QAyHxBW,EAAOJ,UAAY,QACnBI,EAAOH,YAAYI,GAAeb,EAAQc,KAAOf,EAAee,OAChEpD,EAAUuC,GA3Hc,SA4HhBlD,GAAK,aACbO,EAASmD,YAAYG,GACrBtD,EAASmD,YAAY/C,GACrBiD,EAAQF,YAAYnD,IAEpBC,EAAY0C,GA/HS,MAgIXlD,GAAK,QACf,IAAIgE,EAAuBd,GAnIH,QAoIxBc,EAAQP,UAAY,QACpBO,EAAQN,YAAYI,GAAeb,EAAQgB,MAAQjB,EAAeiB,QAClErD,EAAWsC,GAtIa,SAuIflD,GAAK,cACdQ,EAAUkD,YAAYM,GACtBxD,EAAUkD,YAAY9C,GACtBgD,EAAQF,YAAYlD,IAEpBC,EAAgByC,GA1IK,MA2IPlD,GAAK,YACnB,IAAIkE,EAA2BhB,GA9IP,QA+IxBgB,EAAYT,UAAY,QACxBS,EAAYR,YACVI,GAAeb,EAAQkB,UAAYnB,EAAemB,YAEpDtD,EAAeqC,GAnJS,SAoJXlD,GAAK,kBAClBS,EAAciD,YAAYQ,GAC1BzD,EAAciD,YAAY7C,GAC1B+C,EAAQF,YAAYjD,IAEpBC,EAAawC,GAvJQ,MAwJVlD,GAAK,SAChB,IAAIoE,EAAwBlB,GA3JJ,QA4JxBkB,EAASX,UAAY,QACrBW,EAASV,YAAYI,GAAeb,EAAQoB,OAASrB,EAAeqB,SACpEvD,EAAYoC,GA9JY,SA+JdlD,GAAK,eACfU,EAAWgD,YAAYU,GACvB1D,EAAWgD,YAAY5C,GACvB8C,EAAQF,YAAYhD,GAEpBiD,EAAaD,YAAYE,IAGzB7C,EAAQmC,GAtKa,MAuKflD,GAAK,UACXe,EAAMuD,KAAO1C,EACbb,EAAMsC,UAAUC,IAAI,UACpBvC,EAAMsC,UAAUC,IAAI,WACpBvC,EAAM2C,YACJI,GAAeb,EAAQsB,SAAWvB,EAAeuB,UAEnD,IAAIC,EAAyBtB,GA/KL,QAgLxBsB,EAAUf,UAAY,QACtBe,EAAUd,YACRI,GAAeb,EAAQlC,OAASiC,EAAejC,QAEjDA,EAAM2C,YAAYc,GAElBb,EAAaD,YAAY3C,IAGzBC,EAAUkC,GAxLW,MAyLblD,GAAK,YACbgB,EAAQsD,KAAO1C,EACfZ,EAAQqC,UAAUC,IAAI,UACtBtC,EAAQqC,UAAUC,IAAI,aACtBtC,EAAQ0C,YACNI,GAAeb,EAAQsB,SAAWvB,EAAeuB,UAEnD,IAAIE,EAA2BvB,GAjMP,QAkMxBuB,EAAYhB,UAAY,QACxBgB,EAAYf,YACVI,GAAeb,EAAQjC,SAAWgC,EAAehC,UAEnDA,EAAQ0C,YAAYe,GAEpBd,EAAaD,YAAY1C,IAGzBC,EAAOiC,GA1Mc,MA2MhBlD,GAAK,SACViB,EAAKqD,KAAO1C,EACZX,EAAKoC,UAAUC,IAAI,UACnBrC,EAAKoC,UAAUC,IAAI,aACnB,IA6BF,EA7BMoB,EAAwBxB,GAhNJ,QAiNxBwB,EAASjB,UAAY,QACrBiB,EAAShB,YAAYI,GAAeb,EAAQhC,MAAQ+B,EAAe/B,OACnEA,EAAKyC,YAAYgB,GACjBzD,EAAKyC,YACHI,GAAeb,EAAQ0B,UAAY3B,EAAe2B,WAGpDhB,EAAaD,YAAYzC,IAGzBI,EAAW6B,GA1NU,MA2NZlD,GAAK,SACdqB,EAASiD,KAAO1C,EAChBP,EAASgC,UAAUC,IAAI,UACvBjC,EAASgC,UAAUC,IAAI,SACvBjC,EAASqC,YAAYI,GAAeb,EAAQ2B,MAAQ5B,EAAe4B,OAEnEjB,EAAaD,YAAYrC,GAEzBsC,EAAaD,YAAYmB,MAGzB/B,SAASgC,KAAKpB,YAAYvD,GAG1BqD,EAAgBuB,iBAAiB,QAASC,KAK1C5E,EAAW8C,MACFC,MAAMC,QAAU,OACzBhD,EAASJ,GAAK,aACdI,EAASiD,UAAUC,IAAI,YAGvB,UAAIpD,SAAJ,aAAI,EAAQqD,OACVnD,EAASiD,UAAUC,IAAI,UAIzB,IAAIE,EAA+BN,KACnCM,EAAgBC,UAAY,eAC5BrD,EAASsD,YAAYF,GAGrB,IAAIG,EAA4BT,KAChCS,EAAaF,UAAY,kBACzBrD,EAASsD,YAAYC,IAGrBrD,EAAW4C,GAAc,WAChBlD,GAAK,cACdM,EAASmD,UAAY,UACrBE,EAAaD,YAAYpD,IAGzBY,EAAWgC,GAzQU,MA0QZlD,GAAK,OACdkB,EAASoD,KAAO1C,EAChBV,EAASmC,UAAUC,IAAI,UACvBpC,EAASmC,UAAUC,IAAI,QAGvBpC,EAASiC,MAAMC,QAAU,OAEzBlC,EAASwC,YACPI,GAAeb,EAAQsB,SAAWvB,EAAeuB,UAEnD,IAAIU,EAA4B/B,GAtRR,QAuRxB+B,EAAaxB,UAAY,QACzBwB,EAAavB,YACXI,GAAeb,EAAQ/B,UAAY8B,EAAe9B,WAEpDA,EAASwC,YAAYuB,GAErBtB,EAAaD,YAAYxC,IAGzBC,EAAK+B,GA/RgB,MAgSlBlD,GAAK,OACRmB,EAAGmD,KAAO1C,EACVT,EAAGkC,UAAUC,IAAI,UACjBnC,EAAGkC,UAAUC,IAAI,QACjBnC,EAAGuC,YAAYI,GAAeb,EAAQsB,SAAWvB,EAAeuB,UAChE,IAAIW,EAAsBhC,GAtSF,QAuSxBgC,EAAOzB,UAAY,QACnByB,EAAOxB,YACLI,GAAeb,EAAQkC,UAAYnC,EAAemC,WAEpDhE,EAAGuC,YAAYwB,GAEfvB,EAAaD,YAAYvC,IAGzBC,EAAQ8B,GA/Sa,MAgTflD,GAAK,UACXoB,EAAMkD,KAAO1C,EACbR,EAAMiC,UAAUC,IAAI,UACpBlC,EAAMiC,UAAUC,IAAI,WACpBlC,EAAMsC,YACJI,GAAeb,EAAQsB,SAAWvB,EAAeuB,UAEnD,IAAIa,EAAyBlC,GAxTL,QAyTxBkC,EAAU3B,UAAY,QACtB2B,EAAU1B,YACRI,GAAeb,EAAQ7B,OAAS4B,EAAe5B,QAEjDA,EAAMsC,YAAY0B,GAElBzB,EAAaD,YAAYtC,IAGzBhF,EAAO8G,GAjUc,MAkUhBlD,GAAK,SACV5D,EAAKkI,KAAO1C,EACZxF,EAAKiH,UAAUC,IAAI,UACnBlH,EAAKiH,UAAUC,IAAI,aACnB,IAAI+B,EAAwBnC,GAvUJ,QAwUxBmC,EAAS5B,UAAY,QACrB4B,EAAS3B,YAAYI,GAAeb,EAAQ7G,MAAQ4G,EAAe5G,OACnEA,EAAKsH,YAAY2B,GACjBjJ,EAAKsH,YACHI,GAAeb,EAAQqC,aAAetC,EAAesC,cAGvD3B,EAAaD,YAAYtH,IAGzBkF,EAAU4B,GAjVW,MAkVblD,GAAK,aACbsB,EAAQgD,KAAO1C,EACfN,EAAQ+B,UAAUC,IAAI,UACtBhC,EAAQ+B,UAAUC,IAAI,SACtBhC,EAAQoC,YAAYI,GAAeb,EAAQ2B,MAAQ5B,EAAe4B,OAElEjB,EAAaD,YAAYpC,GAEzBqC,EAAaD,YAAYmB,MAGzB/B,SAASgC,KAAKpB,YAAYtD,GAG1BoD,EAAgBuB,iBAAiB,QAASC,IAI5ClC,SAASiC,iBAAiB,QAASQ,IAO/BC,EAAe,WAAqD,IAApDC,EAAoD,uDAnXhD,OAmXcC,EAAkC,uCAExE,GArXwB,SAqXpBD,EAAoB,SAEtB,GAAIC,EAAOpB,MAAQoB,EAAOpB,KAAKqB,cAAcC,WAAWnE,GAAS,CAC/DK,EAAO+D,mBACLH,EAAOpB,KAAKwB,MAAM,KAAK,GAAGA,MAAMrE,GAAQ,GAAGsE,QAI7C,IAAIC,EADE,IAAIC,IAAIP,EAAOpB,MACgB4B,aAGrClE,EAAKgE,EAAUlJ,IAAI,MACnBmF,EAAM+D,EAAUlJ,IAAI,OACpBoF,EAAU8D,EAAUlJ,IAAI,WACxBqF,EAAW6D,EAAUlJ,IAAI,aAIzBgF,EACE4D,EAAOS,aAAa,gBACpB,IACAT,EAAOS,aAAa,eAEhB,IAAIF,IAAIxE,EAASxC,mBAAmB6C,IAG1CE,EACE0D,EAAOS,aAAa,mBACpB,IACAT,EAAOS,aAAa,kBAGtBlE,EACEyD,EAAOS,aAAa,oBACpB,IACAT,EAAOS,aAAa,mBAGtBjE,EAAUwD,EAAOS,aAAa,gBAG9BhE,EAAWuD,EAAOS,aAAa,aAIjC,QACmC,KAAjC,UAAOjG,SAAP,aAAO,EAAQkG,iBACW,KAApB,QAAN,EAAAlG,SAAA,eAAQkG,eACR,CAEA,IAAKC,GAAevE,EAAKgE,MAAM,MAAO,OAGlC9D,IAAOqE,GAAerE,EAAG8D,MAAM,QAAO9D,EAAK,IAC3CC,IAAQoE,GAAepE,EAAI6D,MAAM,QAAO7D,EAAM,IAIpD5B,EAAMiG,UAAYxE,EAAKgE,MAAM,KAAKpG,KAAK,SAGvCsC,GACMzB,EAAS4C,MAAMC,QAAU,QAC1BzC,EAAQ2F,UAAYtE,EAAG8D,MAAM,KAAKpG,KAAK,UACvCa,EAAS4C,MAAMC,QAAU,OAE9BnB,GACMzB,EAAU2C,MAAMC,QAAU,QAC3BxC,EAAS0F,UAAYrE,EAAI6D,MAAM,KAAKpG,KAAK,UACzCc,EAAU2C,MAAMC,QAAU,OAE/BlB,GACMzB,EAAc0C,MAAMC,QAAU,QAC/BvC,EAAa0F,YAAcrE,GAC3BzB,EAAc0C,MAAMC,QAAU,OAEnCjB,GACMzB,EAAWyC,MAAMC,QAAU,QAC5BtC,EAAUyF,YAAcpE,GACxBzB,EAAWyC,MAAMC,QAAU,OAGhCrC,EAAMgE,iBAAiB,QAASyB,GAEhCxF,EAAQ+D,iBAAiB,QAAS0B,GAElC1E,EAAW2E,GAAY5E,GACvBb,EAAK8D,iBAAiB,QAAS4B,GAE/BtF,EAAS0D,iBAAiB,SAAS,kBAAMH,EAAK9C,MAGhD,GAhduB,QAgdnB2D,EAAmB,CAarB,GAZIC,EAAOpB,MAAQoB,EAAOpB,KAAKqB,cAAcC,WAAWlE,GACtDU,EAAMyD,mBAAmBH,EAAOpB,KAAKwB,MAAM,KAAK,GAAGA,MAAMpE,GAAK,GAAGqE,QACxDL,EAAOpB,MAAQoB,EAAOpB,KAAKqB,cAAcC,WAAWjE,GAC7DS,EAAMyD,mBACJH,EAAOpB,KAAKwB,MAAM,KAAK,GAAGA,MAAMnE,GAAQ,GAAGoE,QAEpCL,EAAOkB,aAAa,cAC7BxE,EAAMsD,EAAOS,aAAa,YACpBT,EAAOS,aAAa,cAIvBU,GAAYzE,GAAM,OAIrBC,EADEqD,EAAOkB,aAAa,iBACHlB,EAAOS,aAAa,iBAEpB,KAIjBT,EAAOkB,aAAa,gBACtBtE,EAAgBoD,EAAOS,aAAa,eAItC7F,EAASgG,UAAYlE,EAGrBjB,EAAG4D,iBAAiB,QAAS+B,GAGzBzE,GACFS,SAASiE,eAAe,QAAQ5D,MAAMC,QAAU,QAChDlC,EAAS6D,iBAAiB,QAASiC,IAEnClE,SAASiE,eAAe,QAAQ5D,MAAMC,QAAU,OAGlDhC,EAAM2D,iBAAiB,QAASkC,GAEhC7K,EAAK2I,iBAAiB,QAASmC,GAE/B5F,EAAQyD,iBAAiB,SAAS,kBAAMH,EAAKxC,MAI/C+E,GAAW1B,GAGX3C,SAASiC,iBAAiB,UAAWqC,KAIjCZ,EAAY,WAEhB,IAAIa,EACF,8DACApI,mBAAmB6C,GAGjBE,IAAIqF,EAAWA,EAAShI,OAAO,OAASJ,mBAAmB+C,KAC3DC,IAAKoF,EAAWA,EAAShI,OAAO,QAAUJ,mBAAmBgD,KAC7DC,IAASmF,EAAWA,EAAShI,OAAO,YAAc6C,IAClDC,IAAUkF,EAAWA,EAAShI,OAAO,SAAW8C,IAGpDmF,OAAOrG,KAAKoG,EAAU,UAGtBrC,MAGIyB,EAAc,WAElB,IAAIc,EACF,8DACAtI,mBAAmB6C,GAGjBI,IAASqF,EAAaA,EAAWlI,OAAO,YAAc6C,IACtDC,IAAUoF,EAAaA,EAAWlI,OAAO,SAAW8C,IAGxDmF,OAAOrG,KAAKsG,EAAY,UAGxBvC,MAGI2B,EAAc,WAClBa,GAAczF,GACdiD,MAGIgC,EAAe,WAEnB,IAAIS,EAAgB,gBAAkBpF,EAGtCiF,OAAOrG,KAAKwG,EAAO,UAGnBzC,MAGIiC,EAAY,WAChB,IAGIS,EAAmB,UAHe,KAAlBpF,EAAuBA,EAAgBF,GAM3DkF,OAAOrG,KAAKyG,EAAU,UAGtB1C,MAGI8B,EAAe,WAEnB,IAAIa,EAAgB,iBAAmBvF,EAMvCkF,OAAOrG,KAAK0G,EAAO,UAGnB3C,MAGIkC,EAAc,WAClB,IAAIU,EAAkB,OAASxF,EAC/BkF,OAAOrG,KAAK2G,GACZ5C,MAGIJ,EAAO,SAAClG,GAEZ,IAAImJ,EADJC,GAAgBpJ,IAGcmJ,EAA9BE,GAlmBwB,QAkmBmB1G,EAA0BC,GAC1DiF,YAAc,SACzByB,YAAW,WACTH,EAAWtB,YAAc,OAEzBvB,OACC,MAICiD,EAAW,SAACC,GAA4D,IAAtCzC,EAAsC,uDA5mBpD,OA6mBpBnB,EAAgB4D,EAA4B5D,KAGhD,MAhnBwB,SAgnBpBmB,EAGCnB,GACCA,EAAKqB,cAAcC,WAAWnE,KAC7ByG,EAAQ7E,UAAU8E,SAAS,cAC7BD,EAAQtB,aAAa,kBAElBtC,GAAuD,YAA/C4D,EAAQ/B,aAAa,QAAQR,eAEpCuC,EAAQ7E,WAAa6E,EAAQ7E,UAAU8E,SAAS,WAznBlC,QA8nBnB1C,IAGCnB,IACEA,EAAKqB,cAAcC,WAAWlE,IAC7B4C,EAAKqB,cAAcC,WAAWjE,MAC/BuG,EAAQ7E,UAAU8E,SAAS,cAC7BD,EAAQtB,aAAa,aAEpBtC,GAC+C,YAA/C4D,EAAQ/B,aAAa,QAAQR,eAE9BuC,EAAQ7E,WAAa6E,EAAQ7E,UAAU8E,SAAS,YAuBjD5C,EAAoB,SAAC6C,GAEzB,IAAKtF,SAASqF,SAAShI,KAAiB2C,SAASqF,SAAS/H,GACxD,OAAO,EAGT,GAAI2H,GAxqBoB,SAwqBUA,GAvqBX,OAuqBsC,OAAO,EAGpE,IAAIM,EACDD,EAAME,cAAgBF,EAAME,gBAC7BA,GAAaF,EAAMG,QA6BrB,OA3BIF,GACFA,EAAKG,SAAQ,SAACN,GACZ,QAAIA,aAAmBO,cAAgBP,aAAmBQ,UAItDT,EAASC,EArrBO,SAurBlBE,EAAMO,iBAGNnD,EA1rBkB,OA0rBM0C,IAEjB,GAELD,EAASC,EA7rBM,QA+rBjBE,EAAMO,iBAGNnD,EAlsBiB,MAksBM0C,IAEhB,QAPT,OAYG,GAOHd,GAAgB,SAACwB,GAErB,GAAIb,GAntBoB,QAotBtB,OAAQa,EAAcC,SACpB,KAAK,GAEH7D,KACA,MACF,KAAK,GAEHwB,IACA,MACF,KAAK,GAEHC,IACA,MACF,KAAK,GACL,KAAK,GAEHE,IACA,MACF,KAAK,GAEH/B,EAAK9C,GACL,MACF,QACE,YAEC,GAAIiG,GA5uBY,OA6uBrB,OAAQa,EAAcC,SACpB,KAAK,GAEH7D,KACA,MACF,KAAK,GAEHgC,IACA,MACF,KAAK,GAEHF,IACA,MACF,KAAK,GACL,KAAK,GAEHI,IACA,MACF,KAAK,GAEHtC,EAAKxC,GACL,MACF,QACE,SAOF+E,GAAa,WAA4B,IAA3B1B,EAA2B,uDA5wBrB,OA8wBxBqD,GAAgBrD,EAAM,SAIlBT,GAAa,WAEjB8D,GApxBwB,OAoxBG,QAC3BA,GApxBuB,MAoxBG,QAG1BhG,SAASiG,oBAAoB,UAAW3B,KAIpCW,GAAkB,WAA+B,IAA9BtC,EAA8B,uDA5xB7B,OA6xBxB,MAAiC,SAA1BuD,GAAgBvD,IAGnBZ,GAAY,WAEhB,IAAIoE,EAAsB/F,GA1xBH,KAiyBvB,OANA+F,EAAG3E,KAAO,sCACV2E,EAAGxF,UAAY,OACfwF,EAAGV,OAAS,SACZU,EAAGC,IAAM,sBACTD,EAAGvF,YAAYI,GAAe,eAEvBmF,GAIH/F,GAAgB,eAACgF,EAAD,uDAAmB,MAAnB,OACpBpF,SAASI,cAAcgF,IAGnBpE,GAAiB,SAACoE,GAAD,OACrBpF,SAASgB,eAAeoE,IAGpBV,GAAgB,SAAC2B,GAAD,OACnB7B,OAAO8B,SAAS9E,KAAO7C,EAAS4H,KAAKF,IAGlCzC,GAAc,SAAC4C,GAAD,OAA2B1K,KAAK0K,IAG9CC,GAAsB,WAA8B,IAA7B9D,EAA6B,uDA5zBhC,OA6zBxB,MA5zBuB,QA4zBhBA,EAAoBrF,EAAWD,GAIlC6I,GAAkB,WAAqC,IAApCQ,EAAoC,uDAj0BnC,OAk0BxB,OAAOD,GAAoBC,GAAKrG,MAAMC,SAIlC0F,GAAkB,WAAoD,IAAnDU,EAAmD,uDAt0BlD,OAs0BwBtM,EAA0B,uCAC1E,OAAQqM,GAAoBC,GAAKrG,MAAMC,QAAUlG,GAI7CoL,GAAe,SACnBmB,GAIA,IAFA,IAAIpB,EAAO,GAEJoB,GAAI,CAGT,GAFApB,EAAKjK,KAAKqL,GAES,SAAfA,EAAGC,QAGL,OAFArB,EAAKjK,KAAK0E,UACVuF,EAAKjK,KAAKkJ,QACHe,EAGToB,EAAKA,EAAGE,gBAKNvD,GAAgB,SAACkD,GAAD,MACpB,4JAA4JM,KAC1JN,IAIEjD,GAAiB,SAACwD,GAAD,OAA4BA,EAAIC,MAAM1D,KAGvDS,GAAc,SAACzE,GAAD,MAClB,+CAA+CwH,KAAKxH,IAGhD0F,GAAkB,SAACiC,GACvB,IAAIN,EAAuBvG,GAAc,YACzCuG,EAAGvM,MAAQ6M,EACXN,EAAGO,aAAa,WAAY,IAC5BP,EAAGtG,MAAM8G,SAAW,WACpBR,EAAGtG,MAAM+G,KAAO,UAChBpH,SAASgC,KAAKpB,YAAY+F,GAC1B,IAAIU,EACFrH,SAASsH,eAAeC,WAAa,GACjCvH,SAASsH,eAAeE,WAAW,GAKzC,OAHAb,EAAGc,SACHzH,SAAS0H,YAAY,QACrB1H,SAASgC,KAAK2F,YAAYhB,KACtBU,IACFrH,SAASsH,eAAeM,kBACxB5H,SAASsH,eAAeO,SAASR,IAC1B,KAiBX,SAAgBjK,GAZI,IAEd0K,EAYAtD,QAA4B,oBAAXA,UAZjBsD,EAAqC1H,GACvC,UAEelD,GAAK,eACtB4K,EAAiBnF,KAAO,WACxBmF,EAAiBlH,YAAYI,GAAevC,IAC5CuB,SAAS+H,KAAKnH,YAAYkH,IAWpB1K,aAAJ,EAAIA,EAAQ4K,WACVhI,SAASiC,iBAAiB7E,EAAO4K,WAAW,WAC1CvI,EAAWrC,MAGbqC,EAAWrC,KCr6BjB,CALqB,CACnB4K,UAAW,mBACXvH,MAAM","file":"mailgo.dark.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","import {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nimport * as i18n from \"../i18n/i18n.json\";\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (mailgoConfig?: MailgoConfig): void => {\n // set the global config\n config = mailgoConfig;\n\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.includes(config.lang)) {\n lang = config.lang;\n }\n\n // if is defined use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.includes(htmlLang)) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo mail\n {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n modalMailto.classList.add(\"m-dark\");\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n // mailgo tel\n {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n modalTel.classList.add(\"m-dark\");\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in || defaultStrings.open_in));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nconst mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (mailgo.href && mailgo.href.toLowerCase().startsWith(MAILTO)) {\n mail = decodeURIComponent(\n mailgo.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgo.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgo.getAttribute(\"data-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgo.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgo.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgo.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgo.getAttribute(\"data-body\");\n }\n\n // TODO test this\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"
\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n if (type === TEL_TYPE) {\n if (mailgo.href && mailgo.href.toLowerCase().startsWith(TEL)) {\n tel = decodeURIComponent(mailgo.href.split(\"?\")[0].split(TEL)[1].trim());\n } else if (mailgo.href && mailgo.href.toLowerCase().startsWith(CALLTO)) {\n tel = decodeURIComponent(\n mailgo.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgo.hasAttribute(\"data-tel\")) {\n tel = mailgo.getAttribute(\"data-tel\");\n msg = mailgo.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgo.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgo.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgo.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgo.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n};\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nconst isMailgo = (element: HTMLElement, type: string = MAIL_TYPE): boolean => {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n};\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nconst mailgoCheckRender = (event: Event): boolean => {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n};\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) => {\n return type === TEL_TYPE ? modalTel : modalMailto;\n};\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string => {\n return getModalHTMLElement(ref).style.display;\n};\n\n// get display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): string => {\n return (getModalHTMLElement(ref).style.display = value);\n};\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\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(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(config?: MailgoConfig): void {\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n document.addEventListener(config.initEvent, () => {\n mailgoInit(config);\n });\n } else {\n mailgoInit(config);\n }\n }\n}\n\nexport default mailgo;\n","// webpack > dist/mailgo.min.js\n\nimport mailgo from \"../src/mailgo\";\n\n// call init mailgo attached to the event DOMContentLoaded\nconst mailgoConfig = {\n initEvent: \"DOMContentLoaded\",\n dark: true,\n};\n\nmailgo(mailgoConfig);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?6043","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.dist.dark.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","result","toString","___CSS_LOADER_API_IMPORT___","push","useSourceMap","list","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","config","modalMailto","modalTel","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","mailgoCSS","require","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","mailgoConfig","translations","i18n","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","dark","enableDarkMode","disableDarkMode","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in","gmailSpan","outlookSpan","openSpan","_default","copy","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgoElement","toLowerCase","startsWith","decodeURIComponent","split","trim","urlParams","URL","searchParams","getAttribute","validateEmail","validateEmails","innerHTML","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","getElementById","openTelegram","openSkype","callDefault","contains","showMailgo","mailgoKeydown","gmailUrl","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","activeCopy","copyToClipboard","mailgoIsShowing","setTimeout","isMailgo","element","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","getModalHTMLElement","ref","remove","el","tagName","parentElement","test","arr","every","str","setAttribute","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoCSSElement","head","initEvent"],"mappings":"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","file":"mailgo.dark.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","import {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nimport * as i18n from \"../i18n/i18n.json\";\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (mailgoConfig?: MailgoConfig): void => {\n // set the global config\n config = mailgoConfig;\n\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.includes(config.lang)) {\n lang = config.lang;\n }\n\n // if is defined use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.includes(htmlLang)) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo mail\n {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(MAIL_TYPE);\n } else {\n disableDarkMode(MAIL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n // mailgo tel\n {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(TEL_TYPE);\n } else {\n disableDarkMode(TEL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in || defaultStrings.open_in));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nconst mailgoRender = (\n type = MAIL_TYPE,\n mailgoElement: HTMLLinkElement\n): void => {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(MAILTO)\n ) {\n mail = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgoElement.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgoElement.getAttribute(\"data-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgoElement.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgoElement.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgoElement.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgoElement.getAttribute(\"data-body\");\n }\n\n // TODO test this\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"
\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n else if (type === TEL_TYPE) {\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(TEL)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(TEL)[1].trim()\n );\n } else if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(CALLTO)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgoElement.hasAttribute(\"data-tel\")) {\n tel = mailgoElement.getAttribute(\"data-tel\");\n msg = mailgoElement.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // dark mode as class of the element\n // check only if is present to set the dark mode, because if the dark mode is set in config it have not to be disabled\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n};\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nconst isMailgo = (element: HTMLElement, type: string = MAIL_TYPE): boolean => {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an
element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n};\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nconst mailgoCheckRender = (event: Event): boolean => {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n};\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) =>\n type === TEL_TYPE ? modalTel : modalMailto;\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string =>\n getModalHTMLElement(ref).style.display;\n\n// get display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): string =>\n (getModalHTMLElement(ref).style.display = value);\n\n// enable dark mode\nconst enableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.add(\"m-dark\");\n\n// disable dark mode\nconst disableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.remove(\"m-dark\");\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\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(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(config?: MailgoConfig): void {\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n document.addEventListener(config.initEvent, () => {\n mailgoInit(config);\n });\n } else {\n mailgoInit(config);\n }\n }\n}\n\nexport default mailgo;\n","// webpack > dist/mailgo.min.js\n\nimport mailgo from \"../src/mailgo\";\n\n// call init mailgo attached to the event DOMContentLoaded\nconst mailgoConfig = {\n initEvent: \"DOMContentLoaded\",\n dark: true,\n};\n\nmailgo(mailgoConfig);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/mailgo.min.js b/dist/mailgo.min.js index 9f78785..1b30987 100644 --- a/dist/mailgo.min.js +++ b/dist/mailgo.min.js @@ -1,2 +1,2 @@ -window.mailgo=function(e){var t={};function a(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(o,n,function(t){return e[t]}.bind(null,n));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=4)}([function(e){e.exports=JSON.parse('{"languages":["en","it","es"],"translations":{"en":{"open_in":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"subject ","body_":"body ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"call","open":"open","_default":" default","_as_default":" as default","copy":"copy"},"it":{"open_in":"apri con ","cc_":"cc ","bcc_":"ccn ","subject_":"oggetto ","body_":"testo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"chiama","open":"apri","_default":" ","_as_default":" ","copy":"copia"},"es":{"open_in":"abrir con ","cc_":"cc ","bcc_":"cco ","subject_":"asunto ","body_":"cuerpo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"llamar","open":"abrir","_default":" predefinido","_as_default":" por defecto","copy":"copiar"}}}')},function(e,t,a){var o=a(2);e.exports="string"==typeof o?o:o.toString()},function(e,t,a){(t=a(3)(!1)).push([e.i,'.m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\n',""]),e.exports=t},function(e,t,a){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=function(e,t){var a=e[1]||"",o=e[3];if(!o)return a;if(t&&"function"==typeof btoa){var n=(i=o,l=btoa(unescape(encodeURIComponent(JSON.stringify(i)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),"/*# ".concat(c," */")),d=o.sources.map((function(e){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(e," */")}));return[a].concat(d).concat([n]).join("\n")}var i,l,c;return[a].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(a,"}"):a})).join("")},t.i=function(e,a,o){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(o)for(var d=0;d0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;if("mail"===e){var a,n;if(t.href&&t.href.toLowerCase().startsWith(E)){I=decodeURIComponent(t.href.split("?")[0].split(E)[1].trim());var d=new URL(t.href).searchParams;O=d.get("cc"),T=d.get("bcc"),z=d.get("subject"),W=d.get("body")}else I=t.getAttribute("data-address")+"@"+t.getAttribute("data-domain"),new URL(E+encodeURIComponent(I)),O=t.getAttribute("data-cc-address")+"@"+t.getAttribute("data-cc-domain"),T=t.getAttribute("data-bcc-address")+"@"+t.getAttribute("data-bcc-domain"),z=t.getAttribute("data-subject"),W=t.getAttribute("data-body");if(void 0===(null===(a=o)||void 0===a?void 0:a.validateEmail)||!0===(null===(n=o)||void 0===n?void 0:n.validateEmail)){if(!fe(I.split(",")))return;O&&!fe(O.split(","))&&(O=""),T&&!fe(T.split(","))&&(T="")}i.innerHTML=I.split(",").join("
"),O?(c.style.display="block",p.innerHTML=O.split(",").join("
")):c.style.display="none",T?(r.style.display="block",u.innerHTML=T.split(",").join("
")):r.style.display="none",z?(s.style.display="block",f.textContent=z):s.style.display="none",W?(m.style.display="block",h.textContent=W):m.style.display="none",g.addEventListener("click",J),b.addEventListener("click",Z),M=ce(I),v.addEventListener("click",$),L.addEventListener("click",(function(){return V(I)}))}if("tel"===e){if(t.href&&t.href.toLowerCase().startsWith(N)?P=decodeURIComponent(t.href.split("?")[0].split(N)[1].trim()):t.href&&t.href.toLowerCase().startsWith(S)?P=decodeURIComponent(t.href.split("?")[0].split(S)[1].trim()):t.hasAttribute("data-tel")&&(P=t.getAttribute("data-tel"),t.getAttribute("data-msg")),!he(P))return;H=t.hasAttribute("data-telegram")?t.getAttribute("data-telegram"):null,t.hasAttribute("data-skype")&&(D=t.getAttribute("data-skype")),l.innerHTML=P,k.addEventListener("click",K),H?(document.getElementById("m-tg").style.display="block",y.addEventListener("click",F)):document.getElementById("m-tg").style.display="none",C.addEventListener("click",q),w.addEventListener("click",Q),_.addEventListener("click",(function(){return V(P)}))}te(e),document.addEventListener("keydown",ee)},J=function(){var e="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(I);O&&(e=e.concat("&cc="+encodeURIComponent(O))),T&&(e=e.concat("&bcc="+encodeURIComponent(T))),z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},Z=function(){var e="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(I);z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},$=function(){le(M),ae()},F=function(){var e="https://t.me/"+H;window.open(e,"_blank"),ae()},q=function(){var e="skype:"+(""!==D?D:P);window.open(e,"_blank"),ae()},K=function(){var e="https://wa.me/"+P;window.open(e,"_blank"),ae()},Q=function(){var e="tel:"+P;window.open(e),ae()},V=function(e){var t;ge(e),(t=oe("mail")?L:_).textContent="copied",setTimeout((function(){t.textContent="copy",ae()}),999)},X=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",a=e.href;return"mail"===t?a&&a.toLowerCase().startsWith(E)&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-address")&&(a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo")):"tel"===t&&(a&&(a.toLowerCase().startsWith(N)||a.toLowerCase().startsWith(S))&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-tel")&&a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo"))},Y=function(e){if(!document.contains(n)||!document.contains(d))return!1;if(oe("mail")||oe("tel"))return!1;var t=e.composedPath&&e.composedPath()||pe(e.target);return t&&t.forEach((function(t){return!(t instanceof HTMLDocument||t instanceof Window)&&(X(t,"mail")?(e.preventDefault(),G("mail",t),!0):X(t,"tel")?(e.preventDefault(),G("tel",t),!0):void 0)})),!1},ee=function(e){if(oe("mail"))switch(e.keyCode){case 27:ae();break;case 71:J();break;case 79:Z();break;case 32:case 13:$();break;case 67:V(I);break;default:return}else if(oe("tel"))switch(e.keyCode){case 27:ae();break;case 84:F();break;case 87:K();break;case 32:case 13:Q();break;case 67:V(P);break;default:return}},te=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";me(e,"flex")},ae=function(){me("mail","none"),me("tel","none"),document.removeEventListener("keydown",ee)},oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===se(e)},ne=function(){var e=de("a");return e.href="https://mailgo.dev?ref=mailgo-modal",e.className="m-by",e.target="_blank",e.rel="noopener noreferrer",e.appendChild(ie("mailgo.dev")),e},de=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(e)},ie=function(e){return document.createTextNode(e)},le=function(e){return window.location.href=E+atob(e)},ce=function(e){return btoa(e)},re=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===e?d:n},se=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).style.display},me=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;return re(e).style.display=t},pe=function(e){for(var t=[];e;){if(t.push(e),"HTML"===e.tagName)return t.push(document),t.push(window),t;e=e.parentElement}},ue=function(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)},fe=function(e){return e.every(ue)},he=function(e){return/^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(e)},ge=function(e){var t=de("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t);var a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return t.select(),document.execCommand("copy"),document.body.removeChild(t),!!a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a),!0)};(function(e){var t;window&&"undefined"!=typeof window&&((t=de("style")).id="mailgo-style",t.type="text/css",t.appendChild(ie(A)),document.head.appendChild(t),(null==e?void 0:e.initEvent)?document.addEventListener(e.initEvent,(function(){B(e)})):B(e))})({initEvent:"DOMContentLoaded"})}]); +window.mailgo=function(e){var t={};function a(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(o,n,function(t){return e[t]}.bind(null,n));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=4)}([function(e){e.exports=JSON.parse('{"languages":["en","it","es"],"translations":{"en":{"open_in":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"subject ","body_":"body ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"call","open":"open","_default":" default","_as_default":" as default","copy":"copy"},"it":{"open_in":"apri con ","cc_":"cc ","bcc_":"ccn ","subject_":"oggetto ","body_":"testo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"chiama","open":"apri","_default":" ","_as_default":" ","copy":"copia"},"es":{"open_in":"abrir con ","cc_":"cc ","bcc_":"cco ","subject_":"asunto ","body_":"cuerpo ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"llamar","open":"abrir","_default":" predefinido","_as_default":" por defecto","copy":"copiar"}}}')},function(e,t,a){var o=a(2);e.exports="string"==typeof o?o:o.toString()},function(e,t,a){(t=a(3)(!1)).push([e.i,'.m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\n',""]),e.exports=t},function(e,t,a){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=function(e,t){var a=e[1]||"",o=e[3];if(!o)return a;if(t&&"function"==typeof btoa){var n=(l=o,d=btoa(unescape(encodeURIComponent(JSON.stringify(l)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(d),"/*# ".concat(c," */")),i=o.sources.map((function(e){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(e," */")}));return[a].concat(i).concat([n]).join("\n")}var l,d,c;return[a].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(a,"}"):a})).join("")},t.i=function(e,a,o){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(o)for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;if("mail"===e){var a,n;if(t.href&&t.href.toLowerCase().startsWith(E)){I=decodeURIComponent(t.href.split("?")[0].split(E)[1].trim());var i=new URL(t.href).searchParams;O=i.get("cc"),T=i.get("bcc"),z=i.get("subject"),W=i.get("body")}else I=t.getAttribute("data-address")+"@"+t.getAttribute("data-domain"),new URL(E+encodeURIComponent(I)),O=t.getAttribute("data-cc-address")+"@"+t.getAttribute("data-cc-domain"),T=t.getAttribute("data-bcc-address")+"@"+t.getAttribute("data-bcc-domain"),z=t.getAttribute("data-subject"),W=t.getAttribute("data-body");if(void 0===(null===(a=o)||void 0===a?void 0:a.validateEmail)||!0===(null===(n=o)||void 0===n?void 0:n.validateEmail)){if(!ge(I.split(",")))return;O&&!ge(O.split(","))&&(O=""),T&&!ge(T.split(","))&&(T="")}l.innerHTML=I.split(",").join("
"),O?(c.style.display="block",p.innerHTML=O.split(",").join("
")):c.style.display="none",T?(r.style.display="block",u.innerHTML=T.split(",").join("
")):r.style.display="none",z?(s.style.display="block",f.textContent=z):s.style.display="none",W?(m.style.display="block",h.textContent=W):m.style.display="none",g.addEventListener("click",J),v.addEventListener("click",Z),M=ce(I),b.addEventListener("click",$),L.addEventListener("click",(function(){return V(I)}))}else if("tel"===e){if(t.href&&t.href.toLowerCase().startsWith(N)?P=decodeURIComponent(t.href.split("?")[0].split(N)[1].trim()):t.href&&t.href.toLowerCase().startsWith(S)?P=decodeURIComponent(t.href.split("?")[0].split(S)[1].trim()):t.hasAttribute("data-tel")&&(P=t.getAttribute("data-tel"),t.getAttribute("data-msg")),!ve(P))return;H=t.hasAttribute("data-telegram")?t.getAttribute("data-telegram"):null,t.hasAttribute("data-skype")&&(D=t.getAttribute("data-skype")),d.innerHTML=P,k.addEventListener("click",K),H?(document.getElementById("m-tg").style.display="block",y.addEventListener("click",F)):document.getElementById("m-tg").style.display="none",C.addEventListener("click",q),w.addEventListener("click",Q),_.addEventListener("click",(function(){return V(P)}))}t.classList.contains("dark")&&pe(e),te(e),document.addEventListener("keydown",ee)},J=function(){var e="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(I);O&&(e=e.concat("&cc="+encodeURIComponent(O))),T&&(e=e.concat("&bcc="+encodeURIComponent(T))),z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},Z=function(){var e="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(I);z&&(e=e.concat("&subject="+z)),W&&(e=e.concat("&body="+W)),window.open(e,"_blank"),ae()},$=function(){de(M),ae()},F=function(){var e="https://t.me/"+H;window.open(e,"_blank"),ae()},q=function(){var e="skype:"+(""!==D?D:P);window.open(e,"_blank"),ae()},K=function(){var e="https://wa.me/"+P;window.open(e,"_blank"),ae()},Q=function(){var e="tel:"+P;window.open(e),ae()},V=function(e){var t;be(e),(t=oe("mail")?L:_).textContent="copied",setTimeout((function(){t.textContent="copy",ae()}),999)},X=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",a=e.href;return"mail"===t?a&&a.toLowerCase().startsWith(E)&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-address")&&(a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo")):"tel"===t&&(a&&(a.toLowerCase().startsWith(N)||a.toLowerCase().startsWith(S))&&!e.classList.contains("no-mailgo")||e.hasAttribute("data-tel")&&a&&"#mailgo"===e.getAttribute("href").toLowerCase()||e.classList&&e.classList.contains("mailgo"))},Y=function(e){if(!document.contains(n)||!document.contains(i))return!1;if(oe("mail")||oe("tel"))return!1;var t=e.composedPath&&e.composedPath()||fe(e.target);return t&&t.forEach((function(t){return!(t instanceof HTMLDocument||t instanceof Window)&&(X(t,"mail")?(e.preventDefault(),G("mail",t),!0):X(t,"tel")?(e.preventDefault(),G("tel",t),!0):void 0)})),!1},ee=function(e){if(oe("mail"))switch(e.keyCode){case 27:ae();break;case 71:J();break;case 79:Z();break;case 32:case 13:$();break;case 67:V(I);break;default:return}else if(oe("tel"))switch(e.keyCode){case 27:ae();break;case 84:F();break;case 87:K();break;case 32:case 13:Q();break;case 67:V(P);break;default:return}},te=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";me(e,"flex")},ae=function(){me("mail","none"),me("tel","none"),document.removeEventListener("keydown",ee)},oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===se(e)},ne=function(){var e=ie("a");return e.href="https://mailgo.dev?ref=mailgo-modal",e.className="m-by",e.target="_blank",e.rel="noopener noreferrer",e.appendChild(le("mailgo.dev")),e},ie=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(e)},le=function(e){return document.createTextNode(e)},de=function(e){return window.location.href=E+atob(e)},ce=function(e){return btoa(e)},re=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===e?i:n},se=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).style.display},me=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",t=arguments.length>1?arguments[1]:void 0;return re(e).style.display=t},pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).classList.add("m-dark")},ue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return re(e).classList.remove("m-dark")},fe=function(e){for(var t=[];e;){if(t.push(e),"HTML"===e.tagName)return t.push(document),t.push(window),t;e=e.parentElement}},he=function(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)},ge=function(e){return e.every(he)},ve=function(e){return/^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(e)},be=function(e){var t=ie("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t);var a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return t.select(),document.execCommand("copy"),document.body.removeChild(t),!!a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a),!0)};(function(e){var t;window&&"undefined"!=typeof window&&((t=ie("style")).id="mailgo-style",t.type="text/css",t.appendChild(le(A)),document.head.appendChild(t),(null==e?void 0:e.initEvent)?document.addEventListener(e.initEvent,(function(){B(e)})):B(e))})({initEvent:"DOMContentLoaded"})}]); //# sourceMappingURL=mailgo.min.js.map \ No newline at end of file diff --git a/dist/mailgo.min.js.map b/dist/mailgo.min.js.map index a797cd4..313ddfd 100644 --- a/dist/mailgo.min.js.map +++ b/dist/mailgo.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?6043","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.dist.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","result","toString","___CSS_LOADER_API_IMPORT___","push","useSourceMap","list","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","config","modalMailto","modalTel","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","mailgoCSS","require","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","mailgoConfig","translations","i18n","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","dark","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in","gmailSpan","outlookSpan","openSpan","_default","copy","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgo","toLowerCase","startsWith","decodeURIComponent","split","trim","urlParams","URL","searchParams","getAttribute","validateEmail","validateEmails","innerHTML","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","getElementById","openTelegram","openSkype","callDefault","showMailgo","mailgoKeydown","gmailUrl","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","activeCopy","copyToClipboard","mailgoIsShowing","setTimeout","isMailgo","element","contains","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","getModalHTMLElement","ref","el","tagName","parentElement","test","arr","every","str","setAttribute","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoCSSElement","head","initEvent"],"mappings":"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","file":"mailgo.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","import {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nimport * as i18n from \"../i18n/i18n.json\";\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (mailgoConfig?: MailgoConfig): void => {\n // set the global config\n config = mailgoConfig;\n\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.includes(config.lang)) {\n lang = config.lang;\n }\n\n // if is defined use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.includes(htmlLang)) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo mail\n {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n modalMailto.classList.add(\"m-dark\");\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n // mailgo tel\n {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n modalTel.classList.add(\"m-dark\");\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in || defaultStrings.open_in));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nconst mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (mailgo.href && mailgo.href.toLowerCase().startsWith(MAILTO)) {\n mail = decodeURIComponent(\n mailgo.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgo.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgo.getAttribute(\"data-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgo.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgo.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgo.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgo.getAttribute(\"data-body\");\n }\n\n // TODO test this\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"
\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n if (type === TEL_TYPE) {\n if (mailgo.href && mailgo.href.toLowerCase().startsWith(TEL)) {\n tel = decodeURIComponent(mailgo.href.split(\"?\")[0].split(TEL)[1].trim());\n } else if (mailgo.href && mailgo.href.toLowerCase().startsWith(CALLTO)) {\n tel = decodeURIComponent(\n mailgo.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgo.hasAttribute(\"data-tel\")) {\n tel = mailgo.getAttribute(\"data-tel\");\n msg = mailgo.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgo.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgo.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgo.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgo.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n};\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nconst isMailgo = (element: HTMLElement, type: string = MAIL_TYPE): boolean => {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an
element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n};\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nconst mailgoCheckRender = (event: Event): boolean => {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n};\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) => {\n return type === TEL_TYPE ? modalTel : modalMailto;\n};\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string => {\n return getModalHTMLElement(ref).style.display;\n};\n\n// get display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): string => {\n return (getModalHTMLElement(ref).style.display = value);\n};\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\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(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(config?: MailgoConfig): void {\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n document.addEventListener(config.initEvent, () => {\n mailgoInit(config);\n });\n } else {\n mailgoInit(config);\n }\n }\n}\n\nexport default mailgo;\n","// webpack > dist/mailgo.min.js\n\nimport mailgo from \"../src/mailgo\";\n\n// call init mailgo attached to the event DOMContentLoaded\nconst mailgoConfig = {\n initEvent: \"DOMContentLoaded\",\n};\n\nmailgo(mailgoConfig);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?6043","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.dist.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","result","toString","___CSS_LOADER_API_IMPORT___","push","useSourceMap","list","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","config","modalMailto","modalTel","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","mailgoCSS","require","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","mailgoConfig","translations","i18n","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","dark","enableDarkMode","disableDarkMode","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in","gmailSpan","outlookSpan","openSpan","_default","copy","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgoElement","toLowerCase","startsWith","decodeURIComponent","split","trim","urlParams","URL","searchParams","getAttribute","validateEmail","validateEmails","innerHTML","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","getElementById","openTelegram","openSkype","callDefault","contains","showMailgo","mailgoKeydown","gmailUrl","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","activeCopy","copyToClipboard","mailgoIsShowing","setTimeout","isMailgo","element","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","getModalHTMLElement","ref","remove","el","tagName","parentElement","test","arr","every","str","setAttribute","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoCSSElement","head","initEvent"],"mappings":"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","file":"mailgo.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","import {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nimport * as i18n from \"../i18n/i18n.json\";\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (mailgoConfig?: MailgoConfig): void => {\n // set the global config\n config = mailgoConfig;\n\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.includes(config.lang)) {\n lang = config.lang;\n }\n\n // if is defined use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.includes(htmlLang)) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo mail\n {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(MAIL_TYPE);\n } else {\n disableDarkMode(MAIL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n // mailgo tel\n {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(TEL_TYPE);\n } else {\n disableDarkMode(TEL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in || defaultStrings.open_in));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nconst mailgoRender = (\n type = MAIL_TYPE,\n mailgoElement: HTMLLinkElement\n): void => {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(MAILTO)\n ) {\n mail = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgoElement.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgoElement.getAttribute(\"data-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgoElement.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgoElement.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgoElement.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgoElement.getAttribute(\"data-body\");\n }\n\n // TODO test this\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"
\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n else if (type === TEL_TYPE) {\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(TEL)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(TEL)[1].trim()\n );\n } else if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(CALLTO)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgoElement.hasAttribute(\"data-tel\")) {\n tel = mailgoElement.getAttribute(\"data-tel\");\n msg = mailgoElement.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // dark mode as class of the element\n // check only if is present to set the dark mode, because if the dark mode is set in config it have not to be disabled\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n};\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nconst isMailgo = (element: HTMLElement, type: string = MAIL_TYPE): boolean => {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an
element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n};\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nconst mailgoCheckRender = (event: Event): boolean => {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n};\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) =>\n type === TEL_TYPE ? modalTel : modalMailto;\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string =>\n getModalHTMLElement(ref).style.display;\n\n// get display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): string =>\n (getModalHTMLElement(ref).style.display = value);\n\n// enable dark mode\nconst enableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.add(\"m-dark\");\n\n// disable dark mode\nconst disableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.remove(\"m-dark\");\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\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(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(config?: MailgoConfig): void {\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n document.addEventListener(config.initEvent, () => {\n mailgoInit(config);\n });\n } else {\n mailgoInit(config);\n }\n }\n}\n\nexport default mailgo;\n","// webpack > dist/mailgo.min.js\n\nimport mailgo from \"../src/mailgo\";\n\n// call init mailgo attached to the event DOMContentLoaded\nconst mailgoConfig = {\n initEvent: \"DOMContentLoaded\",\n};\n\nmailgo(mailgoConfig);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/mailgo.js b/lib/mailgo.js index 8309046..8fdfb75 100644 --- a/lib/mailgo.js +++ b/lib/mailgo.js @@ -325,7 +325,9 @@ var mailgo_mailgoInit = function mailgoInit(mailgoConfig) { modalMailto.classList.add("m-modal"); // if dark is in config if ((_config3 = config) === null || _config3 === void 0 ? void 0 : _config3.dark) { - modalMailto.classList.add("m-dark"); + enableDarkMode(MAIL_TYPE); + } else { + disableDarkMode(MAIL_TYPE); } // background @@ -447,7 +449,9 @@ var mailgo_mailgoInit = function mailgoInit(mailgoConfig) { modalTel.classList.add("m-modal"); // if dark is in config if ((_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.dark) { - modalTel.classList.add("m-dark"); + enableDarkMode(TEL_TYPE); + } else { + disableDarkMode(TEL_TYPE); } // background @@ -553,16 +557,16 @@ var mailgo_mailgoInit = function mailgoInit(mailgoConfig) { var mailgoRender = function mailgoRender() { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - var mailgo = arguments.length > 1 ? arguments[1] : undefined; + var mailgoElement = arguments.length > 1 ? arguments[1] : undefined; // mailgo mail if (type === MAIL_TYPE) { var _config5, _config6; // if the element href=^"mailto:" - if (mailgo.href && mailgo.href.toLowerCase().startsWith(MAILTO)) { - mail = decodeURIComponent(mailgo.href.split("?")[0].split(MAILTO)[1].trim()); - url = new URL(mailgo.href); + if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(MAILTO)) { + mail = decodeURIComponent(mailgoElement.href.split("?")[0].split(MAILTO)[1].trim()); + url = new URL(mailgoElement.href); var urlParams = url.searchParams; // optional parameters for the email cc = urlParams.get("cc"); @@ -572,16 +576,16 @@ var mailgoRender = function mailgoRender() { } else { // if the element href="#mailgo" or class="mailgo" // mail = data-address + @ + data-domain - mail = mailgo.getAttribute("data-address") + "@" + mailgo.getAttribute("data-domain"); + mail = mailgoElement.getAttribute("data-address") + "@" + mailgoElement.getAttribute("data-domain"); url = new URL(MAILTO + encodeURIComponent(mail)); // cc = data-cc-address + @ + data-cc-domain - cc = mailgo.getAttribute("data-cc-address") + "@" + mailgo.getAttribute("data-cc-domain"); // bcc = data-bcc-address + @ + data-bcc-domain + cc = mailgoElement.getAttribute("data-cc-address") + "@" + mailgoElement.getAttribute("data-cc-domain"); // bcc = data-bcc-address + @ + data-bcc-domain - bcc = mailgo.getAttribute("data-bcc-address") + "@" + mailgo.getAttribute("data-bcc-domain"); // subject = data-subject + bcc = mailgoElement.getAttribute("data-bcc-address") + "@" + mailgoElement.getAttribute("data-bcc-domain"); // subject = data-subject - subject = mailgo.getAttribute("data-subject"); // body = data-body + subject = mailgoElement.getAttribute("data-subject"); // body = data-body - bodyMail = mailgo.getAttribute("data-body"); + bodyMail = mailgoElement.getAttribute("data-body"); } // TODO test this @@ -609,49 +613,53 @@ var mailgoRender = function mailgoRender() { return copy(mail); }); } // mailgo tel + else if (type === TEL_TYPE) { + if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(TEL)) { + tel = decodeURIComponent(mailgoElement.href.split("?")[0].split(TEL)[1].trim()); + } else if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(CALLTO)) { + tel = decodeURIComponent(mailgoElement.href.split("?")[0].split(CALLTO)[1].trim()); + } else if (mailgoElement.hasAttribute("data-tel")) { + tel = mailgoElement.getAttribute("data-tel"); + msg = mailgoElement.getAttribute("data-msg"); + } // validate the phone number - if (type === TEL_TYPE) { - if (mailgo.href && mailgo.href.toLowerCase().startsWith(TEL)) { - tel = decodeURIComponent(mailgo.href.split("?")[0].split(TEL)[1].trim()); - } else if (mailgo.href && mailgo.href.toLowerCase().startsWith(CALLTO)) { - tel = decodeURIComponent(mailgo.href.split("?")[0].split(CALLTO)[1].trim()); - } else if (mailgo.hasAttribute("data-tel")) { - tel = mailgo.getAttribute("data-tel"); - msg = mailgo.getAttribute("data-msg"); - } // validate the phone number + if (!validateTel(tel)) return; // Telegram username + + if (mailgoElement.hasAttribute("data-telegram")) { + telegramUsername = mailgoElement.getAttribute("data-telegram"); + } else { + telegramUsername = null; + } // Telegram username - if (!validateTel(tel)) return; // Telegram username - - if (mailgo.hasAttribute("data-telegram")) { - telegramUsername = mailgo.getAttribute("data-telegram"); - } else { - telegramUsername = null; - } // Telegram username + if (mailgoElement.hasAttribute("data-skype")) { + skypeUsername = mailgoElement.getAttribute("data-skype"); + } // the title of the modal (tel) - if (mailgo.hasAttribute("data-skype")) { - skypeUsername = mailgo.getAttribute("data-skype"); - } // the title of the modal (tel) + titleTel.innerHTML = tel; // add the actions to buttons + + wa.addEventListener("click", openWhatsApp); // telegram must be shown only if data-telegram is provided + + if (telegramUsername) { + document.getElementById("m-tg").style.display = "block"; + telegram.addEventListener("click", openTelegram); + } else { + document.getElementById("m-tg").style.display = "none"; + } + + skype.addEventListener("click", openSkype); + call.addEventListener("click", callDefault); + copyTel.addEventListener("click", function () { + return copy(tel); + }); + } // dark mode as class of the element + // check only if is present to set the dark mode, because if the dark mode is set in config it have not to be disabled - titleTel.innerHTML = tel; // add the actions to buttons - - wa.addEventListener("click", openWhatsApp); // telegram must be shown only if data-telegram is provided - - if (telegramUsername) { - document.getElementById("m-tg").style.display = "block"; - telegram.addEventListener("click", openTelegram); - } else { - document.getElementById("m-tg").style.display = "none"; - } - - skype.addEventListener("click", openSkype); - call.addEventListener("click", callDefault); - copyTel.addEventListener("click", function () { - return copy(tel); - }); + if (mailgoElement.classList.contains("dark")) { + enableDarkMode(type); } // show the mailgo @@ -961,6 +969,18 @@ var setModalDisplay = function setModalDisplay() { var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; var value = arguments.length > 1 ? arguments[1] : undefined; return getModalHTMLElement(ref).style.display = value; +}; // enable dark mode + + +var enableDarkMode = function enableDarkMode() { + var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; + return getModalHTMLElement(type).classList.add("m-dark"); +}; // disable dark mode + + +var disableDarkMode = function disableDarkMode() { + var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; + return getModalHTMLElement(type).classList.remove("m-dark"); }; // custom composedPath if path or event.composedPath() are not defined diff --git a/lib/mailgo.js.map b/lib/mailgo.js.map index 80e193b..f19fd22 100644 --- a/lib/mailgo.js.map +++ b/lib/mailgo.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mailgo/webpack/universalModuleDefinition","webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?6043","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.lib.ts"],"names":["mailgoCSS","require","toString","DEFAULT_LANG","MAILTO","TEL","CALLTO","MAIL_TYPE","TEL_TYPE","DEFAULT_BTN_HREF","spanHTMLTag","aHTMLTag","pHTMLTag","config","lang","modalMailto","modalTel","url","mail","encEmail","cc","bcc","subject","bodyMail","tel","msg","telegramUsername","skypeUsername","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","gmail","outlook","open","telegram","wa","skype","call","copyMail","copyTel","mailgoInit","mailgoConfig","i18n","translations","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","id","classList","add","dark","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in","gmailSpan","outlookSpan","openSpan","_default","copy","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgo","toLowerCase","startsWith","decodeURIComponent","split","trim","URL","urlParams","searchParams","get","getAttribute","encodeURIComponent","validateEmail","validateEmails","innerHTML","join","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","getElementById","openTelegram","openSkype","callDefault","showMailgo","mailgoKeydown","gmailUrl","concat","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","content","copyToClipboard","activeCopy","mailgoIsShowing","setTimeout","isMailgo","element","contains","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","btoa","getModalHTMLElement","ref","value","el","push","tagName","parentElement","test","arr","every","str","setAttribute","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoStyle","mailgoCSSElement","head","initEvent"],"mappings":"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","file":"lib/mailgo.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mailgo\"] = factory();\n\telse\n\t\troot[\"mailgo\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","import {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nimport * as i18n from \"../i18n/i18n.json\";\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (mailgoConfig?: MailgoConfig): void => {\n // set the global config\n config = mailgoConfig;\n\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.includes(config.lang)) {\n lang = config.lang;\n }\n\n // if is defined use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.includes(htmlLang)) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo mail\n {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n modalMailto.classList.add(\"m-dark\");\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n // mailgo tel\n {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n modalTel.classList.add(\"m-dark\");\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in || defaultStrings.open_in));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nconst mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (mailgo.href && mailgo.href.toLowerCase().startsWith(MAILTO)) {\n mail = decodeURIComponent(\n mailgo.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgo.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgo.getAttribute(\"data-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgo.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgo.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgo.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgo.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgo.getAttribute(\"data-body\");\n }\n\n // TODO test this\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"
\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n if (type === TEL_TYPE) {\n if (mailgo.href && mailgo.href.toLowerCase().startsWith(TEL)) {\n tel = decodeURIComponent(mailgo.href.split(\"?\")[0].split(TEL)[1].trim());\n } else if (mailgo.href && mailgo.href.toLowerCase().startsWith(CALLTO)) {\n tel = decodeURIComponent(\n mailgo.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgo.hasAttribute(\"data-tel\")) {\n tel = mailgo.getAttribute(\"data-tel\");\n msg = mailgo.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgo.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgo.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgo.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgo.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n};\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nconst isMailgo = (element: HTMLElement, type: string = MAIL_TYPE): boolean => {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an
element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n};\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nconst mailgoCheckRender = (event: Event): boolean => {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n};\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) => {\n return type === TEL_TYPE ? modalTel : modalMailto;\n};\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string => {\n return getModalHTMLElement(ref).style.display;\n};\n\n// get display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): string => {\n return (getModalHTMLElement(ref).style.display = value);\n};\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\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(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(config?: MailgoConfig): void {\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n document.addEventListener(config.initEvent, () => {\n mailgoInit(config);\n });\n } else {\n mailgoInit(config);\n }\n }\n}\n\nexport default mailgo;\n","// webpack > lib/mailgo.js\n\nimport mailgo from \"../src/mailgo\";\n\nexport default mailgo;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mailgo/webpack/universalModuleDefinition","webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?6043","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.lib.ts"],"names":["mailgoCSS","require","toString","DEFAULT_LANG","MAILTO","TEL","CALLTO","MAIL_TYPE","TEL_TYPE","DEFAULT_BTN_HREF","spanHTMLTag","aHTMLTag","pHTMLTag","config","lang","modalMailto","modalTel","url","mail","encEmail","cc","bcc","subject","bodyMail","tel","msg","telegramUsername","skypeUsername","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","gmail","outlook","open","telegram","wa","skype","call","copyMail","copyTel","mailgoInit","mailgoConfig","i18n","translations","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","id","classList","add","dark","enableDarkMode","disableDarkMode","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in","gmailSpan","outlookSpan","openSpan","_default","copy","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgoElement","toLowerCase","startsWith","decodeURIComponent","split","trim","URL","urlParams","searchParams","get","getAttribute","encodeURIComponent","validateEmail","validateEmails","innerHTML","join","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","getElementById","openTelegram","openSkype","callDefault","contains","showMailgo","mailgoKeydown","gmailUrl","concat","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","content","copyToClipboard","activeCopy","mailgoIsShowing","setTimeout","isMailgo","element","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","btoa","getModalHTMLElement","ref","value","remove","el","push","tagName","parentElement","test","arr","every","str","setAttribute","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoStyle","mailgoCSSElement","head","mailgo","initEvent"],"mappings":"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","file":"lib/mailgo.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mailgo\"] = factory();\n\telse\n\t\troot[\"mailgo\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:15px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{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\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:0.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;min-width:200px;max-width:240px;background-color:#fff;opacity:0.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,0.5);color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:0.5s box-shadow}.m-modal .m-modal-content:hover{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#d44638}.m-modal .m-modal-content a.m-gmail:hover{background-color:rgba(212,70,56,0.08);color:#d44638}.m-modal .m-modal-content a.m-outlook{color:#0072c6}.m-modal .m-modal-content a.m-outlook:hover{background-color:rgba(0,114,198,0.08);color:#0072c6}.m-modal .m-modal-content a.m-tg{color:#08c}.m-modal .m-modal-content a.m-tg:hover{background-color:rgba(0,136,204,0.08);color:#08c}.m-modal .m-modal-content a.m-wa{color:#00bfa5}.m-modal .m-modal-content a.m-wa:hover{background-color:rgba(0,191,165,0.08);color:#00bfa5}.m-modal .m-modal-content a.m-skype{color:#00aff0}.m-modal .m-modal-content a.m-skype:hover{background-color:rgba(0,175,240,0.08);color:#00aff0}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-copy:hover{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:9px;margin-top:0.8rem;padding:5px;color:#4a4a4a;opacity:0.55}.m-modal .m-modal-content a.m-by:hover{opacity:1}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{color:#fff;background-color:#20232a}.m-modal.m-dark .m-modal-content a{color:#bbb}.m-modal.m-dark .m-modal-content a:hover{color:#fff}.m-modal.m-dark .m-modal-content a.m-gmail:hover{color:#faeceb}.m-modal.m-dark .m-modal-content a.m-outlook:hover{color:#e5f0f9}.m-modal.m-dark .m-modal-content a.m-tg:hover{color:#e5f3f9}.m-modal.m-dark .m-modal-content a.m-wa:hover{color:#e5f8f6}.m-modal.m-dark .m-modal-content a.m-skype:hover{color:#e5f7fd}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","import {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nimport * as i18n from \"../i18n/i18n.json\";\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (mailgoConfig?: MailgoConfig): void => {\n // set the global config\n config = mailgoConfig;\n\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.includes(config.lang)) {\n lang = config.lang;\n }\n\n // if is defined use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.includes(htmlLang)) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo mail\n {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(MAIL_TYPE);\n } else {\n disableDarkMode(MAIL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n // mailgo tel\n {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(TEL_TYPE);\n } else {\n disableDarkMode(TEL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in || defaultStrings.open_in));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in || defaultStrings.open_in)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n modalContent.appendChild(byElement());\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nconst mailgoRender = (\n type = MAIL_TYPE,\n mailgoElement: HTMLLinkElement\n): void => {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(MAILTO)\n ) {\n mail = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgoElement.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgoElement.getAttribute(\"data-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgoElement.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgoElement.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgoElement.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgoElement.getAttribute(\"data-body\");\n }\n\n // TODO test this\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"
\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n else if (type === TEL_TYPE) {\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(TEL)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(TEL)[1].trim()\n );\n } else if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(CALLTO)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgoElement.hasAttribute(\"data-tel\")) {\n tel = mailgoElement.getAttribute(\"data-tel\");\n msg = mailgoElement.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // dark mode as class of the element\n // check only if is present to set the dark mode, because if the dark mode is set in config it have not to be disabled\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n};\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nconst isMailgo = (element: HTMLElement, type: string = MAIL_TYPE): boolean => {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an
element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n};\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nconst mailgoCheckRender = (event: Event): boolean => {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n};\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) =>\n type === TEL_TYPE ? modalTel : modalMailto;\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string =>\n getModalHTMLElement(ref).style.display;\n\n// get display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): string =>\n (getModalHTMLElement(ref).style.display = value);\n\n// enable dark mode\nconst enableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.add(\"m-dark\");\n\n// disable dark mode\nconst disableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.remove(\"m-dark\");\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\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(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(config?: MailgoConfig): void {\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n document.addEventListener(config.initEvent, () => {\n mailgoInit(config);\n });\n } else {\n mailgoInit(config);\n }\n }\n}\n\nexport default mailgo;\n","// webpack > lib/mailgo.js\n\nimport mailgo from \"../src/mailgo\";\n\nexport default mailgo;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/src/mailgo.ts b/src/mailgo.ts index b59b7a0..8b48dd1 100644 --- a/src/mailgo.ts +++ b/src/mailgo.ts @@ -395,16 +395,22 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => { * mailgoRender * function to render a mailgo (mail or tel) */ -const mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => { +const mailgoRender = ( + type = MAIL_TYPE, + mailgoElement: HTMLLinkElement +): void => { // mailgo mail if (type === MAIL_TYPE) { // if the element href=^"mailto:" - if (mailgo.href && mailgo.href.toLowerCase().startsWith(MAILTO)) { + if ( + mailgoElement.href && + mailgoElement.href.toLowerCase().startsWith(MAILTO) + ) { mail = decodeURIComponent( - mailgo.href.split("?")[0].split(MAILTO)[1].trim() + mailgoElement.href.split("?")[0].split(MAILTO)[1].trim() ); - url = new URL(mailgo.href); + url = new URL(mailgoElement.href); let urlParams: URLSearchParams = url.searchParams; // optional parameters for the email @@ -416,29 +422,29 @@ const mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => { // if the element href="#mailgo" or class="mailgo" // mail = data-address + @ + data-domain mail = - mailgo.getAttribute("data-address") + + mailgoElement.getAttribute("data-address") + "@" + - mailgo.getAttribute("data-domain"); + mailgoElement.getAttribute("data-domain"); url = new URL(MAILTO + encodeURIComponent(mail)); // cc = data-cc-address + @ + data-cc-domain cc = - mailgo.getAttribute("data-cc-address") + + mailgoElement.getAttribute("data-cc-address") + "@" + - mailgo.getAttribute("data-cc-domain"); + mailgoElement.getAttribute("data-cc-domain"); // bcc = data-bcc-address + @ + data-bcc-domain bcc = - mailgo.getAttribute("data-bcc-address") + + mailgoElement.getAttribute("data-bcc-address") + "@" + - mailgo.getAttribute("data-bcc-domain"); + mailgoElement.getAttribute("data-bcc-domain"); // subject = data-subject - subject = mailgo.getAttribute("data-subject"); + subject = mailgoElement.getAttribute("data-subject"); // body = data-body - bodyMail = mailgo.getAttribute("data-body"); + bodyMail = mailgoElement.getAttribute("data-body"); } // TODO test this @@ -489,31 +495,39 @@ const mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => { copyMail.addEventListener("click", () => copy(mail)); } // mailgo tel - if (type === TEL_TYPE) { - if (mailgo.href && mailgo.href.toLowerCase().startsWith(TEL)) { - tel = decodeURIComponent(mailgo.href.split("?")[0].split(TEL)[1].trim()); - } else if (mailgo.href && mailgo.href.toLowerCase().startsWith(CALLTO)) { + else if (type === TEL_TYPE) { + if ( + mailgoElement.href && + mailgoElement.href.toLowerCase().startsWith(TEL) + ) { tel = decodeURIComponent( - mailgo.href.split("?")[0].split(CALLTO)[1].trim() + mailgoElement.href.split("?")[0].split(TEL)[1].trim() ); - } else if (mailgo.hasAttribute("data-tel")) { - tel = mailgo.getAttribute("data-tel"); - msg = mailgo.getAttribute("data-msg"); + } else if ( + mailgoElement.href && + mailgoElement.href.toLowerCase().startsWith(CALLTO) + ) { + tel = decodeURIComponent( + mailgoElement.href.split("?")[0].split(CALLTO)[1].trim() + ); + } else if (mailgoElement.hasAttribute("data-tel")) { + tel = mailgoElement.getAttribute("data-tel"); + msg = mailgoElement.getAttribute("data-msg"); } // validate the phone number if (!validateTel(tel)) return; // Telegram username - if (mailgo.hasAttribute("data-telegram")) { - telegramUsername = mailgo.getAttribute("data-telegram"); + if (mailgoElement.hasAttribute("data-telegram")) { + telegramUsername = mailgoElement.getAttribute("data-telegram"); } else { telegramUsername = null; } // Telegram username - if (mailgo.hasAttribute("data-skype")) { - skypeUsername = mailgo.getAttribute("data-skype"); + if (mailgoElement.hasAttribute("data-skype")) { + skypeUsername = mailgoElement.getAttribute("data-skype"); } // the title of the modal (tel) @@ -537,6 +551,12 @@ const mailgoRender = (type = MAIL_TYPE, mailgo: HTMLLinkElement): void => { copyTel.addEventListener("click", () => copy(tel)); } + // dark mode as class of the element + // check only if is present to set the dark mode, because if the dark mode is set in config it have not to be disabled + if (mailgoElement.classList.contains("dark")) { + enableDarkMode(type); + } + // show the mailgo showMailgo(type);