(function () { "use strict"; const input = document.getElementById("search-input"); const results = document.getElementById("search-results"); if (!input || !results) return; let pagefind = null; let timer = null; async function getPagefind() { if (!pagefind) pagefind = await import("/pagefind/pagefind.js"); return pagefind; } function escapeHtml(str) { const div = document.createElement("div"); div.textContent = str; return div.innerHTML; } function render(items) { if (!items.length) { results.innerHTML = '
Keine Treffer.
'; results.hidden = false; return; } results.innerHTML = items .map((it) => { // excerpt enthält bereits von Pagefind – als HTML rendern const excerpt = it.excerpt ? `${it.excerpt}` : ""; const sub = (it.sub_results || []) .slice(0, 3) .map( (s) => `Suche nicht verfügbar.
'; results.hidden = false; } } input.addEventListener("input", () => { clearTimeout(timer); timer = setTimeout(() => doSearch(input.value), 150); }); input.addEventListener("focus", () => { if (input.value.trim().length >= 2) doSearch(input.value); }); document.addEventListener("click", (e) => { if (!e.target.closest(".search")) results.hidden = true; }); document.addEventListener("keydown", (e) => { if (e.key === "Escape") { results.hidden = true; input.blur(); } }); })();