1 line
3.5 KiB
JavaScript
1 line
3.5 KiB
JavaScript
(function(){function s(e){document.readyState=="complete"?e():document.addEventListener("DOMContentLoaded",e)}function t(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}window.relearn=window.relearn||{},window.relearn.executeInitialSearch=function(){if(window.relearn.isSearchInterfaceReady&&window.relearn.isSearchEngineReady){var s,n=document.querySelector("#R-search-by-detail");if(!n)return;s=n.value,e(s)}},window.relearn.executeTriggeredSearch=function(){var n,s,o,a,i=document.querySelector("#R-search-by-detail");if(!i)return;o=i.value,e(o),s=new URL(window.location),a=s.searchParams.get("search-by"),o!=a&&(n=window.history.state||{},n=Object.assign({},typeof n=="object"?n:{}),s.searchParams.set("search-by",o),n.search=s.toString(),n.contentScrollTop=+elc.scrollTop,window.history.pushState(n,"",s))};function o(t){if(t.state){var s,o,i,n=window.history.state||{},n=Object.assign({},typeof n=="object"?n:{});n.search&&(s=new URL(n.search),s.searchParams.has("search-by")&&(o=s.searchParams.get("search-by"),i=document.querySelectorAll("input.search-by"),i.forEach(function(e){e.value=o;var t=document.createEvent("Event");t.initEvent("input",!1,!1),e.dispatchEvent(t)}),e(o)))}}function n(e){var n,i,a,r,c,l,s=e.page,o=[];return e.matches&&e.matches.length&&(i=2,a="(?:\\S+ +){0,"+i+"}\\S*\\b(?:"+t(e.matches[0])+")\\b\\S*(?: +\\S+){0,"+i+"}",o=s.content.match(new RegExp(a,"i")),o||(e.matches.shift(),a="(?:\\S+ +){0,"+i+"}\\S*\\b(?:"+e.matches.map(t).join("|")+")\\b\\S*(?: +\\S+){0,"+i+"}",o=s.content.match(new RegExp(a,"i")))),n=document.createElement("a"),n.className="autocomplete-suggestion",n.setAttribute("href",window.relearn.relBaseUri+s.uri),r=document.createElement("div"),r.className="title",r.innerText="» "+s.title,n.appendChild(r),c=document.createElement("div"),c.className="breadcrumbs",c.innerText=s.breadcrumb||"",n.appendChild(c),o&&(l=document.createElement("div"),l.className="context",l.innerText=o||"",n.appendChild(l)),n}function e(e){var t,s,i=document.querySelector("#R-search-by-detail");function o(e,t){var t=t||[];return e.replace(/{([0-9]+)}/g,function(e,n){return typeof t[n]=="undefined"?e:t[n]})}s=document.querySelector("#R-searchresults"),t=document.querySelector(".searchhint"),t.innerText="",s.textContent="",async function(){var a,r=await window.relearn.search.adapter.search(e);if(r.length?(t.innerText=o(window.T_N_results_found,[e,r.length]),r.forEach(function(e){s.appendChild(n(e))}),window.relearn.markSearch()):e.length&&(t.innerText=o(window.T_No_results_found,[e])),i.focus(),setTimeout(adjustContentWidth,0),a=window.history.state||{},a=Object.assign({},typeof a=="object"?a:{}),a.hasOwnProperty("contentScrollTop")){window.setTimeout(function(){elc.scrollTop=+a.contentScrollTop},10);return}}()}function i(){if(!window.relearn.search||!window.relearn.search.adapter)return;window.relearn.search.adapter.init();var e,t=document.querySelector("#R-search-by-detail");t&&(e=window.history.state||{},e=Object.assign({},typeof e=="object"?e:{}),e.search=window.location.toString(),window.history.replaceState(e,"")),new autoComplete({selectorToInsert:"search:has(.searchbox)",selector:"#R-search-by",source:async function(e,t){let n=await window.relearn.search.adapter.search(e);t(n)},renderItem:function(e){return n(e).outerHTML},onSelect:function(e,t,n){location.href=n.getAttribute("href"),e.preventDefault()}})}function a(){window.addEventListener("popstate",o);var e=document.querySelector("#R-search-by-detail");e&&e.addEventListener("keydown",function(t){t.key=="Escape"&&setTimeout(function(){e.focus()},0)}),s(i)}a()})() |