mailymaily/dist/mailgo.min.js.map

1 line
60 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack://mailgo/webpack/bootstrap","webpack://mailgo/../src/mailgo.scss?16f9","webpack://mailgo/../src/mailgo.scss","webpack://mailgo/../node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/../src/mailgo.ts","webpack://mailgo/./mailgo.dist.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","result","toString","___CSS_LOADER_EXPORT___","___CSS_LOADER_API_IMPORT___","push","useSourceMap","list","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","config","modalMailto","modalTel","title","titleTel","detailCc","detailBcc","detailSubject","detailBody","ccValue","bccValue","subjectValue","bodyValue","activatedLink","gmail","outlook","open","telegram","wa","skype","copyMail","copyTel","i18n","require","mailgoCSS","MAILTO","TEL","CALLTO","DEFAULT_BTN_HREF","lang","mail","encEmail","cc","bcc","subject","bodyMail","tel","telegramUsername","skypeUsername","mailgoInit","translations","languages","indexOf","forceLang","htmlLang","document","documentElement","defaultStrings","strings","getElementById","createElement","style","display","classList","add","setAttribute","dark","enableDarkMode","disableDarkMode","modalBackground","className","appendChild","modalContent","details","ccSpan","createTextNode","cc_","bccSpan","bcc_","subjectSpan","subject_","bodySpan","body_","href","open_in_","gmailSpan","outlookSpan","openSpan","_default","copy","showFooter","byElement","body","addEventListener","hideMailgo","telegramSpan","waSpan","whatsapp","skypeSpan","callSpan","_as_default","mailgoCheckRender","mailgoRender","type","mailgoElement","toLowerCase","startsWith","decodeURIComponent","split","trim","urlParams","URL","searchParams","getAttribute","validateEmail","validateEmails","innerHTML","textContent","openGmail","openOutlook","encodeEmail","openDefault","hasAttribute","validateTel","openWhatsApp","openTelegram","openSkype","callDefault","contains","showMailgo","mailgoKeydown","gmailUrl","window","outlookUrl","mailToEncoded","tgUrl","skypeUrl","waUrl","callUrl","activeCopy","copyToClipboard","mailgoIsShowing","setTimeout","isMailgo","element","event","path","composedPath","target","forEach","HTMLDocument","Window","preventDefault","keyboardEvent","keyCode","setModalDisplay","removeEventListener","getModalDisplay","by","rel","encoded","location","atob","email","getModalHTMLElement","ref","modal","activeElement","focus","setFocusLoop","querySelector","leaveLastLink","leaveFirstLink","e","code","shiftKey","closest","remove","el","tagName","parentElement","test","arr","every","str","position","left","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","mailgo","mailgoConfig","mailgoCSSElement","head","initEvent","listenerOptions"],"mappings":"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","file":"mailgo.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\n var result = require(\"!!../node_modules/css-loader/dist/cjs.js??ref--5-1!../node_modules/sass-loader/dist/cjs.js!./mailgo.scss\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(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 {\n MailgoConfig,\n MailgoTranslations,\n MailgoTranslation,\n MailgoI18n,\n} from \"mailgo\";\n\n// i18n for mailgo\nconst i18n: MailgoI18n = require(\"../i18n/i18n.json\");\n\n// mailgo scss\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default lang\nconst DEFAULT_LANG: string = \"en\";\n\n// links\nconst MAILTO: string = \"mailto:\";\nconst TEL: string = \"tel:\";\nconst CALLTO: string = \"callto:\";\n\n// deep linking\nconst outlookDeepLink: string = \"ms-outlook://\";\n\n// mailgo types\nconst MAIL_TYPE: string = \"mail\";\nconst TEL_TYPE: string = \"tel\";\n\n// default href for links\nconst DEFAULT_BTN_HREF: string = \"javascript:void(0);\";\n\n// useful html tags\nconst spanHTMLTag: string = \"span\";\nconst aHTMLTag: string = \"a\";\nconst pHTMLTag: string = \"p\";\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// default language\nlet lang: string = DEFAULT_LANG;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo variables\nlet url: URL,\n mail: string = \"\",\n encEmail: string = \"\",\n cc: string = \"\",\n bcc: string = \"\",\n subject: string = \"\",\n bodyMail: string = \"\";\n\n// mailgo tel variables\nlet tel: string = \"\",\n msg: string = \"\",\n telegramUsername: string = \"\",\n skypeUsername: string = \"\";\n\n// the DOM elements\nlet title: HTMLElement,\n titleTel: HTMLElement,\n detailCc: HTMLElement,\n detailBcc: HTMLElement,\n detailSubject: HTMLElement,\n detailBody: HTMLElement,\n ccValue: HTMLElement,\n bccValue: HTMLElement,\n subjectValue: HTMLElement,\n bodyValue: HTMLElement,\n activatedLink: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n outlook: HTMLLinkElement,\n open: HTMLLinkElement,\n telegram: HTMLLinkElement,\n wa: HTMLLinkElement,\n skype: HTMLLinkElement,\n call: HTMLLinkElement,\n copyMail: HTMLLinkElement,\n copyTel: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (): void => {\n // translations\n let {\n translations,\n }: { translations: MailgoTranslations } = i18n as MailgoI18n;\n\n // if a default language is defined use it\n if (config?.lang && i18n.languages.indexOf(config.lang) !== -1) {\n lang = config.lang;\n }\n\n // if is defined <html lang=\"\"> use it!\n if (!config?.forceLang) {\n // keep the lang from html\n let htmlLang: string = document.documentElement.lang;\n\n // if there are translations...\n if (i18n.languages.indexOf(htmlLang) !== -1) {\n lang = document.documentElement.lang;\n }\n }\n\n // strings\n let defaultStrings: MailgoTranslation = translations[DEFAULT_LANG];\n let strings: MailgoTranslation = translations[lang];\n\n // mailgo, if mailgo not already exists\n let mailgoExists = !!document.getElementById(\"mailgo\");\n\n if (!mailgoExists) {\n // modal\n modalMailto = createElement() as HTMLElement;\n modalMailto.style.display = \"none\";\n modalMailto.id = \"mailgo\";\n modalMailto.classList.add(\"m-modal\");\n modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(MAIL_TYPE);\n } else {\n disableDarkMode(MAIL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent);\n\n // title (email address)\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title);\n\n // details\n let details: HTMLElement = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n let ccSpan: HTMLElement = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n let bccSpan: HTMLElement = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n let subjectSpan: HTMLElement = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(\n createTextNode(strings.subject_ || defaultStrings.subject_)\n );\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n let bodySpan: HTMLElement = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n\n modalContent.appendChild(details);\n\n // Gmail\n gmail = createElement(aHTMLTag) as HTMLLinkElement;\n gmail.id = \"m-gmail\";\n gmail.href = DEFAULT_BTN_HREF;\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\n );\n let gmailSpan: HTMLElement = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(\n createTextNode(strings.gmail || defaultStrings.gmail)\n );\n gmail.appendChild(gmailSpan);\n\n modalContent.appendChild(gmail);\n\n // Outlook\n outlook = createElement(aHTMLTag) as HTMLLinkElement;\n outlook.id = \"m-outlook\";\n outlook.href = DEFAULT_BTN_HREF;\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\n );\n let outlookSpan: HTMLElement = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(\n createTextNode(strings.outlook || defaultStrings.outlook)\n );\n outlook.appendChild(outlookSpan);\n\n modalContent.appendChild(outlook);\n\n // open default\n open = createElement(aHTMLTag) as HTMLLinkElement;\n open.id = \"m-open\";\n open.href = DEFAULT_BTN_HREF;\n open.classList.add(\"m-open\");\n open.classList.add(\"m-default\");\n let openSpan: HTMLElement = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n open.appendChild(openSpan);\n open.appendChild(\n createTextNode(strings._default || defaultStrings._default)\n );\n\n modalContent.appendChild(open);\n\n // copy\n copyMail = createElement(aHTMLTag) as HTMLLinkElement;\n copyMail.id = \"m-copy\";\n copyMail.href = DEFAULT_BTN_HREF;\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyMail);\n\n // hide mailgo.dev in footer only if showFooter is defined and equal to false\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter !== false\n ) {\n modalContent.appendChild(byElement());\n }\n\n // add the modal at the end of the body\n document.body.appendChild(modalMailto);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // mailgo tel, if mailgo-tel not already exists\n let mailgoTelExists = !!document.getElementById(\"mailgo-tel\");\n\n if (!mailgoTelExists) {\n // modal\n modalTel = createElement() as HTMLElement;\n modalTel.style.display = \"none\";\n modalTel.id = \"mailgo-tel\";\n modalTel.classList.add(\"m-modal\");\n modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\");\n\n // if dark is in config\n if (config?.dark) {\n enableDarkMode(TEL_TYPE);\n } else {\n disableDarkMode(TEL_TYPE);\n }\n\n // background\n let modalBackground: HTMLElement = createElement();\n modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(modalBackground);\n\n // modal content\n let modalContent: HTMLElement = createElement();\n modalContent.className = \"m-modal-content\";\n modalTel.appendChild(modalContent);\n\n // title (telephone number)\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n modalContent.appendChild(titleTel);\n\n // Telegram\n telegram = createElement(aHTMLTag) as HTMLLinkElement;\n telegram.id = \"m-tg\";\n telegram.href = DEFAULT_BTN_HREF;\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\");\n\n // by default not display\n telegram.style.display = \"none\";\n\n telegram.appendChild(\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\n );\n let telegramSpan: HTMLElement = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(\n createTextNode(strings.telegram || defaultStrings.telegram)\n );\n telegram.appendChild(telegramSpan);\n\n modalContent.appendChild(telegram);\n\n // WhatsApp\n wa = createElement(aHTMLTag) as HTMLLinkElement;\n wa.id = \"m-wa\";\n wa.href = DEFAULT_BTN_HREF;\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n let waSpan: HTMLElement = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(\n createTextNode(strings.whatsapp || defaultStrings.whatsapp)\n );\n wa.appendChild(waSpan);\n\n modalContent.appendChild(wa);\n\n // Skype\n skype = createElement(aHTMLTag) as HTMLLinkElement;\n skype.id = \"m-skype\";\n skype.href = DEFAULT_BTN_HREF;\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(\n createTextNode(strings.open_in_ || defaultStrings.open_in_)\n );\n let skypeSpan: HTMLElement = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(\n createTextNode(strings.skype || defaultStrings.skype)\n );\n skype.appendChild(skypeSpan);\n\n modalContent.appendChild(skype);\n\n // call default\n call = createElement(aHTMLTag) as HTMLLinkElement;\n call.id = \"m-call\";\n call.href = DEFAULT_BTN_HREF;\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n let callSpan: HTMLElement = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(\n createTextNode(strings._as_default || defaultStrings._as_default)\n );\n\n modalContent.appendChild(call);\n\n // copy\n copyTel = createElement(aHTMLTag) as HTMLLinkElement;\n copyTel.id = \"m-tel-copy\";\n copyTel.href = DEFAULT_BTN_HREF;\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n modalContent.appendChild(copyTel);\n\n // hide mailgo.dev in footer only if showFooter is defined and equal to false\n if (\n typeof config?.showFooter === \"undefined\" ||\n config?.showFooter !== false\n ) {\n modalContent.appendChild(byElement());\n }\n\n // add the modal at the end of the body\n document.body.appendChild(modalTel);\n\n // every click outside the modal will hide the modal\n modalBackground.addEventListener(\"click\", hideMailgo);\n }\n\n // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n document.addEventListener(\"click\", mailgoCheckRender);\n};\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nexport function mailgoRender(\n type: string = MAIL_TYPE,\n mailgoElement: HTMLLinkElement\n): void {\n // mailgo mail\n if (type === MAIL_TYPE) {\n // if the element href=^\"mailto:\"\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(MAILTO)\n ) {\n mail = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(MAILTO)[1].trim()\n );\n\n url = new URL(mailgoElement.href);\n let urlParams: URLSearchParams = url.searchParams;\n\n // optional parameters for the email\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } else {\n // if the element href=\"#mailgo\" or class=\"mailgo\"\n // mail = data-address + @ + data-domain\n mail =\n mailgoElement.getAttribute(\"data-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-domain\");\n\n url = new URL(MAILTO + encodeURIComponent(mail));\n\n // cc = data-cc-address + @ + data-cc-domain\n cc =\n mailgoElement.getAttribute(\"data-cc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-cc-domain\");\n\n // bcc = data-bcc-address + @ + data-bcc-domain\n bcc =\n mailgoElement.getAttribute(\"data-bcc-address\") +\n \"@\" +\n mailgoElement.getAttribute(\"data-bcc-domain\");\n\n // subject = data-subject\n subject = mailgoElement.getAttribute(\"data-subject\");\n\n // body = data-body\n bodyMail = mailgoElement.getAttribute(\"data-body\");\n }\n\n if (\n typeof config?.validateEmail === \"undefined\" ||\n config?.validateEmail === true\n ) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) return;\n\n // if cc, bcc are not valid cc, bcc = \"\"\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n\n // the title of the modal (email address)\n title.innerHTML = mail.split(\",\").join(\"<br/>\");\n\n // add the details if provided\n cc\n ? ((detailCc.style.display = \"block\"),\n (ccValue.innerHTML = cc.split(\",\").join(\"<br/>\")))\n : (detailCc.style.display = \"none\");\n\n bcc\n ? ((detailBcc.style.display = \"block\"),\n (bccValue.innerHTML = bcc.split(\",\").join(\"<br/>\")))\n : (detailBcc.style.display = \"none\");\n\n subject\n ? ((detailSubject.style.display = \"block\"),\n (subjectValue.textContent = subject))\n : (detailSubject.style.display = \"none\");\n\n bodyMail\n ? ((detailBody.style.display = \"block\"),\n (bodyValue.textContent = bodyMail))\n : (detailBody.style.display = \"none\");\n\n // add the actions\n gmail.addEventListener(\"click\", openGmail);\n\n outlook.addEventListener(\"click\", openOutlook);\n\n encEmail = encodeEmail(mail);\n open.addEventListener(\"click\", openDefault);\n\n copyMail.addEventListener(\"click\", () => copy(mail));\n }\n // mailgo tel\n else if (type === TEL_TYPE) {\n if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(TEL)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(TEL)[1].trim()\n );\n } else if (\n mailgoElement.href &&\n mailgoElement.href.toLowerCase().startsWith(CALLTO)\n ) {\n tel = decodeURIComponent(\n mailgoElement.href.split(\"?\")[0].split(CALLTO)[1].trim()\n );\n } else if (mailgoElement.hasAttribute(\"data-tel\")) {\n tel = mailgoElement.getAttribute(\"data-tel\");\n msg = mailgoElement.getAttribute(\"data-msg\");\n }\n\n // validate the phone number\n if (!validateTel(tel)) return;\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n }\n\n // Telegram username\n if (mailgoElement.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n }\n\n // the title of the modal (tel)\n titleTel.innerHTML = tel;\n\n // add the actions to buttons\n wa.addEventListener(\"click\", openWhatsApp);\n\n // telegram must be shown only if data-telegram is provided\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n\n call.addEventListener(\"click\", callDefault);\n\n copyTel.addEventListener(\"click\", () => copy(tel));\n }\n\n // if config.dark is set to true then all the modals will be in dark mode\n if (!config?.dark) {\n // if the element contains dark as class enable dark mode\n if (mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode(type);\n } else {\n disableDarkMode(type);\n }\n }\n\n // show the mailgo\n showMailgo(type);\n\n // add listener keyDown\n document.addEventListener(\"keydown\", mailgoKeydown);\n}\n\n// actions\nconst openGmail = (): void => {\n // Gmail url\n let gmailUrl: string =\n \"https://mail.google.com/mail/u/0/?view=cm&source=mailto&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (cc) gmailUrl = gmailUrl.concat(\"&cc=\" + encodeURIComponent(cc));\n if (bcc) gmailUrl = gmailUrl.concat(\"&bcc=\" + encodeURIComponent(bcc));\n if (subject) gmailUrl = gmailUrl.concat(\"&subject=\" + subject);\n if (bodyMail) gmailUrl = gmailUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(gmailUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openOutlook = (): void => {\n // Outlook url\n let outlookUrl: string =\n \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\" +\n encodeURIComponent(mail);\n\n // the details if provided\n if (subject) outlookUrl = outlookUrl.concat(\"&subject=\" + subject);\n if (bodyMail) outlookUrl = outlookUrl.concat(\"&body=\" + bodyMail);\n\n // open the link\n window.open(outlookUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openDefault = (): void => {\n mailToEncoded(encEmail);\n hideMailgo();\n};\n\nconst openTelegram = (): void => {\n // Telegram url\n let tgUrl: string = \"https://t.me/\" + telegramUsername;\n\n // open the url\n window.open(tgUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openSkype = (): void => {\n let skype: string = skypeUsername !== \"\" ? skypeUsername : tel;\n\n // Telegram url\n let skypeUrl: string = \"skype:\" + skype;\n\n // open the url\n window.open(skypeUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst openWhatsApp = (): void => {\n // WhatsApp url\n let waUrl: string = \"https://wa.me/\" + tel;\n\n // the details if provided\n if (msg) waUrl + \"?text=\" + msg;\n\n // open the url\n window.open(waUrl, \"_blank\");\n\n // hide the modal\n hideMailgo();\n};\n\nconst callDefault = () => {\n let callUrl: string = \"tel:\" + tel;\n window.open(callUrl);\n hideMailgo();\n};\n\nconst copy = (content: string): void => {\n copyToClipboard(content);\n let activeCopy: HTMLElement;\n // the correct copyButton (mail or tel)\n mailgoIsShowing(MAIL_TYPE) ? (activeCopy = copyMail) : (activeCopy = copyTel);\n activeCopy.textContent = \"copied\";\n setTimeout(() => {\n activeCopy.textContent = \"copy\";\n // hide after the timeout\n hideMailgo();\n }, 999);\n};\n\n// function that returns if an element is a mailgo\nexport function isMailgo(\n element: HTMLElement,\n type: string = MAIL_TYPE\n): boolean {\n let href: string = (element as HTMLLinkElement).href;\n\n // mailgo type mail\n if (type === MAIL_TYPE) {\n return (\n // first case: it is an <a> element with \"mailto:...\" in href and no no-mailgo in classList\n (href &&\n href.toLowerCase().startsWith(MAILTO) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-address\") &&\n // second case: the href=#mailgo\n ((href && element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))))\n );\n }\n\n // mailgo type tel\n if (type === TEL_TYPE) {\n return (\n // first case: it is an <a> element with \"tel:...\" or \"callto:...\" in href and no no-mailgo in classList\n (href &&\n (href.toLowerCase().startsWith(TEL) ||\n href.toLowerCase().startsWith(CALLTO)) &&\n !element.classList.contains(\"no-mailgo\")) ||\n (element.hasAttribute(\"data-tel\") &&\n // second case: the href=#mailgo\n href &&\n element.getAttribute(\"href\").toLowerCase() === \"#mailgo\") ||\n // third case: the classList contains mailgo\n (element.classList && element.classList.contains(\"mailgo\"))\n );\n }\n\n return false;\n}\n\n/**\n * mailgoCheckRender\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nexport function mailgoCheckRender(event: Event): boolean {\n // check if the id=mailgo exists in the body\n if (!document.contains(modalMailto) || !document.contains(modalTel))\n return false;\n\n // if a mailgo is already showing do nothing\n if (mailgoIsShowing(MAIL_TYPE) || mailgoIsShowing(TEL_TYPE)) return false;\n\n // the path of the event\n let path =\n (event.composedPath && event.composedPath()) ||\n composedPath(event.target as HTMLElement);\n\n if (path) {\n path.forEach((element: HTMLElement) => {\n if (element instanceof HTMLDocument || element instanceof Window)\n return false;\n\n // go in the event.path to find if the user has clicked on a mailgo element\n if (isMailgo(element, MAIL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(MAIL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n if (isMailgo(element, TEL_TYPE)) {\n // stop the normal execution of the element click\n event.preventDefault();\n\n // render mailgo\n mailgoRender(TEL_TYPE, element as HTMLLinkElement);\n\n return true;\n }\n });\n }\n\n return false;\n}\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): void => {\n // if mailgo is showing\n if (mailgoIsShowing(MAIL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 71:\n // g -> open GMail\n openGmail();\n break;\n case 79:\n // o -> open Outlook\n openOutlook();\n break;\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n break;\n case 67:\n // c -> copy\n copy(mail);\n break;\n default:\n return;\n }\n } else if (mailgoIsShowing(TEL_TYPE)) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n break;\n case 84:\n // t -> open Telegram\n openTelegram();\n break;\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n break;\n case 32:\n case 13:\n // spacebar or enter -> call default\n callDefault();\n break;\n case 67:\n // c -> copy\n copy(tel);\n break;\n default:\n return;\n }\n }\n return;\n};\n\n// show the modal\nconst showMailgo = (type = MAIL_TYPE): void => {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n};\n\n// hide the modal\nconst hideMailgo = (): void => {\n // hide all the modals\n setModalDisplay(MAIL_TYPE, \"none\");\n setModalDisplay(TEL_TYPE, \"none\");\n\n // remove listener keyDown\n document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (type = MAIL_TYPE): boolean => {\n return getModalDisplay(type) === \"flex\";\n};\n\nconst byElement = (): HTMLLinkElement => {\n // by\n let by: HTMLLinkElement = createElement(aHTMLTag) as HTMLLinkElement;\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n\n return by;\n};\n\n// create element\nconst createElement = (element: string = \"div\"): HTMLElement =>\n document.createElement(element);\n\n// create text node\nconst createTextNode = (element: string): Text =>\n document.createTextNode(element);\n\n// decrypt email\nconst mailToEncoded = (encoded: string): string =>\n (window.location.href = MAILTO + atob(encoded));\n\n// encode email\nconst encodeEmail = (email: string): string => btoa(email);\n\n// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: string = MAIL_TYPE) =>\n type === TEL_TYPE ? modalTel : modalMailto;\n\n// get display value\nconst getModalDisplay = (ref: string = MAIL_TYPE): string =>\n getModalHTMLElement(ref).style.display;\n\n// set display value\nconst setModalDisplay = (ref: string = MAIL_TYPE, value: string): void => {\n let modal = getModalHTMLElement(ref);\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement as HTMLElement;\n modal.setAttribute(\"aria-hidden\", \"false\");\n\n // Focus on the modal container.\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\");\n\n // focus back the activated link for getting back to the context.\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n};\n\n// set focus loop within modal\nconst setFocusLoop = (ref: HTMLElement): void => {\n let modal = ref;\n modal\n .querySelector(\".m-modal-content a:last-of-type\")\n .addEventListener(\"keydown\", leaveLastLink);\n modal\n .querySelector(\".m-modal-content a:first-of-type\")\n .addEventListener(\"keydown\", leaveFirstLink);\n};\n\nconst leaveLastLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:first-of-type\") as HTMLElement).focus();\n }\n};\n\nconst leaveFirstLink = (e: KeyboardEvent): void => {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n ((e.target as HTMLElement)\n .closest(\"div\")\n .querySelector(\"a:last-of-type\") as HTMLElement).focus();\n }\n};\n\n// enable dark mode\nconst enableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.add(\"m-dark\");\n\n// disable dark mode\nconst disableDarkMode = (type: string = MAIL_TYPE) =>\n getModalHTMLElement(type).classList.remove(\"m-dark\");\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n let path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n};\n\n// validate a single email with regex\nconst validateEmail = (email: string): boolean =>\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n );\n\n// validate an array of emails\nconst validateEmails = (arr: string[]): boolean => arr.every(validateEmail);\n\n// validate a single tel with regex\nconst validateTel = (tel: string): boolean =>\n /^[+]{0,1}[\\s0-9]{0,}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/.test(tel);\n\n// copy of a string\nconst copyToClipboard = (str: string): boolean => {\n let el: HTMLInputElement = createElement(\"textarea\") as HTMLInputElement;\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n let selected: Range | boolean =\n document.getSelection().rangeCount > 0\n ? document.getSelection().getRangeAt(0)\n : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n return false;\n};\n\nconst mailgoStyle = (): void => {\n // mailgo style\n let mailgoCSSElement: HTMLStyleElement = createElement(\n \"style\"\n ) as HTMLStyleElement;\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n};\n\n// mailgo\nfunction mailgo(mailgoConfig?: MailgoConfig): void {\n // set the global config merging window mailgConfig and mailgoConfig passed as a parameter\n config = { ...mailgoConfig, ...((window as any)?.mailgoConfig || null) };\n\n // if the window is defined...\n if (window && typeof window !== \"undefined\") {\n // add the style for mailgo\n mailgoStyle();\n\n // if is set an initEvent add the listener\n if (config?.initEvent) {\n if (config?.listenerOptions) {\n // listener options specified\n document.addEventListener(\n config.initEvent,\n () => {\n mailgoInit();\n },\n config.listenerOptions\n );\n } else {\n // no listener options\n document.addEventListener(config.initEvent, () => {\n mailgoInit();\n });\n }\n } else {\n mailgoInit();\n }\n }\n}\n\nexport default mailgo;\n","// webpack > dist/mailgo.min.js\n\nimport mailgo from \"../src/mailgo\";\n\n// call init mailgo attached to the event DOMContentLoaded\nconst mailgoConfig = {\n initEvent: \"DOMContentLoaded\",\n};\n\nmailgo(mailgoConfig);\n"],"sourceRoot":""}