| 1 | function S(a){if(!a)return null;let i=a.querySelector("[docs-jumpto-input]"),f=a.querySelector("[docs-jumpto-list]"),u=a.querySelector("[docs-jumpto-status]"),w=a.querySelector("[docs-jumpto-close]");if(!i||!f||!u)return null;let b={empty:u.getAttribute("data-empty")||"",failed:u.getAttribute("data-failed")||"",partial:u.getAttribute("data-partial")||""},o=!1,s=[],r=-1,g=null,p=0,l=null;function k(){o||(o=!0,l=document.activeElement,a.hidden=!1,i.setAttribute("aria-expanded","true"),i.value="",h([]),m(""),i.focus())}function c(){o&&(o=!1,a.hidden=!0,i.setAttribute("aria-expanded","false"),i.removeAttribute("aria-activedescendant"),clearTimeout(g),p++,l&&document.contains(l)&&l.focus(),l=null)}function m(e){u.textContent=e,u.hidden=e===""}function h(e){s=e,r=e.length>0?0:-1,f.textContent="";for(let t=0;t<e.length;t++){let n=document.createElement("li");n.id=`docs-jumpto-option-${t}`,n.setAttribute("role","option"),n.setAttribute("aria-selected",t===r?"true":"false"),n.dataset.href=e[t].href;let d=document.createElement("span");d.textContent=e[t].title;let E=document.createElement("span");E.setAttribute("docs-jumpto-when",""),E.textContent=e[t].when,n.append(d,E),n.addEventListener("mousedown",v=>{v.preventDefault(),D(t)}),f.append(n)}y()}function y(){let e=f.children;for(let t=0;t<e.length;t++)e[t].setAttribute("aria-selected",t===r?"true":"false");r>=0&&e[r]?(i.setAttribute("aria-activedescendant",e[r].id),e[r].scrollIntoView({block:"nearest"})):i.removeAttribute("aria-activedescendant")}function A(e){s.length!==0&&(r=(r+e+s.length)%s.length,y())}function D(e){let t=s[e];t&&(window.location.href=t.href)}async function j(e){let t=++p;if(e.trim()===""){h([]),m("");return}try{let n=await fetch(`/documents/search?q=${encodeURIComponent(e)}`,{credentials:"same-origin"});if(!n.ok)throw new Error(`search: ${n.status}`);let d=await n.json();if(t!==p||!o)return;h(d),m(n.headers?.get("Docs-Catalog-Partial")==="1"?b.partial:d.length===0?b.empty:"")}catch(n){if(t!==p||!o)return;h([]),m(b.failed),console.error(n)}}return i.addEventListener("input",()=>{clearTimeout(g);let e=i.value;g=setTimeout(()=>j(e),120)}),i.addEventListener("keydown",e=>{if(!(e.isComposing||e.keyCode===229))switch(e.key){case"ArrowDown":e.preventDefault(),A(1);break;case"ArrowUp":e.preventDefault(),A(-1);break;case"Home":s.length&&(e.preventDefault(),r=0,y());break;case"End":s.length&&(e.preventDefault(),r=s.length-1,y());break;case"Enter":r>=0&&(e.preventDefault(),D(r));break;case"Escape":e.preventDefault(),c();break;case"Tab":e.preventDefault(),c();break;default:break}}),w&&w.addEventListener("click",()=>c()),a.addEventListener("mousedown",e=>{e.target===a&&c()}),addEventListener("keydown",e=>{if((e.ctrlKey||e.metaKey)&&(e.key==="k"||e.key==="K")){e.preventDefault(),o?c():k();return}e.key==="Escape"&&o&&(e.preventDefault(),c())}),document.addEventListener("click",e=>{let t=e.target.closest&&e.target.closest("a[data-docs-jumpto]");if(!t||e.defaultPrevented||e.metaKey||e.ctrlKey||e.shiftKey||e.button!==0)return;e.preventDefault();let n=t.closest("details");n&&(n.open=!1),k()}),{show:k,hide:c,isOpen:()=>o}}var C=document.querySelector("[docs-jumpto]");if(C)try{S(C)}catch(a){console.error(a)}export{S as createJumpTo}; |