function createNewEvent(eventName){let e=null;if(typeof Event==='function'){e=new Event(eventName)}else{e=document.createEvent('Event');e.initEvent(eventName,!0,!0)}
return e}
Vue.directive('debounce',{bind(el,bind){if(bind.value!==bind.oldValue){el.oninput=$.debounce(()=>{el.dispatchEvent(createNewEvent('change'))},parseInt(bind.value,10)||400)}},});Vue.component('site-search-result',{name:'SearchResult',template:'#vc-component-site-search-result',props:{searchTerm:{type:String,},},data(){return{searchResult:null,department:{label:'in All Departments',urlparam:'',name:'all'},searchProductOptions:{arrows:!1,slidesToShow:1.5,slidesToScroll:1,infinite:!1,mobileFirst:!0,responsive:[{breakpoint:ps.breakpoints.sm,settings:{slidesToShow:2.5,slidesToScroll:2,},},{breakpoint:ps.breakpoints.lg,settings:{slidesToShow:5,slidesToScroll:5,},},],},}},computed:{viewAllUrl(){if(!this.searchResult.query)return'/search';return `/search?q=${this.searchResult.query}`},},methods:{setResults(searchResult){this.searchResult=searchResult;this.$nextTick(function(){GlobalEventBus.$emit('search-results:show');$(document).on('click.results',this.hideOnOutsideClick)})},hideOnOutsideClick(event){const $target=$(event.target);if(!$target.closest('.j-site-header-search').length){GlobalEventBus.$emit('search:hide','');GlobalEventBus.$emit('search-results:hide',null)}},resetResults(){this.searchResult=null;$(document).off('click.results')},setDepartment(payload){this.department=payload},},mounted(){GlobalEventBus.$on('search:results',this.setResults);GlobalEventBus.$on('search:hide',this.resetResults);GlobalEventBus.$on('search:department',this.setDepartment)},beforeDestroy(){GlobalEventBus.$off('search-result:show',this.setResults);GlobalEventBus.$off('search:hide',this.resetResults);GlobalEventBus.$off('search:department',this.setDepartment);GlobalEventBus.$emit('search-results:hide');this.resetResults()},});Vue.component('site-search-button',{name:'SearchButton',template:'#vc-component-site-search-button',data(){return{active:!1,}},methods:{showSearch(){GlobalEventBus.$emit('search:show');this.active=!0},hideSearch(){this.active=!1},},});Vue.component('site-search-input',{template:'#vc-component-site-search-input',name:'SearchInput',props:{active:{type:Boolean,default:!1,},isDesktop:{type:Boolean,default:!0,},},data(){return{searchTerm:'',searchResult:null,department:{label:'in All Departments',urlparam:'',name:'all'},departments:[],}},computed:{suggestedTerm(){const self=this;if(typeof self.searchResult.completion!=='string')return'';return self.searchResult.completion.split('').map((char,index)=>(self.searchTerm.charAt(index)!==''?self.searchTerm.charAt(index):char)).join('')},},methods:{autofill(){this.searchTerm=this.searchResult.completion||this.searchTerm},doSearch(fromKeyPress=!0){if(this.searchTerm.length<2){return}
clearInterval(this.timer);this.timer=setTimeout(()=>{this.getSearchResult(this.searchTerm).done((response)=>{if(this.searchTerm!==response.query&&response.query!==''&&fromKeyPress){this.doSearch(!1);return}
GlobalEventBus.$emit('search:show',this.searchTerm);this.searchResult=response;if(response.emptyresult){const gaData={eventCategory:'Home Page',eventAction:'Search',eventLabel:'No Result',};$(document).trigger('psevent',['searchNoResults',gaData])}
GlobalEventBus.$emit('search:results',this.searchResult)})},300)},getSearchResult(searchTerm){return $.ajax({url:`/typeahead/${encodeURIComponent(searchTerm)}`,method:'GET',})},showSearch(){GlobalEventBus.$emit('search:show');this.active=!0},hideSearch(){GlobalEventBus.$emit('search:hide','');GlobalEventBus.$emit('search-results:hide',null);this.selectDepartment({label:'in All Departments',urlparam:'',name:'all',})},formatDepartments(obj){const newArr=[];for(let i=0;i<Object.keys(obj).length;i++){newArr.push({label:obj[Object.keys(obj)[i]].label,urlparam:obj[Object.keys(obj)[i]].urlparam,name:Object.keys(obj)[i],})}
return newArr},selectDepartment(value){this.department=value;GlobalEventBus.$emit('search:department',value);this.doSearch()},},mounted(){if(window.typeahead&&window.typeahead.departments){this.departments=this.formatDepartments(window.typeahead.departments)}
GlobalEventBus.$emit('search:department',this.department)},watch:{searchTerm(){GlobalEventBus.$emit('search:update',this.searchTerm)},},})