window.publiiStaticSearchInitCallback=function(a){window.publiiStaticSearch.indexLoaded||(window.publiiStaticSearch.cachedItems=a,window.publiiStaticSearch.initIndex())},window.publiiStaticSearch={cachedItems:null,searchIndex:null,indexLoaded:!1,htmlLoaded:!1,UI:{customTrigger:null,smallSearchInput:null,smallSearchForm:null,input:null,overlay:null,popupContent:null,emptyState:null,tooShortPhraseState:null,noResultsState:null,listWithResults:null,listWithResultsContent:null},config:{minCharCount:window.publiiStaticSearchConfig.minCharCount,maxResultsCount:window.publiiStaticSearchConfig.maxResultsCount,engineSettings:{tokenize:window.publiiStaticSearchConfig.engineSettings.tokenize,charset:window.publiiStaticSearchConfig.engineSettings.charset,language:window.publiiStaticSearchConfig.engineSettings.language,cache:window.publiiStaticSearchConfig.engineSettings.cache,suggest:window.publiiStaticSearchConfig.engineSettings.suggest},indexSettings:{resultsDescription:window.publiiStaticSearchConfig.indexSettings.resultsDescription,indexPostTitles:window.publiiStaticSearchConfig.indexSettings.indexPostTitles,indexPostExcerpts:window.publiiStaticSearchConfig.indexSettings.indexPostExcerpts,indexPostHeadings:window.publiiStaticSearchConfig.indexSettings.indexPostHeadings,indexPostAuthors:window.publiiStaticSearchConfig.indexSettings.indexPostAuthors,indexPostMetaDescription:window.publiiStaticSearchConfig.indexSettings.indexPostMetaDescription,indexTagNames:window.publiiStaticSearchConfig.indexSettings.indexTagNames,indexTagDescription:window.publiiStaticSearchConfig.indexSettings.indexTagDescription,indexTagMetaDescription:window.publiiStaticSearchConfig.indexSettings.indexTagMetaDescription}},templates:{searchPopup:`
${window.publiiStaticSearchConfig.translations.searchEmptyState}
`,searchItem:`
  • {PSS_ICON} {PSS_TITLE} {PSS_TEXT}
  • `,searchItemWithoutText:`
  • {PSS_ICON} {PSS_TITLE}
  • `,postIcon:'',tagIcon:' '},init(){if(this.UI.smallSearchForm=document.querySelector("form.search__form"),window.publiiStaticSearchConfig.customTriggerSelector&&(this.UI.customTrigger=document.querySelectorAll(window.publiiStaticSearchConfig.customTriggerSelector)),this.UI.smallSearchForm&&(this.UI.smallSearchInput=this.UI.smallSearchForm.querySelector(".search__input"),window.publiiStaticSearchConfig.showPopupOnInputClick?(this.UI.smallSearchForm.addEventListener("submit",a=>{a.preventDefault()},!1),this.UI.smallSearchInput.addEventListener("click",a=>{this.showPopup("")},!1)):this.UI.smallSearchForm.addEventListener("submit",a=>{a.preventDefault(),this.showPopup(this.UI.smallSearchInput.value)},!1)),this.UI.customTrigger)for(let a=0;a{a.preventDefault(),this.showPopup("")},!1)},showPopup(a){this.htmlLoaded?(this.UI.overlay.classList.remove("is-hidden"),this.UI.input.value=a,this.UI.input.focus(),this.triggerSearchEvent()):(this.htmlLoaded=!0,this.appendHtmlStructure(),setTimeout(()=>{this.initPopupEvents(a),this.indexLoaded||this.loadIndex()},0))},loadIndex(){let b=1e5*parseInt(Date.now()/1e5,10),c=window.publiiStaticSearchConfig.baseURL+"/media/plugins/staticSearch/index.js?v="+b,a=document.createElement("script");a.setAttribute("type","text/javascript"),a.setAttribute("src",c),document.body.appendChild(a)},initIndex(){let d={charset:this.config.engineSettings.charset,language:this.config.engineSettings.language,preset:"match",tokenize:this.config.engineSettings.tokenize,cache:this.config.engineSettings.cache,suggest:this.config.engineSettings.suggest};this.searchIndex=new FlexSearch.Index(d);for(let c=0;c{this.triggerSearchEvent()},0)},appendHtmlStructure(){let a=document.createElement("div");a.setAttribute("class","pss-results is-hidden is-loading"),a.innerHTML=this.templates.searchPopup,document.body.appendChild(a)},initPopupEvents(a){this.UI.input=document.querySelector(".pss-results__searchbar__input"),this.UI.overlay=document.querySelector(".pss-results"),this.UI.popupContent=document.querySelector(".pss-results__wrapper"),this.UI.emptyState=document.querySelector(".pss-results__msg--empty"),this.UI.noResultsState=document.querySelector(".pss-results__msg--no-results"),this.UI.tooShortPhraseState=document.querySelector(".pss-results__msg--too-short"),this.UI.listWithResultsContent=document.querySelector(".pss-results__list"),this.UI.popupCloseBtn=document.querySelector(".pss-results__searchbar__btn"),this.UI.input.addEventListener("input",()=>{this.triggerSearchEvent()},!1),this.UI.overlay.addEventListener("click",()=>{this.UI.input.value="",this.showEmptyState(),this.UI.overlay.classList.add("is-hidden")},!1),this.UI.popupCloseBtn.addEventListener("click",()=>{this.UI.input.value="",this.showEmptyState(),this.UI.overlay.classList.add("is-hidden")},!1),this.UI.popupContent.addEventListener("click",a=>{a.stopPropagation()},!1);let b=null;this.UI.listWithResultsContent.addEventListener("scroll",()=>{clearTimeout(b),this.UI.listWithResultsContent.classList.contains("is-scrolled")||this.UI.listWithResultsContent.classList.add("is-scrolled"),b=setTimeout(()=>{this.UI.listWithResultsContent.classList.remove("is-scrolled")},350)},!1),setTimeout(()=>{this.UI.overlay.classList.remove("is-hidden"),this.UI.input.value=a,this.UI.input.focus(),this.triggerSearchEvent()},0),document.addEventListener("keydown",a=>{"Escape"!==a.key&&"Esc"!==a.key||this.UI.overlay.classList.contains("is-hidden")||(this.UI.input.value="",this.showEmptyState(),this.UI.overlay.classList.add("is-hidden"))},!1)},search(a){if(null===this.searchIndex)return!1;let b=this.searchIndex.search(a,this.config.maxResultsCount);return this.cachedItems.filter(a=>b.includes(a.id))},showEmptyState(){this.UI.emptyState.removeAttribute("hidden"),this.UI.tooShortPhraseState.setAttribute("hidden",!0),this.UI.noResultsState.setAttribute("hidden",!0),this.UI.listWithResultsContent.setAttribute("hidden",!0)},showTooShortState(){this.UI.emptyState.setAttribute("hidden",!0),this.UI.tooShortPhraseState.removeAttribute("hidden"),this.UI.noResultsState.setAttribute("hidden",!0),this.UI.listWithResultsContent.setAttribute("hidden",!0)},showNoResults(){this.UI.emptyState.setAttribute("hidden",!0),this.UI.tooShortPhraseState.setAttribute("hidden",!0),this.UI.noResultsState.removeAttribute("hidden"),this.UI.listWithResultsContent.setAttribute("hidden",!0)},showResults(){this.UI.emptyState.setAttribute("hidden",!0),this.UI.tooShortPhraseState.setAttribute("hidden",!0),this.UI.noResultsState.setAttribute("hidden",!0),this.UI.listWithResultsContent.removeAttribute("hidden")},renderResults(b){let e="";for(let a=0;a -1&&(d=d.replace("#PUBLII_RELATIVE_URL_BASE#",""));let i=this.templates[g].replace(/\{PSS_ICON\}/gmi,f).replace(/\{PSS_URL\}/gmi,d).replace(/\{PSS_TITLE\}/gmi,h).replace(/\{PSS_TEXT\}/gmi,c);e+=i}this.UI.listWithResultsContent.innerHTML=e},triggerSearchEvent(){if(this.indexLoaded){if(this.UI.input.value.trim().length>=this.config.minCharCount){let a=this.search(this.UI.input.value.trim());!1!==a&&a.length?(this.showResults(),this.renderResults(a)):this.showNoResults()}else this.UI.input.value.trim().length>0?this.showTooShortState():this.showEmptyState()}}},window.publiiStaticSearch.init()