{"version":3,"sources":["jsdelivr-header.js","webpack://mailgo/webpack/universalModuleDefinition","webpack://mailgo/src/mailgo.scss","webpack://mailgo/node_modules/css-loader/dist/runtime/api.js","webpack://mailgo/src/mailgo.scss?81f2","webpack://mailgo/src/constants.ts","webpack://mailgo/src/utils.ts","webpack://mailgo/src/mailgo.ts","webpack://mailgo/src/mobile-detect.ts","webpack://mailgo/mailgo.lib.ts","webpack://mailgo/webpack/bootstrap","/npm/mailgo@0.12.2/lib/webpack:/mailgo/webpack/runtime/define property getters","/npm/mailgo@0.12.2/lib/webpack:/mailgo/webpack/runtime/hasOwnProperty shorthand","/npm/mailgo@0.12.2/lib/webpack:/mailgo/webpack/runtime/make namespace object","webpack://mailgo/webpack/startup"],"names":[],"mappings":"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","file":"/npm/mailgo@0.12.2/lib/mailgo.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mailgo@0.12.2/lib/mailgo.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(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 ","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\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:.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;overflow:hidden;min-width:200px;max-width:240px;background-color:#fff;opacity:.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,.5);border:3px solid #333;color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:.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:pre-line;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{white-space:pre-line;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(192,55,42,.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(9,103,170,.08);color:#0967aa}.m-modal .m-modal-content a.m-yahoo{color:#4a00a0}.m-modal .m-modal-content a.m-yahoo:hover,.m-modal .m-modal-content a.m-yahoo:focus,.m-modal .m-modal-content a.m-yahoo:active{background-color:rgba(74,0,160,.08);color:#4a00a0}.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(8,109,160,.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(6,116,102,.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(7,109,146,.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,.08);color:#4a4a4a}.m-modal .m-modal-content a.m-custom-action{color:#0b790b}.m-modal .m-modal-content a.m-custom-action:hover,.m-modal .m-modal-content a.m-custom-action:focus,.m-modal .m-modal-content a.m-custom-action:active{background-color:rgba(11,121,11,.08);color:#0b790b}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:.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,.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(224,125,115,.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(76,156,215,.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-yahoo{color:#ac88d3}.m-modal.m-dark .m-modal-content a.m-yahoo:hover,.m-modal.m-dark .m-modal-content a.m-yahoo:focus,.m-modal.m-dark .m-modal-content a.m-yahoo:active{background-color:rgba(172,136,211,.08);color:#ac88d3}.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(76,171,219,.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(76,210,192,.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(76,199,244,.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-custom-action{color:#b0ecb0}.m-modal.m-dark .m-modal-content a.m-custom-action:hover,.m-modal.m-dark .m-modal-content a.m-custom-action:focus,.m-modal.m-dark .m-modal-content a.m-custom-action:active{background-color:rgba(176,236,176,.08);color:#b0ecb0}.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\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 (cssWithMappingToString) {\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);\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        var result = require(\"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[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    ","import { MailgoModalType, MailgoInstallationType } from \"mailgo\";\n\n// links\nexport const MAILTO: string = \"mailto:\";\nexport const MAILGO: string = \"mailgo:\";\nexport const TEL: string = \"tel:\";\nexport const CALLTO: string = \"callto:\";\nexport const SMS: string = \"sms:\";\n\n// deep linking\nexport const outlookDeepLink: string = \"ms-outlook://\";\n\n// no mailgo class\nexport const NO_MAILGO: string = \"no-mailgo\";\n\n// responsive settings\nexport const DESKTOP: string = \"desktop\";\nexport const MOBILE: string = \"mobile\";\n\n// mailgo modal types\nexport const MAILGO_MAIL: MailgoModalType = \"mailgo\";\nexport const MAILGO_TEL: MailgoModalType = \"mailgo-tel\";\nexport const MAILGO_SMS: MailgoModalType = \"mailgo-sms\";\n\n// mailgo installation types\nexport const CLASSIC: MailgoInstallationType = \"classic\";\nexport const LESS_SPAM: MailgoInstallationType = \"less-spam\";\n\n// useful html tags\nexport const spanHTMLTag: string = \"span\";\nexport const aHTMLTag: string = \"a\";\nexport const pHTMLTag: string = \"p\";\n\n// default lang\nexport const defaultLang: string = \"en\";\n\n// useful regexp\nexport const notNumber: RegExp = new RegExp(\"[^0-9/]\", \"gi\");\nexport const leadingZeros: RegExp = new RegExp(\"^0+\", \"gi\");\n\n// custom action\nexport const customActionTextMaxLength: number = 20;\n","// validate a single email with regex\nexport const 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\nexport const validateEmails = (arr: string[]): boolean =>\n  arr.every(validateEmail);\n\n// validate a single tel with regex\nexport const validateTel = (tel: string): boolean =>\n  /^[+]{0,1}[\\s0-9]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*[p]{0,1}[\\s0-9]*$/.test(\n    tel\n  );\n\n// copy of a string\nexport const copyToClipboard = (str: string): boolean => {\n  let el: HTMLTextAreaElement = document.createElement(\n    \"textarea\"\n  ) as HTMLTextAreaElement;\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\n// set focus loop within modal\nexport const 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\nexport const 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\nexport const 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\nexport const truncate = (text: string, maxLength: number): string => {\n  return text && text.length > maxLength\n    ? text.substr(0, maxLength - 1) + \"...\"\n    : text;\n};\n","import {\n  MailgoConfig,\n  MailgoTranslations,\n  MailgoTranslation,\n  MailgoAction,\n  MailgoLanguages,\n  MailgoType,\n  MailgoDetail,\n  MailgoInstallationType,\n  MailgoModalType,\n} from \"mailgo\";\n\n// polyfill\n// import { mailgoPolyfill } from \"./polyfill\";\n\n// constants\nimport {\n  MAILTO,\n  MAILGO,\n  TEL,\n  CALLTO,\n  SMS,\n  MAILGO_MAIL,\n  MAILGO_TEL,\n  MAILGO_SMS,\n  CLASSIC,\n  LESS_SPAM,\n  NO_MAILGO,\n  MOBILE,\n  spanHTMLTag,\n  aHTMLTag,\n  pHTMLTag,\n  defaultLang,\n  notNumber,\n  leadingZeros,\n  customActionTextMaxLength,\n} from \"./constants\";\n\n// utils\nimport {\n  validateEmail,\n  validateEmails,\n  validateTel,\n  copyToClipboard,\n  setFocusLoop,\n  truncate,\n} from \"./utils\";\n\n// i18n for mailgo\nimport languages from \"../i18n/languages.json\";\nimport translations from \"../i18n/translations.json\";\n\n// mobile detect\nimport { userAgent } from \"./mobile-detect\";\n\n// mailgo scss, with toString (https://github.com/webpack-contrib/css-loader#tostring)\nconst mailgoCSS: string = require(\"./mailgo.scss\").toString();\n\n// default language\nlet lang: string = defaultLang;\n\n// default strings\nconst defaultStrings: MailgoTranslation = (translations as MailgoTranslations)[\n  defaultLang\n];\n\n// translation strings\nlet strings: MailgoTranslation;\n\n// global mailgo config object\nlet config: MailgoConfig;\n\n// config to check if the client is mobile or desktop\nlet isMobile: boolean = false;\n\n// default config attributes\nlet mailtoEnabled: boolean = true;\nlet telEnabled: boolean = true;\nlet smsEnabled: boolean = false;\nlet desktopEnabled: boolean = true;\nlet mobileEnabled: boolean = true;\nlet validateEmailConfig: boolean = true;\nlet validateTelConfig: boolean = true;\nlet showFooterConfig: boolean = true;\nlet loadCSSConfig: boolean = true;\n\n// activeMailgoType\nlet activeMailgoType: MailgoType;\n\n// modals global object\nlet modalMailto: HTMLElement, modalTel: HTMLElement;\n\n// mailgo general variables\nlet url: URL, href: string, lessSpamHref: string;\n\n// mailgo mail variables\nlet mail: string, cc: string, bcc: string, subject: string, bodyMail: string;\n\n// mailgo mail custom action variables\nlet customActionText: string,\n  customActionTitle: string,\n  customActionUrl: string;\n\n// mailgo tel variables\nlet tel: string, msg: string, telegramUsername: string, 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  detailMsg: HTMLElement,\n  ccValue: HTMLElement,\n  bccValue: HTMLElement,\n  subjectValue: HTMLElement,\n  bodyValue: HTMLElement,\n  msgValue: HTMLElement,\n  activatedLink: HTMLElement;\n\n// mailgo buttons (actions)\nlet gmail: HTMLLinkElement,\n  outlook: HTMLLinkElement,\n  yahoo: HTMLLinkElement,\n  open: HTMLLinkElement,\n  telegram: HTMLLinkElement,\n  wa: HTMLLinkElement,\n  skype: HTMLLinkElement,\n  call: HTMLLinkElement,\n  copyMail: HTMLLinkElement,\n  copyTel: HTMLLinkElement,\n  customAction: HTMLLinkElement;\n\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\nconst mailgoInit = (): void => {\n  // set the boolean for mobile/desktop\n  isMobile = userAgent() === MOBILE;\n\n  // responsive settings\n  {\n    if (typeof config?.desktop !== \"undefined\") {\n      desktopEnabled = config.desktop;\n      // if it is a desktop and desktop is not enabled no init mailgo\n      if (!isMobile && !desktopEnabled) {\n        return;\n      }\n    }\n    if (typeof config?.mobile !== \"undefined\") {\n      mobileEnabled = config.mobile;\n      // if it is a mobile and mobile is not enabled no init mailgo\n      if (isMobile && !mobileEnabled) {\n        return;\n      }\n    }\n  }\n\n  // set the mailgo language\n  mailgoSetLanguage();\n\n  // mailgo, if mailgo not already exists\n  let mailgoExists = !!document.getElementById(MAILGO_MAIL);\n\n  // if mailgo is enabled for mailto and it not exists in DOM\n  if (mailtoEnabled && !mailgoExists) {\n    // modal\n    modalMailto = createElement() as HTMLElement;\n    modalMailto.style.display = \"none\";\n    modalMailto.id = MAILGO_MAIL;\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();\n    } else {\n      disableDarkMode();\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 = \"#mailgo-gmail\";\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    if (mailgoConfigAttributeEnabled(\"action\", \"gmail\")) {\n      modalContent.appendChild(gmail);\n    }\n\n    // Outlook\n    outlook = createElement(aHTMLTag) as HTMLLinkElement;\n    outlook.id = \"m-outlook\";\n    outlook.href = \"#mailgo-outlook\";\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    if (mailgoConfigAttributeEnabled(\"action\", \"outlook\")) {\n      modalContent.appendChild(outlook);\n    }\n\n    // Outlook\n    yahoo = createElement(aHTMLTag) as HTMLLinkElement;\n    yahoo.id = \"m-yahoo\";\n    yahoo.href = \"#mailgo-yahoo\";\n    yahoo.classList.add(\"m-open\");\n    yahoo.classList.add(\"m-yahoo\");\n    yahoo.appendChild(\n      createTextNode(strings.open_in_ || defaultStrings.open_in_)\n    );\n    let yahooSpan: HTMLElement = createElement(spanHTMLTag);\n    yahooSpan.className = \"w-500\";\n    yahooSpan.appendChild(\n      createTextNode(strings.yahoo || defaultStrings.yahoo)\n    );\n    yahoo.appendChild(yahooSpan);\n\n    if (mailgoConfigAttributeEnabled(\"action\", \"yahoo\")) {\n      modalContent.appendChild(yahoo);\n    }\n\n    // open default\n    open = createElement(aHTMLTag) as HTMLLinkElement;\n    open.id = \"m-open\";\n    open.href = \"#mailgo-open\";\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 = \"#mailgo-copy\";\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    // custom action\n    customAction = createElement(aHTMLTag) as HTMLLinkElement;\n    customAction.id = \"m-custom-action\";\n    customAction.href = \"#mailgo-custom-action\";\n    customAction.classList.add(\"m-open\");\n    customAction.classList.add(\"m-custom-action\");\n    if (mailgoConfigAttributeEnabled(\"action\", \"custom\")) {\n      modalContent.appendChild(customAction);\n    }\n\n    // hide mailgo.dev in footer only if showFooter is defined and equal to false\n    if (typeof config?.showFooter !== \"undefined\") {\n      showFooterConfig = config.showFooter;\n    }\n\n    if (showFooterConfig) {\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 mailgo is enabled for tel/callto and it not exists in DOM\n  if (telEnabled && !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();\n    } else {\n      disableDarkMode();\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    // details\n    let detailsTel: HTMLElement = createElement();\n    detailsTel.id = \"m-tel-details\";\n    detailsTel.className = \"m-details\";\n\n    detailMsg = createElement(pHTMLTag);\n    detailMsg.id = \"m-msg\";\n    let msgSpan: HTMLElement = createElement(spanHTMLTag);\n    msgSpan.className = \"w-500\";\n    msgSpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n    msgValue = createElement(spanHTMLTag);\n    msgValue.id = \"m-msg-value\";\n    detailMsg.appendChild(msgSpan);\n    detailMsg.appendChild(msgValue);\n    detailsTel.appendChild(detailMsg);\n\n    modalContent.appendChild(detailsTel);\n\n    // Telegram\n    telegram = createElement(aHTMLTag) as HTMLLinkElement;\n    telegram.id = \"m-tg\";\n    telegram.href = \"#mailgo-telegram\";\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    if (mailgoConfigAttributeEnabled(\"action\", \"telegram\")) {\n      modalContent.appendChild(telegram);\n    }\n\n    // WhatsApp\n    wa = createElement(aHTMLTag) as HTMLLinkElement;\n    wa.id = \"m-wa\";\n    wa.href = \"#mailgo-whatsapp\";\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    if (mailgoConfigAttributeEnabled(\"action\", \"whatsapp\")) {\n      modalContent.appendChild(wa);\n    }\n\n    // Skype\n    skype = createElement(aHTMLTag) as HTMLLinkElement;\n    skype.id = \"m-skype\";\n    skype.href = \"#mailgo-skype\";\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    if (mailgoConfigAttributeEnabled(\"action\", \"skype\")) {\n      modalContent.appendChild(skype);\n    }\n\n    // call default\n    call = createElement(aHTMLTag) as HTMLLinkElement;\n    call.id = \"m-call\";\n    call.href = \"#mailgo-open\";\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 = \"#mailgo-copy\";\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 (typeof config?.showFooter !== \"undefined\") {\n      showFooterConfig = config.showFooter;\n    }\n\n    if (showFooterConfig) {\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\", mailgoClickListener);\n};\n\n/**\n * mailgoClickListener\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 * or\n * document.querySelectorAll(\n *   'a[href^=\"sms:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\nfunction mailgoClickListener(event: Event): boolean {\n  // check if the mailgo HTML exists in the body\n  if (\n    !document.body.contains(modalMailto) &&\n    !document.body.contains(modalTel)\n  ) {\n    return false;\n  }\n\n  // if a mailgo is already showing do nothing\n  if (mailgoIsShowing()) {\n    return false;\n  }\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\n      // go here only if one of the mailgo modals are enabled\n      if (mailtoEnabled || telEnabled || smsEnabled) {\n        let localMailgoType = getMailgoTypeByElement(element);\n\n        // go on if the localMailgoType is not null\n        if (localMailgoType) {\n          // set the active mailgo type\n          activeMailgoType = localMailgoType;\n\n          let activeMailgoModalType = activeMailgoType?.type;\n\n          if (activeMailgoModalType) {\n            // check if the setting is enabled and if so go with pre-render\n            if (\n              (mailtoEnabled && activeMailgoModalType === MAILGO_MAIL) ||\n              (telEnabled && activeMailgoModalType === MAILGO_TEL) ||\n              (smsEnabled && activeMailgoModalType === MAILGO_SMS)\n            ) {\n              // stop the normal execution of the element click\n              event.preventDefault();\n\n              // render mailgo\n              mailgoPreRender(element as HTMLLinkElement);\n\n              return true;\n            }\n          }\n        }\n      }\n    });\n  }\n\n  return false;\n}\n\n/**\n * mailgoPreRender\n * function to pre-render a mailgo, it helps populating elements needed by modal\n */\nfunction mailgoPreRender(\n  mailgoElementOrUrl: HTMLLinkElement | string\n): boolean {\n  let mailgoElement: HTMLLinkElement;\n\n  // get the type and installation from current mailgo type\n  let type: MailgoModalType = activeMailgoType?.type;\n  let installation: MailgoInstallationType = activeMailgoType?.installation;\n\n  // if type is not defined return\n  if (!type) return false;\n\n  if (typeof mailgoElementOrUrl === \"string\") {\n    // if the parameter is a string it is the url\n    href = mailgoElementOrUrl as string;\n  } else {\n    // if the paramenter is an HTMLLinkElement get the href attribute and the element\n    href = mailgoElementOrUrl.getAttribute(\"href\") as string;\n    mailgoElement = mailgoElementOrUrl as HTMLLinkElement;\n  }\n\n  // mailgo mail\n  if (type === MAILGO_MAIL) {\n    // if the installation is classic\n    if (installation === CLASSIC) {\n      if (validateUrl(href, MAILTO)) {\n        mail = decodeURIComponent(href.split(\"?\")[0].split(MAILTO)[1].trim());\n      } else if (validateUrl(href, MAILGO)) {\n        mail = decodeURIComponent(href.split(\"?\")[0].split(MAILGO)[1].trim());\n      }\n\n      try {\n        url = new URL(href);\n\n        let urlParams: URLSearchParams = url.searchParams;\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      } catch (error) {\n        console.log(error);\n      }\n    } else if (installation === LESS_SPAM) {\n      // if the installation is less-spam\n      // mail = data-address + @ + data-domain\n      mail =\n        mailgoElement.getAttribute(\"data-address\") &&\n        mailgoElement.getAttribute(\"data-domain\")\n          ? mailgoElement.getAttribute(\"data-address\") +\n            \"@\" +\n            mailgoElement.getAttribute(\"data-domain\")\n          : null;\n\n      try {\n        url = new URL(MAILTO + encodeURIComponent(mail));\n      } catch (error) {\n        console.log(error);\n      }\n\n      let parameters: string[] = [];\n\n      // cc = data-cc-address + @ + data-cc-domain\n      cc = mailgoElement.getAttribute(\"data-cc-address\")\n        ? mailgoElement.getAttribute(\"data-cc-address\") +\n          \"@\" +\n          mailgoElement.getAttribute(\"data-cc-domain\")\n        : null;\n\n      // if cc is defined add it to parameters\n      if (cc) parameters.push(\"cc=\" + cc);\n\n      // bcc = data-bcc-address + @ + data-bcc-domain\n      bcc = mailgoElement.getAttribute(\"data-bcc-address\")\n        ? mailgoElement.getAttribute(\"data-bcc-address\") +\n          \"@\" +\n          mailgoElement.getAttribute(\"data-bcc-domain\")\n        : null;\n\n      // if bcc is defined add it to parameters\n      if (bcc) parameters.push(\"bcc=\" + bcc);\n\n      // subject = data-subject\n      subject = mailgoElement.getAttribute(\"data-subject\");\n\n      // if subject is defined add it to parameters\n      if (subject) parameters.push(\"subject=\" + subject);\n\n      // body = data-body\n      bodyMail = mailgoElement.getAttribute(\"data-body\");\n\n      // if body is defined add it to parameters\n      if (bodyMail) parameters.push(\"body=\" + bodyMail);\n\n      // set the lessSpamHref\n      lessSpamHref = buildLessSpamHref(\n        MAILTO + encodeURIComponent(mail),\n        parameters\n      );\n    }\n\n    // set custom action text, title and url\n    customActionText = \"\";\n    customActionTitle = \"\";\n    customActionUrl = \"\";\n    if (mailgoConfigAttributeEnabled(\"action\", \"custom\") && mailgoElement) {\n      customActionText =\n        mailgoElement.getAttribute(\"data-custom-action-text\") ??\n        customActionText;\n      if (customActionText) {\n        customActionTitle = customActionText;\n        customActionText = truncate(\n          customActionText,\n          customActionTextMaxLength\n        );\n      }\n\n      customActionUrl =\n        mailgoElement.getAttribute(\"data-custom-action-url\") ?? customActionUrl;\n    }\n\n    // if is in config use it\n    if (typeof config?.validateEmail !== \"undefined\") {\n      validateEmailConfig = config.validateEmail;\n    }\n\n    if (validateEmailConfig) {\n      // validate the email address\n      if (!validateEmails(mail.split(\",\"))) {\n        return false;\n      }\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  // mailgo tel\n  else if (type === MAILGO_TEL) {\n    if (installation === CLASSIC) {\n      if (validateUrl(href, TEL)) {\n        tel = decodeURIComponent(href.split(\"?\")[0].split(TEL)[1].trim());\n      } else if (validateUrl(href, CALLTO)) {\n        tel = decodeURIComponent(href.split(\"?\")[0].split(CALLTO)[1].trim());\n      } else if (validateUrl(href, SMS)) {\n        tel = decodeURIComponent(href.split(\"?\")[0].split(SMS)[1].trim());\n      }\n\n      try {\n        url = new URL(href);\n        let urlParams: URLSearchParams = url.searchParams;\n\n        // optional parameters for the phone number\n        msg = urlParams.get(\"body\");\n      } catch (error) {\n        console.log(error);\n      }\n    } else if (installation == LESS_SPAM) {\n      tel = mailgoElement.getAttribute(\"data-tel\");\n      msg = mailgoElement.getAttribute(\"data-msg\");\n\n      try {\n        url = new URL(TEL + encodeURIComponent(tel));\n      } catch (error) {\n        console.log(error);\n      }\n\n      let parameters: string[] = [];\n\n      // if msg is defined add it to parameters\n      if (msg) parameters.push(\"body=\" + msg);\n\n      // set the lessSpamHref\n      lessSpamHref = buildLessSpamHref(\n        TEL + encodeURIComponent(tel),\n        parameters\n      );\n    }\n\n    // if is in config use it\n    if (typeof config?.validateTel !== \"undefined\") {\n      validateTelConfig = config.validateTel;\n    }\n\n    // validate the phone number\n    if (validateTelConfig) {\n      if (!validateTel(tel)) return false;\n    }\n\n    // Telegram username\n    if (mailgoElement && mailgoElement.hasAttribute(\"data-telegram\")) {\n      telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n    } else {\n      telegramUsername = null;\n    }\n\n    // Telegram username\n    if (mailgoElement && mailgoElement.hasAttribute(\"data-skype\")) {\n      skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n    } else {\n      skypeUsername = null;\n    }\n  }\n\n  // if dark is in config or contained in the element\n  if (config?.dark || mailgoElement.classList.contains(\"dark\")) {\n    enableDarkMode();\n  } else {\n    disableDarkMode();\n  }\n\n  // render mailgo\n  mailgoRender();\n\n  return true;\n}\n\n/**\n * mailgoDirectRender\n * function to render a mailgo directly from a URL\n */\nfunction mailgoDirectRender(directUrl: string): boolean {\n  // start mailgo\n  mailgo();\n\n  if (validateUrl(directUrl, MAILTO) || validateUrl(directUrl, MAILGO)) {\n    activeMailgoType = {\n      type: MAILGO_MAIL,\n      installation: CLASSIC,\n    };\n    return mailgoPreRender(directUrl);\n  } else if (\n    validateUrl(directUrl, TEL) ||\n    validateUrl(directUrl, CALLTO) ||\n    validateUrl(directUrl, SMS)\n  ) {\n    activeMailgoType = {\n      type: MAILGO_TEL,\n      installation: CLASSIC,\n    };\n    return mailgoPreRender(directUrl);\n  }\n\n  return false;\n}\n\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\nfunction mailgoRender(): boolean {\n  // get the type from current mailgo type\n  let type: MailgoModalType = activeMailgoType?.type;\n\n  // if type is not defined return\n  if (!type) return false;\n\n  // mailgo mail\n  if (type === MAILGO_MAIL) {\n    // the title of the modal (email address)\n    title.textContent = mail.split(\",\").join(\"\\n\");\n\n    // add the details if provided\n    if (mailgoConfigAttributeEnabled(\"detail\", \"cc\") && cc) {\n      detailCc.style.display = \"block\";\n      ccValue.textContent = cc.split(\",\").join(\"\\n\");\n    } else {\n      detailCc.style.display = \"none\";\n    }\n\n    if (mailgoConfigAttributeEnabled(\"detail\", \"bcc\") && bcc) {\n      detailBcc.style.display = \"block\";\n      bccValue.textContent = bcc.split(\",\").join(\"\\n\");\n    } else {\n      detailBcc.style.display = \"none\";\n    }\n\n    if (mailgoConfigAttributeEnabled(\"detail\", \"subject\") && subject) {\n      detailSubject.style.display = \"block\";\n      subjectValue.textContent = subject;\n    } else {\n      detailSubject.style.display = \"none\";\n    }\n\n    if (mailgoConfigAttributeEnabled(\"detail\", \"body\") && bodyMail) {\n      detailBody.style.display = \"block\";\n      bodyValue.textContent = bodyMail;\n    } else {\n      detailBody.style.display = \"none\";\n    }\n\n    // custom action text, title and visibility\n    customAction.textContent = customActionText;\n    customAction.title = customActionTitle;\n    customAction.style.display = customActionText ? \"block\" : \"none\";\n\n    // add the actions\n    gmail.addEventListener(\"click\", openGmail);\n\n    outlook.addEventListener(\"click\", openOutlook);\n\n    yahoo.addEventListener(\"click\", openYahooMail);\n\n    open.addEventListener(\"click\", openDefault);\n\n    copyMail.addEventListener(\"click\", copy);\n\n    customAction.addEventListener(\"click\", openCustomAction);\n  }\n  // mailgo tel\n  else if (type === MAILGO_TEL) {\n    // the title of the modal (tel)\n    titleTel.textContent = tel;\n\n    if (mailgoConfigAttributeEnabled(\"detail\", \"msg\") && msg) {\n      detailMsg.style.display = \"block\";\n      msgValue.textContent = msg;\n    } else {\n      detailMsg.style.display = \"none\";\n    }\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\", openDefault);\n\n    copyTel.addEventListener(\"click\", copy);\n  }\n\n  // show the mailgo\n  showMailgo(type);\n\n  // add listener keyDown\n  document.addEventListener(\"keydown\", mailgoKeydown);\n\n  return true;\n}\n\n// actions\nconst openGmail = (event?: Event): void => {\n  event.preventDefault();\n\n  let urlString: string;\n  let installation: MailgoInstallationType = activeMailgoType?.installation;\n\n  if (installation === CLASSIC) {\n    try {\n      urlString = url.toString();\n    } catch (e) {\n      urlString = href;\n    }\n  } else if (installation === LESS_SPAM) {\n    urlString = lessSpamHref;\n  }\n\n  // Gmail url\n  let gmailUrl: string =\n    \"https://mail.google.com/mail/?extsrc=mailto&url=\" +\n    encodeURIComponent(urlString);\n\n  // open the link\n  window.open(gmailUrl, \"_blank\", \"noopener, noreferrer\");\n\n  // hide the modal\n  hideMailgo();\n};\n\nconst openOutlook = (event?: Event): void => {\n  event.preventDefault();\n\n  // Outlook starting url\n  let startingOutlookUrl: string =\n    \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\";\n\n  // let the user to decide to open Office365 Outlook instead of the classic outlook.live.com\n  if (config?.office365) {\n    startingOutlookUrl =\n      \"https://outlook.office365.com/owa/?path=/mail/action/compose&to=\";\n  }\n\n  // Outlook url\n  let outlookUrl: string = startingOutlookUrl + encodeURIComponent(mail);\n\n  // the details if provided\n  if (subject) {\n    outlookUrl = outlookUrl.concat(\"&subject=\" + encodeURIComponent(subject));\n  }\n\n  if (bodyMail) {\n    outlookUrl = outlookUrl.concat(\"&body=\" + encodeURIComponent(bodyMail));\n  }\n\n  // open the link\n  window.open(outlookUrl, \"_blank\", \"noopener, noreferrer\");\n\n  // hide the modal\n  hideMailgo();\n};\n\nconst openYahooMail = (event?: Event): void => {\n  event.preventDefault();\n\n  // Yahoo url\n  let yahooUrl: string = \"https://compose.mail.yahoo.com/?to=\" + mail;\n\n  // the details if provided\n  if (subject) {\n    yahooUrl = yahooUrl.concat(\"&subject=\" + encodeURIComponent(subject));\n  }\n  if (bodyMail) {\n    yahooUrl = yahooUrl.concat(\"&body=\" + encodeURIComponent(bodyMail));\n  }\n\n  // open the link\n  window.open(yahooUrl, \"_blank\", \"noopener, noreferrer\");\n\n  // hide the modal\n  hideMailgo();\n};\n\nconst openTelegram = (event?: Event): void => {\n  event.preventDefault();\n\n  // check if telegramUsername exists\n  if (telegramUsername) {\n    // Telegram url\n    let tgUrl: string = \"https://t.me/\" + encodeURIComponent(telegramUsername);\n\n    // open the url\n    window.open(tgUrl, \"_blank\", \"noopener, noreferrer\");\n\n    // hide the modal\n    hideMailgo();\n  }\n};\n\nconst openSkype = (event?: Event): void => {\n  event.preventDefault();\n\n  let skype: string = skypeUsername || tel;\n\n  // Telegram url\n  let skypeUrl: string = \"skype:\" + encodeURIComponent(skype);\n\n  // open the url\n  window.open(skypeUrl, \"_blank\", \"noopener, noreferrer\");\n\n  // hide the modal\n  hideMailgo();\n};\n\nconst openWhatsApp = (event?: Event): void => {\n  event.preventDefault();\n\n  // WhatsApp API doesn't work with non number digits and leading 0s: https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat/\n  let whatappTel = tel.replace(notNumber, \"\").replace(leadingZeros, \"\");\n\n  // WhatsApp url\n  let waUrl: string = \"https://wa.me/\" + encodeURIComponent(whatappTel);\n\n  // the details if provided\n  if (msg) {\n    waUrl = waUrl.concat(\"?text=\" + encodeURIComponent(msg));\n  }\n\n  // open the url\n  window.open(waUrl, \"_blank\", \"noopener, noreferrer\");\n\n  // hide the modal\n  hideMailgo();\n};\n\nconst openDefault = (event?: Event): void => {\n  event.preventDefault();\n\n  let installation: MailgoInstallationType = activeMailgoType?.installation;\n\n  // if the installation is classic the browser can follow the default behaviour\n  if (installation === CLASSIC) {\n    window.location.href = href;\n  } else if (installation === LESS_SPAM) {\n    // if the installation is less-spam use the built less-spam href\n    window.location.href = lessSpamHref;\n  }\n\n  hideMailgo();\n};\n\nconst copy = (event?: Event): void => {\n  event.preventDefault();\n\n  // the correct copyButton (mail or tel)\n  if (mailgoIsShowing()) {\n    let activeCopy: HTMLElement;\n\n    let type: MailgoModalType = activeMailgoType?.type;\n\n    if (type === MAILGO_MAIL) {\n      // in case it is showing mail modal copy email address\n      copyToClipboard(mail);\n      activeCopy = copyMail;\n    } else {\n      // in case it is showing tel modal copy phone number\n      copyToClipboard(tel);\n      activeCopy = copyTel;\n    }\n\n    activeCopy.textContent = strings.copied || defaultStrings.copied;\n    setTimeout(() => {\n      activeCopy.textContent = strings.copy || defaultStrings.copy;\n      // hide after the timeout\n      hideMailgo();\n    }, 999);\n  }\n};\n\nconst openCustomAction = (event?: Event): void => {\n  event?.preventDefault();\n\n  if (customActionUrl) {\n    const customActionUrlEncoded = encodeURI(customActionUrl);\n\n    window.open(customActionUrlEncoded, \"_blank\", \"noopener, noreferrer\");\n  }\n\n  hideMailgo();\n};\n\n// function to find if a link is a mailto, tel, callto or sms\nconst validateUrl = (url: string, type: string = MAILTO) => {\n  let regexValidate = new RegExp(\"^\" + type + \"((.)+)\", \"gi\");\n  return regexValidate.test(url);\n};\n\n// function that returns if an element is a mailgo\nfunction getMailgoTypeByElement(element: HTMLElement): MailgoType | null {\n  const linkElement = element as HTMLLinkElement;\n  if (!linkElement.getAttribute) {\n    return null;\n  }\n\n  let elementHref: string = linkElement.getAttribute(\"href\");\n\n  // return null if there is no-mailgo in class\n  if (element.classList?.contains(NO_MAILGO)) {\n    return null;\n  }\n\n  // the case of classic type of mailgo, like a href=mailto:... or a href=tel:... and the class=mailgo with a useful href\n  if (elementHref || element.classList?.contains(\"mailgo\")) {\n    if (validateUrl(elementHref, MAILTO) || validateUrl(elementHref, MAILGO)) {\n      // a mailto: or mailgo:\n      return {\n        type: MAILGO_MAIL,\n        installation: CLASSIC,\n      };\n    } else if (\n      validateUrl(elementHref, TEL) ||\n      validateUrl(elementHref, CALLTO)\n    ) {\n      // a tel: or callto:\n      return {\n        type: MAILGO_TEL,\n        installation: CLASSIC,\n      };\n    } else if (validateUrl(elementHref, SMS)) {\n      // a sms:\n      return {\n        type: MAILGO_SMS,\n        installation: CLASSIC,\n      };\n    }\n  }\n\n  if (elementHref === \"#mailgo\" || element.classList?.contains(\"mailgo\")) {\n    // less-spam installation of mailgo, check to the attributes\n    if (\n      element.hasAttribute(\"data-address\") &&\n      element.hasAttribute(\"data-domain\")\n    ) {\n      // less-spam mailto with data-address and data-domain\n      return {\n        type: MAILGO_MAIL,\n        installation: LESS_SPAM,\n      };\n    } else if (element.hasAttribute(\"data-tel\")) {\n      // less-spam tel with data-tel\n      return {\n        type: MAILGO_TEL,\n        installation: LESS_SPAM,\n      };\n    } else if (element.hasAttribute(\"data-msg\")) {\n      // less-spam sms with data-msd\n      return {\n        type: MAILGO_SMS,\n        installation: LESS_SPAM,\n      };\n    }\n  }\n\n  return null;\n}\n\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing, return a boolean that represents if a useful key has been pressed\n */\nconst mailgoKeydown = (keyboardEvent: KeyboardEvent): boolean => {\n  // if mailgo is showing\n  if (mailgoIsShowing()) {\n    let type: MailgoModalType = activeMailgoType?.type;\n\n    if (type === MAILGO_MAIL) {\n      switch (keyboardEvent.keyCode) {\n        case 27:\n          // Escape\n          hideMailgo();\n          return true;\n        case 71:\n          // g -> open GMail\n          openGmail();\n          return true;\n        case 79:\n          // o -> open Outlook\n          openOutlook();\n          return true;\n        case 89:\n          // y -> open Yahoo Mail\n          openYahooMail();\n          return true;\n        case 32:\n        case 13:\n          // spacebar or enter -> open default\n          openDefault();\n          return true;\n        case 67:\n          // c -> copy\n          copy();\n          return true;\n        case 65:\n          // a -> custom Action\n          openCustomAction();\n          return true;\n        default:\n          return false;\n      }\n    } else if (type === MAILGO_TEL) {\n      switch (keyboardEvent.keyCode) {\n        case 27:\n          // Escape\n          hideMailgo();\n          return true;\n        case 84:\n          // t -> open Telegram\n          openTelegram();\n          return true;\n        case 87:\n          // w -> open WhatsApp\n          openWhatsApp();\n          return true;\n        case 83:\n          // s -> open Skype\n          openSkype();\n          return true;\n        case 32:\n        case 13:\n          // spacebar or enter -> open default\n          openDefault();\n          return true;\n        case 67:\n          // c -> copy\n          copy();\n          return true;\n        default:\n          return false;\n      }\n    }\n  }\n  return false;\n};\n\n// show the modal\nconst showMailgo = (type: MailgoModalType): 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(MAILGO_MAIL, \"none\");\n  setModalDisplay(MAILGO_TEL, \"none\");\n\n  // remove listener keyDown\n  document.removeEventListener(\"keydown\", mailgoKeydown);\n};\n\n// is the mailgo modal hidden?\nconst mailgoIsShowing = (): boolean => {\n  return (\n    (mailtoEnabled && getModalDisplay(MAILGO_MAIL) === \"flex\") ||\n    ((telEnabled || smsEnabled) && getModalDisplay(MAILGO_TEL) === \"flex\")\n  );\n};\n\nconst byElement = (): HTMLLinkElement => {\n  // by element in the footer\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// get the correct HTMLElement from a type\nconst getModalHTMLElement = (type: MailgoModalType = MAILGO_MAIL) => {\n  if (type === MAILGO_TEL) {\n    return modalTel;\n  } else {\n    return modalMailto;\n  }\n};\n\n// get display value\nconst getModalDisplay = (ref: MailgoModalType = MAILGO_MAIL): string =>\n  getModalHTMLElement(ref).style.display;\n\n// set display value\nconst setModalDisplay = (\n  ref: MailgoModalType = MAILGO_MAIL,\n  value: string\n): void => {\n  let modal = getModalHTMLElement(ref);\n\n  if (modal) {\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\n// enable dark mode\nconst enableDarkMode = () => {\n  // get the type from current mailgo type\n  let type: MailgoModalType = activeMailgoType?.type;\n  if (type) {\n    getModalHTMLElement(type).classList.add(\"m-dark\");\n  }\n};\n\n// disable dark mode\nconst disableDarkMode = () => {\n  // get the type from current mailgo type\n  let type: MailgoModalType = activeMailgoType?.type;\n  if (type) {\n    getModalHTMLElement(type).classList.remove(\"m-dark\");\n  }\n};\n\n// custom composedPath if path or event.composedPath() are not defined\nconst composedPath = (\n  el: HTMLElement\n): (HTMLElement | Document | (Window & typeof globalThis))[] => {\n  let path = [];\n\n  while (el) {\n    path.push(el);\n\n    if (el.tagName === \"HTML\") {\n      path.push(document);\n      path.push(window);\n      return path;\n    }\n\n    el = el.parentElement;\n  }\n};\n\n// function to recreate a mailto: or tel: href from less-spam\nconst buildLessSpamHref = (type: string, parameters: string[]): string => {\n  lessSpamHref = type;\n  if (parameters && parameters.length > 0) {\n    let joinedParams = parameters.join(\"&\");\n    lessSpamHref = lessSpamHref.concat(\"?\" + joinedParams);\n  }\n  return lessSpamHref;\n};\n\n// function to check an attribute is enabled or not, by default considering it enabled\nconst mailgoConfigAttributeEnabled = (\n  type: \"action\" | \"detail\",\n  attribute: MailgoAction | MailgoDetail\n): boolean => {\n  // by default all the actions and attribute are enabled\n  if (!config) {\n    return true;\n  }\n\n  // if the attribute type is action consider the actions config attribute\n  if (type === \"action\") {\n    if (config && !config?.actions) {\n      return true;\n    }\n\n    if (\n      config &&\n      config.actions &&\n      config?.actions[attribute as MailgoAction] === false\n    ) {\n      return false;\n    }\n  } else if (type === \"detail\") {\n    // else consider the details attribute\n\n    if (config && !config?.details) {\n      return true;\n    }\n\n    if (\n      config &&\n      config.details &&\n      config?.details[attribute as MailgoDetail] === false\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n};\n\n// manage the language of mailgo\nconst mailgoSetLanguage = (): string => {\n  let languageType = \"default lang\";\n\n  // if a language is defined in configuration use it\n  if (\n    config?.lang &&\n    (languages as MailgoLanguages).indexOf(config.lang) !== -1\n  ) {\n    lang = config.lang;\n    languageType = \"config lang\";\n  } else {\n    // else if is defined <html lang=\"\"> use it!\n    // keep the lang from html\n    let htmlLang: string = document.documentElement.lang;\n\n    // find the correct language using the lang attribute, not just a === because there a are cases like fr-FR or fr_FR in html lang attribute\n    (languages as MailgoLanguages).forEach((language: any) => {\n      if (new RegExp(\"^\" + language, \"gi\").test(htmlLang)) {\n        lang = language;\n        languageType = \"html lang\";\n      }\n    });\n  }\n\n  // strings\n  strings = (translations as MailgoTranslations)[lang];\n\n  return languageType;\n};\n\nconst mailgoStyle = (): void => {\n  if (!document.getElementById(\"mailgo-style\")) {\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\nfunction mailgoValidateEmail(email: string): boolean {\n  return validateEmail(email);\n}\n\n// mailgo\nfunction mailgo(mailgoConfig?: MailgoConfig): boolean {\n  try {\n    // polyfill mailgo\n    // mailgoPolyfill();\n\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 (typeof window !== \"undefined\") {\n      // if is set in config use it (load the mailgo CSS)\n      if (typeof config?.loadCSS !== \"undefined\") {\n        loadCSSConfig = config.loadCSS;\n      }\n\n      // if is set in config use it (enable mailto)\n      if (typeof config?.mailto !== \"undefined\") {\n        mailtoEnabled = config.mailto;\n      }\n\n      // if is set in config use it (enable tel)\n      if (typeof config?.tel !== \"undefined\") {\n        telEnabled = config.tel;\n      }\n\n      // if is set in config use it (enable sms)\n      if (typeof config?.sms !== \"undefined\") {\n        smsEnabled = config.sms;\n      }\n\n      // if load css enabled load it!\n      if (loadCSSConfig) {\n        // add the style for mailgo\n        mailgoStyle();\n      }\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            mailgoInit,\n            config.listenerOptions\n          );\n        } else {\n          // no listener options\n          document.addEventListener(config.initEvent, mailgoInit);\n        }\n      } else {\n        mailgoInit();\n      }\n\n      return true;\n    }\n  } catch (error) {\n    console.log(error);\n  }\n  return false;\n}\n\n// define the methods also for window element\nif (typeof window !== \"undefined\") {\n  (window as any).getMailgoTypeByElement = getMailgoTypeByElement;\n  (window as any).mailgoClickListener = mailgoClickListener;\n  (window as any).mailgoCheckRender = mailgoClickListener; // for compatibility with old version of mailgo\n  (window as any).mailgoPreRender = mailgoPreRender;\n  (window as any).mailgoDirectRender = mailgoDirectRender;\n  (window as any).mailgoRender = mailgoRender;\n  (window as any).mailgoValidateEmail = mailgoValidateEmail;\n  (window as any).mailgo = mailgo;\n}\n\nexport {\n  getMailgoTypeByElement,\n  mailgoClickListener,\n  mailgoPreRender,\n  mailgoDirectRender,\n  mailgoRender,\n  mailgoValidateEmail,\n};\n\nexport default mailgo;\n","export const userAgent = () => {\n  if (\n    /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n      navigator.userAgent\n    )\n  ) {\n    return \"mobile\";\n  }\n  return \"desktop\";\n};\n","// webpack > lib/mailgo.js\n\nimport mailgo, {\n  getMailgoTypeByElement,\n  mailgoClickListener,\n  mailgoPreRender,\n  mailgoDirectRender,\n  mailgoRender,\n  mailgoValidateEmail,\n} from \"../src/mailgo\";\n\n// start function\nconst start = mailgo;\n\n// compatibility with old version of mailgo\nconst mailgoCheckRender = mailgoClickListener;\n\nexport {\n  getMailgoTypeByElement,\n  mailgoClickListener,\n  mailgoCheckRender,\n  mailgoPreRender,\n  mailgoDirectRender,\n  mailgoRender,\n  mailgoValidateEmail,\n  mailgo,\n  start,\n};\n\nexport default mailgo;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n",null,null,null,"// startup\n// Load entry module and return exports\n// This entry module doesn't tell about it's top-level declarations so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(507);\n"]}