"use strict"; const COPY_TO_CLIPBOARD_CONTAINER_ID = "copyToClipboardContainer"; const COPY_TO_CLIPBOARD_STATUS_ID = "copyToClipboardStatus"; let copyToClipboardCtr = 0; function copyToClipboardSuccess() { let statusElem = document.getElementById(COPY_TO_CLIPBOARD_STATUS_ID); statusElem.innerText = "URL copied!"; statusElem.classList.remove("fail"); statusElem.classList.add("success"); } function copyToClipboardFail(cause) { let statusElem = document.getElementById(COPY_TO_CLIPBOARD_STATUS_ID); if (!cause) cause = "unknown error"; let msg = "copy failed: " + cause; console.log(msg); statusElem.innerText = msg; statusElem.classList.remove("success"); statusElem.classList.add("fail"); } function copyToClipboard(url) { let copyEventIdx = ++copyToClipboardCtr; if (!window.navigator.clipboard) { copyToClipboardFail("could not access clipboard"); return; } window.navigator.clipboard.writeText(url).then(() => { if (copyToClipboardCtr !== copyEventIdx) return; copyToClipboardSuccess(); }, () => { if (copyToClipboardCtr !== copyEventIdx) return; copyToClipboardFail(); }); } (function () { if (!window.navigator.clipboard) { let msg = "cannot access clipboard"; if (window.location.protocol !== "https:") { msg += ": website not using https" } console.error(msg); } else { let container = document.getElementById(COPY_TO_CLIPBOARD_CONTAINER_ID); container.classList.remove("hidden"); } })();