diff --git a/dist/mailgo.dark.min.js b/dist/mailgo.dark.min.js index e211f35..edf4f4f 100644 --- a/dist/mailgo.dark.min.js +++ b/dist/mailgo.dark.min.js @@ -1,2 +1,2 @@ -window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(r," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,r;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(r.style.display="block",p.innerHTML=N.split(",").join("
")):r.style.display="none",O?(i.style.display="block",u.innerHTML=O.split(",").join("
")):i.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=io(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",J),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",D),B.addEventListener("click",F),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){ro(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},D=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},J=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},F=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:J();break;case 32:case 13:F();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},ro=function(o){return window.location.href=$+atob(o)},io=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t;e=o,window&&"undefined"!=typeof window&&((t=lo("style")).id="mailgo-style",t.type="text/css",t.appendChild(co(L)),document.head.appendChild(t),(null===(a=e)||void 0===a?void 0:a.initEvent)?(null===(n=e)||void 0===n?void 0:n.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};Bo({initEvent:"DOMContentLoaded",dark:!0})}]); +window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(i," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,i;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(i.style.display="block",p.innerHTML=N.split(",").join("
")):i.style.display="none",O?(r.style.display="block",u.innerHTML=O.split(",").join("
")):r.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=ro(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",F),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",D),B.addEventListener("click",J),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){io(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},D=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},F=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},J=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:F();break;case 32:case 13:J();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},io=function(o){return window.location.href=$+atob(o)},ro=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t,l;e=o||(null===(a=window)||void 0===a?void 0:a.mailgoConfig),window&&"undefined"!=typeof window&&((l=lo("style")).id="mailgo-style",l.type="text/css",l.appendChild(co(L)),document.head.appendChild(l),(null===(n=e)||void 0===n?void 0:n.initEvent)?(null===(t=e)||void 0===t?void 0:t.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};Bo({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 8979592..c7b2068 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?16f9","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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config\n config = mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\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?16f9","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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","console","log","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","showFooter","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\n console.log(config);\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config if passed as parameter or keep it from window\n config = mailgoConfig || (window as any)?.mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\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 ab32022..8deabc4 100644 --- a/dist/mailgo.min.js +++ b/dist/mailgo.min.js @@ -1,2 +1,2 @@ -window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(r," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,r;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(r.style.display="block",p.innerHTML=N.split(",").join("
")):r.style.display="none",O?(i.style.display="block",u.innerHTML=O.split(",").join("
")):i.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=io(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",J),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",D),B.addEventListener("click",F),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){ro(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},D=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},J=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},F=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:J();break;case 32:case 13:F();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},ro=function(o){return window.location.href=$+atob(o)},io=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t;e=o,window&&"undefined"!=typeof window&&((t=lo("style")).id="mailgo-style",t.type="text/css",t.appendChild(co(L)),document.head.appendChild(t),(null===(a=e)||void 0===a?void 0:a.initEvent)?(null===(n=e)||void 0===n?void 0:n.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};Bo({initEvent:"DOMContentLoaded"})}]); +window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(i," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,i;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(i.style.display="block",p.innerHTML=N.split(",").join("
")):i.style.display="none",O?(r.style.display="block",u.innerHTML=O.split(",").join("
")):r.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=ro(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",F),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",D),B.addEventListener("click",J),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){io(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},D=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},F=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},J=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:F();break;case 32:case 13:J();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},io=function(o){return window.location.href=$+atob(o)},ro=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t,l;e=o||(null===(a=window)||void 0===a?void 0:a.mailgoConfig),window&&"undefined"!=typeof window&&((l=lo("style")).id="mailgo-style",l.type="text/css",l.appendChild(co(L)),document.head.appendChild(l),(null===(n=e)||void 0===n?void 0:n.initEvent)?(null===(t=e)||void 0===t?void 0:t.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};Bo({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 2c602bb..16ae028 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?16f9","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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config\n config = mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\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?16f9","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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","console","log","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","showFooter","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\n console.log(config);\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config if passed as parameter or keep it from window\n config = mailgoConfig || (window as any)?.mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\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/examples/index.windowconfig.html b/examples/index.windowconfig.html new file mode 100644 index 0000000..ba9500d --- /dev/null +++ b/examples/index.windowconfig.html @@ -0,0 +1,81 @@ + + + + + mailgo examples + + +

mailto:

+ +
matteo@manzinello.dev +
+

matteo@manzinello.dev

+
+ matteo@manzinello.dev +
+ ciao +
+ scrivimi! +
+ scrivimi! + + more cc +
+ matteo@manzinello.dev +
+
+

Dark mode

+ matteo@manzinello.dev dark mode +
+ matteo@manzinello.dev dark mode + +

tel:

+ chiamami +
+ skype +
+ callto + +
+
+

Dark mode

+ + callto dark mode + +
+ chiamami dark mode + + + + + + diff --git a/extensions/mailgo.chrome.min.js b/extensions/mailgo.chrome.min.js index 834b156..40c4c2f 100644 --- a/extensions/mailgo.chrome.min.js +++ b/extensions/mailgo.chrome.min.js @@ -1,2 +1,2 @@ -window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(r," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,r;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(r.style.display="block",p.innerHTML=N.split(",").join("
")):r.style.display="none",O?(i.style.display="block",u.innerHTML=O.split(",").join("
")):i.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=io(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",J),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",D),B.addEventListener("click",F),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){ro(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},D=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},J=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},F=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:J();break;case 32:case 13:F();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},ro=function(o){return window.location.href=$+atob(o)},io=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t;e=o,window&&"undefined"!=typeof window&&((t=lo("style")).id="mailgo-style",t.type="text/css",t.appendChild(co(L)),document.head.appendChild(t),(null===(a=e)||void 0===a?void 0:a.initEvent)?(null===(n=e)||void 0===n?void 0:n.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};!!document.getElementById("mailgo")||Bo()}]); +window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(i," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,i;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(i.style.display="block",p.innerHTML=N.split(",").join("
")):i.style.display="none",O?(r.style.display="block",u.innerHTML=O.split(",").join("
")):r.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=ro(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",D),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",F),B.addEventListener("click",J),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){io(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},F=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},D=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},J=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:D();break;case 32:case 13:J();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},io=function(o){return window.location.href=$+atob(o)},ro=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t,l;e=o||(null===(a=window)||void 0===a?void 0:a.mailgoConfig),window&&"undefined"!=typeof window&&((l=lo("style")).id="mailgo-style",l.type="text/css",l.appendChild(co(L)),document.head.appendChild(l),(null===(n=e)||void 0===n?void 0:n.initEvent)?(null===(t=e)||void 0===t?void 0:t.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};!!document.getElementById("mailgo")||Bo()}]); //# sourceMappingURL=mailgo.chrome.min.js.map \ No newline at end of file diff --git a/extensions/mailgo.chrome.min.js.map b/extensions/mailgo.chrome.min.js.map index 174a1b0..a947311 100644 --- a/extensions/mailgo.chrome.min.js.map +++ b/extensions/mailgo.chrome.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?16f9","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.chrome.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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"mappings":"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","file":"mailgo.chrome.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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config\n config = mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\n }\n }\n}\n\nexport default mailgo;\n","// webpack > extensions/mailgo.chrome.js\n// script to add in Chrome extension\n// https://github.com/manzinello/mailgo-chrome-extension\n\nimport mailgo from \"../src/mailgo\";\n\n// check if mailgo HTML is already present in the page\nlet mailgoExists = !!document.getElementById(\"mailgo\");\n\nif (!mailgoExists) mailgo();\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?16f9","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.chrome.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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","console","log","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","showFooter","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"mappings":"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","file":"mailgo.chrome.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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\n console.log(config);\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config if passed as parameter or keep it from window\n config = mailgoConfig || (window as any)?.mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\n }\n }\n}\n\nexport default mailgo;\n","// webpack > extensions/mailgo.chrome.js\n// script to add in Chrome extension\n// https://github.com/manzinello/mailgo-chrome-extension\n\nimport mailgo from \"../src/mailgo\";\n\n// check if mailgo HTML is already present in the page\nlet mailgoExists = !!document.getElementById(\"mailgo\");\n\nif (!mailgoExists) mailgo();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/extensions/mailgo.firefox.min.js b/extensions/mailgo.firefox.min.js index 6aa0eb4..03edc4c 100644 --- a/extensions/mailgo.firefox.min.js +++ b/extensions/mailgo.firefox.min.js @@ -1,2 +1,2 @@ -window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(r," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,r;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(r.style.display="block",p.innerHTML=N.split(",").join("
")):r.style.display="none",O?(i.style.display="block",u.innerHTML=O.split(",").join("
")):i.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=io(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",J),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",D),B.addEventListener("click",F),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){ro(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},D=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},J=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},F=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:J();break;case 32:case 13:F();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},ro=function(o){return window.location.href=$+atob(o)},io=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t;e=o,window&&"undefined"!=typeof window&&((t=lo("style")).id="mailgo-style",t.type="text/css",t.appendChild(co(L)),document.head.appendChild(t),(null===(a=e)||void 0===a?void 0:a.initEvent)?(null===(n=e)||void 0===n?void 0:n.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};!!document.getElementById("mailgo")||Bo()}]); +window.mailgo=function(o){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=a,n.d=function(o,a,e){n.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:e})},n.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.t=function(o,a){if(1&a&&(o=n(o)),8&a)return o;if(4&a&&"object"==typeof o&&o&&o.__esModule)return o;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:o}),2&a&&"string"!=typeof o)for(var t in o)n.d(e,t,function(a){return o[a]}.bind(null,t));return e},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,"a",a),a},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.p="",n(n.s=4)}([function(o){o.exports=JSON.parse('{"languages":["en","it","es","de","fr","pt","nl"],"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"},"de":{"open_in_":"Öffnen in ","cc_":"cc ","bcc_":"bcc ","subject_":"Betreff ","body_":"Nachricht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"kopieren"},"pt":{"open_in_":"abrir com ","cc_":"cc ","bcc_":"cco ","subject_":"assunto ","body_":"corpo ","call":"ligar","open":"abrir","_default":" padrão","_as_default":" por padrão","copy":"copiar"},"fr":{"open_in_":"Ouvrir dans ","cc_":"cc ","bcc_":"cci ","subject_":"sujet ","body_":"contenu ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"Appeler","open":"Ouvrir","_default":" par défaut","_as_default":" par défaut","copy":"Copier"},"nl":{"open_in_":"open in ","cc_":"cc ","bcc_":"bcc ","subject_":"onderwerp ","body_":"bericht ","gmail":"Gmail","outlook":"Outlook","telegram":"Telegram","whatsapp":"WhatsApp","skype":"Skype","call":"bellen","open":"openen","_default":" standaard","_as_default":" als standaard","copy":"kopiëren"}}}')},function(o,a,n){var e=n(2);o.exports="string"==typeof e?e:e.toString()},function(o,a,n){var e=n(3)(!0);e.push([o.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\n',"",{version:3,sources:["/Users/matteo/git/mailgo/src/mailgo.scss"],names:[],mappings:"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW",file:"mailgo.scss",sourcesContent:['$mailgo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,\n Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",\n "Segoe UI Symbol";\n\n// colors\n$default-color: #4a4a4a;\n$gmail-color: #d44638;\n$outlook-color: #0072c6;\n$wa-color: #00bfa5;\n$telegram-color: #0088cc;\n$skype-color: #00aff0;\n\n$default-color-hover: #3d3d3d;\n\n$default-dark-color: #eaeaea;\n$gmail-dark-color: #e07d73;\n$outlook-dark-color: #4c9cd7;\n$wa-dark-color: #4cd2c0;\n$telegram-dark-color: #4cabdb;\n$skype-dark-color: #4cc7f4;\n\n// other vars\n$default-border-radius: 20px;\n\n.m-modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n font-size: 16.5px;\n z-index: 10000;\n\n p,\n span,\n strong,\n a {\n margin: 0;\n padding: 0;\n font-size: 100%;\n line-height: 1;\n font-family: $mailgo-font-family;\n text-rendering: optimizeLegibility;\n }\n\n strong {\n font-weight: 700;\n }\n\n .m-modal-back {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #20232a;\n opacity: 0.8;\n }\n\n .m-modal-content {\n position: relative;\n z-index: 10002;\n box-sizing: content-box;\n text-align: center;\n min-width: 200px;\n max-width: 240px;\n background-color: #fff;\n opacity: 0.95;\n border-radius: $default-border-radius;\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\n color: $default-color;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 24px;\n transition: 0.5s box-shadow;\n\n &:hover,\n &:focus,\n &:active {\n opacity: 1;\n }\n\n .m-title {\n margin-bottom: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2em;\n }\n\n .m-details {\n margin-bottom: 10px;\n p {\n font-size: 12px;\n margin-top: 3px;\n margin-bottom: 3px;\n }\n }\n\n a {\n cursor: pointer;\n padding: 10px;\n color: $default-color;\n border-radius: $default-border-radius;\n text-decoration: none;\n\n &.m-gmail {\n color: $gmail-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-color;\n }\n }\n\n &.m-tg {\n color: $telegram-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-color;\n }\n }\n\n &.m-wa {\n color: $wa-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-color;\n }\n }\n\n &.m-skype {\n color: $skype-color;\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-color;\n }\n }\n\n &.m-copy {\n padding: 16px 10px;\n font-size: 16px;\n }\n\n &.m-default,\n &.m-copy {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 0, 0, 0.08);\n color: $default-color;\n }\n }\n\n &.m-by {\n font-size: 12px;\n margin-top: 0.8rem;\n padding: 5px;\n color: $default-color;\n &:hover,\n &:focus,\n &:active {\n color: $default-color-hover;\n }\n }\n }\n\n .w-500 {\n font-weight: 500;\n }\n }\n\n &.m-dark {\n .m-modal-content {\n background-color: #20232a;\n &,\n & p,\n & p span,\n & strong {\n color: #fff;\n }\n a {\n color: $default-dark-color;\n\n &:not(.m-by) {\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(134, 134, 134, 0.08);\n color: $default-dark-color;\n }\n }\n\n &.m-gmail {\n color: $gmail-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(212, 70, 56, 0.08);\n color: $gmail-dark-color;\n }\n }\n\n &.m-outlook {\n color: $outlook-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 114, 198, 0.08);\n color: $outlook-dark-color;\n }\n }\n\n &.m-tg {\n color: $telegram-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 136, 204, 0.08);\n color: $telegram-dark-color;\n }\n }\n\n &.m-wa {\n color: $wa-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 191, 165, 0.08);\n color: $wa-dark-color;\n }\n }\n\n &.m-skype {\n color: $skype-dark-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: rgba(0, 175, 240, 0.08);\n color: $skype-dark-color;\n }\n }\n\n &.m-by {\n &:hover,\n &:focus,\n &:active {\n color: #fff;\n }\n }\n }\n }\n }\n}\n']}]),o.exports=e},function(o,a,n){"use strict";o.exports=function(o){var a=[];return a.toString=function(){return this.map((function(a){var n=function(o,a){var n=o[1]||"",e=o[3];if(!e)return n;if(a&&"function"==typeof btoa){var t=(d=e,c=btoa(unescape(encodeURIComponent(JSON.stringify(d)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(i," */")),l=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[n].concat(l).concat([t]).join("\n")}var d,c,i;return[n].join("\n")}(a,o);return a[2]?"@media ".concat(a[2]," {").concat(n,"}"):n})).join("")},a.i=function(o,n,e){"string"==typeof o&&(o=[[null,o,""]]);var t={};if(e)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:"mail",n=arguments.length>1?arguments[1]:void 0;if("mail"===a){var t,l;if(n.href&&n.href.toLowerCase().startsWith($)){z=decodeURIComponent(n.href.split("?")[0].split($)[1].trim());var C=new URL(n.href).searchParams;N=C.get("cc"),O=C.get("bcc"),M=C.get("subject"),q=C.get("body")}else z=n.getAttribute("data-address")+"@"+n.getAttribute("data-domain"),new URL($+encodeURIComponent(z)),N=n.getAttribute("data-cc-address")+"@"+n.getAttribute("data-cc-domain"),O=n.getAttribute("data-bcc-address")+"@"+n.getAttribute("data-bcc-domain"),M=n.getAttribute("data-subject"),q=n.getAttribute("data-body");if(void 0===(null===(t=e)||void 0===t?void 0:t.validateEmail)||!0===(null===(l=e)||void 0===l?void 0:l.validateEmail)){if(!ho(z.split(",")))return;N&&!ho(N.split(","))&&(N=""),O&&!ho(O.split(","))&&(O="")}d.innerHTML=z.split(",").join("
"),N?(i.style.display="block",p.innerHTML=N.split(",").join("
")):i.style.display="none",O?(r.style.display="block",u.innerHTML=O.split(",").join("
")):r.style.display="none",M?(m.style.display="block",A.textContent=M):m.style.display="none",q?(s.style.display="block",f.textContent=q):s.style.display="none",g.addEventListener("click",P),b.addEventListener("click",Y),I=ro(z),v.addEventListener("click",G),w.addEventListener("click",(function(){return Z(z)}))}else if("tel"===a){if(n.href&&n.href.toLowerCase().startsWith(E)?R=decodeURIComponent(n.href.split("?")[0].split(E)[1].trim()):n.href&&n.href.toLowerCase().startsWith(S)?R=decodeURIComponent(n.href.split("?")[0].split(S)[1].trim()):n.hasAttribute("data-tel")&&(R=n.getAttribute("data-tel"),n.getAttribute("data-msg")),!ko(R))return;T=n.hasAttribute("data-telegram")?n.getAttribute("data-telegram"):null,n.hasAttribute("data-skype")&&(H=n.getAttribute("data-skype")),c.innerHTML=R,k.addEventListener("click",D),T?(document.getElementById("m-tg").style.display="block",h.addEventListener("click",K)):document.getElementById("m-tg").style.display="none",y.addEventListener("click",F),B.addEventListener("click",J),_.addEventListener("click",(function(){return Z(R)}))}(null===(o=e)||void 0===o?void 0:o.dark)||(n.classList.contains("dark")?Co(a):go(a)),ao(a),document.addEventListener("keydown",oo)}var P=function(){var o="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(z);N&&(o=o.concat("&cc="+encodeURIComponent(N))),O&&(o=o.concat("&bcc="+encodeURIComponent(O))),M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},Y=function(){var o="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(z);M&&(o=o.concat("&subject="+M)),q&&(o=o.concat("&body="+q)),window.open(o,"_blank"),no()},G=function(){io(I),no()},K=function(){var o="https://t.me/"+T;window.open(o,"_blank"),no()},F=function(){var o="skype:"+(""!==H?H:R);window.open(o,"_blank"),no()},D=function(){var o="https://wa.me/"+R;window.open(o,"_blank"),no()},J=function(){var o="tel:"+R;window.open(o),no()},Z=function(o){var a;yo(o),(a=eo("mail")?w:_).textContent="copied",setTimeout((function(){a.textContent="copy",no()}),999)};function V(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",n=o.href;return"mail"===a?n&&n.toLowerCase().startsWith($)&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-address")&&(n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo")):"tel"===a&&(n&&(n.toLowerCase().startsWith(E)||n.toLowerCase().startsWith(S))&&!o.classList.contains("no-mailgo")||o.hasAttribute("data-tel")&&n&&"#mailgo"===o.getAttribute("href").toLowerCase()||o.classList&&o.classList.contains("mailgo"))}function X(o){if(!document.contains(t)||!document.contains(l))return!1;if(eo("mail")||eo("tel"))return!1;var a=o.composedPath&&o.composedPath()||bo(o.target);return a&&a.forEach((function(a){return!(a instanceof HTMLDocument||a instanceof Window)&&(V(a,"mail")?(o.preventDefault(),Q("mail",a),!0):V(a,"tel")?(o.preventDefault(),Q("tel",a),!0):void 0)})),!1}var oo=function(o){if(eo("mail"))switch(o.keyCode){case 27:no();break;case 71:P();break;case 79:Y();break;case 32:case 13:G();break;case 67:Z(z);break;default:return}else if(eo("tel"))switch(o.keyCode){case 27:no();break;case 84:K();break;case 87:D();break;case 32:case 13:J();break;case 67:Z(R);break;default:return}},ao=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";po(o,"flex")},no=function(){po("mail","none"),po("tel","none"),document.removeEventListener("keydown",oo)},eo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===so(o)},to=function(){var o=lo("a");return o.href="https://mailgo.dev?ref=mailgo-modal",o.className="m-by",o.target="_blank",o.rel="noopener noreferrer",o.appendChild(co("mailgo.dev")),o},lo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(o)},co=function(o){return document.createTextNode(o)},io=function(o){return window.location.href=$+atob(o)},ro=function(o){return btoa(o)},mo=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===o?l:t},so=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).style.display},po=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0,n=mo(o);n.style.display=a,"flex"===a?(C=document.activeElement,n.setAttribute("aria-hidden","false"),n.setAttribute("tabindex","0"),n.focus(),uo(n)):(n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),C.focus())},uo=function(o){var a=o;a.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",Ao),a.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",fo)},Ao=function(o){"Tab"===o.code&&!1===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:first-of-type").focus())},fo=function(o){"Tab"===o.code&&!0===o.shiftKey&&(o.preventDefault(),o.target.closest("div").querySelector("a:last-of-type").focus())},Co=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.add("m-dark")},go=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return mo(o).classList.remove("m-dark")},bo=function(o){for(var a=[];o;){if(a.push(o),"HTML"===o.tagName)return a.push(document),a.push(window),a;o=o.parentElement}},vo=function(o){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(o)},ho=function(o){return o.every(vo)},ko=function(o){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(o)},yo=function(o){var a=lo("textarea");a.value=o,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a);var n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return a.select(),document.execCommand("copy"),document.body.removeChild(a),!!n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n),!0)};var Bo=function(o){var a,n,t,l;e=o||(null===(a=window)||void 0===a?void 0:a.mailgoConfig),window&&"undefined"!=typeof window&&((l=lo("style")).id="mailgo-style",l.type="text/css",l.appendChild(co(L)),document.head.appendChild(l),(null===(n=e)||void 0===n?void 0:n.initEvent)?(null===(t=e)||void 0===t?void 0:t.listenerOptions)?document.addEventListener(e.initEvent,(function(){W()}),e.listenerOptions):document.addEventListener(e.initEvent,(function(){W()})):W())};!!document.getElementById("mailgo")||Bo()}]); //# sourceMappingURL=mailgo.firefox.min.js.map \ No newline at end of file diff --git a/extensions/mailgo.firefox.min.js.map b/extensions/mailgo.firefox.min.js.map index 94975a1..8d72d41 100644 --- a/extensions/mailgo.firefox.min.js.map +++ b/extensions/mailgo.firefox.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?16f9","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.firefox.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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"mappings":"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","file":"mailgo.firefox.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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config\n config = mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\n }\n }\n}\n\nexport default mailgo;\n","// webpack > extensions/mailgo.firefox.js\n// script to add in Firefox addon\n// https://github.com/manzinello/mailgo-firefox-addon\n\nimport mailgo from \"../src/mailgo\";\n\n// check if mailgo HTML is already present in the page\nlet mailgoExists = !!document.getElementById(\"mailgo\");\n\nif (!mailgoExists) mailgo();\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?16f9","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.firefox.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_EXPORT___","___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","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","console","log","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","classList","add","setAttribute","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","showFooter","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"mappings":"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","file":"mailgo.firefox.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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\n console.log(config);\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config if passed as parameter or keep it from window\n config = mailgoConfig || (window as any)?.mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\n }\n }\n}\n\nexport default mailgo;\n","// webpack > extensions/mailgo.firefox.js\n// script to add in Firefox addon\n// https://github.com/manzinello/mailgo-firefox-addon\n\nimport mailgo from \"../src/mailgo\";\n\n// check if mailgo HTML is already present in the page\nlet mailgoExists = !!document.getElementById(\"mailgo\");\n\nif (!mailgoExists) mailgo();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/mailgo.js b/lib/mailgo.js index b19e070..fc15af7 100644 --- a/lib/mailgo.js +++ b/lib/mailgo.js @@ -290,7 +290,8 @@ var gmail, outlook, mailgo_open, telegram, wa, skype, call, copyMail, copyTel; var mailgoInit = function mailgoInit() { var _config, _config2; - // translations + console.log(config); // translations + var _ref = i18n, translations = _ref.translations; // if a default language is defined use it @@ -313,7 +314,7 @@ var mailgoInit = function mailgoInit() { var strings = translations[lang]; // mailgo mail { - var _config3; + var _config3, _config4, _config5; // modal modalMailto = createElement(); @@ -431,8 +432,12 @@ var mailgoInit = function mailgoInit() { copyMail.classList.add("m-copy"); copyMail.classList.add("w-500"); copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy)); - modalContent.appendChild(copyMail); - modalContent.appendChild(byElement()); // add the modal at the end of the body + modalContent.appendChild(copyMail); // show mailgo.dev in footer only if showFooter == true + + if (typeof ((_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.showFooter) === "undefined" || ((_config5 = config) === null || _config5 === void 0 ? void 0 : _config5.showFooter) === false) { + modalContent.appendChild(byElement()); + } // add the modal at the end of the body + document.body.appendChild(modalMailto); // every click outside the modal will hide the modal @@ -440,7 +445,7 @@ var mailgoInit = function mailgoInit() { } // mailgo tel { - var _config4; + var _config6, _config7, _config8; // modal modalTel = createElement(); @@ -451,7 +456,7 @@ var mailgoInit = function mailgoInit() { modalTel.setAttribute("tabindex", "-1"); modalTel.setAttribute("aria-labelledby", "m-tel-title"); // if dark is in config - if ((_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.dark) { + if ((_config6 = config) === null || _config6 === void 0 ? void 0 : _config6.dark) { enableDarkMode(TEL_TYPE); } else { disableDarkMode(TEL_TYPE); @@ -540,9 +545,12 @@ var mailgoInit = function mailgoInit() { copyTel.classList.add("w-500"); copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy)); - _modalContent.appendChild(copyTel); + _modalContent.appendChild(copyTel); // show mailgo.dev in footer only if showFooter == true - _modalContent.appendChild(byElement()); // add the modal at the end of the body + + if (typeof ((_config7 = config) === null || _config7 === void 0 ? void 0 : _config7.showFooter) === "undefined" || ((_config8 = config) === null || _config8 === void 0 ? void 0 : _config8.showFooter) === false) { + _modalContent.appendChild(byElement()); + } // add the modal at the end of the body document.body.appendChild(modalTel); // every click outside the modal will hide the modal @@ -559,14 +567,14 @@ var mailgoInit = function mailgoInit() { function mailgoRender() { - var _config7; + var _config11; var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; var mailgoElement = arguments.length > 1 ? arguments[1] : undefined; // mailgo mail if (type === MAIL_TYPE) { - var _config5, _config6; + var _config9, _config10; // if the element href=^"mailto:" if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(MAILTO)) { @@ -593,7 +601,7 @@ function mailgoRender() { bodyMail = mailgoElement.getAttribute("data-body"); } - if (typeof ((_config5 = config) === null || _config5 === void 0 ? void 0 : _config5.validateEmail) === "undefined" || ((_config6 = config) === null || _config6 === void 0 ? void 0 : _config6.validateEmail) === true) { + if (typeof ((_config9 = config) === null || _config9 === void 0 ? void 0 : _config9.validateEmail) === "undefined" || ((_config10 = config) === null || _config10 === void 0 ? void 0 : _config10.validateEmail) === true) { // validate the email address if (!validateEmails(mail.split(","))) return; // if cc, bcc are not valid cc, bcc = "" @@ -661,7 +669,7 @@ function mailgoRender() { } // if config.dark is set to true then all the modals will be in dark mode - if (!((_config7 = config) === null || _config7 === void 0 ? void 0 : _config7.dark)) { + if (!((_config11 = config) === null || _config11 === void 0 ? void 0 : _config11.dark)) { // if the element contains dark as class enable dark mode if (mailgoElement.classList.contains("dark")) { enableDarkMode(type); @@ -1092,19 +1100,21 @@ var mailgoStyle = function mailgoStyle() { function mailgo(mailgoConfig) { - // set the global config - config = mailgoConfig; // if the window is defined... + var _ref2; + + // set the global config if passed as parameter or keep it from window + config = mailgoConfig || ((_ref2 = window) === null || _ref2 === void 0 ? void 0 : _ref2.mailgoConfig); // if the window is defined... if (window && typeof window !== "undefined") { - var _config8; + var _config12; // add the style for mailgo mailgoStyle(); // if is set an initEvent add the listener - if ((_config8 = config) === null || _config8 === void 0 ? void 0 : _config8.initEvent) { - var _config9; + if ((_config12 = config) === null || _config12 === void 0 ? void 0 : _config12.initEvent) { + var _config13; - if ((_config9 = config) === null || _config9 === void 0 ? void 0 : _config9.listenerOptions) { + if ((_config13 = config) === null || _config13 === void 0 ? void 0 : _config13.listenerOptions) { // listener options specified document.addEventListener(config.initEvent, function () { mailgoInit(); diff --git a/lib/mailgo.js.map b/lib/mailgo.js.map index eda416d..4655ebf 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?16f9","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":["i18n","require","mailgoCSS","toString","DEFAULT_LANG","MAILTO","TEL","CALLTO","outlookDeepLink","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","activatedLink","gmail","outlook","open","telegram","wa","skype","call","copyMail","copyTel","mailgoInit","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","id","classList","add","setAttribute","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","push","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoStyle","mailgoCSSElement","head","mailgo","mailgoConfig","initEvent","listenerOptions"],"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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config\n config = mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\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?16f9","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":["i18n","require","mailgoCSS","toString","DEFAULT_LANG","MAILTO","TEL","CALLTO","outlookDeepLink","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","activatedLink","gmail","outlook","open","telegram","wa","skype","call","copyMail","copyTel","mailgoInit","console","log","translations","languages","includes","forceLang","htmlLang","document","documentElement","defaultStrings","strings","createElement","style","display","id","classList","add","setAttribute","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","showFooter","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","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","push","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgoStyle","mailgoCSSElement","head","mailgo","mailgoConfig","initEvent","listenerOptions"],"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??ref--5-1!../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\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.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:16.5px;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,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{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{cursor:pointer;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,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{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,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{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,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{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,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{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,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{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-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,0.08);color:#4a4a4a}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:0.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,0.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(212,70,56,0.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(0,114,198,0.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(0,136,204,0.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(0,191,165,0.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(0,175,240,0.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/matteo/git/mailgo/src/mailgo.scss\"],\"names\":[],\"mappings\":\"AAwBA,SACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAmB,CACnB,qBAAsB,CACtB,eAAgB,CAChB,gBAAiB,CACjB,aAAc,CAXhB,oDAiBI,QAAS,CACT,SAAU,CACV,cAAe,CACf,aAAc,CACd,gJA3Ce,CA4Cf,iCAAkC,CAtBtC,gBA0BI,eAAgB,CA1BpB,uBA8BI,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,wBAAyB,CACzB,WAAY,CArChB,0BAyCI,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAAsB,CACtB,YAAa,CACb,kBAnDwB,CAoDxB,wCAA4C,CAC5C,aAtEmB,CAuEnB,YAAa,CACb,qBAAsB,CACtB,aAAc,CACd,YAAa,CACb,0BAA2B,CAxD/B,iGA6DM,SAAU,CA7DhB,mCAiEM,iBAAkB,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB,CArExB,qCAyEM,kBAAmB,CAzEzB,uCA2EQ,cAAe,CACf,cAAe,CACf,iBAAkB,CA7E1B,4BAkFM,cAAe,CACf,YAAa,CACb,aAvGiB,CAwGjB,kBAvFsB,CAwFtB,oBAAqB,CAtF3B,oCAyFQ,aA3Ga,CAkBrB,+HA6FU,qCAAyC,CACzC,aAhHW,CAkBrB,sCAmGQ,aApHe,CAiBvB,qIAuGU,qCAAyC,CACzC,aAzHa,CAiBvB,iCA6GQ,UA5HgB,CAexB,sHAiHU,qCAAyC,CACzC,UAjIc,CAexB,iCAuHQ,aAvIU,CAgBlB,sHA2HU,qCAAyC,CACzC,aA5IQ,CAgBlB,oCAiIQ,aA/Ia,CAcrB,+HAqIU,qCAAyC,CACzC,aApJW,CAcrB,mCA2IQ,iBAAkB,CAClB,cAAe,CA5IvB,iQAoJU,iCAAqC,CACrC,aAxKa,CAmBvB,iCA0JQ,cAAe,CACf,iBAAkB,CAClB,WAAY,CACZ,aAhLe,CAmBvB,sHAiKU,aA7KmB,CAY7B,iCAuKM,eAAgB,CAvKtB,iCA6KM,wBAAyB,CA7K/B,oJAkLQ,UAAW,CAlLnB,mCAqLQ,aA/LoB,CAU5B,6JA2LY,uCAA2C,CAC3C,aAtMgB,CAU5B,2CAiMU,aA1MgB,CAS1B,oJAsMY,qCAAyC,CACzC,aAhNc,CAS1B,6CA4MU,aApNkB,CAQ5B,0JAiNY,qCAAyC,CACzC,aA1NgB,CAQ5B,wCAuNU,aA7NmB,CAM7B,2IA4NY,qCAAyC,CACzC,aAnOiB,CAM7B,wCAkOU,aAzOa,CAOvB,2IAuOY,qCAAyC,CACzC,aA/OW,CAOvB,2CA6OU,aAlPgB,CAK1B,oJAkPY,qCAAyC,CACzC,aAxPc,CAK1B,2IA2PY,UAAW\",\"file\":\"mailgo.scss\",\"sourcesContent\":[\"$mailgo-font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\n Helvetica, Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\";\\n\\n// colors\\n$default-color: #4a4a4a;\\n$gmail-color: #d44638;\\n$outlook-color: #0072c6;\\n$wa-color: #00bfa5;\\n$telegram-color: #0088cc;\\n$skype-color: #00aff0;\\n\\n$default-color-hover: #3d3d3d;\\n\\n$default-dark-color: #eaeaea;\\n$gmail-dark-color: #e07d73;\\n$outlook-dark-color: #4c9cd7;\\n$wa-dark-color: #4cd2c0;\\n$telegram-dark-color: #4cabdb;\\n$skype-dark-color: #4cc7f4;\\n\\n// other vars\\n$default-border-radius: 20px;\\n\\n.m-modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n overflow: hidden;\\n font-size: 16.5px;\\n z-index: 10000;\\n\\n p,\\n span,\\n strong,\\n a {\\n margin: 0;\\n padding: 0;\\n font-size: 100%;\\n line-height: 1;\\n font-family: $mailgo-font-family;\\n text-rendering: optimizeLegibility;\\n }\\n\\n strong {\\n font-weight: 700;\\n }\\n\\n .m-modal-back {\\n position: absolute;\\n z-index: 10001;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #20232a;\\n opacity: 0.8;\\n }\\n\\n .m-modal-content {\\n position: relative;\\n z-index: 10002;\\n box-sizing: content-box;\\n text-align: center;\\n min-width: 200px;\\n max-width: 240px;\\n background-color: #fff;\\n opacity: 0.95;\\n border-radius: $default-border-radius;\\n box-shadow: 0 3px 20px rgba(32, 35, 42, 0.5);\\n color: $default-color;\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n padding: 24px;\\n transition: 0.5s box-shadow;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n opacity: 1;\\n }\\n\\n .m-title {\\n margin-bottom: 8px;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: 1.2em;\\n }\\n\\n .m-details {\\n margin-bottom: 10px;\\n p {\\n font-size: 12px;\\n margin-top: 3px;\\n margin-bottom: 3px;\\n }\\n }\\n\\n a {\\n cursor: pointer;\\n padding: 10px;\\n color: $default-color;\\n border-radius: $default-border-radius;\\n text-decoration: none;\\n\\n &.m-gmail {\\n color: $gmail-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-color;\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-color;\\n }\\n }\\n\\n &.m-copy {\\n padding: 16px 10px;\\n font-size: 16px;\\n }\\n\\n &.m-default,\\n &.m-copy {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 0, 0, 0.08);\\n color: $default-color;\\n }\\n }\\n\\n &.m-by {\\n font-size: 12px;\\n margin-top: 0.8rem;\\n padding: 5px;\\n color: $default-color;\\n &:hover,\\n &:focus,\\n &:active {\\n color: $default-color-hover;\\n }\\n }\\n }\\n\\n .w-500 {\\n font-weight: 500;\\n }\\n }\\n\\n &.m-dark {\\n .m-modal-content {\\n background-color: #20232a;\\n &,\\n & p,\\n & p span,\\n & strong {\\n color: #fff;\\n }\\n a {\\n color: $default-dark-color;\\n\\n &:not(.m-by) {\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(134, 134, 134, 0.08);\\n color: $default-dark-color;\\n }\\n }\\n\\n &.m-gmail {\\n color: $gmail-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(212, 70, 56, 0.08);\\n color: $gmail-dark-color;\\n }\\n }\\n\\n &.m-outlook {\\n color: $outlook-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 114, 198, 0.08);\\n color: $outlook-dark-color;\\n }\\n }\\n\\n &.m-tg {\\n color: $telegram-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 136, 204, 0.08);\\n color: $telegram-dark-color;\\n }\\n }\\n\\n &.m-wa {\\n color: $wa-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 191, 165, 0.08);\\n color: $wa-dark-color;\\n }\\n }\\n\\n &.m-skype {\\n color: $skype-dark-color;\\n\\n &:hover,\\n &:focus,\\n &:active {\\n background-color: rgba(0, 175, 240, 0.08);\\n color: $skype-dark-color;\\n }\\n }\\n\\n &.m-by {\\n &:hover,\\n &:focus,\\n &:active {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\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\nconst i18n: MailgoI18n = require(\"../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// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\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 activatedLink: 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 = (): void => {\n console.log(config);\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 modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\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 // show mailgo.dev in footer only if showFooter == true\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter === false\n ) {\n modalContent.appendChild(byElement());\n }\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 */\nexport function mailgoRender(\n type: string = 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 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 // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\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\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): 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 */\nexport function 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// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\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}[\\s0-9]{0,}[(]{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(mailgoConfig?: MailgoConfig): void {\n // set the global config if passed as parameter or keep it from window\n config = mailgoConfig || (window as any)?.mailgoConfig;\n\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 if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\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 2ecca39..ce8d240 100644 --- a/src/mailgo.ts +++ b/src/mailgo.ts @@ -263,7 +263,7 @@ const mailgoInit = (): void => { // show mailgo.dev in footer only if showFooter == true if ( - typeof config?.showFooter !== "undefined" && + typeof config?.showFooter === "undefined" || config?.showFooter === false ) { modalContent.appendChild(byElement()); @@ -393,7 +393,7 @@ const mailgoInit = (): void => { // show mailgo.dev in footer only if showFooter == true if ( - typeof config?.showFooter !== "undefined" && + typeof config?.showFooter === "undefined" || config?.showFooter === false ) { modalContent.appendChild(byElement()); @@ -1035,8 +1035,8 @@ const mailgoStyle = (): void => { // mailgo function mailgo(mailgoConfig?: MailgoConfig): void { - // set the global config - config = mailgoConfig; + // set the global config if passed as parameter or keep it from window + config = mailgoConfig || (window as any)?.mailgoConfig; // if the window is defined... if (window && typeof window !== "undefined") {