{"version":3,"sources":["dcc.sharer.js"],"names":["document","addEventListener","querySelectorAll","forEach","el","triggers","overlay","querySelector","modal","copyButton","emailButton","copyText","isFindAClinicianPage","closest","button","classList","toggle","copyToClipboard","BuildClinicianLink","dataset","sharerCopy","then","textContent","setTimeout","linkText","subject","sharerEmailSubject","body","sharerEmailBody","mailTo","encodeURIComponent","window","location","href","URL","toString","replaceAll","async","textToCopy","navigator","clipboard","isSecureContext","writeText","textArea","createElement","value","add","prepend","select","execCommand","error","console","remove"],"mappings":"AAAAA,SAASC,iBAAiB,mBAAoB,KAC5CD,SAASE,iBAAiB,iBAAiBC,QAAQC,IACjD,MAAMC,EAAWD,EAAGF,iBAAiB,yBAC/BI,EAAUF,EAAGG,cAAc,kBAC3BC,EAAQJ,EAAGG,cAAc,uBACzBE,EAAaL,EAAGG,cAAc,sBAC9BG,EAAcN,EAAGG,cAAc,uBAC/BI,EAAWF,EAAWF,cAAc,sBACpCK,EAAuB,IAA8C,OAAxCR,EAAGS,QAAQ,yBAC9CR,EAASF,QAAQW,GAAUA,EAAOb,iBAAiB,QAAS,KAC1DO,EAAMO,UAAUC,OAAO,eACvBV,EAAQS,UAAUC,OAAO,WAE3BP,EAAWR,iBAAiB,QAAS,KAEnCgB,gBADiBL,IAAyBM,qBAAuBT,EAAWU,QAAQC,YAC1DC,KAAK,KAC7BV,EAASW,YAAc,cACvBC,WAAW,KACTZ,EAASW,YAAc,aACtB,MACF,KACDX,EAASW,YAAc,iBACvBC,WAAW,KACTZ,EAASW,YAAc,aACtB,SAGHZ,GACFA,EAAYT,iBAAiB,QAAS,KACpC,MAAMuB,EAAWZ,IAAyBM,qBAAuBT,EAAWU,QAAQC,WAC9EK,EAAUrB,EAAGG,cAAc,+BAA+BY,QAAQO,mBAClEC,EAAOH,EAAW,OAASpB,EAAGG,cAAc,4BAA4BY,QAAQS,gBAEhFC,qBAA4BJ,UADdK,mBAAmBH,KAEvCI,OAAOC,SAASC,KAAOJ,QAK/B,MAAMX,mBAAqB,KAEzB,OADiB,IAAIgB,IAAIF,UAAUG,WACnBC,WAAW,IAAK,QAElCC,eAAepB,gBAAgBqB,GAE7B,GAAIC,UAAUC,WAAaT,OAAOU,sBAC1BF,UAAUC,UAAUE,UAAUJ,OAC/B,CAEL,MAAMK,EAAW3C,SAAS4C,cAAc,YACxCD,EAASE,MAAQP,EAGjBK,EAAS5B,UAAU+B,IAAI,WACvB9C,SAAS2B,KAAKoB,QAAQJ,GACtBA,EAASK,SACT,IACEhD,SAASiD,YAAY,QACrB,MAAOC,GACPC,QAAQD,MAAMA,GACd,QACAP,EAASS","sourcesContent":["document.addEventListener('DOMContentLoaded', () => {\r\n\r\n document.querySelectorAll(`[data-sharer]`).forEach(el => {\r\n\r\n const triggers = el.querySelectorAll(`[data-sharer-trigger]`);\r\n const overlay = el.querySelector(`[data-overlay]`);\r\n const modal = el.querySelector(`[data-sharer-modal]`);\r\n const copyButton = el.querySelector(`[data-sharer-copy]`);\r\n const emailButton = el.querySelector('[data-sharer-email]');\r\n const copyText = copyButton.querySelector(`[data-sharer-text]`);\r\n const isFindAClinicianPage = () => el.closest(\"[data-clinician-page]\") !== null;\r\n\r\n triggers.forEach(button => button.addEventListener(`click`, () => {\r\n modal.classList.toggle(`modal--open`);\r\n overlay.classList.toggle(`open`);\r\n }));\r\n\r\n copyButton.addEventListener(`click`, () => {\r\n const linkText = isFindAClinicianPage()\r\n ? BuildClinicianLink()\r\n : copyButton.dataset.sharerCopy\r\n\r\n copyToClipboard(linkText).then(\r\n () => {\r\n copyText.textContent = `Link Copied`\r\n setTimeout(() => {\r\n copyText.textContent = `Copy link`;\r\n }, 2000)\r\n },\r\n () => {\r\n copyText.textContent = `copy failed :(`\r\n setTimeout(() => {\r\n copyText.textContent = `Copy link`;\r\n }, 2000)\r\n }\r\n );\r\n\r\n });\r\n\r\n if (emailButton) {\r\n emailButton.addEventListener('click', () => {\r\n const linkText = isFindAClinicianPage()\r\n ? BuildClinicianLink()\r\n : copyButton.dataset.sharerCopy\r\n\r\n const subject = el.querySelector(\"[data-sharer-email-subject]\").dataset.sharerEmailSubject;\r\n const body = linkText + \"\\n\\n\" + el.querySelector(\"[data-sharer-email-body]\").dataset.sharerEmailBody;\r\n const encodedBody = encodeURIComponent(body)\r\n\r\n const mailTo = `mailto:?subject=${subject}&body=${encodedBody}`;\r\n window.location.href = mailTo;\r\n });\r\n }\r\n });\r\n\r\n});\r\n\r\nconst BuildClinicianLink = () => {\r\n const linkText = new URL(location).toString();\r\n \r\n return linkText.replaceAll(\",\", \"%2C\");\r\n}\r\n\r\nasync function copyToClipboard(textToCopy) {\r\n // Navigator clipboard api needs a secure context (https)\r\n if (navigator.clipboard && window.isSecureContext) {\r\n await navigator.clipboard.writeText(textToCopy);\r\n } else {\r\n // Use the 'out of viewport hidden text area' trick\r\n const textArea = document.createElement(\"textarea\");\r\n textArea.value = textToCopy;\r\n\r\n // Move textarea out of the viewport so it's not visible\r\n textArea.classList.add(`sr-only`);\r\n\r\n document.body.prepend(textArea);\r\n textArea.select();\r\n\r\n try {\r\n document.execCommand('copy');\r\n } catch (error) {\r\n console.error(error);\r\n } finally {\r\n textArea.remove();\r\n }\r\n }\r\n}"],"file":"dcc.sharer-min.js"}