PageSourceSearch

https://www.banuba.com/hubfs/assets/js/1.3.0/search-in-blog-byWeru9P.js

js banuba.com collected 2026-10-01 10:24:08 UTC 4,027 bytes, 1 lines download raw bytes

1import{c as e}from"./create-element-5k6CQbW0.js";import{l as t}from"./app.js";import{s}from"./scroll-control-nF8xo79a.js";class i{constructor(e){return this.log=t("SearchInBlog"),e?(this.log("Init search in blog: ",e),this.$el=e,this.popup=null,this.popupForm=null,this.popupField=null,this.popupLabel=null,this.popupLabelText=null,this.popupClose=null,this.popupResults=null,this.popupResultsList=null,this.currentSearchString=null,this.searchDelay=1500,this.searchRequest=!1,this.activeClass="active",this.events(),this):(this.log("Node element not found"),!1)}events(){this.log("Init events"),this.buildPopupHTML();const e=this.elementHandler.bind(this),t=this.onCloseHandler.bind(this),s=this.searchFieldHandler.bind(this),i=this.searchFieldHandler.bind(this);return this.$el.addEventListener("click",e),this.popupClose.addEventListener("click",t),this.popupForm.addEventListener("submit",i),this.popupField.addEventListener("input",s),this}elementHandler(e){e.preventDefault(),Promise.resolve().then((()=>s.hideScrollbar())).then((()=>this.revealElement(this.popup)))}searchFormHandler(e){e.preventDefault(),this.currentSearchString=null}onCloseHandler(e){e.preventDefault(),Promise.resolve().then((()=>this.hideElement(this.popup))).then((()=>this.popup.addEventListener("transitionend",(()=>s.showScrollbar())))).then((()=>this.clearResults()))}searchFieldHandler(){!1!==this.searchRequest&&clearInterval(this.searchRequest),this.searchRequest=setTimeout((()=>{if(""!==this.popupField.value){this.popupResultsList.firstChild&&this.clearResultsList();const e="&limit=15",t="&autocomplete=true&analytics=true&type=BLOG_POST&type=LISTING_PAGE",s=`&term=${this.popupField.value}`;this.currentSearchString=`/_hcms/search?${s}${e}${t}`;const i=this.currentSearchString;fetch(i,{method:"GET"}).then((e=>e.json())).then((e=>this.emulateSearch(e))).catch((e=>console.log(e)))}""===this.popupField.value&&this.clearResults(),this.searchRequest=!1}),this.searchDelay)}emulateSearch(t){this.popupLabelText.textContent=`${t.length} results`;const s=t.publishedDate,i=new Date(s),p={year:"numeric",month:"long",day:"numeric"},l="search-in-blog__list";let n=0;for(;n<t.length;){const s=e("li",[`${l}-item`]),h=e("span",[`${l}-title`]);h.textContent=t.title;const o=e("p",[`${l}-publish-date`]);o.textContent=i.toLocaleString("en-US",p),s.appendChild(h),s.appendChild(o),this.popupResultsList.appendChild(s),n++}}clearResults(){return this.log("Clear results"),""===this.popupField.value||(this.popupField.value=""),this.popupLabelText.textContent="",this.clearResultsList(),this}clearResultsList(){for(this.log("Clear results list");this.popupResultsList.firstChild;)this.popupResultsList.removeChild(this.popupResultsList.firstChild);return this}revealElement(e){e.classList.add(this.activeClass)}hideElement(e){e.classList.remove(this.activeClass)}buildPopupHTML(){this.log("Build popup HTML");const t="search-in-blog";return this.popup=e("div",[t]),this.popupForm=e("form",[`${t}__form`]),this.popupClose=e("button",[`${t}__close`]),this.popupLabel=e("label",[`${t}__label`]),this.popupLabelText=e("span",[`${t}__label-text`]),this.popupField=e("input",[`${t}__field`]),this.popupResults=e("div",[`${t}__result`]),this.popupResultsList=e("ul",[`${t}__list`]),this.popupClose.setAttribute("type","button"),this.popupField.setAttribute("type","text"),this.popupField.setAttribute("placeholder","Search"),this.popupField.setAttribute("inputmode","search"),this.popupLabel.insertAdjacentElement("beforeend",this.popupField),this.popupLabel.insertAdjacentElement("beforeend",this.popupLabelText),this.popupForm.insertAdjacentElement("beforeend",this.popupLabel),this.popupResults.insertAdjacentElement("beforeend",this.popupForm),this.popupResults.insertAdjacentElement("beforeend",this.popupResultsList),this.popup.insertAdjacentElement("beforeend",this.popupClose),this.popup.insertAdjacentElement("beforeend",this.popupResults),document.body.insertAdjacentElement("beforeend",this.popup),this}}export{i as SearchInBlog,i as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.