From 7051a05e6e5d05e6cbaf7a5f1b8be482010403a8 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 23 Aug 2020 14:41:27 +0200 Subject: [PATCH] build dist --- dist/mailgo.min.js | 1 + i18n/i18n.json | 2 +- lib/mailgo.js | 1136 -------------------------------------------- lib/mailgo.js.map | 1 - 4 files changed, 2 insertions(+), 1138 deletions(-) create mode 100644 dist/mailgo.min.js delete mode 100644 lib/mailgo.js delete mode 100644 lib/mailgo.js.map diff --git a/dist/mailgo.min.js b/dist/mailgo.min.js new file mode 100644 index 0000000..62f86bc --- /dev/null +++ b/dist/mailgo.min.js @@ -0,0 +1 @@ +window.mailgo=function(t){var e={};function a(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=t,a.c=e,a.d=function(t,e,o){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)a.d(o,n,function(e){return t[e]}.bind(null,n));return o},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=4)}([function(t){t.exports=JSON.parse('{"languages":["en","de"],"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"},"de":{"open_in_":"Öffnen in ","subject_":"Betreff ","body_":"Nachricht ","call":"Anrufen","open":"Öffnen","_default":" mit Standard","_as_default":" mit Standard","copy":"In die Zwischenablage kopieren"}}}')},function(t,e,a){var o=a(2);t.exports="string"==typeof o?o:o.toString()},function(t,e,a){var o=a(3)(!1);o.push([t.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:#c0372a}.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:#c0372a}.m-modal .m-modal-content a.m-outlook{color:#0967aa}.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:#0967aa}.m-modal .m-modal-content a.m-tg{color:#086da0}.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:#086da0}.m-modal .m-modal-content a.m-wa{color:#067466}.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:#067466}.m-modal .m-modal-content a.m-skype{color:#076d92}.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:#076d92}.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',""]),t.exports=o},function(t,e,a){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var a=function(t,e){var a=t[1]||"",o=t[3];if(!o)return a;if(e&&"function"==typeof btoa){var n=(l=o,m=btoa(unescape(encodeURIComponent(JSON.stringify(l)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(m),"/*# ".concat(i," */")),d=o.sources.map((function(t){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(t," */")}));return[a].concat(d).concat([n]).join("\n")}var l,m,i;return[a].join("\n")}(e,t);return e[2]?"@media ".concat(e[2]," {").concat(a,"}"):a})).join("")},e.i=function(t,a,o){"string"==typeof t&&(t=[[null,t,""]]);var n={};if(o)for(var d=0;d0&&void 0!==arguments[0]?arguments[0]:"mail",a=arguments.length>1?arguments[1]:void 0;if("mail"===e){var o,n;if(a.href&&a.href.toLowerCase().startsWith(N)){M=decodeURIComponent(a.href.split("?")[0].split(N)[1].trim());var d=new URL(a.href).searchParams;z=d.get("cc"),D=d.get("bcc"),W=d.get("subject"),H=d.get("body")}else M=a.getAttribute("data-address")+"@"+a.getAttribute("data-domain"),new URL(N+encodeURIComponent(M)),z=a.getAttribute("data-cc-address")+"@"+a.getAttribute("data-cc-domain"),D=a.getAttribute("data-bcc-address")+"@"+a.getAttribute("data-bcc-domain"),W=a.getAttribute("data-subject"),H=a.getAttribute("data-body");if(void 0===(null===(o=l)||void 0===o?void 0:o.validateEmail)||!0===(null===(n=l)||void 0===n?void 0:n.validateEmail)){if(!wt(M.split(",")))return;z&&!wt(z.split(","))&&(z=""),D&&!wt(D.split(","))&&(D="")}c.innerHTML=M.split(",").join("
"),z?(s.style.display="block",b.innerHTML=z.split(",").join("
")):s.style.display="none",D?(p.style.display="block",v.innerHTML=D.split(",").join("
")):p.style.display="none",W?(u.style.display="block",g.textContent=W):u.style.display="none",H?(f.style.display="block",h.textContent=H):f.style.display="none",k.addEventListener("click",$),w.addEventListener("click",F),T=rt(M),C.addEventListener("click",G),A.addEventListener("click",(function(){return tt(M)}))}else if("tel"===e){if(a.href&&a.href.toLowerCase().startsWith(R)?B=decodeURIComponent(a.href.split("?")[0].split(R)[1].trim()):a.href&&a.href.toLowerCase().startsWith(I)?B=decodeURIComponent(a.href.split("?")[0].split(I)[1].trim()):a.hasAttribute("data-tel")&&(B=a.getAttribute("data-tel"),a.getAttribute("data-msg")),!Ct(B))return;q=a.hasAttribute("data-telegram")?a.getAttribute("data-telegram"):null,a.hasAttribute("data-skype")&&(Z=a.getAttribute("data-skype")),r.innerHTML=B,x.addEventListener("click",X),q?(document.getElementById("m-tg").style.display="block",L.addEventListener("click",Q)):document.getElementById("m-tg").style.display="none",_.addEventListener("click",V),j.addEventListener("click",Y),E.addEventListener("click",(function(){return tt(B)}))}(null===(t=l)||void 0===t?void 0:t.dark)||(a.classList.contains("dark")?gt(e):ht(e)),nt(e),document.addEventListener("keydown",ot)}var $=function(){var t="https://mail.google.com/mail/u/0/?view=cm&source=mailto&to="+encodeURIComponent(M);z&&(t=t.concat("&cc="+encodeURIComponent(z))),D&&(t=t.concat("&bcc="+encodeURIComponent(D))),W&&(t=t.concat("&subject="+W)),H&&(t=t.concat("&body="+H)),window.open(t,"_blank"),dt()},F=function(){var t="https://outlook.live.com/owa/?path=/mail/action/compose&to="+encodeURIComponent(M);W&&(t=t.concat("&subject="+W)),H&&(t=t.concat("&body="+H)),window.open(t,"_blank"),dt()},G=function(){ct(T),dt()},Q=function(){var t="https://t.me/"+q;window.open(t,"_blank"),dt()},V=function(){var t="skype:"+(""!==Z?Z:B);window.open(t,"_blank"),dt()},X=function(){var t="https://wa.me/"+B;window.open(t,"_blank"),dt()},Y=function(){var t="tel:"+B;window.open(t),dt()},tt=function(t){var e;Lt(t),(e=lt("mail")?A:E).textContent="copied",setTimeout((function(){e.textContent="copy",dt()}),999)};function et(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mail",a=t.href;return"mail"===e?a&&a.toLowerCase().startsWith(N)&&!t.classList.contains("no-mailgo")||t.hasAttribute("data-address")&&(a&&"#mailgo"===t.getAttribute("href").toLowerCase()||t.classList&&t.classList.contains("mailgo")):"tel"===e&&(a&&(a.toLowerCase().startsWith(R)||a.toLowerCase().startsWith(I))&&!t.classList.contains("no-mailgo")||t.hasAttribute("data-tel")&&a&&"#mailgo"===t.getAttribute("href").toLowerCase()||t.classList&&t.classList.contains("mailgo"))}function at(t){if(!document.contains(m)||!document.contains(i))return!1;if(lt("mail")||lt("tel"))return!1;var e=t.composedPath&&t.composedPath()||yt(t.target);return e&&e.forEach((function(e){return!(e instanceof HTMLDocument||e instanceof Window)&&(et(e,"mail")?(t.preventDefault(),K("mail",e),!0):et(e,"tel")?(t.preventDefault(),K("tel",e),!0):void 0)})),!1}var ot=function(t){if(lt("mail"))switch(t.keyCode){case 27:dt();break;case 71:$();break;case 79:F();break;case 32:case 13:G();break;case 67:tt(M);break;default:return}else if(lt("tel"))switch(t.keyCode){case 27:dt();break;case 84:Q();break;case 87:X();break;case 32:case 13:Y();break;case 67:tt(B);break;default:return}},nt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";ut(t,"flex")},dt=function(){ut("mail","none"),ut("tel","none"),document.removeEventListener("keydown",ot)},lt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"flex"===pt(t)},mt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div";return document.createElement(t)},it=function(t){return document.createTextNode(t)},ct=function(t){return window.location.href=N+atob(t)},rt=function(t){return btoa(t)},st=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return"tel"===t?i:m},pt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return st(t).style.display},ut=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail",e=arguments.length>1?arguments[1]:void 0,a=st(t);a.style.display=e,"flex"===e?(y=document.activeElement,a.setAttribute("aria-hidden","false"),a.setAttribute("tabindex","0"),a.focus(),ft(a)):(a.setAttribute("aria-hidden","true"),a.setAttribute("tabindex","-1"),y.focus())},ft=function(t){var e=t;e.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown",bt),e.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown",vt)},bt=function(t){"Tab"===t.code&&!1===t.shiftKey&&(t.preventDefault(),t.target.closest("div").querySelector("a:first-of-type").focus())},vt=function(t){"Tab"===t.code&&!0===t.shiftKey&&(t.preventDefault(),t.target.closest("div").querySelector("a:last-of-type").focus())},gt=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return st(t).classList.add("m-dark")},ht=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mail";return st(t).classList.remove("m-dark")},yt=function(t){for(var e=[];t;){if(e.push(t),"HTML"===t.tagName)return e.push(document),e.push(window),e;t=t.parentElement}},kt=function(t){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(t)},wt=function(t){return t.every(kt)},Ct=function(t){return/^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(t)},Lt=function(t){var e=mt("textarea");e.value=t,e.setAttribute("readonly",""),e.style.position="absolute",e.style.left="-9999px",document.body.appendChild(e);var a=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);return e.select(),document.execCommand("copy"),document.body.removeChild(e),!!a&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(a),!0)};var xt=function(t){var e,a,o,d;l=n(n({},t),(null===(e=window)||void 0===e?void 0:e.mailgoConfig)||null),window&&"undefined"!=typeof window&&((d=mt("style")).id="mailgo-style",d.type="text/css",d.appendChild(it(S)),document.head.appendChild(d),(null===(a=l)||void 0===a?void 0:a.initEvent)?(null===(o=l)||void 0===o?void 0:o.listenerOptions)?document.addEventListener(l.initEvent,(function(){J()}),l.listenerOptions):document.addEventListener(l.initEvent,(function(){J()})):J())};xt({initEvent:"DOMContentLoaded"})}]); \ No newline at end of file diff --git a/i18n/i18n.json b/i18n/i18n.json index 8e8cc89..17b4691 100644 --- a/i18n/i18n.json +++ b/i18n/i18n.json @@ -26,7 +26,7 @@ "open": "Öffnen", "_default": " mit Standard", "_as_default": " mit Standard", - "copy": "kopieren" + "copy": "In die Zwischenablage kopieren" } } } diff --git a/lib/mailgo.js b/lib/mailgo.js deleted file mode 100644 index 09b2fe3..0000000 --- a/lib/mailgo.js +++ /dev/null @@ -1,1136 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["mailgo"] = factory(); - else - root["mailgo"] = factory(); -})(typeof self !== 'undefined' ? self : this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 4); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module) { - -module.exports = JSON.parse("{\"languages\":[\"en\",\"it\",\"es\",\"de\",\"fr\",\"pt\",\"nl\",\"ru\"],\"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 \",\"bcc_\":\"ccn \",\"subject_\":\"oggetto \",\"body_\":\"testo \",\"call\":\"chiama\",\"open\":\"apri\",\"_default\":\" \",\"_as_default\":\" \",\"copy\":\"copia\"},\"es\":{\"open_in_\":\"abrir con \",\"bcc_\":\"cco \",\"subject_\":\"asunto \",\"body_\":\"cuerpo \",\"call\":\"llamar\",\"open\":\"abrir\",\"_default\":\" predefinido\",\"_as_default\":\" por defecto\",\"copy\":\"copiar\"},\"de\":{\"open_in_\":\"Öffnen in \",\"subject_\":\"Betreff \",\"body_\":\"Nachricht \",\"call\":\"Anrufen\",\"open\":\"Öffnen\",\"_default\":\" mit Standard\",\"_as_default\":\" mit Standard\",\"copy\":\"kopieren\"},\"pt\":{\"open_in_\":\"abrir com \",\"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 \",\"bcc_\":\"cci \",\"subject_\":\"sujet \",\"body_\":\"contenu \",\"call\":\"Appeler\",\"open\":\"Ouvrir\",\"_default\":\" par défaut\",\"_as_default\":\" par défaut\",\"copy\":\"Copier\"},\"nl\":{\"subject_\":\"onderwerp \",\"body_\":\"bericht \",\"call\":\"bellen\",\"open\":\"openen\",\"_default\":\" standaard\",\"_as_default\":\" als standaard\",\"copy\":\"kopiëren\"},\"ru\":{\"open_in_\":\"открыть в \",\"subject_\":\"тема \",\"body_\":\"тело \",\"call\":\"позвонить\",\"open\":\"открыть\",\"_default\":\" по умолчанию\",\"_as_default\":\" по умолчанию\",\"copy\":\"скопировать\"}}}"); - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - - - var result = __webpack_require__(2); - - if (typeof result === "string") { - module.exports = result; - } else { - module.exports = result.toString(); - } - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -// Imports -var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false); -// Module -___CSS_LOADER_EXPORT___.push([module.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:#c0372a}.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:#c0372a}.m-modal .m-modal-content a.m-outlook{color:#0967aa}.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:#0967aa}.m-modal .m-modal-content a.m-tg{color:#086da0}.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:#086da0}.m-modal .m-modal-content a.m-wa{color:#067466}.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:#067466}.m-modal .m-modal-content a.m-skype{color:#076d92}.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:#076d92}.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", ""]); -// Exports -module.exports = ___CSS_LOADER_EXPORT___; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function (useSourceMap) { - var list = []; // return the list of modules as css string - - list.toString = function toString() { - return this.map(function (item) { - var content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return "@media ".concat(item[2], " {").concat(content, "}"); - } - - return content; - }).join(''); - }; // import a list of modules into the list - // eslint-disable-next-line func-names - - - list.i = function (modules, mediaQuery, dedupe) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - var alreadyImportedModules = {}; - - if (dedupe) { - for (var i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - var id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - } - - for (var _i = 0; _i < modules.length; _i++) { - var item = [].concat(modules[_i]); - - if (dedupe && alreadyImportedModules[item[0]]) { - // eslint-disable-next-line no-continue - continue; - } - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = "".concat(mediaQuery, " and ").concat(item[2]); - } - } - - list.push(item); - } - }; - - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring - - var cssMapping = item[3]; - - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - var sourceMapping = toComment(cssMapping); - var sourceURLs = cssMapping.sources.map(function (source) { - return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */"); - }); - return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); - } - - return [content].join('\n'); -} // Adapted from convert-source-map (MIT) - - -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); - return "/*# ".concat(data, " */"); -} - -/***/ }), -/* 4 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ../src/mailgo.ts -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -// i18n for mailgo -var i18n = __webpack_require__(0); // mailgo scss - - -var mailgoCSS = __webpack_require__(1).toString(); // default lang - - -var DEFAULT_LANG = "en"; // links - -var MAILTO = "mailto:"; -var TEL = "tel:"; -var CALLTO = "callto:"; // deep linking - -var outlookDeepLink = "ms-outlook://"; // mailgo types - -var MAIL_TYPE = "mail"; -var TEL_TYPE = "tel"; // default href for links - -var DEFAULT_BTN_HREF = "javascript:void(0);"; // useful html tags - -var spanHTMLTag = "span"; -var aHTMLTag = "a"; -var pHTMLTag = "p"; // global mailgo config object - -var config; // default language - -var lang = DEFAULT_LANG; // modals global object - -var modalMailto, modalTel; // mailgo variables - -var url, - mail = "", - encEmail = "", - cc = "", - bcc = "", - subject = "", - bodyMail = ""; // mailgo tel variables - -var tel = "", - msg = "", - telegramUsername = "", - skypeUsername = ""; // the DOM elements - -var title, titleTel, detailCc, detailBcc, detailSubject, detailBody, ccValue, bccValue, subjectValue, bodyValue, activatedLink; // mailgo buttons (actions) - -var gmail, outlook, mailgo_open, telegram, wa, skype, call, copyMail, copyTel; -/** - * mailgoInit - * the function that creates the mailgo elements in DOM - */ - -var mailgoInit = function mailgoInit() { - var _config, _config2; - - // translations - var _ref = i18n, - translations = _ref.translations; // if a default language is defined use it - - if (((_config = config) === null || _config === void 0 ? void 0 : _config.lang) && i18n.languages.indexOf(config.lang) !== -1) { - lang = config.lang; - } // if is defined use it! - - - if (!((_config2 = config) === null || _config2 === void 0 ? void 0 : _config2.forceLang)) { - // keep the lang from html - var htmlLang = document.documentElement.lang; // if there are translations... - - if (i18n.languages.indexOf(htmlLang) !== -1) { - lang = document.documentElement.lang; - } - } // strings - - - var defaultStrings = translations[DEFAULT_LANG]; - var strings = translations[lang]; // mailgo, if mailgo not already exists - - var mailgoExists = !!document.getElementById("mailgo"); - - if (!mailgoExists) { - var _config3; - - // modal - modalMailto = createElement(); - modalMailto.style.display = "none"; - modalMailto.id = "mailgo"; - modalMailto.classList.add("m-modal"); - modalMailto.setAttribute("role", "dialog"); - modalMailto.setAttribute("tabindex", "-1"); - modalMailto.setAttribute("aria-labelledby", "m-title"); // if dark is in config - - if ((_config3 = config) === null || _config3 === void 0 ? void 0 : _config3.dark) { - enableDarkMode(MAIL_TYPE); - } else { - disableDarkMode(MAIL_TYPE); - } // background - - - var modalBackground = createElement(); - modalBackground.className = "m-modal-back"; - modalMailto.appendChild(modalBackground); // modal content - - var modalContent = createElement(); - modalContent.className = "m-modal-content"; - modalMailto.appendChild(modalContent); // title (email address) - - title = createElement("strong"); - title.id = "m-title"; - title.className = "m-title"; - modalContent.appendChild(title); // details - - var details = createElement(); - details.id = "m-details"; - details.className = "m-details"; - detailCc = createElement(pHTMLTag); - detailCc.id = "m-cc"; - var ccSpan = createElement(spanHTMLTag); - ccSpan.className = "w-500"; - ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_)); - ccValue = createElement(spanHTMLTag); - ccValue.id = "m-cc-value"; - detailCc.appendChild(ccSpan); - detailCc.appendChild(ccValue); - details.appendChild(detailCc); - detailBcc = createElement(pHTMLTag); - detailBcc.id = "m-bcc"; - var bccSpan = createElement(spanHTMLTag); - bccSpan.className = "w-500"; - bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_)); - bccValue = createElement(spanHTMLTag); - bccValue.id = "m-bcc-value"; - detailBcc.appendChild(bccSpan); - detailBcc.appendChild(bccValue); - details.appendChild(detailBcc); - detailSubject = createElement(pHTMLTag); - detailSubject.id = "m-subject"; - var subjectSpan = createElement(spanHTMLTag); - subjectSpan.className = "w-500"; - subjectSpan.appendChild(createTextNode(strings.subject_ || defaultStrings.subject_)); - subjectValue = createElement(spanHTMLTag); - subjectValue.id = "m-subject-value"; - detailSubject.appendChild(subjectSpan); - detailSubject.appendChild(subjectValue); - details.appendChild(detailSubject); - detailBody = createElement(pHTMLTag); - detailBody.id = "m-body"; - var bodySpan = createElement(spanHTMLTag); - bodySpan.className = "w-500"; - bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_)); - bodyValue = createElement(spanHTMLTag); - bodyValue.id = "m-body-value"; - detailBody.appendChild(bodySpan); - detailBody.appendChild(bodyValue); - details.appendChild(detailBody); - modalContent.appendChild(details); // Gmail - - gmail = createElement(aHTMLTag); - gmail.id = "m-gmail"; - gmail.href = DEFAULT_BTN_HREF; - gmail.classList.add("m-open"); - gmail.classList.add("m-gmail"); - gmail.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_)); - var gmailSpan = createElement(spanHTMLTag); - gmailSpan.className = "w-500"; - gmailSpan.appendChild(createTextNode(strings.gmail || defaultStrings.gmail)); - gmail.appendChild(gmailSpan); - modalContent.appendChild(gmail); // Outlook - - outlook = createElement(aHTMLTag); - outlook.id = "m-outlook"; - outlook.href = DEFAULT_BTN_HREF; - outlook.classList.add("m-open"); - outlook.classList.add("m-outlook"); - outlook.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_)); - var outlookSpan = createElement(spanHTMLTag); - outlookSpan.className = "w-500"; - outlookSpan.appendChild(createTextNode(strings.outlook || defaultStrings.outlook)); - outlook.appendChild(outlookSpan); - modalContent.appendChild(outlook); // open default - - mailgo_open = createElement(aHTMLTag); - mailgo_open.id = "m-open"; - mailgo_open.href = DEFAULT_BTN_HREF; - mailgo_open.classList.add("m-open"); - mailgo_open.classList.add("m-default"); - var openSpan = createElement(spanHTMLTag); - openSpan.className = "w-500"; - openSpan.appendChild(createTextNode(strings.open || defaultStrings.open)); - mailgo_open.appendChild(openSpan); - mailgo_open.appendChild(createTextNode(strings._default || defaultStrings._default)); - modalContent.appendChild(mailgo_open); // copy - - copyMail = createElement(aHTMLTag); - copyMail.id = "m-copy"; - copyMail.href = DEFAULT_BTN_HREF; - copyMail.classList.add("m-copy"); - copyMail.classList.add("w-500"); - copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy)); - modalContent.appendChild(copyMail); // add the modal at the end of the body - - document.body.appendChild(modalMailto); // every click outside the modal will hide the modal - - modalBackground.addEventListener("click", hideMailgo); - } // mailgo tel, if mailgo-tel not already exists - - - var mailgoTelExists = !!document.getElementById("mailgo-tel"); - - if (!mailgoTelExists) { - var _config4; - - // modal - modalTel = createElement(); - modalTel.style.display = "none"; - modalTel.id = "mailgo-tel"; - modalTel.classList.add("m-modal"); - modalTel.setAttribute("role", "dialog"); - 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) { - enableDarkMode(TEL_TYPE); - } else { - disableDarkMode(TEL_TYPE); - } // background - - - var _modalBackground = createElement(); - - _modalBackground.className = "m-modal-back"; - modalTel.appendChild(_modalBackground); // modal content - - var _modalContent = createElement(); - - _modalContent.className = "m-modal-content"; - modalTel.appendChild(_modalContent); // title (telephone number) - - titleTel = createElement("strong"); - titleTel.id = "m-tel-title"; - titleTel.className = "m-title"; - - _modalContent.appendChild(titleTel); // Telegram - - - telegram = createElement(aHTMLTag); - telegram.id = "m-tg"; - telegram.href = DEFAULT_BTN_HREF; - telegram.classList.add("m-open"); - telegram.classList.add("m-tg"); // by default not display - - telegram.style.display = "none"; - telegram.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_)); - var telegramSpan = createElement(spanHTMLTag); - telegramSpan.className = "w-500"; - telegramSpan.appendChild(createTextNode(strings.telegram || defaultStrings.telegram)); - telegram.appendChild(telegramSpan); - - _modalContent.appendChild(telegram); // WhatsApp - - - wa = createElement(aHTMLTag); - wa.id = "m-wa"; - wa.href = DEFAULT_BTN_HREF; - wa.classList.add("m-open"); - wa.classList.add("m-wa"); - wa.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_)); - var waSpan = createElement(spanHTMLTag); - waSpan.className = "w-500"; - waSpan.appendChild(createTextNode(strings.whatsapp || defaultStrings.whatsapp)); - wa.appendChild(waSpan); - - _modalContent.appendChild(wa); // Skype - - - skype = createElement(aHTMLTag); - skype.id = "m-skype"; - skype.href = DEFAULT_BTN_HREF; - skype.classList.add("m-open"); - skype.classList.add("m-skype"); - skype.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_)); - var skypeSpan = createElement(spanHTMLTag); - skypeSpan.className = "w-500"; - skypeSpan.appendChild(createTextNode(strings.skype || defaultStrings.skype)); - skype.appendChild(skypeSpan); - - _modalContent.appendChild(skype); // call default - - - call = createElement(aHTMLTag); - call.id = "m-call"; - call.href = DEFAULT_BTN_HREF; - call.classList.add("m-open"); - call.classList.add("m-default"); - var callSpan = createElement(spanHTMLTag); - callSpan.className = "w-500"; - callSpan.appendChild(createTextNode(strings.call || defaultStrings.call)); - call.appendChild(callSpan); - call.appendChild(createTextNode(strings._as_default || defaultStrings._as_default)); - - _modalContent.appendChild(call); // copy - - - copyTel = createElement(aHTMLTag); - copyTel.id = "m-tel-copy"; - copyTel.href = DEFAULT_BTN_HREF; - copyTel.classList.add("m-copy"); - copyTel.classList.add("w-500"); - copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy)); - - _modalContent.appendChild(copyTel); // add the modal at the end of the body - - - document.body.appendChild(modalTel); // every click outside the modal will hide the modal - - _modalBackground.addEventListener("click", hideMailgo); - } // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered - - - document.addEventListener("click", mailgoCheckRender); -}; -/** - * mailgoRender - * function to render a mailgo (mail or tel) - */ - - -function mailgoRender() { - var _config7; - - 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; - - // if the element href=^"mailto:" - if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(MAILTO)) { - mail = decodeURIComponent(mailgoElement.href.split("?")[0].split(MAILTO)[1].trim()); - url = new URL(mailgoElement.href); - var urlParams = url.searchParams; // optional parameters for the email - - cc = urlParams.get("cc"); - bcc = urlParams.get("bcc"); - subject = urlParams.get("subject"); - bodyMail = urlParams.get("body"); - } else { - // if the element href="#mailgo" or class="mailgo" - // mail = data-address + @ + data-domain - mail = mailgoElement.getAttribute("data-address") + "@" + mailgoElement.getAttribute("data-domain"); - url = new URL(MAILTO + encodeURIComponent(mail)); // cc = data-cc-address + @ + data-cc-domain - - cc = mailgoElement.getAttribute("data-cc-address") + "@" + mailgoElement.getAttribute("data-cc-domain"); // bcc = data-bcc-address + @ + data-bcc-domain - - bcc = mailgoElement.getAttribute("data-bcc-address") + "@" + mailgoElement.getAttribute("data-bcc-domain"); // subject = data-subject - - subject = mailgoElement.getAttribute("data-subject"); // body = data-body - - 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) { - // validate the email address - if (!validateEmails(mail.split(","))) return; // if cc, bcc are not valid cc, bcc = "" - - if (cc && !validateEmails(cc.split(","))) cc = ""; - if (bcc && !validateEmails(bcc.split(","))) bcc = ""; - } // the title of the modal (email address) - - - title.innerHTML = mail.split(",").join("
"); // add the details if provided - - cc ? (detailCc.style.display = "block", ccValue.innerHTML = cc.split(",").join("
")) : detailCc.style.display = "none"; - bcc ? (detailBcc.style.display = "block", bccValue.innerHTML = bcc.split(",").join("
")) : detailBcc.style.display = "none"; - subject ? (detailSubject.style.display = "block", subjectValue.textContent = subject) : detailSubject.style.display = "none"; - bodyMail ? (detailBody.style.display = "block", bodyValue.textContent = bodyMail) : detailBody.style.display = "none"; // add the actions - - gmail.addEventListener("click", openGmail); - outlook.addEventListener("click", openOutlook); - encEmail = encodeEmail(mail); - mailgo_open.addEventListener("click", openDefault); - copyMail.addEventListener("click", function () { - return copy(mail); - }); - } // mailgo tel - else if (type === TEL_TYPE) { - if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(TEL)) { - tel = decodeURIComponent(mailgoElement.href.split("?")[0].split(TEL)[1].trim()); - } else if (mailgoElement.href && mailgoElement.href.toLowerCase().startsWith(CALLTO)) { - tel = decodeURIComponent(mailgoElement.href.split("?")[0].split(CALLTO)[1].trim()); - } else if (mailgoElement.hasAttribute("data-tel")) { - tel = mailgoElement.getAttribute("data-tel"); - msg = mailgoElement.getAttribute("data-msg"); - } // validate the phone number - - - if (!validateTel(tel)) return; // Telegram username - - if (mailgoElement.hasAttribute("data-telegram")) { - telegramUsername = mailgoElement.getAttribute("data-telegram"); - } else { - telegramUsername = null; - } // Telegram username - - - if (mailgoElement.hasAttribute("data-skype")) { - skypeUsername = mailgoElement.getAttribute("data-skype"); - } // the title of the modal (tel) - - - titleTel.innerHTML = tel; // add the actions to buttons - - wa.addEventListener("click", openWhatsApp); // telegram must be shown only if data-telegram is provided - - if (telegramUsername) { - document.getElementById("m-tg").style.display = "block"; - telegram.addEventListener("click", openTelegram); - } else { - document.getElementById("m-tg").style.display = "none"; - } - - skype.addEventListener("click", openSkype); - call.addEventListener("click", callDefault); - copyTel.addEventListener("click", function () { - return copy(tel); - }); - } // 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 the element contains dark as class enable dark mode - if (mailgoElement.classList.contains("dark")) { - enableDarkMode(type); - } else { - disableDarkMode(type); - } - } // show the mailgo - - - showMailgo(type); // add listener keyDown - - document.addEventListener("keydown", mailgoKeydown); -} // actions - -var openGmail = function openGmail() { - // Gmail url - var gmailUrl = "https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=" + encodeURIComponent(mail); // the details if provided - - if (cc) gmailUrl = gmailUrl.concat("&cc=" + encodeURIComponent(cc)); - if (bcc) gmailUrl = gmailUrl.concat("&bcc=" + encodeURIComponent(bcc)); - if (subject) gmailUrl = gmailUrl.concat("&subject=" + subject); - if (bodyMail) gmailUrl = gmailUrl.concat("&body=" + bodyMail); // open the link - - window.open(gmailUrl, "_blank"); // hide the modal - - hideMailgo(); -}; - -var openOutlook = function openOutlook() { - // Outlook url - var outlookUrl = "https://outlook.live.com/owa/?path=/mail/action/compose&to=" + encodeURIComponent(mail); // the details if provided - - if (subject) outlookUrl = outlookUrl.concat("&subject=" + subject); - if (bodyMail) outlookUrl = outlookUrl.concat("&body=" + bodyMail); // open the link - - window.open(outlookUrl, "_blank"); // hide the modal - - hideMailgo(); -}; - -var openDefault = function openDefault() { - mailToEncoded(encEmail); - hideMailgo(); -}; - -var openTelegram = function openTelegram() { - // Telegram url - var tgUrl = "https://t.me/" + telegramUsername; // open the url - - window.open(tgUrl, "_blank"); // hide the modal - - hideMailgo(); -}; - -var openSkype = function openSkype() { - var skype = skypeUsername !== "" ? skypeUsername : tel; // Telegram url - - var skypeUrl = "skype:" + skype; // open the url - - window.open(skypeUrl, "_blank"); // hide the modal - - hideMailgo(); -}; - -var openWhatsApp = function openWhatsApp() { - // WhatsApp url - var waUrl = "https://wa.me/" + tel; // the details if provided - - if (msg) waUrl + "?text=" + msg; // open the url - - window.open(waUrl, "_blank"); // hide the modal - - hideMailgo(); -}; - -var callDefault = function callDefault() { - var callUrl = "tel:" + tel; - window.open(callUrl); - hideMailgo(); -}; - -var copy = function copy(content) { - copyToClipboard(content); - var activeCopy; // the correct copyButton (mail or tel) - - mailgoIsShowing(MAIL_TYPE) ? activeCopy = copyMail : activeCopy = copyTel; - activeCopy.textContent = "copied"; - setTimeout(function () { - activeCopy.textContent = "copy"; // hide after the timeout - - hideMailgo(); - }, 999); -}; // function that returns if an element is a mailgo - - -function isMailgo(element) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MAIL_TYPE; - var href = element.href; // mailgo type mail - - if (type === MAIL_TYPE) { - return (// first case: it is an element with "mailto:..." in href and no no-mailgo in classList - href && href.toLowerCase().startsWith(MAILTO) && !element.classList.contains("no-mailgo") || element.hasAttribute("data-address") && ( // second case: the href=#mailgo - href && element.getAttribute("href").toLowerCase() === "#mailgo" || // third case: the classList contains mailgo - element.classList && element.classList.contains("mailgo")) - ); - } // mailgo type tel - - - if (type === TEL_TYPE) { - return (// first case: it is an element with "tel:..." or "callto:..." in href and no no-mailgo in classList - href && (href.toLowerCase().startsWith(TEL) || href.toLowerCase().startsWith(CALLTO)) && !element.classList.contains("no-mailgo") || element.hasAttribute("data-tel") && // second case: the href=#mailgo - href && element.getAttribute("href").toLowerCase() === "#mailgo" || // third case: the classList contains mailgo - element.classList && element.classList.contains("mailgo") - ); - } - - return false; -} -/** - * mailgoCheckRender - * function to check if an element is mailgo-enabled or not referencing to - * mail: - * document.querySelectorAll( - * 'a[href^="mailto:" i]:not(.no-mailgo), a[href="#mailgo"], a.mailgo' - * ); - * tel: - * document.querySelectorAll( - * 'a[href^="tel:" i]:not(.no-mailgo), a[href="#mailgo"], a.mailgo' - * ); - * or - * document.querySelectorAll( - * 'a[href^="callto:" i]:not(.no-mailgo), a[href="#mailgo"], a.mailgo' - * ); - */ - -function mailgoCheckRender(event) { - // check if the id=mailgo exists in the body - if (!document.contains(modalMailto) || !document.contains(modalTel)) return false; // if a mailgo is already showing do nothing - - if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false; // the path of the event - - var path = event.composedPath && event.composedPath() || composedPath(event.target); - - if (path) { - path.forEach(function (element) { - if (element instanceof HTMLDocument || element instanceof Window) return false; // go in the event.path to find if the user has clicked on a mailgo element - - if (isMailgo(element, MAIL_TYPE)) { - // stop the normal execution of the element click - event.preventDefault(); // render mailgo - - mailgoRender(MAIL_TYPE, element); - return true; - } - - if (isMailgo(element, TEL_TYPE)) { - // stop the normal execution of the element click - event.preventDefault(); // render mailgo - - mailgoRender(TEL_TYPE, element); - return true; - } - }); - } - - return false; -} -/** - * mailgoKeydown - * function to manage the keydown event when the modal is showing - */ - -var mailgoKeydown = function mailgoKeydown(keyboardEvent) { - // if mailgo is showing - if (mailgoIsShowing(MAIL_TYPE)) { - switch (keyboardEvent.keyCode) { - case 27: - // Escape - hideMailgo(); - break; - - case 71: - // g -> open GMail - openGmail(); - break; - - case 79: - // o -> open Outlook - openOutlook(); - break; - - case 32: - case 13: - // spacebar or enter -> open default - openDefault(); - break; - - case 67: - // c -> copy - copy(mail); - break; - - default: - return; - } - } else if (mailgoIsShowing(TEL_TYPE)) { - switch (keyboardEvent.keyCode) { - case 27: - // Escape - hideMailgo(); - break; - - case 84: - // t -> open Telegram - openTelegram(); - break; - - case 87: - // w -> open WhatsApp - openWhatsApp(); - break; - - case 32: - case 13: - // spacebar or enter -> call default - callDefault(); - break; - - case 67: - // c -> copy - copy(tel); - break; - - default: - return; - } - } - - return; -}; // show the modal - - -var showMailgo = function showMailgo() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - // show the correct modal - setModalDisplay(type, "flex"); -}; // hide the modal - - -var hideMailgo = function hideMailgo() { - // hide all the modals - setModalDisplay(MAIL_TYPE, "none"); - setModalDisplay(TEL_TYPE, "none"); // remove listener keyDown - - document.removeEventListener("keydown", mailgoKeydown); -}; // is the mailgo modal hidden? - - -var mailgoIsShowing = function mailgoIsShowing() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - return getModalDisplay(type) === "flex"; -}; // create element - - -var createElement = function createElement() { - var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "div"; - return document.createElement(element); -}; // create text node - - -var createTextNode = function createTextNode(element) { - return document.createTextNode(element); -}; // decrypt email - - -var mailToEncoded = function mailToEncoded(encoded) { - return window.location.href = MAILTO + atob(encoded); -}; // encode email - - -var encodeEmail = function encodeEmail(email) { - return btoa(email); -}; // get the correct HTMLElement from a type - - -var getModalHTMLElement = function getModalHTMLElement() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - return type === TEL_TYPE ? modalTel : modalMailto; -}; // get display value - - -var getModalDisplay = function getModalDisplay() { - var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - return getModalHTMLElement(ref).style.display; -}; // set display value - - -var setModalDisplay = function setModalDisplay() { - var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - var value = arguments.length > 1 ? arguments[1] : undefined; - var modal = getModalHTMLElement(ref); - modal.style.display = value; - - if (value === "flex") { - // "save" the activated link. - activatedLink = document.activeElement; - modal.setAttribute("aria-hidden", "false"); // Focus on the modal container. - - modal.setAttribute("tabindex", "0"); - modal.focus(); - setFocusLoop(modal); - } else { - modal.setAttribute("aria-hidden", "true"); // focus back the activated link for getting back to the context. - - modal.setAttribute("tabindex", "-1"); - activatedLink.focus(); - } -}; // set focus loop within modal - - -var setFocusLoop = function setFocusLoop(ref) { - var modal = ref; - modal.querySelector(".m-modal-content a:last-of-type").addEventListener("keydown", leaveLastLink); - modal.querySelector(".m-modal-content a:first-of-type").addEventListener("keydown", leaveFirstLink); -}; - -var leaveLastLink = function leaveLastLink(e) { - // going back to the first link to force looping - if (e.code === "Tab" && e.shiftKey === false) { - e.preventDefault(); - e.target.closest("div").querySelector("a:first-of-type").focus(); - } -}; - -var leaveFirstLink = function leaveFirstLink(e) { - // going back to the first link to force looping - if (e.code === "Tab" && e.shiftKey === true) { - e.preventDefault(); - e.target.closest("div").querySelector("a:last-of-type").focus(); - } -}; // enable dark mode - - -var enableDarkMode = function enableDarkMode() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - return getModalHTMLElement(type).classList.add("m-dark"); -}; // disable dark mode - - -var disableDarkMode = function disableDarkMode() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAIL_TYPE; - return getModalHTMLElement(type).classList.remove("m-dark"); -}; // custom composedPath if path or event.composedPath() are not defined - - -var composedPath = function composedPath(el) { - var path = []; - - while (el) { - path.push(el); - - if (el.tagName === "HTML") { - path.push(document); - path.push(window); - return path; - } - - el = el.parentElement; - } -}; // validate a single email with regex - - -var validateEmail = function validateEmail(email) { - 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(email); -}; // validate an array of emails - - -var validateEmails = function validateEmails(arr) { - return arr.every(validateEmail); -}; // validate a single tel with regex - - -var validateTel = function validateTel(tel) { - return /^[+]{0,1}[\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/.test(tel); -}; // copy of a string - - -var copyToClipboard = function copyToClipboard(str) { - var el = createElement("textarea"); - el.value = str; - el.setAttribute("readonly", ""); - el.style.position = "absolute"; - el.style.left = "-9999px"; - document.body.appendChild(el); - var selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false; - el.select(); - document.execCommand("copy"); - document.body.removeChild(el); - - if (selected) { - document.getSelection().removeAllRanges(); - document.getSelection().addRange(selected); - return true; - } - - return false; -}; - -var mailgoStyle = function mailgoStyle() { - // mailgo style - var mailgoCSSElement = createElement("style"); - mailgoCSSElement.id = "mailgo-style"; - mailgoCSSElement.type = "text/css"; - mailgoCSSElement.appendChild(createTextNode(mailgoCSS)); - document.head.appendChild(mailgoCSSElement); -}; // mailgo - - -function mailgo(mailgoConfig) { - var _window; - - // set the global config merging window mailgConfig and mailgoConfig passed as a parameter - config = _objectSpread(_objectSpread({}, mailgoConfig), ((_window = window) === null || _window === void 0 ? void 0 : _window.mailgoConfig) || null); // if the window is defined... - - if (window && typeof window !== "undefined") { - var _config8; - - // 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 ((_config9 = config) === null || _config9 === void 0 ? void 0 : _config9.listenerOptions) { - // listener options specified - document.addEventListener(config.initEvent, function () { - mailgoInit(); - }, config.listenerOptions); - } else { - // no listener options - document.addEventListener(config.initEvent, function () { - mailgoInit(); - }); - } - } else { - mailgoInit(); - } - } -} - -/* harmony default export */ var src_mailgo = (mailgo); -// CONCATENATED MODULE: ./mailgo.lib.ts -// webpack > lib/mailgo.js - - - -/* harmony default export */ var mailgo_lib = __webpack_exports__["default"] = (src_mailgo); - - -/***/ }) -/******/ ])["default"]; -}); -//# sourceMappingURL=mailgo.js.map \ No newline at end of file diff --git a/lib/mailgo.js.map b/lib/mailgo.js.map deleted file mode 100644 index 8af4d47..0000000 --- a/lib/mailgo.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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","indexOf","forceLang","htmlLang","document","documentElement","defaultStrings","strings","mailgoExists","getElementById","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","body","addEventListener","hideMailgo","mailgoTelExists","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","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","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___(false);\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:#c0372a}.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:#c0372a}.m-modal .m-modal-content a.m-outlook{color:#0967aa}.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:#0967aa}.m-modal .m-modal-content a.m-tg{color:#086da0}.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:#086da0}.m-modal .m-modal-content a.m-wa{color:#067466}.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:#067466}.m-modal .m-modal-content a.m-skype{color:#076d92}.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:#076d92}.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\", \"\"]);\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 {\r\n MailgoConfig,\r\n MailgoTranslations,\r\n MailgoTranslation,\r\n MailgoI18n,\r\n} from \"mailgo\";\r\n\r\n// i18n for mailgo\r\nconst i18n: MailgoI18n = require(\"../i18n/i18n.json\");\r\n\r\n// mailgo scss\r\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\r\n\r\n// default lang\r\nconst DEFAULT_LANG: string = \"en\";\r\n\r\n// links\r\nconst MAILTO: string = \"mailto:\";\r\nconst TEL: string = \"tel:\";\r\nconst CALLTO: string = \"callto:\";\r\n\r\n// deep linking\r\nconst outlookDeepLink: string = \"ms-outlook://\";\r\n\r\n// mailgo types\r\nconst MAIL_TYPE: string = \"mail\";\r\nconst TEL_TYPE: string = \"tel\";\r\n\r\n// default href for links\r\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\r\n\r\n// useful html tags\r\nconst spanHTMLTag: string = \"span\";\r\nconst aHTMLTag: string = \"a\";\r\nconst pHTMLTag: string = \"p\";\r\n\r\n// global mailgo config object\r\nlet config: MailgoConfig;\r\n\r\n// default language\r\nlet lang: string = DEFAULT_LANG;\r\n\r\n// modals global object\r\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\r\n\r\n// mailgo variables\r\nlet url: URL,\r\n mail: string = \"\",\r\n encEmail: string = \"\",\r\n cc: string = \"\",\r\n bcc: string = \"\",\r\n subject: string = \"\",\r\n bodyMail: string = \"\";\r\n\r\n// mailgo tel variables\r\nlet tel: string = \"\",\r\n msg: string = \"\",\r\n telegramUsername: string = \"\",\r\n skypeUsername: string = \"\";\r\n\r\n// the DOM elements\r\nlet title: HTMLElement,\r\n titleTel: HTMLElement,\r\n detailCc: HTMLElement,\r\n detailBcc: HTMLElement,\r\n detailSubject: HTMLElement,\r\n detailBody: HTMLElement,\r\n ccValue: HTMLElement,\r\n bccValue: HTMLElement,\r\n subjectValue: HTMLElement,\r\n bodyValue: HTMLElement,\r\n activatedLink: HTMLElement;\r\n\r\n// mailgo buttons (actions)\r\nlet gmail: HTMLLinkElement,\r\n outlook: HTMLLinkElement,\r\n open: HTMLLinkElement,\r\n telegram: HTMLLinkElement,\r\n wa: HTMLLinkElement,\r\n skype: HTMLLinkElement,\r\n call: HTMLLinkElement,\r\n copyMail: HTMLLinkElement,\r\n copyTel: HTMLLinkElement;\r\n\r\n/**\r\n * mailgoInit\r\n * the function that creates the mailgo elements in DOM\r\n */\r\nconst mailgoInit = (): void => {\r\n // translations\r\n let {\r\n translations,\r\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\r\n\r\n // if a default language is defined use it\r\n if (config?.lang && i18n.languages.indexOf(config.lang) !== -1) {\r\n lang = config.lang;\r\n }\r\n\r\n // if is defined use it!\r\n if (!config?.forceLang) {\r\n // keep the lang from html\r\n let htmlLang: string = document.documentElement.lang;\r\n\r\n // if there are translations...\r\n if (i18n.languages.indexOf(htmlLang) !== -1) {\r\n lang = document.documentElement.lang;\r\n }\r\n }\r\n\r\n // strings\r\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\r\n let strings: MailgoTranslation = translations[lang];\r\n\r\n // mailgo, if mailgo not already exists\r\n let mailgoExists = !!document.getElementById(\"mailgo\");\r\n\r\n if (!mailgoExists) {\r\n // modal\r\n modalMailto = createElement() as HTMLElement;\r\n modalMailto.style.display = \"none\";\r\n modalMailto.id = \"mailgo\";\r\n modalMailto.classList.add(\"m-modal\");\r\n modalMailto.setAttribute(\"role\", \"dialog\");\r\n modalMailto.setAttribute(\"tabindex\", \"-1\");\r\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\r\n\r\n // if dark is in config\r\n if (config?.dark) {\r\n enableDarkMode(MAIL_TYPE);\r\n } else {\r\n disableDarkMode(MAIL_TYPE);\r\n }\r\n\r\n // background\r\n let modalBackground: HTMLElement = createElement();\r\n modalBackground.className = \"m-modal-back\";\r\n modalMailto.appendChild(modalBackground);\r\n\r\n // modal content\r\n let modalContent: HTMLElement = createElement();\r\n modalContent.className = \"m-modal-content\";\r\n modalMailto.appendChild(modalContent);\r\n\r\n // title (email address)\r\n title = createElement(\"strong\");\r\n title.id = \"m-title\";\r\n title.className = \"m-title\";\r\n modalContent.appendChild(title);\r\n\r\n // details\r\n let details: HTMLElement = createElement();\r\n details.id = \"m-details\";\r\n details.className = \"m-details\";\r\n\r\n detailCc = createElement(pHTMLTag);\r\n detailCc.id = \"m-cc\";\r\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\r\n ccSpan.className = \"w-500\";\r\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\r\n ccValue = createElement(spanHTMLTag);\r\n ccValue.id = \"m-cc-value\";\r\n detailCc.appendChild(ccSpan);\r\n detailCc.appendChild(ccValue);\r\n details.appendChild(detailCc);\r\n\r\n detailBcc = createElement(pHTMLTag);\r\n detailBcc.id = \"m-bcc\";\r\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\r\n bccSpan.className = \"w-500\";\r\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\r\n bccValue = createElement(spanHTMLTag);\r\n bccValue.id = \"m-bcc-value\";\r\n detailBcc.appendChild(bccSpan);\r\n detailBcc.appendChild(bccValue);\r\n details.appendChild(detailBcc);\r\n\r\n detailSubject = createElement(pHTMLTag);\r\n detailSubject.id = \"m-subject\";\r\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\r\n subjectSpan.className = \"w-500\";\r\n subjectSpan.appendChild(\r\n createTextNode(strings.subject_ || defaultStrings.subject_)\r\n );\r\n subjectValue = createElement(spanHTMLTag);\r\n subjectValue.id = \"m-subject-value\";\r\n detailSubject.appendChild(subjectSpan);\r\n detailSubject.appendChild(subjectValue);\r\n details.appendChild(detailSubject);\r\n\r\n detailBody = createElement(pHTMLTag);\r\n detailBody.id = \"m-body\";\r\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\r\n bodySpan.className = \"w-500\";\r\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\r\n bodyValue = createElement(spanHTMLTag);\r\n bodyValue.id = \"m-body-value\";\r\n detailBody.appendChild(bodySpan);\r\n detailBody.appendChild(bodyValue);\r\n details.appendChild(detailBody);\r\n\r\n modalContent.appendChild(details);\r\n\r\n // Gmail\r\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\r\n gmail.id = \"m-gmail\";\r\n gmail.href = DEFAULT_BTN_HREF;\r\n gmail.classList.add(\"m-open\");\r\n gmail.classList.add(\"m-gmail\");\r\n gmail.appendChild(\r\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\r\n );\r\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\r\n gmailSpan.className = \"w-500\";\r\n gmailSpan.appendChild(\r\n createTextNode(strings.gmail || defaultStrings.gmail)\r\n );\r\n gmail.appendChild(gmailSpan);\r\n\r\n modalContent.appendChild(gmail);\r\n\r\n // Outlook\r\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\r\n outlook.id = \"m-outlook\";\r\n outlook.href = DEFAULT_BTN_HREF;\r\n outlook.classList.add(\"m-open\");\r\n outlook.classList.add(\"m-outlook\");\r\n outlook.appendChild(\r\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\r\n );\r\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\r\n outlookSpan.className = \"w-500\";\r\n outlookSpan.appendChild(\r\n createTextNode(strings.outlook || defaultStrings.outlook)\r\n );\r\n outlook.appendChild(outlookSpan);\r\n\r\n modalContent.appendChild(outlook);\r\n\r\n // open default\r\n open = createElement(aHTMLTag) as HTMLLinkElement;\r\n open.id = \"m-open\";\r\n open.href = DEFAULT_BTN_HREF;\r\n open.classList.add(\"m-open\");\r\n open.classList.add(\"m-default\");\r\n let openSpan: HTMLElement = createElement(spanHTMLTag);\r\n openSpan.className = \"w-500\";\r\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\r\n open.appendChild(openSpan);\r\n open.appendChild(\r\n createTextNode(strings._default || defaultStrings._default)\r\n );\r\n\r\n modalContent.appendChild(open);\r\n\r\n // copy\r\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\r\n copyMail.id = \"m-copy\";\r\n copyMail.href = DEFAULT_BTN_HREF;\r\n copyMail.classList.add(\"m-copy\");\r\n copyMail.classList.add(\"w-500\");\r\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\r\n\r\n modalContent.appendChild(copyMail);\r\n\r\n // add the modal at the end of the body\r\n document.body.appendChild(modalMailto);\r\n\r\n // every click outside the modal will hide the modal\r\n modalBackground.addEventListener(\"click\", hideMailgo);\r\n }\r\n\r\n // mailgo tel, if mailgo-tel not already exists\r\n let mailgoTelExists = !!document.getElementById(\"mailgo-tel\");\r\n\r\n if (!mailgoTelExists) {\r\n // modal\r\n modalTel = createElement() as HTMLElement;\r\n modalTel.style.display = \"none\";\r\n modalTel.id = \"mailgo-tel\";\r\n modalTel.classList.add(\"m-modal\");\r\n modalTel.setAttribute(\"role\", \"dialog\");\r\n modalTel.setAttribute(\"tabindex\", \"-1\");\r\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\r\n\r\n // if dark is in config\r\n if (config?.dark) {\r\n enableDarkMode(TEL_TYPE);\r\n } else {\r\n disableDarkMode(TEL_TYPE);\r\n }\r\n\r\n // background\r\n let modalBackground: HTMLElement = createElement();\r\n modalBackground.className = \"m-modal-back\";\r\n modalTel.appendChild(modalBackground);\r\n\r\n // modal content\r\n let modalContent: HTMLElement = createElement();\r\n modalContent.className = \"m-modal-content\";\r\n modalTel.appendChild(modalContent);\r\n\r\n // title (telephone number)\r\n titleTel = createElement(\"strong\");\r\n titleTel.id = \"m-tel-title\";\r\n titleTel.className = \"m-title\";\r\n modalContent.appendChild(titleTel);\r\n\r\n // Telegram\r\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\r\n telegram.id = \"m-tg\";\r\n telegram.href = DEFAULT_BTN_HREF;\r\n telegram.classList.add(\"m-open\");\r\n telegram.classList.add(\"m-tg\");\r\n\r\n // by default not display\r\n telegram.style.display = \"none\";\r\n\r\n telegram.appendChild(\r\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\r\n );\r\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\r\n telegramSpan.className = \"w-500\";\r\n telegramSpan.appendChild(\r\n createTextNode(strings.telegram || defaultStrings.telegram)\r\n );\r\n telegram.appendChild(telegramSpan);\r\n\r\n modalContent.appendChild(telegram);\r\n\r\n // WhatsApp\r\n wa = createElement(aHTMLTag) as HTMLLinkElement;\r\n wa.id = \"m-wa\";\r\n wa.href = DEFAULT_BTN_HREF;\r\n wa.classList.add(\"m-open\");\r\n wa.classList.add(\"m-wa\");\r\n wa.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\r\n let waSpan: HTMLElement = createElement(spanHTMLTag);\r\n waSpan.className = \"w-500\";\r\n waSpan.appendChild(\r\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\r\n );\r\n wa.appendChild(waSpan);\r\n\r\n modalContent.appendChild(wa);\r\n\r\n // Skype\r\n skype = createElement(aHTMLTag) as HTMLLinkElement;\r\n skype.id = \"m-skype\";\r\n skype.href = DEFAULT_BTN_HREF;\r\n skype.classList.add(\"m-open\");\r\n skype.classList.add(\"m-skype\");\r\n skype.appendChild(\r\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\r\n );\r\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\r\n skypeSpan.className = \"w-500\";\r\n skypeSpan.appendChild(\r\n createTextNode(strings.skype || defaultStrings.skype)\r\n );\r\n skype.appendChild(skypeSpan);\r\n\r\n modalContent.appendChild(skype);\r\n\r\n // call default\r\n call = createElement(aHTMLTag) as HTMLLinkElement;\r\n call.id = \"m-call\";\r\n call.href = DEFAULT_BTN_HREF;\r\n call.classList.add(\"m-open\");\r\n call.classList.add(\"m-default\");\r\n let callSpan: HTMLElement = createElement(spanHTMLTag);\r\n callSpan.className = \"w-500\";\r\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\r\n call.appendChild(callSpan);\r\n call.appendChild(\r\n createTextNode(strings._as_default || defaultStrings._as_default)\r\n );\r\n\r\n modalContent.appendChild(call);\r\n\r\n // copy\r\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\r\n copyTel.id = \"m-tel-copy\";\r\n copyTel.href = DEFAULT_BTN_HREF;\r\n copyTel.classList.add(\"m-copy\");\r\n copyTel.classList.add(\"w-500\");\r\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\r\n\r\n modalContent.appendChild(copyTel);\r\n\r\n // add the modal at the end of the body\r\n document.body.appendChild(modalTel);\r\n\r\n // every click outside the modal will hide the modal\r\n modalBackground.addEventListener(\"click\", hideMailgo);\r\n }\r\n\r\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\r\n document.addEventListener(\"click\", mailgoCheckRender);\r\n};\r\n\r\n/**\r\n * mailgoRender\r\n * function to render a mailgo (mail or tel)\r\n */\r\nexport function mailgoRender(\r\n type: string = MAIL_TYPE,\r\n mailgoElement: HTMLLinkElement\r\n): void {\r\n // mailgo mail\r\n if (type === MAIL_TYPE) {\r\n // if the element href=^\"mailto:\"\r\n if (\r\n mailgoElement.href &&\r\n mailgoElement.href.toLowerCase().startsWith(MAILTO)\r\n ) {\r\n mail = decodeURIComponent(\r\n mailgoElement.href.split(\"?\")[0].split(MAILTO)[1].trim()\r\n );\r\n\r\n url = new URL(mailgoElement.href);\r\n let urlParams: URLSearchParams = url.searchParams;\r\n\r\n // optional parameters for the email\r\n cc = urlParams.get(\"cc\");\r\n bcc = urlParams.get(\"bcc\");\r\n subject = urlParams.get(\"subject\");\r\n bodyMail = urlParams.get(\"body\");\r\n } else {\r\n // if the element href=\"#mailgo\" or class=\"mailgo\"\r\n // mail = data-address + @ + data-domain\r\n mail =\r\n mailgoElement.getAttribute(\"data-address\") +\r\n \"@\" +\r\n mailgoElement.getAttribute(\"data-domain\");\r\n\r\n url = new URL(MAILTO + encodeURIComponent(mail));\r\n\r\n // cc = data-cc-address + @ + data-cc-domain\r\n cc =\r\n mailgoElement.getAttribute(\"data-cc-address\") +\r\n \"@\" +\r\n mailgoElement.getAttribute(\"data-cc-domain\");\r\n\r\n // bcc = data-bcc-address + @ + data-bcc-domain\r\n bcc =\r\n mailgoElement.getAttribute(\"data-bcc-address\") +\r\n \"@\" +\r\n mailgoElement.getAttribute(\"data-bcc-domain\");\r\n\r\n // subject = data-subject\r\n subject = mailgoElement.getAttribute(\"data-subject\");\r\n\r\n // body = data-body\r\n bodyMail = mailgoElement.getAttribute(\"data-body\");\r\n }\r\n\r\n if (\r\n typeof config?.validateEmail === \"undefined\" ||\r\n config?.validateEmail === true\r\n ) {\r\n // validate the email address\r\n if (!validateEmails(mail.split(\",\"))) return;\r\n\r\n // if cc, bcc are not valid cc, bcc = \"\"\r\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\r\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\r\n }\r\n\r\n // the title of the modal (email address)\r\n title.innerHTML = mail.split(\",\").join(\"
\");\r\n\r\n // add the details if provided\r\n cc\r\n ? ((detailCc.style.display = \"block\"),\r\n (ccValue.innerHTML = cc.split(\",\").join(\"
\")))\r\n : (detailCc.style.display = \"none\");\r\n\r\n bcc\r\n ? ((detailBcc.style.display = \"block\"),\r\n (bccValue.innerHTML = bcc.split(\",\").join(\"
\")))\r\n : (detailBcc.style.display = \"none\");\r\n\r\n subject\r\n ? ((detailSubject.style.display = \"block\"),\r\n (subjectValue.textContent = subject))\r\n : (detailSubject.style.display = \"none\");\r\n\r\n bodyMail\r\n ? ((detailBody.style.display = \"block\"),\r\n (bodyValue.textContent = bodyMail))\r\n : (detailBody.style.display = \"none\");\r\n\r\n // add the actions\r\n gmail.addEventListener(\"click\", openGmail);\r\n\r\n outlook.addEventListener(\"click\", openOutlook);\r\n\r\n encEmail = encodeEmail(mail);\r\n open.addEventListener(\"click\", openDefault);\r\n\r\n copyMail.addEventListener(\"click\", () => copy(mail));\r\n }\r\n // mailgo tel\r\n else if (type === TEL_TYPE) {\r\n if (\r\n mailgoElement.href &&\r\n mailgoElement.href.toLowerCase().startsWith(TEL)\r\n ) {\r\n tel = decodeURIComponent(\r\n mailgoElement.href.split(\"?\")[0].split(TEL)[1].trim()\r\n );\r\n } else if (\r\n mailgoElement.href &&\r\n mailgoElement.href.toLowerCase().startsWith(CALLTO)\r\n ) {\r\n tel = decodeURIComponent(\r\n mailgoElement.href.split(\"?\")[0].split(CALLTO)[1].trim()\r\n );\r\n } else if (mailgoElement.hasAttribute(\"data-tel\")) {\r\n tel = mailgoElement.getAttribute(\"data-tel\");\r\n msg = mailgoElement.getAttribute(\"data-msg\");\r\n }\r\n\r\n // validate the phone number\r\n if (!validateTel(tel)) return;\r\n\r\n // Telegram username\r\n if (mailgoElement.hasAttribute(\"data-telegram\")) {\r\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\r\n } else {\r\n telegramUsername = null;\r\n }\r\n\r\n // Telegram username\r\n if (mailgoElement.hasAttribute(\"data-skype\")) {\r\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\r\n }\r\n\r\n // the title of the modal (tel)\r\n titleTel.innerHTML = tel;\r\n\r\n // add the actions to buttons\r\n wa.addEventListener(\"click\", openWhatsApp);\r\n\r\n // telegram must be shown only if data-telegram is provided\r\n if (telegramUsername) {\r\n document.getElementById(\"m-tg\").style.display = \"block\";\r\n telegram.addEventListener(\"click\", openTelegram);\r\n } else {\r\n document.getElementById(\"m-tg\").style.display = \"none\";\r\n }\r\n\r\n skype.addEventListener(\"click\", openSkype);\r\n\r\n call.addEventListener(\"click\", callDefault);\r\n\r\n copyTel.addEventListener(\"click\", () => copy(tel));\r\n }\r\n\r\n // if config.dark is set to true then all the modals will be in dark mode\r\n if (!config?.dark) {\r\n // if the element contains dark as class enable dark mode\r\n if (mailgoElement.classList.contains(\"dark\")) {\r\n enableDarkMode(type);\r\n } else {\r\n disableDarkMode(type);\r\n }\r\n }\r\n\r\n // show the mailgo\r\n showMailgo(type);\r\n\r\n // add listener keyDown\r\n document.addEventListener(\"keydown\", mailgoKeydown);\r\n}\r\n\r\n// actions\r\nconst openGmail = (): void => {\r\n // Gmail url\r\n let gmailUrl: string =\r\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\r\n encodeURIComponent(mail);\r\n\r\n // the details if provided\r\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\r\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\r\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\r\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\r\n\r\n // open the link\r\n window.open(gmailUrl, \"_blank\");\r\n\r\n // hide the modal\r\n hideMailgo();\r\n};\r\n\r\nconst openOutlook = (): void => {\r\n // Outlook url\r\n let outlookUrl: string =\r\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\r\n encodeURIComponent(mail);\r\n\r\n // the details if provided\r\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\r\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\r\n\r\n // open the link\r\n window.open(outlookUrl, \"_blank\");\r\n\r\n // hide the modal\r\n hideMailgo();\r\n};\r\n\r\nconst openDefault = (): void => {\r\n mailToEncoded(encEmail);\r\n hideMailgo();\r\n};\r\n\r\nconst openTelegram = (): void => {\r\n // Telegram url\r\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\r\n\r\n // open the url\r\n window.open(tgUrl, \"_blank\");\r\n\r\n // hide the modal\r\n hideMailgo();\r\n};\r\n\r\nconst openSkype = (): void => {\r\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\r\n\r\n // Telegram url\r\n let skypeUrl: string = \"skype:\" + skype;\r\n\r\n // open the url\r\n window.open(skypeUrl, \"_blank\");\r\n\r\n // hide the modal\r\n hideMailgo();\r\n};\r\n\r\nconst openWhatsApp = (): void => {\r\n // WhatsApp url\r\n let waUrl: string = \"https://wa.me/\" + tel;\r\n\r\n // the details if provided\r\n if (msg) waUrl + \"?text=\" + msg;\r\n\r\n // open the url\r\n window.open(waUrl, \"_blank\");\r\n\r\n // hide the modal\r\n hideMailgo();\r\n};\r\n\r\nconst callDefault = () => {\r\n let callUrl: string = \"tel:\" + tel;\r\n window.open(callUrl);\r\n hideMailgo();\r\n};\r\n\r\nconst copy = (content: string): void => {\r\n copyToClipboard(content);\r\n let activeCopy: HTMLElement;\r\n // the correct copyButton (mail or tel)\r\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\r\n activeCopy.textContent = \"copied\";\r\n setTimeout(() => {\r\n activeCopy.textContent = \"copy\";\r\n // hide after the timeout\r\n hideMailgo();\r\n }, 999);\r\n};\r\n\r\n// function that returns if an element is a mailgo\r\nexport function isMailgo(\r\n element: HTMLElement,\r\n type: string = MAIL_TYPE\r\n): boolean {\r\n let href: string = (element as HTMLLinkElement).href;\r\n\r\n // mailgo type mail\r\n if (type === MAIL_TYPE) {\r\n return (\r\n // first case: it is an
element with \"mailto:...\" in href and no no-mailgo in classList\r\n (href &&\r\n href.toLowerCase().startsWith(MAILTO) &&\r\n !element.classList.contains(\"no-mailgo\")) ||\r\n (element.hasAttribute(\"data-address\") &&\r\n // second case: the href=#mailgo\r\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\r\n // third case: the classList contains mailgo\r\n (element.classList && element.classList.contains(\"mailgo\"))))\r\n );\r\n }\r\n\r\n // mailgo type tel\r\n if (type === TEL_TYPE) {\r\n return (\r\n // first case: it is an element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\r\n (href &&\r\n (href.toLowerCase().startsWith(TEL) ||\r\n href.toLowerCase().startsWith(CALLTO)) &&\r\n !element.classList.contains(\"no-mailgo\")) ||\r\n (element.hasAttribute(\"data-tel\") &&\r\n // second case: the href=#mailgo\r\n href &&\r\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\r\n // third case: the classList contains mailgo\r\n (element.classList && element.classList.contains(\"mailgo\"))\r\n );\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * mailgoCheckRender\r\n * function to check if an element is mailgo-enabled or not referencing to\r\n * mail:\r\n * document.querySelectorAll(\r\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\r\n * );\r\n * tel:\r\n * document.querySelectorAll(\r\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\r\n * );\r\n * or\r\n * document.querySelectorAll(\r\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\r\n * );\r\n */\r\nexport function mailgoCheckRender(event: Event): boolean {\r\n // check if the id=mailgo exists in the body\r\n if (!document.contains(modalMailto) || !document.contains(modalTel))\r\n return false;\r\n\r\n // if a mailgo is already showing do nothing\r\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\r\n\r\n // the path of the event\r\n let path =\r\n (event.composedPath && event.composedPath()) ||\r\n composedPath(event.target as HTMLElement);\r\n\r\n if (path) {\r\n path.forEach((element: HTMLElement) => {\r\n if (element instanceof HTMLDocument || element instanceof Window)\r\n return false;\r\n\r\n // go in the event.path to find if the user has clicked on a mailgo element\r\n if (isMailgo(element, MAIL_TYPE)) {\r\n // stop the normal execution of the element click\r\n event.preventDefault();\r\n\r\n // render mailgo\r\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\r\n\r\n return true;\r\n }\r\n if (isMailgo(element, TEL_TYPE)) {\r\n // stop the normal execution of the element click\r\n event.preventDefault();\r\n\r\n // render mailgo\r\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\r\n\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * mailgoKeydown\r\n * function to manage the keydown event when the modal is showing\r\n */\r\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\r\n // if mailgo is showing\r\n if (mailgoIsShowing(MAIL_TYPE)) {\r\n switch (keyboardEvent.keyCode) {\r\n case 27:\r\n // Escape\r\n hideMailgo();\r\n break;\r\n case 71:\r\n // g -> open GMail\r\n openGmail();\r\n break;\r\n case 79:\r\n // o -> open Outlook\r\n openOutlook();\r\n break;\r\n case 32:\r\n case 13:\r\n // spacebar or enter -> open default\r\n openDefault();\r\n break;\r\n case 67:\r\n // c -> copy\r\n copy(mail);\r\n break;\r\n default:\r\n return;\r\n }\r\n } else if (mailgoIsShowing(TEL_TYPE)) {\r\n switch (keyboardEvent.keyCode) {\r\n case 27:\r\n // Escape\r\n hideMailgo();\r\n break;\r\n case 84:\r\n // t -> open Telegram\r\n openTelegram();\r\n break;\r\n case 87:\r\n // w -> open WhatsApp\r\n openWhatsApp();\r\n break;\r\n case 32:\r\n case 13:\r\n // spacebar or enter -> call default\r\n callDefault();\r\n break;\r\n case 67:\r\n // c -> copy\r\n copy(tel);\r\n break;\r\n default:\r\n return;\r\n }\r\n }\r\n return;\r\n};\r\n\r\n// show the modal\r\nconst showMailgo = (type = MAIL_TYPE): void => {\r\n // show the correct modal\r\n setModalDisplay(type, \"flex\");\r\n};\r\n\r\n// hide the modal\r\nconst hideMailgo = (): void => {\r\n // hide all the modals\r\n setModalDisplay(MAIL_TYPE, \"none\");\r\n setModalDisplay(TEL_TYPE, \"none\");\r\n\r\n // remove listener keyDown\r\n document.removeEventListener(\"keydown\", mailgoKeydown);\r\n};\r\n\r\n// is the mailgo modal hidden?\r\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\r\n return getModalDisplay(type) === \"flex\";\r\n};\r\n\r\n// create element\r\nconst createElement = (element: string = \"div\"): HTMLElement =>\r\n document.createElement(element);\r\n\r\n// create text node\r\nconst createTextNode = (element: string): Text =>\r\n document.createTextNode(element);\r\n\r\n// decrypt email\r\nconst mailToEncoded = (encoded: string): string =>\r\n (window.location.href = MAILTO + atob(encoded));\r\n\r\n// encode email\r\nconst encodeEmail = (email: string): string => btoa(email);\r\n\r\n// get the correct HTMLElement from a type\r\nconst getModalHTMLElement = (type: string = MAIL_TYPE) =>\r\n type === TEL_TYPE ? modalTel : modalMailto;\r\n\r\n// get display value\r\nconst getModalDisplay = (ref: string = MAIL_TYPE): string =>\r\n getModalHTMLElement(ref).style.display;\r\n\r\n// set display value\r\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\r\n let modal = getModalHTMLElement(ref);\r\n modal.style.display = value;\r\n\r\n if (value === \"flex\") {\r\n // \"save\" the activated link.\r\n activatedLink = document.activeElement as HTMLElement;\r\n modal.setAttribute(\"aria-hidden\", \"false\");\r\n\r\n // Focus on the modal container.\r\n modal.setAttribute(\"tabindex\", \"0\");\r\n modal.focus();\r\n setFocusLoop(modal);\r\n } else {\r\n modal.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n // focus back the activated link for getting back to the context.\r\n modal.setAttribute(\"tabindex\", \"-1\");\r\n activatedLink.focus();\r\n }\r\n};\r\n\r\n// set focus loop within modal\r\nconst setFocusLoop = (ref: HTMLElement): void => {\r\n let modal = ref;\r\n modal\r\n .querySelector(\".m-modal-content a:last-of-type\")\r\n .addEventListener(\"keydown\", leaveLastLink);\r\n modal\r\n .querySelector(\".m-modal-content a:first-of-type\")\r\n .addEventListener(\"keydown\", leaveFirstLink);\r\n};\r\n\r\nconst leaveLastLink = (e: KeyboardEvent): void => {\r\n // going back to the first link to force looping\r\n if (e.code === \"Tab\" && e.shiftKey === false) {\r\n e.preventDefault();\r\n\r\n ((e.target as HTMLElement)\r\n .closest(\"div\")\r\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\r\n }\r\n};\r\n\r\nconst leaveFirstLink = (e: KeyboardEvent): void => {\r\n // going back to the first link to force looping\r\n if (e.code === \"Tab\" && e.shiftKey === true) {\r\n e.preventDefault();\r\n ((e.target as HTMLElement)\r\n .closest(\"div\")\r\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\r\n }\r\n};\r\n\r\n// enable dark mode\r\nconst enableDarkMode = (type: string = MAIL_TYPE) =>\r\n getModalHTMLElement(type).classList.add(\"m-dark\");\r\n\r\n// disable dark mode\r\nconst disableDarkMode = (type: string = MAIL_TYPE) =>\r\n getModalHTMLElement(type).classList.remove(\"m-dark\");\r\n\r\n// custom composedPath if path or event.composedPath() are not defined\r\nconst composedPath = (\r\n el: HTMLElement\r\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\r\n let path = [];\r\n\r\n while (el) {\r\n path.push(el);\r\n\r\n if (el.tagName === \"HTML\") {\r\n path.push(document);\r\n path.push(window);\r\n return path;\r\n }\r\n\r\n el = el.parentElement;\r\n }\r\n};\r\n\r\n// validate a single email with regex\r\nconst validateEmail = (email: string): boolean =>\r\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(\r\n email\r\n );\r\n\r\n// validate an array of emails\r\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\r\n\r\n// validate a single tel with regex\r\nconst validateTel = (tel: string): boolean =>\r\n /^[+]{0,1}[\\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\r\n\r\n// copy of a string\r\nconst copyToClipboard = (str: string): boolean => {\r\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\r\n el.value = str;\r\n el.setAttribute(\"readonly\", \"\");\r\n el.style.position = \"absolute\";\r\n el.style.left = \"-9999px\";\r\n document.body.appendChild(el);\r\n let selected: Range | boolean =\r\n document.getSelection().rangeCount > 0\r\n ? document.getSelection().getRangeAt(0)\r\n : false;\r\n el.select();\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(el);\r\n if (selected) {\r\n document.getSelection().removeAllRanges();\r\n document.getSelection().addRange(selected);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst mailgoStyle = (): void => {\r\n // mailgo style\r\n let mailgoCSSElement: HTMLStyleElement = createElement(\r\n \"style\"\r\n ) as HTMLStyleElement;\r\n mailgoCSSElement.id = \"mailgo-style\";\r\n mailgoCSSElement.type = \"text/css\";\r\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\r\n document.head.appendChild(mailgoCSSElement);\r\n};\r\n\r\n// mailgo\r\nfunction mailgo(mailgoConfig?: MailgoConfig): void {\r\n // set the global config merging window mailgConfig and mailgoConfig passed as a parameter\r\n config = { ...mailgoConfig, ...((window as any)?.mailgoConfig || null) };\r\n\r\n // if the window is defined...\r\n if (window && typeof window !== \"undefined\") {\r\n // add the style for mailgo\r\n mailgoStyle();\r\n\r\n // if is set an initEvent add the listener\r\n if (config?.initEvent) {\r\n if (config?.listenerOptions) {\r\n // listener options specified\r\n document.addEventListener(\r\n config.initEvent,\r\n () => {\r\n mailgoInit();\r\n },\r\n config.listenerOptions\r\n );\r\n } else {\r\n // no listener options\r\n document.addEventListener(config.initEvent, () => {\r\n mailgoInit();\r\n });\r\n }\r\n } else {\r\n mailgoInit();\r\n }\r\n }\r\n}\r\n\r\nexport default mailgo;\r\n","// webpack > lib/mailgo.js\r\n\r\nimport mailgo from \"../src/mailgo\";\r\n\r\nexport default mailgo;\r\n"],"sourceRoot":""} \ No newline at end of file