diff options
Diffstat (limited to 'en.search.min.77eecb367a48b50a7df2acdb69aba4b0107b4b1306bd8f7510bb929a260db0b1.js')
-rw-r--r-- | en.search.min.77eecb367a48b50a7df2acdb69aba4b0107b4b1306bd8f7510bb929a260db0b1.js | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/en.search.min.77eecb367a48b50a7df2acdb69aba4b0107b4b1306bd8f7510bb929a260db0b1.js b/en.search.min.77eecb367a48b50a7df2acdb69aba4b0107b4b1306bd8f7510bb929a260db0b1.js new file mode 100644 index 0000000..90f612a --- /dev/null +++ b/en.search.min.77eecb367a48b50a7df2acdb69aba4b0107b4b1306bd8f7510bb929a260db0b1.js @@ -0,0 +1,11 @@ +'use strict';(function(){const input=document.querySelector('#book-search-input');const results=document.querySelector('#book-search-results');if(!input){return} +input.addEventListener('focus',init);input.addEventListener('keyup',search);document.addEventListener('keypress',focusSearchFieldOnKeyPress);function focusSearchFieldOnKeyPress(event){if(input===document.activeElement){return;} +const characterPressed=String.fromCharCode(event.charCode);if(!isHotkey(characterPressed)){return;} +input.focus();event.preventDefault();} +function isHotkey(character){const dataHotkeys=input.getAttribute('data-hotkeys')||'';return dataHotkeys.indexOf(character)>=0;} +function init(){input.removeEventListener('focus',init);input.required=true;loadScript('/vericert-docs/flexsearch.min.js');loadScript('/vericert-docs/en.search-data.min.7b5933dbdcf2b2b8e261bda6e5d9a67f20411606895154199be29ff129a8c1be.js',function(){input.required=false;search();});} +function search(){while(results.firstChild){results.removeChild(results.firstChild);} +if(!input.value){return;} +const searchHits=window.bookSearchIndex.search(input.value,10);searchHits.forEach(function(page){const li=element('<li><a href></a><small></small></li>');const a=li.querySelector('a'),small=li.querySelector('small');a.href=page.href;a.textContent=page.title;small.textContent=page.section;results.appendChild(li);});} +function loadScript(src,callback){const script=document.createElement('script');script.defer=true;script.async=false;script.src=src;script.onload=callback;document.head.appendChild(script);} +function element(content){const div=document.createElement('div');div.innerHTML=content;return div.firstChild;}})();
\ No newline at end of file |