{ "version": 3, "sources": ["../../../src/js/modules/clipboard.js", "../../../src/js/modules/search.js", "../../../src/js/script.js"], "sourcesContent": ["/**\n * Add a \"Copy Code\" button to each code element to automatically\n * copy the respective code in the clipboard of the client.\n */\nconst clipboard = {\n buttonLabel: 'Copy Code',\n buttonCopiedLabel: 'Code Copied',\n buttonErrorLabel: 'Error',\n init: (blocks) => {\n for (let i = 0; i < blocks.length; i += 1) {\n const button = document.createElement('button');\n button.setAttribute('class', 'clipboard-button');\n button.innerText = clipboard.buttonLabel;\n blocks[i].prepend(button);\n button.addEventListener('click', async () => {\n await clipboard\n .copyCode(blocks[i])\n .then((result) => {\n if (result === true) {\n button.innerText = clipboard.buttonCopiedLabel;\n } else {\n button.innerText = clipboard.buttonErrorLabel;\n }\n setTimeout(() => {\n button.innerText = clipboard.buttonLabel;\n }, 1500);\n })\n .catch((err) => {\n /* eslint-disable-next-line no-console */\n console.error(err);\n });\n });\n }\n },\n copyCode: async (block) => {\n const code = block.querySelector('code');\n if (code === null) {\n return false;\n }\n try {\n const codeClone = code.cloneNode(true);\n // Remove potential prefixes (+ or -) from diff-languages\n const prefixNodes = codeClone.querySelectorAll('.prefix');\n for (let i = 0; i < prefixNodes.length; i += 1) {\n prefixNodes[i].remove();\n }\n const text = codeClone.innerText;\n await navigator.clipboard.writeText(text);\n return true;\n } catch (err) {\n /* eslint-disable-next-line no-console */\n console.error(err);\n return false;\n }\n },\n};\n\nexport default clipboard;\n", "const search = {\n pagefindLibrary: null,\n pagefindPath: '/pagefind/pagefind.js',\n form: null,\n input: null,\n results: null,\n resultsCount: null,\n resultsList: null,\n addResult: (result) => {\n const resultListItem = document.createElement('li');\n resultListItem.innerHTML = `
${result.excerpt}
\n