'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(!1)}});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}} init_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')} this.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!1})} if(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)} return!1})} this.input.addEventListener('keyup',function(e){e.stopPropagation();e.preventDefault();_this.searched_value=this.value;_this._search(1,e.key);return!1});this.input.addEventListener('focus',(e)=>{if(this._get_options_container()){this._get_options_container().style.display='block'}})} _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(!1);if(this.fetch_timer){clearTimeout(this.fetch_timer)} if(search_text.length===0){this._cross(!1)} if(search_text.length>=min_symbols){jQuery('.woof_text_search_go').show(222)}else{jQuery('.woof_text_search_go').hide()} woof_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(!1);return!0} if(!parseInt(this.input.dataset.autocomplete)){return!1} if(this.searched_value===search_text&¤t_page===this.current_page){} this.current_page=current_page;let delay_time=777;if(ekey==='Enter'||ekey==='Paged'){delay_time=1} this.fetch_timer=setTimeout(()=>{let do_fetch=!0;if(search_text.length0){cur_tax=woof_really_curr_tax.term_id+'-'+woof_really_curr_tax.taxonomy} search_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()} this.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(!1);let answer=document.createElement('div');this.answer=answer;this.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,`$1`)} answer.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)} this._show()}).catch((err)=>{console.log(err)})}else{this._loader(!1)}},delay_time);return!0} _show(is=!0){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})} container.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'}} counter++},10)}else{if(this._get_options_container()){let container=this._get_options_container();container.style.display='none';if(typeof container.style.overflow!=='undefined'){}}}} _loader(show=!0){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()}}} _cross(show=!0){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(!1);if(_this.answer){_this.answer.remove()} if(_this.fetch_controller){_this.fetch_controller.abort()} if(_this.fetch_timer){clearTimeout(_this.fetch_timer)} return!0})} if(show){this.cross.style.display='inline'}else{this.cross.style.display='none'}} _reset(){if(this._get_options_container()){this._get_options_container().remove()}} _get_options_container(){return this.container.querySelector('.woof_husky_txt-container')} _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} if(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)} if(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)}} if(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!1});p_container.prepend(a)} if(response.pagination.page