1'use strict';class HuskyText{constructor(input,data={}){this.searched_value='';this.current_page=0;this.data=Object.assign({},data);this.input=input;this.init_input();this.container=document.createElement('div');this.container.className='woof_husky_txt';this.input.insertAdjacentElement('afterend',this.container);this.fetch_timer=null;this.fetch_controller=null;document.addEventListener('click',ev=>{if(ev.target!==this.input){this._show(false);}});if(typeof woof_current_values['woof_text']!='undefined'){let txt=woof_current_values['woof_text'];txt=txt.replace(/&/,"%26");txt=txt.replace(/&/,"%26");woof_current_values['woof_text']=txt;}} 2init_input(){Object.keys(this.data).forEach((marker)=>{if(this.input.hasAttribute(`data-${marker}`)){this.data[marker]=this.input.getAttribute(`data-${marker}`);}});this.input.value=this.data.s;if(!this.input.classList.contains('woof_husky_txt-input')){this.input.classList.add('woof_husky_txt-input');} 3this.input.setAttribute('autocomplete','off');let _this=this;if(this.input.closest('div').querySelector('.woof_text_search_go')){this.input.closest('div').querySelector('.woof_text_search_go').addEventListener('click',function(e){e.stopPropagation();e.preventDefault();let search_text=_this.input.value;woof_current_values['woof_text']=search_text.replace(/&/,"%26");woof_ajax_page_num=1;woof_submit_link(woof_get_submit_link(),0);return false;});} 4if(this.input.closest('form[role=search]')){this.input.closest('form[role=search]').addEventListener('submit',function(e){e.stopPropagation();e.preventDefault();let search_text=_this.input.value;let min_symbols=(typeof _this.data.min_symbols)?_this.data.min_symbols:3;if(search_text.length>=min_symbols){woof_current_values['woof_text']=search_text.replace(/&/,"%26");woof_ajax_page_num=1;woof_submit_link(woof_get_submit_link(),0);} 5return false;});} 6this.input.addEventListener('keyup',function(e){e.stopPropagation();e.preventDefault();_this.searched_value=this.value;_this._search(1,e.key);return false;});this.input.addEventListener('focus',(e)=>{if(this._get_options_container()){this._get_options_container().style.display='block';}});} 7_search(current_page=1,ekey=null){let _this=this;let search_text=encodeURIComponent(this.searched_value);let min_symbols=(typeof this.data.min_symbols)?this.data.min_symbols:3;this._loader(false);if(this.fetch_timer){clearTimeout(this.fetch_timer);} 8if(search_text.length===0){this._cross(false);} 9if(search_text.length>=min_symbols){jQuery('.woof_text_search_go').show(222);}else{jQuery('.woof_text_search_go').hide();} 10woof_current_values['woof_text']=search_text;if(ekey==='Enter'){this._loader();woof_current_values['woof_text']=this.searched_value.replace(/&/,"%26");woof_ajax_page_num=1;woof_submit_link(woof_get_submit_link(),0);this._loader(false);return true;} 11if(!parseInt(this.input.dataset.autocomplete)){return false;} 12if(this.searched_value===search_text&¤t_page===this.current_page){} 13this.current_page=current_page;let delay_time=777;if(ekey==='Enter'||ekey==='Paged'){delay_time=1;} 14this.fetch_timer=setTimeout(()=>{let do_fetch=true;if(search_text.length<min_symbols){do_fetch=false;this._reset();} 15this._loader();if(do_fetch){let cur_tax=false;if(Object.keys(woof_really_curr_tax).length>0){cur_tax=woof_really_curr_tax.term_id+'-'+woof_really_curr_tax.taxonomy;} 16search_text=decodeURIComponent(this.searched_value);var nonce=jQuery('.woof_text_search_nonce').val();let request_data={action:'woof_text_search',value:search_text,link:woof_get_submit_link(),cur_tax:cur_tax,page:current_page-1,woof_text_search_nonce:nonce,...this.data};this._cross();if(this.fetch_controller){this.fetch_controller.abort();} 17this.fetch_controller=new AbortController();const signal=this.fetch_controller.signal;fetch(woof_husky_txt.ajax_url,{...{method:'POST',credentials:'same-origin',body:(function(data){const formData=new FormData();Object.keys(data).forEach(function(k){formData.append(k,data[k]);});return formData;})(request_data)},signal}).then(response=>response.json()).then(response=>{this._reset();this.searched_value=encodeURIComponent(search_text);this._loader(false);let answer=document.createElement('div');this.answer=answer;
17this.answer.className='woof_husky_txt-container';this.container.appendChild(answer);if(response.options.length>0){response.options.forEach(function(row){let option=document.createElement('div');option.className='woof_husky_txt-option';option.innerHTML=row;let title=option.querySelector('.woof_husky_txt-option-title');let title_link=title.querySelector('a');if(parseInt(_this.data.title_light)){let pattern=new RegExp('('+search_text+')','ig');title_link.innerHTML=title.innerText.replace(pattern,`<span class='woof_husky_txt-highlight'>$1</span>`);} 18answer.appendChild(option);});if(response.pagination.pages>1){this._draw_pagination(answer,response);}}else{let option=document.createElement('div');option.className='woof_husky_txt-option';let content_container=document.createElement('div');let title=document.createElement('div');title.className='woof_husky_txt-option-title';title.textContent=woof_husky_txt.not_found;content_container.appendChild(title);option.appendChild(content_container);answer.appendChild(option);} 19this._show();}).catch((err)=>{console.log(err);});}else{this._loader(false);}},delay_time);return true;} 20_show(is=true){if(is){let counter=1;let container=this._get_options_container();let timer=setInterval(()=>{let max_height=0;if(typeof this.data.max_open_height!=='undefined'){max_height=parseInt(this.data.max_open_height);}else{container.querySelectorAll('.woof_husky_txt-option').forEach(function(item){max_height+=item.offsetHeight;});} 21container.style.maxHeight=parseFloat(0.05*counter)*max_height+'px';if(parseInt(container.style.maxHeight)>=max_height){clearInterval(timer);if(typeof this.data.max_open_height!=='undefined'){container.style.maxHeight=max_height+'px';container.style.overflow='auto';}else{container.style.maxHeight='100vh';}} 22counter++;},10);}else{if(this._get_options_container()){let container=this._get_options_container();container.style.display='none';if(typeof container.style.overflow!=='undefined'){}}}} 23_loader(show=true){if(show){this.loader=document.createElement('div');this.loader.className='woof_husky_txt-loader';this.loader.style.width=this.loader.style.height=this.input.offsetHeight+'px';this.loader.style.top='-'+(this.input.offsetHeight-1)+'px';this.container.appendChild(this.loader);}else{if(this.loader){this.loader.remove();}}} 24_cross(show=true){if(!this.cross){this.cross=document.createElement('span');this.cross.className='woof_husky_txt-cross';this.cross.innerText='x';this.cross.style.width=this.cross.style.height=(this.input.offsetHeight/2)+'px';this.cross.style.top='-'+(this.input.offsetHeight/2)+'px';this.cross.style.right='-23px';this.container.appendChild(this.cross);let _this=this;this.cross.addEventListener('click',function(e){e.stopPropagation();_this.input.value='';_this._cross(false);if(_this.answer){_this.answer.remove();} 25if(_this.fetch_controller){_this.fetch_controller.abort();} 26if(_this.fetch_timer){clearTimeout(_this.fetch_timer);} 27return true;});} 28if(show){this.cross.style.display='inline';}else{this.cross.style.display='none';}} 29_reset(){if(this._get_options_container()){this._get_options_container().remove();}} 30_get_options_container(){return this.container.querySelector('.woof_husky_txt-container');} 31_draw_pagination(answer,response){let _this=this;let option=document.createElement('div');option.className='woof_husky_txt-option woof_husky_txt-option-pagination';let p_container=document.createElement('div');p_container.className='husky-pagination';option.appendChild(p_container);answer.appendChild(option);let a=null;for(let p=1;p<=response.pagination.pages;p++){if(response.pagination.pages>12){if(p===1||p===response.pagination.pages){this._draw_pagination_btn(response.pagination.page,p,p_container);continue;} 32if(p===response.pagination.page||p===response.pagination.page-1||p===response.pagination.page-2||p===response.pagination.page-3||p===response.pagination.page+1||p===response.pagination.page+2||p===response.pagination.page+3){this._draw_pagination_btn(response.pagination.page,p,p_container);} 33if(p===response.pagination.page-4||p===response.pagination.page+4){a=document.createElement('i');a.innerText=' ... ';p_container.appendChild(a);}}else{this._draw_pagination_btn(response.pagination.page,p,p_container);}} 34if(response.pagination.page>1){a=document.createElement('a');a.href='#';a.innerText=woof_husky_txt.prev;a.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();_this._search(response.pagination.page-1,'Paged');return false;});p_container.prepend(a);} 35if(response.pagination.page<response.pagination.pages){a=document.createElement('a');a.href='#';a.innerText=woof_husky_txt.next;a.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();_this._search(response.pagination.page+1,'Paged');return false;});p_container.appendChild(a);}} 36_draw_pagination_btn(page,p,p_container){let a=null;let _this=this;if(parseInt(page)===p){a=document.createElement('b');a.innerText=p;}else{a=document.createElement('a');a.href='#';a.innerText=a.dataset.page=p;a.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();_this._search(this.dataset.page,'Paged');return false;});} 37p_container.appendChild(a);}}
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.