(function () { var e = document.querySelector(".menu-open"); e && e.addEventListener("click", function () { document.body.classList.contains("is-menu-open") ? document.body.classList.remove("is-menu-open") : document.body.classList.add("is-menu-open"); }); var c = document.querySelector(".menu-close"); c && c.addEventListener("click", function () { document.body.classList.contains("is-menu-open") ? document.body.classList.remove("is-menu-open") : document.body.classList.add("is-menu-open"); }); var s = document.querySelector(".search-open"); s && s.addEventListener("click", function () { document.body.classList.contains("is-search-open") ? document.body.classList.remove("is-search-open") : document.body.classList.add("is-search-open"); }); var sc = document.querySelector(".search-close"); sc && sc.addEventListener("click", function () { document.body.classList.contains("is-search-open") ? document.body.classList.remove("is-search-open") : document.body.classList.add("is-search-open"); }); })(); /* Copy to clipboard button on code blocks */ (function () { function icon(paths) { return ( '" ); } var copyIcon = icon(''); var doneIcon = icon(''); var failIcon = icon(''); if (!navigator.clipboard) return; document.querySelectorAll("pre").forEach(function (block) { var code = block.querySelector("code"); if (!code) return; var button = document.createElement("button"); button.className = "copy-code"; button.type = "button"; button.innerHTML = copyIcon; button.title = "Copy code"; button.setAttribute("aria-label", "Copy code to clipboard"); block.appendChild(button); button.addEventListener("click", function () { navigator.clipboard.writeText(code.innerText).then( function () { button.innerHTML = doneIcon; button.title = "Copied!"; }, function () { button.innerHTML = failIcon; button.title = "Copy failed"; } ); setTimeout(function () { button.innerHTML = copyIcon; button.title = "Copy code"; }, 1000); }); // Keep the button in place while the block scrolls horizontally. block.addEventListener("scroll", function () { button.style.transform = "translateX(" + block.scrollLeft + "px)"; }); }); })();