@searchstax-inc/searchstudio-ux-js 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _=Object.defineProperty;var z=(o,e,t)=>e in o?_(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var n=(o,e,t)=>(z(o,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var x=(o=>(o[o.mustache=0]="mustache",o[o.vue=1]="vue",o[o.react=2]="react",o[o.angular=3]="angular",o))(x||{});class J{constructor(e){n(this,"dataLayer");this.dataLayer=e}get currentPage(){var e;return(e=this.dataLayer.searchObject)==null?void 0:e.page}get totalResults(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.totalResultsValue)||0}get resultsPerPage(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.recordsPerPageValue)||0}get startResultIndex(){var e;return(((e=this.dataLayer.searchObject)==null?void 0:e.page)-1)*this.resultsPerPage+1}get endResultIndex(){var t;const e=(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)*this.resultsPerPage+(this.resultsPerPage??0);return e>this.totalResults?this.totalResults:e}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil(this.totalResults/this.resultsPerPage)}get results(){return this.dataLayer.searchResults??[]}get autoCorrectedQuery(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||""}get originalQuery(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.query)||""}get searchTerm(){var e,t;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||((t=this.dataLayer.searchObject)==null?void 0:t.query)||""}get searchExecuted(){var e,t,a;return((e=this.dataLayer.searchObject)==null?void 0:e.query)!==void 0&&((t=this.dataLayer.searchObject)==null?void 0:t.query)!=="undefined"&&((a=this.dataLayer.searchObject)==null?void 0:a.query)!==""}get selectedFacets(){var t;const e=this.dataLayer.searchFacetsCached??this.dataLayer.searchFacets;return e?(((t=this.dataLayer.searchObject)==null?void 0:t.facets)??[]).map(s=>{const i=s.name,c=s.value,l=e.find(h=>h.name===i);if(l){const h=l.values.find(u=>u.type==="range"?!1:u.type==="checkbox"?'"'+u.value+'"'===c:!1);if(h)return h}return null}).filter(s=>s!==null):[]}get relatedSearches(){const e=this.dataLayer.searchRelatedSearches??[];return e[e.length-1]&&(e[e.length-1].last=!0),e}get externalPromotions(){return this.dataLayer.searchExternalPromotions??[]}get data(){return{currentPage:this.currentPage,totalResults:this.totalResults,resultsPerPage:this.resultsPerPage,startResultIndex:this.startResultIndex,endResultIndex:this.endResultIndex,isFirstPage:this.isFirstPage,isLastPage:this.isLastPage,results:this.results,searchTerm:this.searchTerm!=="undefined"?this.searchTerm:"",autoCorrectedQuery:this.autoCorrectedQuery,originalQuery:this.originalQuery,selectedFacets:this.selectedFacets,searchExecuted:this.searchExecuted,relatedSearches:this.relatedSearches,hasRelatedSearches:this.relatedSearches.length>0,externalPromotions:this.externalPromotions,hasExternalPromotions:this.externalPromotions.length>0,hasResults:this.results.length>0,hasResultsOrExternalPromotions:this.results.length>0||this.externalPromotions.length>0}}get trackingData(){var e,t,a,r;return{searchTerm:this.dataLayer.searchTerm!=="undefined"?this.dataLayer.searchTerm:"",trackApiKey:((e=this.dataLayer.searchstaxConfig)==null?void 0:e.trackApiKey)??"",session:this.dataLayer.sessionId,language:this.dataLayer.language,recordsPerPage:((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.recordsPerPageValue)??0,totalResults:((a=this.dataLayer.searchResultsMetadata)==null?void 0:a.totalResultsValue)??0,currentPage:this.dataLayer.currentPage,latencyVal:((r=this.dataLayer.searchResultsMetadata)==null?void 0:r.latency)??0}}}class F{static deepEqual(e,t){const a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(const s of a){const i=e[s],c=t[s],l=this.isObject(i)&&this.isObject(c);if(l&&!this.deepEqual(i,c)||!l&&i!==c)return!1}return!0}static isObject(e){return e!=null&&typeof e=="object"}}class T{constructor(e){n(this,"value");n(this,"observers",[]);this.value=e,this.observers=[]}subscribe(e){this.observers.push(e),e(this.value)}unsubscribe(e){const t=this.observers.indexOf(e);t!==-1&&this.observers.splice(t,1)}setValue(e){this.value=e,this.notify()}getValue(){return this.value}notify(){this.observers.forEach(e=>e(this.value))}}class E{static removeXSSRiskyTags(e){var t="script|style|iframe|object|embed|form|input|button",a=new RegExp("</?("+t+")(\\s[^>]*)?>","gi");return e?e.replace(a,""):""}}class X{constructor(e){n(this,"$searchTermChange",new T(""));n(this,"$loadingChange",new T(!1));n(this,"$searchResults",new T(null));n(this,"$searchResultsMetadata",new T(null));n(this,"$searchAutosuggest",new T(null));n(this,"$searchFacets",new T(null));n(this,"$searchFacetsCached",new T(null));n(this,"$searchstaxConfig",new T(null));n(this,"$autosuggestResults",new T(null));n(this,"$searchObject",new T({query:"",page:99999999,order:"",facets:[],additionalProps:[]}));n(this,"$searchRelatedSearches",new T(null));n(this,"$searchInputConfig",new T(null));n(this,"$searchExternalPromotions",new T(null));n(this,"$facetsTemplateData",new T(null));n(this,"$selectedFacetsTemplateData",new T(null));n(this,"$paginationData",new T(null));n(this,"$language",new T("en"));n(this,"currentPageValue",1);n(this,"renderingEngineValue",x.mustache);n(this,"parsedData",new J(this));n(this,"sessionId");n(this,"autoCorrect",!0);n(this,"forceNotCorrect",!1);this.sessionId=e}setSearchTerm(e){this.$searchTermChange.setValue(E.removeXSSRiskyTags(e))}setRenderingEngine(e){this.renderingEngineValue=e}setCurrentPage(e){this.currentPageValue=e}setLoading(e){this.$loadingChange.setValue(e)}setSearchResults(e){F.deepEqual(e,this.searchResults??[])||this.$searchResults.setValue(e)}setSearchResultsMetadata(e){F.deepEqual(e,this.searchResultsMetadata??{})||this.$searchResultsMetadata.setValue(e)}setSearchAutosuggest(e){this.$searchAutosuggest.setValue(e)}setSearchObject(e){var a,r;let t=e;(r=(a=this.searchstaxConfig)==null?void 0:a.hooks)!=null&&r.beforeSearch&&t&&(t=this.searchstaxConfig.hooks.beforeSearch(t)),t&&(!F.deepEqual(t,this.searchObject??{})||this.forceNotCorrect)&&this.$searchObject.setValue(t)}setSearchFacets(e){F.deepEqual(e,this.searchFacets??[])||this.$searchFacets.setValue(e)}setSearchFacetsCached(e){F.deepEqual(e,this.searchFacetsCached??[])||this.$searchFacetsCached.setValue(e)}setSearchRelatedSearches(e){F.deepEqual(e,this.searchRelatedSearches??[])||this.$searchRelatedSearches.setValue(e)}setSearchExternalPromotions(e){F.deepEqual(e,this.searchExternalPromotions??[])||this.$searchExternalPromotions.setValue(e)}setLanguage(e){this.$language.setValue(e)}setSearchstaxConfig(e){this.$searchstaxConfig.setValue(e)}setSearchInputConfig(e){this.$searchInputConfig.setValue(e)}setAutosuggestResults(e){this.$autosuggestResults.setValue(e)}setFacetsTemplateData(e){this.$facetsTemplateData.setValue(e)}setSelectedFacetsTemplateData(e){this.$selectedFacetsTemplateData.setValue(e)}setPaginationData(e){this.$paginationData.setValue(e)}get searchstaxConfig(){return this.$searchstaxConfig.getValue()}get searchFacets(){return this.$searchFacets.getValue()?JSON.parse(JSON.stringify(this.$searchFacets.getValue())):null}get searchFacetsCached(){return this.$searchFacetsCached.getValue()?JSON.parse(JSON.stringify(this.$searchFacetsCached.getValue())):null}get searchResults(){return this.$searchResults.getValue()?JSON.parse(JSON.stringify(this.$searchResults.getValue())):null}get searchTerm(){return this.$searchTermChange.getValue()}get loading(){return this.$loadingChange.getValue()}get searchAutosuggest(){return this.$searchAutosuggest.getValue()}get searchResultsMetadata(){return this.$searchResultsMetadata.getValue()?JSON.parse(JSON.stringify(this.$searchResultsMetadata.getValue())):null}get currentPage(){return this.currentPageValue}get renderingEngine(){return this.renderingEngineValue}get searchObject(){return JSON.parse(JSON.stringify(this.$searchObject.getValue()))}get searchRelatedSearches(){return this.$searchRelatedSearches.getValue()?JSON.parse(JSON.stringify(this.$searchRelatedSearches.getValue())):null}get searchExternalPromotions(){return this.$searchExternalPromotions.getValue()?JSON.parse(JSON.stringify(this.$searchExternalPromotions.getValue())):null}get language(){return this.$language.getValue()}get searchInputConfig(){return this.$searchInputConfig.getValue()}get autosuggestResults(){return this.$autosuggestResults.getValue()}get facetsTemplateData(){return this.$facetsTemplateData.getValue()}get selectedFacetsTemplateData(){return this.$selectedFacetsTemplateData.getValue()}get paginationData(){return this.$paginationData.getValue()}}class D{static combineResultsWithMetadata(e){const t=[],a=parseInt(e.response.start+"")-1,r=parseInt(e.responseHeader.params.rows);return e.response.docs.forEach((s,i)=>{const c={custom:null,uniqueId:this.getValueByKey(e.responseHeader.params.uniqueId,s,e)??"",position:a*r+1+i,ribbon:this.doesMapExist("ribbon",e)?this.getValueByKey("ribbon",s,e):null,paths:this.doesMapExist("paths",e)?this.getValueByKey("paths",s,e):null,url:this.doesMapExist("url",e)?this.getValueByKey("url",s,e):null,title:this.doesMapExist("title",e)?this.getValueByKey("title",s,e):null,promoted:s["[elevated]"]?s["[elevated]"]:!1,thumbnail:this.doesMapExist("thumbnail",e)?this.getValueByKey("thumbnail",s,e):null,date:this.doesMapExist("date",e)?this.getValueByKey("date",s,e):null,snippet:this.doesMapExist("snippet",e)?this.getValueByKey("snippet",s,e):null,description:this.doesMapExist("description",e)?this.getValueByKey("description",s,e):null,unmappedFields:this.getUnmappedFields(s,e),allFields:this.getAllFields(s,e)};t.push(c)}),t}static extractFacets(e){const t=[];for(const a of e.metadata.facets){let r={values:[]};if(r.name=a.name,r.label=a.label,a.name in e.facet_counts.facet_fields){const s=e.facet_counts.facet_fields[a.name];for(let i=0;i<s.length;i+=2){const c={};c.value=s[i],c.parentName=r.name,c.count=s[i+1],c.type="checkbox",r.values.push(c)}}r.values.length>0&&t.push(r)}return t}static extractSearchResultsMetadata(e){var a,r,s,i;let t="";return t=((i=(s=(r=(a=e==null?void 0:e.spellcheck)==null?void 0:a.suggestions)==null?void 0:r[0])==null?void 0:s.suggestion)==null?void 0:i[0])??"",typeof t!="string"&&(t=(t==null?void 0:t.word)??""),{recordsPerPageValue:parseInt(e.responseHeader.params.rows),startDocVal:parseInt(e.response.start+""),totalResultsValue:parseInt(e.response.numFound+""),latency:parseInt(e.responseHeader.QTime+""),endDocValue:parseInt(e.responseHeader.params.rows)+parseInt(e.response.start+""),spellingSuggestion:t,autoCorrectedQuery:e.responseHeader.params.autoCorrectedQ??"",impressions:this.getImpressions(e)}}static getImpressions(e){const t=[],a=this.combineResultsWithMetadata(e);for(const r in a){const s=a[r],i={};i.cDocId=this.getDataForAnalytics(s.uniqueId),s.title&&(i.cDocTitle=this.getDataForAnalytics(s.title)),i.position=s.position,t.push(i)}return t}static getDataForAnalytics(e){return e!==null?typeof e>"u"?"":typeof e=="string"?e:typeof e.join<"u"?e[0]:e:""}static findResultByUniqueId(e,t){return t.find(a=>a.uniqueId===e)??null}static getUnmappedFields(e,t){const a=t.metadata.results.filter(s=>s.result_card==="").map(s=>s.name),r=[];for(const s of Object.keys(e))if(a.indexOf(s)!==-1){const i=Array.isArray(e[s])?e[s].join(", "):e[s];r.push({key:s,value:i,isImage:this.checkIfImage(e[s])})}return r}static checkIfImage(e){return e===void 0||typeof e!="string"?!1:/\.(gif|jpe?g|tiff?|png|webp|bmp)$/i.test(e)}static getAllFields(e,t){const a=t.metadata.results.map(s=>s.name),r=[];for(const s of Object.keys(e))a.indexOf(s)!==-1&&r.push({key:s,value:e[s],isImage:this.checkIfImage(e[s])});return r}static doesMapExist(e,t){return t.metadata.results.find(a=>a.result_card===e)!==void 0}static getValueByKey(e,t,a){const r=a.metadata.results.find(i=>i.result_card===e);if(r===void 0)return null;const s=t[r.name];return s===void 0?null:typeof s=="string"?s:Array.isArray(s)?s.join(", "):null}}class W{constructor(e){n(this,"routeName","searchstax");n(this,"ignoredKeys",[]);n(this,"queryStringHelper");n(this,"titleParser");e.routeName&&(this.routeName=e.routeName),e.ignoredKeys&&(this.ignoredKeys=e.ignoredKeys),e.title&&(this.titleParser=e.title),this.queryStringHelper=new G(this.routeName)}updateUrl(e){const t=this.searchObjectToUrl(e);let a=document.title;this.titleParser&&(a=this.titleParser(e)),document.title=a,window.location.href!==t&&window.history.pushState({},a,t)}searchObjectToUrl(e){return this.queryStringHelper.urlHasQueryParams(window.location.href)?window.location.href.split("?")[0]+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys}):window.location.href+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys})}searchObjectToParams(e){const t={};if(e.query&&(t[this.routeName+"[query]"]=encodeURIComponent(e.query)),e.page&&(t[this.routeName+"[page]"]=e.page+""),e.order&&(t[this.routeName+"[order]"]=e.order),e.facets)for(const a in e.facets){const r=e.facets[a].type+":"+encodeURIComponent(e.facets[a].name)+":"+encodeURIComponent(e.facets[a].value);t[this.routeName+`[facets][${a}]`]=r}if(this.queryStringHelper.urlHasQueryParams(window.location.href)){const a=this.queryStringHelper.urlToParams(window.location.href);for(const r in a)r.startsWith(this.routeName)&&delete a[r];return{...a,...t}}else return t}extractParamsThatDoNotStartWithRouteName(e){const t={};for(const a in e)a.startsWith(this.routeName)||(t[a]=e[a]);return t}extractArrayOfFacetsFromQueryParameters(e){var a,r,s;const t=[];for(const i in e)if(i.startsWith(this.routeName+"[facets]")){const c=E.removeXSSRiskyTags((a=e[i].split(":"))==null?void 0:a[0]),l=E.removeXSSRiskyTags(decodeURIComponent((r=e[i].split(":"))==null?void 0:r[1])),h=E.removeXSSRiskyTags(decodeURIComponent((s=e[i].split(":"))==null?void 0:s[2]));t.push({type:c,name:l,value:h})}return t}urlToSearchObject(e){const t=this.queryStringHelper.urlToParams(e);return{query:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[query]"]))||"",page:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[page]"]))?parseInt(t[this.routeName+"[page]"]):1,order:E.removeXSSRiskyTags(t[this.routeName+"[order]"])||"",facets:this.extractArrayOfFacetsFromQueryParameters(t)||[]}}}class G{constructor(e){n(this,"routeName","");n(this,"stringify",(e,t)=>{const a=this.filterOutIgnoredKeys(e,t.ignoredKeys);return Object.keys(a).map(r=>{const s=a[r];return Array.isArray(s)?s.map(i=>`${r}=${i}`).join("&"):`${r}=${s}`}).join("&")});this.routeName=e}filterOutIgnoredKeys(e,t){const a=t||[],r={};return Object.keys(e).forEach(s=>{a.includes(s)||e[s]!==""&&(r[s]=e[s])}),r}urlToParams(e){const t={},a=e.split("?")[1];return a&&a.split("&").forEach(r=>{const[s,i]=r.split("=");t[s]=i}),t}doesParamContainRouteName(e){return e.indexOf(this.routeName)!==-1}urlHasQueryParams(e){return e.indexOf("?")!==-1}}class Y{constructor(e,t){n(this,"cachedQuery","");n(this,"url","");n(this,"relatedSearches","");n(this,"suggester","");n(this,"authHeader");n(this,"authHeaderRelated");n(this,"trackApiKey","");n(this,"session","");n(this,"searchAuthType");n(this,"searchAuth","");n(this,"controllerSearch");n(this,"signalSearch");n(this,"controllerSuggest");n(this,"signalSuggest");n(this,"dataLayer");this.dataLayer=t,this.url=e.searchURL,this.dataLayer.setLanguage(e.language),this.suggester=e.suggesterURL,this.trackApiKey=e.trackApiKey,this.session=e.sessionId,this.searchAuthType=e.authType,this.searchAuth=e.searchAuth,this.authHeader=new Headers,this.authHeader.append("Accept","application/json");const a=this.searchAuthType==="token"?`Token ${e.searchAuth}`:`Basic ${e.searchAuth}`;this.authHeader.append("Authorization",a),this.authHeaderRelated=new Headers,this.authHeaderRelated.append("Accept","application/json"),this.authHeaderRelated.append("Authorization",e.searchAuth)}generateFacetQuery(e,t){let a=[];if(!t)e.forEach(function(r){const s=r.name+":"+r.value;a=a.concat("fq="+decodeURIComponent(s).replace(" "," "))});else{const r={};e.forEach(function(s){const i=s.name+":"+s.value,c=decodeURIComponent(i).replace(" "," ").split(":");r[c[0]]?r[c[0]].push(c[1]):r[c[0]]=[c[1]]});for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)){const i=r[s],c=s;let l="";for(const h of i)l+=` ${c}:${h}`;a=a.concat("fq="+l.trim())}}return a.length?"&"+a.join("&"):""}getRelatedSearches(e,t,a,r){const s=new Headers;s.append("Accept","application/json"),s.append("Authorization",a),fetch(t+"?search="+encodeURIComponent(e.query)+"&language="+this.dataLayer.language,{method:"GET",headers:s,credentials:"same-origin"}).then(i=>i.json()).then(i=>{r(i)})}cacheFacets(){this.dataLayer.searchObject.query!==this.cachedQuery&&(this.cachedQuery=this.dataLayer.searchObject.query,this.search({query:this.dataLayer.searchObject.query??"*",page:1,order:"",facets:[],additionalProps:this.dataLayer.searchObject.additionalProps},this.cacheFacetsCallback.bind(this)))}cacheFacetsCallback(e){let t=D.extractFacets(e);this.dataLayer.setSearchFacetsCached(t)}search(e,t,a=!1,r=!1){if(e.query&&e.query!=="undefined"){this.dataLayer.setSearchTerm(e.query),this.dataLayer.setLoading(!0),this.controllerSearch&&this.controllerSearch.abort(),this.controllerSearch=new AbortController,this.signalSearch=this.controllerSearch.signal;const s=new Proxy(new URLSearchParams(window.location.search),{get:(u,g)=>u.get(g)??""}),i=s.languageVariant?"&fq=_language:"+s.languageVariant:"",c=e.order?`&sort=${e.order}`:"",l=this.url+"?q="+encodeURIComponent(e.query.trim())+"&start="+(e.page-1)+this.toQueryString(e.additionalProps??[])+this.generateFacetQuery(e.facets.filter(u=>u.type==="or"||u.type==="showUnavailable"),!0)+this.generateFacetQuery(e.facets.filter(u=>u.type==="and"||u.type==="tabs"),!1)+c+`&spellcheck.correct=${this.dataLayer.autoCorrect&&!r}&language=`+this.dataLayer.language+i,h={method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSearch};a&&delete h.signal,fetch(l,h).then(u=>u.json()).then(u=>{this.dataLayer.setLoading(!1),t(u)}).catch(()=>{this.dataLayer.setLoading(!1)})}}suggest(e,t,a){this.controllerSuggest&&this.controllerSuggest.abort(),this.controllerSuggest=new AbortController,this.signalSuggest=this.controllerSuggest.signal;const r=this.suggester+"?q="+e.trim()+this.toQueryString(a)+"&language="+this.dataLayer.language;fetch(r,{method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSuggest}).then(s=>s.json()).then(s=>{t(s)}).catch(()=>()=>{})}fields(){return this.fields}toQueryString(e){if(e.length===0)return"";const t=[];for(const a of e)t.push(encodeURIComponent(a.key)+"="+encodeURIComponent(a.value));return"&"+t.join("&")}}class Z{static getOrSetCookie(e){let t=this.getCookie(e);return t==null&&(t=this.makeid(25),this.setCookie(e,t,{secure:!0,"max-age":3600})),t}static makeid(e){let t="";const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=a.length;for(let s=0;s<e;s++)t+=a.charAt(Math.floor(Math.random()*r));return t}static getCookie(e){const t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0}static setCookie(e,t,a){const r={path:"/",...a};a.expires instanceof Date&&(r.expires=a.expires.toUTCString());let s=encodeURIComponent(e)+"="+encodeURIComponent(t);for(const i in r){s+="; "+i;const c=r[i];c!==!0&&(s+="="+c)}document.cookie=s}}class H{static trackClick(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,cDocId:e.result.uniqueId,cDocTitle:e.result.title,position:e.result.position,language:e.language};setTimeout(()=>{this.msq.push(["trackClick",t])},0)}static trackSearch(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["track",t])},0)}static trackRelatedSearchClick(e){const t={session:e.session,key:e.trackApiKey,query:e.relatedSearch.search_term,position:e.relatedSearch.position,relatedSearch:e.relatedSearch.related_search,pageNo:e.currentPage,shownHits:e.recordsPerPage,totalHits:e.totalResults,language:e.language};setTimeout(()=>{this.msq.push(["trackRelatedSearchClick",t])},0)}static trackRelatedSearches(e){const t={session:e.session,key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,latency:e.latencyVal,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["trackRelatedSearch",t])},0)}}n(H,"msq",window._msq||[]);/*!
|
|
1
|
+
"use strict";var _=Object.defineProperty;var z=(o,e,t)=>e in o?_(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var n=(o,e,t)=>(z(o,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var x=(o=>(o[o.mustache=0]="mustache",o[o.vue=1]="vue",o[o.react=2]="react",o[o.angular=3]="angular",o))(x||{});class J{constructor(e){n(this,"dataLayer");this.dataLayer=e}get currentPage(){var e;return(e=this.dataLayer.searchObject)==null?void 0:e.page}get totalResults(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.totalResultsValue)||0}get resultsPerPage(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.recordsPerPageValue)||0}get startResultIndex(){var e;return(((e=this.dataLayer.searchObject)==null?void 0:e.page)-1)*this.resultsPerPage+1}get endResultIndex(){var t;const e=(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)*this.resultsPerPage+(this.resultsPerPage??0);return e>this.totalResults?this.totalResults:e}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil(this.totalResults/this.resultsPerPage)}get results(){return this.dataLayer.searchResults??[]}get autoCorrectedQuery(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||""}get originalQuery(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.query)||""}get searchTerm(){var e,t;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||((t=this.dataLayer.searchObject)==null?void 0:t.query)||""}get searchExecuted(){var e,t,a;return((e=this.dataLayer.searchObject)==null?void 0:e.query)!==void 0&&((t=this.dataLayer.searchObject)==null?void 0:t.query)!=="undefined"&&((a=this.dataLayer.searchObject)==null?void 0:a.query)!==""}get selectedFacets(){var t;const e=this.dataLayer.searchFacetsCached??this.dataLayer.searchFacets;return e?(((t=this.dataLayer.searchObject)==null?void 0:t.facets)??[]).map(s=>{const i=s.name,c=s.value,l=e.find(h=>h.name===i);if(l){const h=l.values.find(u=>u.type==="range"?!1:u.type==="checkbox"?'"'+u.value+'"'===c:!1);if(h)return h}return null}).filter(s=>s!==null):[]}get relatedSearches(){const e=this.dataLayer.searchRelatedSearches??[];return e[e.length-1]&&(e[e.length-1].last=!0),e}get externalPromotions(){return this.dataLayer.searchExternalPromotions??[]}get data(){return{currentPage:this.currentPage,totalResults:this.totalResults,resultsPerPage:this.resultsPerPage,startResultIndex:this.startResultIndex,endResultIndex:this.endResultIndex,isFirstPage:this.isFirstPage,isLastPage:this.isLastPage,results:this.results,searchTerm:this.searchTerm!=="undefined"?this.searchTerm:"",autoCorrectedQuery:this.autoCorrectedQuery,originalQuery:this.originalQuery,selectedFacets:this.selectedFacets,searchExecuted:this.searchExecuted,relatedSearches:this.relatedSearches,hasRelatedSearches:this.relatedSearches.length>0,externalPromotions:this.externalPromotions,hasExternalPromotions:this.externalPromotions.length>0,hasResults:this.results.length>0,hasResultsOrExternalPromotions:this.results.length>0||this.externalPromotions.length>0}}get trackingData(){var e,t,a,r;return{searchTerm:this.dataLayer.searchTerm!=="undefined"?this.dataLayer.searchTerm:"",trackApiKey:((e=this.dataLayer.searchstaxConfig)==null?void 0:e.trackApiKey)??"",session:this.dataLayer.sessionId,language:this.dataLayer.language,recordsPerPage:((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.recordsPerPageValue)??0,totalResults:((a=this.dataLayer.searchResultsMetadata)==null?void 0:a.totalResultsValue)??0,currentPage:this.dataLayer.currentPage,latencyVal:((r=this.dataLayer.searchResultsMetadata)==null?void 0:r.latency)??0}}}class F{static deepEqual(e,t){const a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(const s of a){const i=e[s],c=t[s],l=this.isObject(i)&&this.isObject(c);if(l&&!this.deepEqual(i,c)||!l&&i!==c)return!1}return!0}static isObject(e){return e!=null&&typeof e=="object"}}class T{constructor(e){n(this,"value");n(this,"observers",[]);this.value=e,this.observers=[]}subscribe(e){this.observers.push(e),e(this.value)}unsubscribe(e){const t=this.observers.indexOf(e);t!==-1&&this.observers.splice(t,1)}setValue(e){this.value=e,this.notify()}getValue(){return this.value}notify(){this.observers.forEach(e=>e(this.value))}}class E{static removeXSSRiskyTags(e){var t="script|style|iframe|object|embed|form|input|button",a=new RegExp("</?("+t+")(\\s[^>]*)?>","gi");return e?e.replace(a,""):""}}class X{constructor(e){n(this,"$searchTermChange",new T(""));n(this,"$loadingChange",new T(!1));n(this,"$searchResults",new T(null));n(this,"$searchResultsMetadata",new T(null));n(this,"$searchAutosuggest",new T(null));n(this,"$searchFacets",new T(null));n(this,"$searchFacetsCached",new T(null));n(this,"$searchstaxConfig",new T(null));n(this,"$autosuggestResults",new T(null));n(this,"$searchObject",new T({query:"",page:99999999,order:"",facets:[],additionalProps:[]}));n(this,"$searchRelatedSearches",new T(null));n(this,"$searchInputConfig",new T(null));n(this,"$searchExternalPromotions",new T(null));n(this,"$facetsTemplateData",new T(null));n(this,"$selectedFacetsTemplateData",new T(null));n(this,"$paginationData",new T(null));n(this,"$language",new T("en"));n(this,"currentPageValue",1);n(this,"renderingEngineValue",x.mustache);n(this,"parsedData",new J(this));n(this,"sessionId");n(this,"autoCorrect",!0);n(this,"forceNotCorrect",!1);this.sessionId=e}setSearchTerm(e){this.$searchTermChange.setValue(E.removeXSSRiskyTags(e))}setRenderingEngine(e){this.renderingEngineValue=e}setCurrentPage(e){this.currentPageValue=e}setLoading(e){this.$loadingChange.setValue(e)}setSearchResults(e){F.deepEqual(e,this.searchResults??[])||this.$searchResults.setValue(e)}setSearchResultsMetadata(e){F.deepEqual(e,this.searchResultsMetadata??{})||this.$searchResultsMetadata.setValue(e)}setSearchAutosuggest(e){this.$searchAutosuggest.setValue(e)}setSearchObject(e){var a,r;let t=e;(r=(a=this.searchstaxConfig)==null?void 0:a.hooks)!=null&&r.beforeSearch&&t&&(t=this.searchstaxConfig.hooks.beforeSearch(t)),t&&(!F.deepEqual(t,this.searchObject??{})||this.forceNotCorrect)&&this.$searchObject.setValue(t)}setSearchFacets(e){F.deepEqual(e,this.searchFacets??[])||this.$searchFacets.setValue(e)}setSearchFacetsCached(e){F.deepEqual(e,this.searchFacetsCached??[])||this.$searchFacetsCached.setValue(e)}setSearchRelatedSearches(e){F.deepEqual(e,this.searchRelatedSearches??[])||this.$searchRelatedSearches.setValue(e)}setSearchExternalPromotions(e){F.deepEqual(e,this.searchExternalPromotions??[])||this.$searchExternalPromotions.setValue(e)}setLanguage(e){this.$language.setValue(e)}setSearchstaxConfig(e){this.$searchstaxConfig.setValue(e)}setSearchInputConfig(e){this.$searchInputConfig.setValue(e)}setAutosuggestResults(e){this.$autosuggestResults.setValue(e)}setFacetsTemplateData(e){this.$facetsTemplateData.setValue(e)}setSelectedFacetsTemplateData(e){this.$selectedFacetsTemplateData.setValue(e)}setPaginationData(e){this.$paginationData.setValue(e)}get searchstaxConfig(){return this.$searchstaxConfig.getValue()}get searchFacets(){return this.$searchFacets.getValue()?JSON.parse(JSON.stringify(this.$searchFacets.getValue())):null}get searchFacetsCached(){return this.$searchFacetsCached.getValue()?JSON.parse(JSON.stringify(this.$searchFacetsCached.getValue())):null}get searchResults(){return this.$searchResults.getValue()?JSON.parse(JSON.stringify(this.$searchResults.getValue())):null}get searchTerm(){return this.$searchTermChange.getValue()}get loading(){return this.$loadingChange.getValue()}get searchAutosuggest(){return this.$searchAutosuggest.getValue()}get searchResultsMetadata(){return this.$searchResultsMetadata.getValue()?JSON.parse(JSON.stringify(this.$searchResultsMetadata.getValue())):null}get currentPage(){return this.currentPageValue}get renderingEngine(){return this.renderingEngineValue}get searchObject(){return JSON.parse(JSON.stringify(this.$searchObject.getValue()))}get searchRelatedSearches(){return this.$searchRelatedSearches.getValue()?JSON.parse(JSON.stringify(this.$searchRelatedSearches.getValue())):null}get searchExternalPromotions(){return this.$searchExternalPromotions.getValue()?JSON.parse(JSON.stringify(this.$searchExternalPromotions.getValue())):null}get language(){return this.$language.getValue()}get searchInputConfig(){return this.$searchInputConfig.getValue()}get autosuggestResults(){return this.$autosuggestResults.getValue()}get facetsTemplateData(){return this.$facetsTemplateData.getValue()}get selectedFacetsTemplateData(){return this.$selectedFacetsTemplateData.getValue()}get paginationData(){return this.$paginationData.getValue()}}class D{static combineResultsWithMetadata(e){const t=[],a=parseInt(e.response.start+"")-1,r=parseInt(e.responseHeader.params.rows);return e.response.docs.forEach((s,i)=>{const c={custom:null,uniqueId:this.getValueByKey(e.responseHeader.params.uniqueId,s,e)??"",position:a*r+1+i,ribbon:this.doesMapExist("ribbon",e)?this.getValueByKey("ribbon",s,e):null,paths:this.doesMapExist("paths",e)?this.getValueByKey("paths",s,e):null,url:this.doesMapExist("url",e)?this.getValueByKey("url",s,e):null,title:this.doesMapExist("title",e)?this.getValueByKey("title",s,e):null,promoted:s["[elevated]"]?s["[elevated]"]:!1,thumbnail:this.doesMapExist("thumbnail",e)?this.getValueByKey("thumbnail",s,e):null,date:this.doesMapExist("date",e)?this.getValueByKey("date",s,e):null,snippet:this.doesMapExist("snippet",e)?this.getValueByKey("snippet",s,e):null,description:this.doesMapExist("description",e)?this.getValueByKey("description",s,e):null,unmappedFields:this.getUnmappedFields(s,e),allFields:this.getAllFields(s,e)};t.push(c)}),t}static extractFacets(e){const t=[];for(const a of e.metadata.facets){let r={values:[]};if(r.name=a.name,r.label=a.label,a.name in e.facet_counts.facet_fields){const s=e.facet_counts.facet_fields[a.name];for(let i=0;i<s.length;i+=2){const c={};c.value=s[i],c.parentName=r.name,c.count=s[i+1],c.type="checkbox",r.values.push(c)}}r.values.length>0&&t.push(r)}return t}static extractSearchResultsMetadata(e){var a,r,s,i;let t="";return t=((i=(s=(r=(a=e==null?void 0:e.spellcheck)==null?void 0:a.suggestions)==null?void 0:r[0])==null?void 0:s.suggestion)==null?void 0:i[0])??"",typeof t!="string"&&(t=(t==null?void 0:t.word)??""),{recordsPerPageValue:parseInt(e.responseHeader.params.rows),startDocVal:parseInt(e.response.start+""),totalResultsValue:parseInt(e.response.numFound+""),latency:parseInt(e.responseHeader.QTime+""),endDocValue:parseInt(e.responseHeader.params.rows)+parseInt(e.response.start+""),spellingSuggestion:t,autoCorrectedQuery:e.responseHeader.params.autoCorrectedQ??"",impressions:this.getImpressions(e)}}static getImpressions(e){const t=[],a=this.combineResultsWithMetadata(e);for(const r in a){const s=a[r],i={};i.cDocId=this.getDataForAnalytics(s.uniqueId),s.title&&(i.cDocTitle=this.getDataForAnalytics(s.title)),i.position=s.position,t.push(i)}return t}static getDataForAnalytics(e){return e!==null?typeof e>"u"?"":typeof e=="string"?e:typeof e.join<"u"?e[0]:e:""}static findResultByUniqueId(e,t){return t.find(a=>a.uniqueId===e)??null}static getUnmappedFields(e,t){const a=t.metadata.results.filter(s=>s.result_card==="").map(s=>s.name),r=[];for(const s of Object.keys(e))if(a.indexOf(s)!==-1){const i=Array.isArray(e[s])?e[s].join(", "):e[s];r.push({key:s,value:i,isImage:this.checkIfImage(e[s])})}return r}static checkIfImage(e){return e===void 0||typeof e!="string"?!1:/\.(gif|jpe?g|tiff?|png|webp|bmp)$/i.test(e)}static getAllFields(e,t){const a=t.metadata.results.map(s=>s.name),r=[];for(const s of Object.keys(e))a.indexOf(s)!==-1&&r.push({key:s,value:e[s],isImage:this.checkIfImage(e[s])});return r}static doesMapExist(e,t){return t.metadata.results.find(a=>a.result_card===e)!==void 0}static getValueByKey(e,t,a){const r=a.metadata.results.find(i=>i.result_card===e);if(r===void 0)return null;const s=t[r.name];return s===void 0?null:typeof s=="string"?s:Array.isArray(s)?s.join(", "):null}}class W{constructor(e){n(this,"routeName","searchstax");n(this,"ignoredKeys",[]);n(this,"queryStringHelper");n(this,"titleParser");e.routeName&&(this.routeName=e.routeName),e.ignoredKeys&&(this.ignoredKeys=e.ignoredKeys),e.title&&(this.titleParser=e.title),this.queryStringHelper=new G(this.routeName)}updateUrl(e){const t=this.searchObjectToUrl(e);let a=document.title;this.titleParser&&(a=this.titleParser(e)),document.title=a,window.location.href!==t&&window.history.pushState({},a,t)}searchObjectToUrl(e){return this.queryStringHelper.urlHasQueryParams(window.location.href)?window.location.href.split("?")[0]+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys}):window.location.href+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys})}searchObjectToParams(e){const t={};if(e.query&&(t[this.routeName+"[query]"]=encodeURIComponent(e.query)),e.page&&(t[this.routeName+"[page]"]=e.page+""),e.order&&(t[this.routeName+"[order]"]=e.order),e.facets)for(const a in e.facets){const r=e.facets[a].type+":"+encodeURIComponent(e.facets[a].name)+":"+encodeURIComponent(e.facets[a].value);t[this.routeName+`[facets][${a}]`]=r}if(this.queryStringHelper.urlHasQueryParams(window.location.href)){const a=this.queryStringHelper.urlToParams(window.location.href);for(const r in a)r.startsWith(this.routeName)&&delete a[r];return{...a,...t}}else return t}extractParamsThatDoNotStartWithRouteName(e){const t={};for(const a in e)a.startsWith(this.routeName)||(t[a]=e[a]);return t}extractArrayOfFacetsFromQueryParameters(e){var a,r,s;const t=[];for(const i in e)if(i.startsWith(this.routeName+"[facets]")){const c=E.removeXSSRiskyTags((a=e[i].split(":"))==null?void 0:a[0]),l=E.removeXSSRiskyTags(decodeURIComponent((r=e[i].split(":"))==null?void 0:r[1])),h=E.removeXSSRiskyTags(decodeURIComponent((s=e[i].split(":"))==null?void 0:s[2]));t.push({type:c,name:l,value:h})}return t}urlToSearchObject(e){const t=this.queryStringHelper.urlToParams(e);return{query:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[query]"]))||"",page:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[page]"]))?parseInt(t[this.routeName+"[page]"]):1,order:E.removeXSSRiskyTags(t[this.routeName+"[order]"])||"",facets:this.extractArrayOfFacetsFromQueryParameters(t)||[]}}}class G{constructor(e){n(this,"routeName","");n(this,"stringify",(e,t)=>{const a=this.filterOutIgnoredKeys(e,t.ignoredKeys);return Object.keys(a).map(r=>{const s=a[r];return Array.isArray(s)?s.map(i=>`${r}=${i}`).join("&"):`${r}=${s}`}).join("&")});this.routeName=e}filterOutIgnoredKeys(e,t){const a=t||[],r={};return Object.keys(e).forEach(s=>{a.includes(s)||e[s]!==""&&(r[s]=e[s])}),r}urlToParams(e){const t={},a=e.split("?")[1];return a&&a.split("&").forEach(r=>{const[s,i]=r.split("=");t[s]=i}),t}doesParamContainRouteName(e){return e.indexOf(this.routeName)!==-1}urlHasQueryParams(e){return e.indexOf("?")!==-1}}class Y{constructor(e,t){n(this,"cachedQuery","");n(this,"url","");n(this,"relatedSearches","");n(this,"suggester","");n(this,"authHeader");n(this,"authHeaderRelated");n(this,"trackApiKey","");n(this,"session","");n(this,"searchAuthType");n(this,"searchAuth","");n(this,"controllerSearch");n(this,"signalSearch");n(this,"controllerSuggest");n(this,"signalSuggest");n(this,"dataLayer");this.dataLayer=t,this.url=e.searchURL,this.dataLayer.setLanguage(e.language),this.suggester=e.suggesterURL,this.trackApiKey=e.trackApiKey,this.session=e.sessionId,this.searchAuthType=e.authType,this.searchAuth=e.searchAuth,this.authHeader=new Headers,this.authHeader.append("Accept","application/json");const a=this.searchAuthType==="token"?`Token ${e.searchAuth}`:`Basic ${e.searchAuth}`;this.authHeader.append("Authorization",a),this.authHeaderRelated=new Headers,this.authHeaderRelated.append("Accept","application/json"),this.authHeaderRelated.append("Authorization",e.searchAuth)}generateFacetQuery(e,t){let a=[];if(!t)e.forEach(function(r){const s=r.name+':"'+r.value+'"';a=a.concat("fq="+decodeURIComponent(s).replace(" "," "))});else{const r={};e.forEach(function(s){const i=s.name+":"+s.value,c=decodeURIComponent(i).replace(" "," ").split(":");r[c[0]]?r[c[0]].push(c[1]):r[c[0]]=[c[1]]});for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)){const i=r[s],c=s;let l="";for(const h of i)l+=` ${c}:"${h}"`;a=a.concat("fq="+l.trim())}}return a.length?"&"+a.join("&"):""}getRelatedSearches(e,t,a,r){const s=new Headers;s.append("Accept","application/json"),s.append("Authorization",a),fetch(t+"?search="+encodeURIComponent(e.query)+"&language="+this.dataLayer.language,{method:"GET",headers:s,credentials:"same-origin"}).then(i=>i.json()).then(i=>{r(i)})}cacheFacets(){this.dataLayer.searchObject.query!==this.cachedQuery&&(this.cachedQuery=this.dataLayer.searchObject.query,this.search({query:this.dataLayer.searchObject.query??"*",page:1,order:"",facets:[],additionalProps:this.dataLayer.searchObject.additionalProps},this.cacheFacetsCallback.bind(this)))}cacheFacetsCallback(e){let t=D.extractFacets(e);this.dataLayer.setSearchFacetsCached(t)}search(e,t,a=!1,r=!1){if(e.query&&e.query!=="undefined"){this.dataLayer.setSearchTerm(e.query),this.dataLayer.setLoading(!0),this.controllerSearch&&this.controllerSearch.abort(),this.controllerSearch=new AbortController,this.signalSearch=this.controllerSearch.signal;const s=new Proxy(new URLSearchParams(window.location.search),{get:(u,g)=>u.get(g)??""}),i=s.languageVariant?"&fq=_language:"+s.languageVariant:"",c=e.order?`&sort=${e.order}`:"",l=this.url+"?q="+encodeURIComponent(e.query.trim())+"&start="+(e.page-1)+this.toQueryString(e.additionalProps??[])+this.generateFacetQuery(e.facets.filter(u=>u.type==="or"||u.type==="showUnavailable"),!0)+this.generateFacetQuery(e.facets.filter(u=>u.type==="and"||u.type==="tabs"),!1)+c+`&spellcheck.correct=${this.dataLayer.autoCorrect&&!r}&language=`+this.dataLayer.language+i,h={method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSearch};a&&delete h.signal,fetch(l,h).then(u=>u.json()).then(u=>{this.dataLayer.setLoading(!1),t(u)}).catch(()=>{this.dataLayer.setLoading(!1)})}}suggest(e,t,a){this.controllerSuggest&&this.controllerSuggest.abort(),this.controllerSuggest=new AbortController,this.signalSuggest=this.controllerSuggest.signal;const r=this.suggester+"?q="+e.trim()+this.toQueryString(a)+"&language="+this.dataLayer.language;fetch(r,{method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSuggest}).then(s=>s.json()).then(s=>{t(s)}).catch(()=>()=>{})}fields(){return this.fields}toQueryString(e){if(e.length===0)return"";const t=[];for(const a of e)t.push(encodeURIComponent(a.key)+"="+encodeURIComponent(a.value));return"&"+t.join("&")}}class Z{static getOrSetCookie(e){let t=this.getCookie(e);return t==null&&(t=this.makeid(25),this.setCookie(e,t,{secure:!0,"max-age":3600})),t}static makeid(e){let t="";const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=a.length;for(let s=0;s<e;s++)t+=a.charAt(Math.floor(Math.random()*r));return t}static getCookie(e){const t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0}static setCookie(e,t,a){const r={path:"/",...a};a.expires instanceof Date&&(r.expires=a.expires.toUTCString());let s=encodeURIComponent(e)+"="+encodeURIComponent(t);for(const i in r){s+="; "+i;const c=r[i];c!==!0&&(s+="="+c)}document.cookie=s}}class H{static trackClick(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,cDocId:e.result.uniqueId,cDocTitle:e.result.title,position:e.result.position,language:e.language};setTimeout(()=>{this.msq.push(["trackClick",t])},0)}static trackSearch(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["track",t])},0)}static trackRelatedSearchClick(e){const t={session:e.session,key:e.trackApiKey,query:e.relatedSearch.search_term,position:e.relatedSearch.position,relatedSearch:e.relatedSearch.related_search,pageNo:e.currentPage,shownHits:e.recordsPerPage,totalHits:e.totalResults,language:e.language};setTimeout(()=>{this.msq.push(["trackRelatedSearchClick",t])},0)}static trackRelatedSearches(e){const t={session:e.session,key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,latency:e.latencyVal,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["trackRelatedSearch",t])},0)}}n(H,"msq",window._msq||[]);/*!
|
|
2
2
|
* mustache.js - Logic-less {{mustache}} templates with JavaScript
|
|
3
3
|
* http://github.com/janl/mustache.js
|
|
4
4
|
*/var ee=Object.prototype.toString,A=Array.isArray||function(e){return ee.call(e)==="[object Array]"};function U(o){return typeof o=="function"}function te(o){return A(o)?"array":typeof o}function N(o){return o.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Q(o,e){return o!=null&&typeof o=="object"&&e in o}function ae(o,e){return o!=null&&typeof o!="object"&&o.hasOwnProperty&&o.hasOwnProperty(e)}var se=RegExp.prototype.test;function re(o,e){return se.call(o,e)}var ie=/\S/;function ne(o){return!re(ie,o)}var ce={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function le(o){return String(o).replace(/[&<>"'`=\/]/g,function(t){return ce[t]})}var oe=/\s*/,he=/\s+/,K=/\s*=/,ue=/\s*\}/,de=/#|\^|\/|>|\{|&|=|!/;function ge(o,e){if(!o)return[];var t=!1,a=[],r=[],s=[],i=!1,c=!1,l="",h=0;function u(){if(i&&!c)for(;s.length;)delete r[s.pop()];else s=[];i=!1,c=!1}var g,p,y;function L(P){if(typeof P=="string"&&(P=P.split(he,2)),!A(P)||P.length!==2)throw new Error("Invalid tags: "+P);g=new RegExp(N(P[0])+"\\s*"),p=new RegExp("\\s*"+N(P[1])),y=new RegExp("\\s*"+N("}"+P[1]))}L(e||m.tags);for(var f=new V(o),C,v,S,R,I,b;!f.eos();){if(C=f.pos,S=f.scanUntil(g),S)for(var w=0,B=S.length;w<B;++w)R=S.charAt(w),ne(R)?(s.push(r.length),l+=R):(c=!0,t=!0,l+=" "),r.push(["text",R,C,C+1]),C+=1,R===`
|
|
@@ -219,4 +219,4 @@
|
|
|
219
219
|
</div>
|
|
220
220
|
{{/hasResultsOrExternalPromotions}}
|
|
221
221
|
{{/searchExecuted}}
|
|
222
|
-
`,selectId:"searchstax-search-order-select"}};class d{}n(d,"externalPromotions",me),n(d,"facets",ye),n(d,"pagination",Ce),n(d,"relatedSearches",ve),n(d,"searchFeedback",Se),n(d,"searchInput",Le),n(d,"searchResults",be),n(d,"sorting",Te);class xe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"externalPromotionsContainerId");n(this,"searchExternalPromotionsMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.externalPromotionsContainerId=((a=(t=this.config.templates)==null?void 0:t.mainTemplate)==null?void 0:a.externalPromotionsContainerId)||d.externalPromotions.mainTemplate.externalPromotionsContainerId,this.searchExternalPromotionsMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions}}addExternalSearch(e){var a,r,s,i;const t=document.getElementById(this.externalPromotionsContainerId);if(t){const c=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.externalPromotion)==null?void 0:s.template)||((i=d.externalPromotions.externalPromotion)==null?void 0:i.template),l=document.createElement("div");l.classList.add("searchstax-external-promotion"),l.addEventListener("click",h=>{this.trackClick(e,h)}),l.innerHTML=m.render(c,e),t.appendChild(l)}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window.open(e.url,"_blank")}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplate)==null?void 0:s.template)||((i=d.externalPromotions.mainTemplate)==null?void 0:i.template);if(this.dataLayer.renderingEngine===x.mustache){this.searchExternalPromotionsMainContainer.innerHTML=m.render(t,e);const c=document.getElementById(this.externalPromotionsContainerId);c&&(c.innerHTML="");for(const l of e.externalPromotions)this.addExternalSearch(l)}}}class ke{constructor(e,t){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"routerHelper");n(this,"cachedPhrase","");n(this,"isCached",!1);n(this,"overlayOpened",!1);n(this,"facetPaginationStep");n(this,"facetPaginationStepMobile");n(this,"searchFacetsMainContainer",null);n(this,"searchFacetsMobileContainer",null);n(this,"searchFacetsDesktopContainer",null);n(this,"facetLimits",{});n(this,"facetLimitsMobile",{});n(this,"deactivatedFacets",{});n(this,"cachedData",null);n(this,"cacheFacets");n(this,"onFacetSelect",(e,t,a,r)=>{if(e.stopPropagation(),!t.disabled){const s=a.querySelector("input");s.checked=r?s.checked:!s.checked;const i=this.dataLayer.searchObject;let c=[...i.facets];const l=this.extractFacetValue(t);s.checked?c.find(u=>F.deepEqual(u,l)?u:!1)||(this.config.facetingType==="tabs"&&(c=c.filter(u=>u.name!==l.name)),c.push(l)):c=c.filter(h=>!F.deepEqual(h,l)),setTimeout(()=>{this.dataLayer.setSearchObject({...i,facets:c,page:1}),this.config.facetingType==="tabs"&&this.renderMainTemplate(this.generateTemplateData(),!0),this.generateTemplateData()},0)}});this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.cacheFacets=t,this.facetPaginationStep=this.config.itemsPerPageDesktop,this.facetPaginationStepMobile=this.config.itemsPerPageMobile,this.searchFacetsMainContainer=document.getElementById(this.containerId),this.needCache&&t(),this.initializeSubscriptions()}get needCache(){return this.config.facetingType==="showUnavailable"||this.config.facetingType==="or"||this.config.facetingType==="tabs"}get needDisabling(){return this.config.facetingType==="showUnavailable"}initializeSubscriptions(){this.needCache&&this.dataLayer.$searchFacetsCached.subscribe(e=>{e&&this.dataLayer.searchFacets&&this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$searchResults.subscribe(e=>{e&&(this.needCache&&!this.isCached&&(this.dataLayer.searchFacets&&!this.dataLayer.searchFacetsCached&&this.dataLayer.setSearchFacetsCached(this.dataLayer.searchFacets),this.cacheFacets()),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query?(this.cachedPhrase=e.query,this.isCached=!1):this.isCached=!0})}extractFacetValue(e){return{type:this.config.facetingType,name:e.parentName,value:e.value}}applyFacetLimits(e,t){const a=t?this.facetPaginationStepMobile:this.facetPaginationStep,r=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(s=>{r[s.name]||(r[s.name]=a)}),e.map(s=>({...s,values:s.values.slice(0,r[s.name]),showingAllFacets:s.values.length<=r[s.name],hasMoreFacets:s.values.length>a}))}generateTemplateData(e){if(this.generateSelectedFacetsData(),this.dataLayer.searchFacets){let t=this.dataLayer.searchFacets;this.needCache&&this.dataLayer.searchFacetsCached&&(t=this.dataLayer.searchFacetsCached,this.needDisabling&&(t=t.map(r=>{var i;const s=(i=this.dataLayer.searchFacets)==null?void 0:i.find(c=>c.name===r.name);if(s){const c={...r,values:r.values.map(l=>{const h=s.values.find(u=>l.type==="range"?!1:l.type==="checkbox"?u.value===l.value:!1);return{...l,disabled:!h,isMobile:e}})};return this.dataLayer.setFacetsTemplateData(c),c}else{const c={...r,values:r.values.map(l=>({...l,disabled:!0})),isMobile:e};return this.dataLayer.setFacetsTemplateData(c),c}}))),this.config.specificFacets&&(t=t.filter(r=>{var s;return(s=this.config.specificFacets)==null?void 0:s.includes(r.name)}));const a={facets:this.applyFacetLimits(t,e),...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(a),a}else{const t={facets:[],...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(t),t}}createFacetItem(e,t,a){var l,h,u,g,p,y,L,f,C,v,S,R;const r=document.createElement("div");r.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||r.classList.add("active");const s=((u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:u.template)||((g=d.facets.facetItemContainerTemplate)==null?void 0:g.template);r.innerHTML=m.render(s,e),t.appendChild(r);const i=r.querySelector("."+(((L=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:L.facetListTitleContainerClass)||((f=d.facets.facetItemContainerTemplate)==null?void 0:f.facetListTitleContainerClass)));i==null||i.addEventListener("click",()=>{r.classList.toggle("active")});const c=r.querySelector("."+(((S=(v=(C=this.config)==null?void 0:C.templates)==null?void 0:v.facetItemContainerTemplate)==null?void 0:S.facetListContainerClass)||((R=d.facets.facetItemContainerTemplate)==null?void 0:R.facetListContainerClass)));c&&(e.values.forEach(I=>{this.createFacetListItem(I,c)}),e.hasMoreFacets&&this.createHasMoreComponent(e,c,a))}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>F.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t){var c,l,h,u,g,p,y,L,f,C,v,S,R;const a=document.createElement("div");a.classList.add("searchstax-facet-value-container"),e.disabled&&a.classList.add("searchstax-facet-value-disabled");const r=this.isChecked(e),s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.facetItemTemplate)==null?void 0:h.template)||((u=d.facets.facetItemTemplate)==null?void 0:u.template);a.innerHTML=m.render(s,{...e,isChecked:r});let i=(g=d.facets.facetItemTemplate)==null?void 0:g.checkTriggerClasses;i=((L=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemTemplate)==null?void 0:L.checkTriggerClasses)||i,i.forEach(I=>{var b;(b=a.querySelector("."+I))==null||b.addEventListener("click",w=>{this.onFacetSelect(w,e,a)})}),(R=a.querySelector("."+(((v=(C=(f=this.config)==null?void 0:f.templates)==null?void 0:C.facetItemTemplate)==null?void 0:v.inputCheckboxClass)||((S=d.facets.facetItemTemplate)==null?void 0:S.inputCheckboxClass))))==null||R.addEventListener("click",I=>{this.onFacetSelect(I,e,a,!0)}),t.appendChild(a)}createHasMoreComponent(e,t,a){var c,l,h,u,g,p,y,L;const r=document.createElement("div");r.classList.add("searchstax-facet-show-more-container");const s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.showMoreButtonContainerTemplate)==null?void 0:h.template)||((u=d.facets.showMoreButtonContainerTemplate)==null?void 0:u.template);r.innerHTML=m.render(s,e);const i=r.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)||((L=d.facets.showMoreButtonContainerTemplate)==null?void 0:L.showMoreButtonClass)));i&&(this.attachOnclickToShowMore(e,i,a),t&&t.appendChild(i))}attachOnclickToShowMore(e,t,a){t.addEventListener("click",r=>{this.onShowMoreLessClick(r,e,a)})}onShowMoreLessClick(e,t,a){e.preventDefault();const r=a?this.facetPaginationStepMobile:this.facetPaginationStep,s=a?this.facetLimits:this.facetLimitsMobile;s[t.name]===void 0?s[t.name]=r*2:s[t.name]<=t.values.length?s[t.name]=s[t.name]+r:s[t.name]=r,this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,r,s,i,c,l,h,u,g,p,y;if(e&&(!F.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const L=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplateDesktop)==null?void 0:s.template)||((i=d.facets.mainTemplateDesktop)==null?void 0:i.template);if(this.dataLayer.renderingEngine===x.mustache&&this.searchFacetsMainContainer){this.searchFacetsMainContainer.innerHTML=m.render(L,{...e});const f=(u=this.searchFacetsMainContainer)==null?void 0:u.querySelector("."+(((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||d.facets.mainTemplateDesktop.facetsContainerClass));if(f){f.innerHTML="";for(const C of e.facets)this.createFacetItem(C,f);if(this.searchFacetsMainContainer){const C=this.searchFacetsMainContainer.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||d.facets.mainTemplateDesktop.selectedFacetsContainerClass));C&&(this.createSelectedFacetsComponents(C),this.createClearFacetsComponents(C))}}}this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const r=decodeURIComponent(a.name),s=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const i=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,c=i==null?void 0:i.find(l=>l.name===r);if(c){const l=c.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${s}"`:!1);l&&e.push(l)}}}this.dataLayer.setSelectedFacetsTemplateData(e)}createSelectedFacetsComponents(e){var t;this.generateSelectedFacetsData(),(t=this.dataLayer.selectedFacetsTemplateData)==null||t.forEach(a=>{this.createSelectedFacetsComponent(e,a)})}createClearFacetsComponents(e){var i,c,l,h,u,g,p,y;const t=this.dataLayer.searchObject,a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.clearFacetsTemplate)==null?void 0:l.template)||((h=d.facets.clearFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=m.render(a,{shouldShow:t.facets.length>0});const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.clearFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.clearFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.removeSelectedFacets()}),e.appendChild(s))}createSelectedFacetsComponent(e,t){var i,c,l,h,u,g,p,y;const a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:l.template)||((h=d.facets.selectedFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=m.render(a,t);const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.selectedFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.selectedFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.unselectFacet(t)}),e.appendChild(s))}unselectFacet(e){console.log("data",e);const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(r=>JSON.stringify(r)!==JSON.stringify(this.extractFacetValue(e)))),setTimeout(()=>{this.dataLayer.setSearchObject({...t,facets:a}),this.generateSelectedFacetsData()},0)}removeSelectedFacets(){const e=this.dataLayer.searchObject;this.dataLayer.setSearchObject({...e,facets:[]})}createFilterByComponent(e){var s,i,c,l,h,u,g,p;const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.filterByTemplate)==null?void 0:c.template)||((l=d.facets.filterByTemplate)==null?void 0:l.template),a=document.createElement("div");a.innerHTML=m.render(t,{});const r=a.querySelector("."+(((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.filterByTemplate)==null?void 0:g.containerClass)||((p=d.facets.filterByTemplate)==null?void 0:p.containerClass)));r&&(e.prepend(r),r.addEventListener("click",this.openOverlay.bind(this)))}openOverlay(){var e;this.overlayOpened=!0,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;this.overlayOpened=!1,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.remove("searchstax-show"))}renderMobileTemplate(e){var t,a,r,s,i,c,l,h,u,g,p,y,L,f,C,v,S,R,I;if(e){const b=document.createElement("div");b.classList.add("searchstax-facets-container-mobile");const w=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:r.template)||((s=d.facets.mainTemplateMobile)==null?void 0:s.template);if(this.dataLayer.renderingEngine===x.mustache){if(b.innerHTML=m.render(w,{...e,overlayOpened:this.overlayOpened}),(i=this.searchFacetsMainContainer)==null||i.appendChild(b),(l=(c=this.config)==null?void 0:c.templates)!=null&&l.mainTemplateMobile)for(const q of((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.mainTemplateMobile)==null?void 0:g.closeOverlayTriggerClasses)||[]){const O=b.querySelector("."+q);O&&O.addEventListener("click",this.closeOverlay.bind(this))}else for(const q of d.facets.mainTemplateMobile.closeOverlayTriggerClasses){const O=b.querySelector("."+q);O&&O.addEventListener("click",this.closeOverlay.bind(this))}const B=b.querySelector("."+(((L=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:L.filterByContainerClass)||d.facets.mainTemplateMobile.filterByContainerClass));B&&this.createFilterByComponent(B);const P=b.querySelector("."+(((v=(C=(f=this.config)==null?void 0:f.templates)==null?void 0:C.mainTemplateMobile)==null?void 0:v.selectedFacetsContainerClass)||d.facets.mainTemplateMobile.selectedFacetsContainerClass));P&&(this.createSelectedFacetsComponents(P),this.createClearFacetsComponents(P));const j=b.querySelector("."+(((I=(R=(S=this.config)==null?void 0:S.templates)==null?void 0:R.mainTemplateMobile)==null?void 0:I.facetsContainerClass)||d.facets.mainTemplateMobile.facetsContainerClass));if(j){j.innerHTML="";for(const q of e.facets)this.createFacetItem(q,j,!0)}}}}}class Re{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"previousButtonClass");n(this,"nextButtonClass");n(this,"routerHelper");n(this,"searchPaginationMainContainer",null);var t,a,r,s,i,c;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.previousButtonClass)??d.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.nextButtonClass)??d.pagination.mainTemplate.nextButtonClass,this.searchPaginationMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e,t;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil((((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.totalResultsValue)??0)/10)}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a;const e={...this.dataLayer.parsedData.data,previousPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((a=this.dataLayer.searchObject)==null?void 0:a.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e){const t=this.dataLayer.searchObject;t&&(t.page=e,this.dataLayer.setSearchObject(t)),window.scrollTo(0,0)}nextPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1)}previousPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isFirstPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)}overridePaginationEvents(){if(this.searchPaginationMainContainer){const e=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass),t=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass);e&&e.addEventListener("click",this.previousPage.bind(this)),t&&t.addEventListener("click",this.nextPage.bind(this))}}renderMainTemplate(e){var a,r,s,i,c,l;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(r=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||r.removeEventListener("click",this.nextPage));const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.template)||((l=d.pagination.mainTemplate)==null?void 0:l.template);this.dataLayer.renderingEngine===x.mustache&&(this.searchPaginationMainContainer.innerHTML=m.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Ie{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"relatedSearchesContainerClass");n(this,"searchRelatedSearchesMainContainer",null);n(this,"track");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.relatedSearchesContainerClass=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.relatedSearchesContainerClass)||d.relatedSearches.main.relatedSearchesContainerClass,this.searchRelatedSearchesMainContainer=document.getElementById(this.containerId),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}addRelatedSearchComponent(e,t){var s,i,c,l,h;const a=document.createElement("div"),r=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.relatedSearch)==null?void 0:c.template)||d.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===x.mustache){a.innerHTML=m.render(r,e);const u=a.querySelector("."+(((h=(l=this.config.templates)==null?void 0:l.relatedSearch)==null?void 0:h.relatedSearchContainerClass)||d.relatedSearches.relatedSearch.relatedSearchContainerClass));u&&(t.appendChild(u),u.addEventListener("click",()=>{this.executeSearch(e)}))}}executeSearch(e){const t=this.dataLayer.searchObject;t.query=e.related_search,this.dataLayer.setSearchObject(t),this.track(e)}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.relatedSearches.main.template;if(this.dataLayer.renderingEngine===x.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=m.render(t,e);const c=(i=this.searchRelatedSearchesMainContainer)==null?void 0:i.querySelector(`.${this.relatedSearchesContainerClass}`);if(c)for(const l of e.relatedSearches)this.addRelatedSearchComponent(l,c)}}}class Pe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"searchFeedbackMainContainer",null);n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,this.searchFeedbackMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}onOriginalQueryClick(e){var a;e.stopPropagation(),e.preventDefault();const t=(a=e.target)==null?void 0:a.innerHTML;this.searchTrigger(t,!0)}attachClick(){var t,a,r,s,i;const e=(i=this.searchFeedbackMainContainer)==null?void 0:i.querySelector("."+(((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:r.originalQueryClass)||((s=d.searchFeedback.main)==null?void 0:s.originalQueryClass)));console.log("originalQuery",e),e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.searchFeedback.main.template;console.log("render"),this.dataLayer.renderingEngine===x.mustache&&(this.searchFeedbackMainContainer.innerHTML=m.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class Fe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"suggestAfterMinChars");n(this,"containerId");n(this,"currentInputValue","");n(this,"autosuggestResults");n(this,"searchInput");n(this,"actionButton");n(this,"autosuggestContainer");n(this,"buttonState","search");n(this,"selectedAutosuggestItem",-1);n(this,"suggestTrigger");n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.searchTrigger=e.searchTrigger,this.suggestTrigger=e.suggestTrigger,this.containerId=e.containerId,this.suggestAfterMinChars=e.config.suggestAfterMinChars,this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())}renderMainTemplate(){var s,i,c,l;const e=document.getElementById(this.containerId);if(!e)throw new Error("Search input container not found");const t=((i=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||d.searchInput.mainTemplate.template;if(this.dataLayer.renderingEngine===x.mustache){const h=m.render(t,{});e.innerHTML=h}const a=((l=(c=this.config.templates)==null?void 0:c.mainTemplate)==null?void 0:l.searchInputId)||d.searchInput.mainTemplate.searchInputId,r=document.querySelector(`#${a}`);if(r)this.searchInput=r,r.addEventListener("keyup",this.inputKeyupEvent.bind(this)),r.addEventListener("blur",this.hideAutosuggest.bind(this)),r.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===x.mustache&&(this.autosuggestContainer=document.createElement("div"),this.autosuggestContainer.classList.add("searchstax-autosuggest-container"),this.autosuggestContainer.addEventListener("mouseleave",()=>{this.resetAutosuggestSelection(),this.markActiveAutosuggestItem()}),(e=this.searchInput)==null||e.after(this.autosuggestContainer))}actionButtonInit(){this.actionButton=document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.buttonState==="search"?this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??""):this.buttonState==="close"&&this.searchInput&&(this.searchInput.value="",this.executeSearch(""))})}attachSubscriptions(){this.dataLayer.$searchTermChange.subscribe(()=>{this.handleSearchTermChange()}),this.dataLayer.$loadingChange.subscribe(()=>{this.handleLoadingChange()}),this.dataLayer.$searchAutosuggest.subscribe(e=>{e&&this.appendSuggestions(e)}),this.dataLayer.$searchObject.subscribe(e=>{e.query!=="undefined"&&e.query!==void 0&&e.query!=="*"&&this.searchInput&&(this.searchInput.value=this.cleanSuggestionTerm(e.query??""))})}handleLoadingChange(){this.dataLayer.loading?this.updateActionButtonState("loading"):this.handleSearchTermChange()}handleSearchTermChange(){var e;this.dataLayer.searchTerm===((e=this.searchInput)==null?void 0:e.value)&&this.searchInput.value!==""?this.updateActionButtonState("close"):this.updateActionButtonState("search")}updateActionButtonState(e){if(this.buttonState=e,this.actionButton)switch(this.actionButton.classList.remove("searchstax-spinner-icon"),this.actionButton.classList.remove("searchstax-search-close"),this.actionButton.classList.remove("searchstax-search-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon");break;case"close":this.actionButton.classList.add("searchstax-search-close");break}}selectPreviousAutosuggestItem(){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){const e=document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?a.classList.add("active"):a.classList.remove("active")}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest():t==="ArrowUp"?this.selectPreviousAutosuggestItem():t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){e.target&&e.target.value.length>=this.suggestAfterMinChars?this.executeSuggest(e.target.value):this.hideAutosuggest()}inputPasteEvent(e){setTimeout(()=>{this.autosuggestHandling(e),this.handleSearchTermChange()},0)}executeSuggest(e){this.suggestTrigger(e)}executeSearch(e){this.hideAutosuggest(),this.searchTrigger(e===""?"*":e)}suggestionChosen(){this.selectedAutosuggestItem>-1?this.autosuggestItemClicked(this.autosuggestResults.suggestions[this.selectedAutosuggestItem]):this.executeSearch(this.currentInputValue)}hideAutosuggest(){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection()},100)}cleanSuggestionTerm(e){return E.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var r,s,i;const t=document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((s=(r=this.config.templates)==null?void 0:r.autosuggestItemTemplate)==null?void 0:s.template)||((i=d.searchInput.autosuggestItemTemplate)==null?void 0:i.template);return t.innerHTML=m.render(a,e),t}onSuggestionEnter(e){var t;this.selectedAutosuggestItem=((t=this.autosuggestResults)==null?void 0:t.suggestions.indexOf(e))||0,this.markActiveAutosuggestItem()}appendSuggestions(e){this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.remove("hidden"));for(const t in e.suggest)if(Object.prototype.hasOwnProperty.call(e.suggest,t)){const a=e.suggest[t];for(const r in a)if(Object.prototype.hasOwnProperty.call(a,r)){const s=a[r];this.autosuggestResults=s,this.dataLayer.setAutosuggestResults(s),s.numFound>0?s.suggestions.forEach(i=>{this.autosuggestContainer&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(i))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class Ee{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"linkClickCallback");n(this,"searchCallback");n(this,"containerId");n(this,"searchResultsMainContainer");n(this,"searchResultsContainer");n(this,"searchResultLinks",[]);this.linkClickCallback=e.linkClickCallback,this.searchCallback=e.searchTrigger,this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId;const t=document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,r,s,i,c;const e=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.noSearchResultTemplate)==null?void 0:s.template)||((i=d.searchResults.noSearchResultTemplate)==null?void 0:i.template),t=((c=this.dataLayer.searchResultsMetadata)==null?void 0:c.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===x.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=m.render(e,{spellingSuggestion:t,searchTerm:this.dataLayer.searchTerm})),t&&this.searchResultsContainer){const l=this.searchResultsContainer.querySelector("a");l&&l.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,r,s;if(this.dataLayer.renderingEngine===x.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)this.renderNoResultsTemplate();else{const i=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:r.template)||((s=d.searchResults.searchResultTemplate)==null?void 0:s.template),c=e.map(l=>m.render(i,l));this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{})})}get uniqueIdAttribute(){var e,t,a,r;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((r=d.searchResults.searchResultTemplate)==null?void 0:r.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)})})}renderMainTemplate(){var t,a,r,s;const e=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.template)||((s=d.searchResults.mainTemplate)==null?void 0:s.template);this.dataLayer.renderingEngine===x.mustache&&(this.searchResultsMainContainer.innerHTML=m.render(e,{}),setTimeout(()=>{var l,h,u,g,p,y,L;const i=(u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.mainTemplate)!=null&&u.searchResultsContainerId?(y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplate)==null?void 0:y.searchResultsContainerId:(L=d.searchResults.mainTemplate)==null?void 0:L.searchResultsContainerId,c=document.getElementById(i);if(c)this.searchResultsContainer=c;else throw new Error(`Search Results Container with id ${i} not found`)},0))}}class we{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"selectId");n(this,"searchSortingMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.selectId=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.selectId)||d.sorting.main.selectId,this.searchSortingMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document.getElementById(this.selectId);if(e){const t=e.querySelector(`option[value="${decodeURIComponent(this.dataLayer.searchObject.order)}"]`);t&&(t.selected=!0)}}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.sorting.main.template;if(this.dataLayer.renderingEngine===x.mustache){this.searchSortingMainContainer.innerHTML=m.render(t,e),this.markOptionSelected();const i=document.getElementById(this.selectId);i&&i.addEventListener("change",c=>{this.setOrderQuery(c.target.value)})}}}class Me{constructor(e=x.mustache){n(this,"routerEnabled",!1);n(this,"cachedQuery","");n(this,"routerHelper");n(this,"searchHelper");n(this,"searchResultsConfig");n(this,"searchPaginationConfig");n(this,"searchFeedbackConfig");n(this,"searchSortingConfig");n(this,"searchFacetsConfig");n(this,"relatedSearchesConfig");n(this,"externalPromotionsConfig");n(this,"searchInputWidget");n(this,"searchResultsWidget");n(this,"searchFacetsWidget");n(this,"searchPaginationWidget");n(this,"searchFeedbackWidget");n(this,"searchSortingWidget");n(this,"relatedSearchesWidget");n(this,"externalPromotionsWidget");n(this,"dataLayer",new X(Z.getOrSetCookie("searchstax_session_id")));n(this,"firstRequest",!0);e&&this.dataLayer.setRenderingEngine(e),this.handleHooks()}setRenderingEngine(e=x.mustache){this.dataLayer.setRenderingEngine(e)}handleHooks(){var e,t;(t=(e=this.dataLayer.searchstaxConfig)==null?void 0:e.hooks)!=null&&t.afterSearch&&this.dataLayer.$searchResults.subscribe(a=>{this.dataLayer.searchstaxConfig.hooks.afterSearch(a)}),this.dataLayer.$searchObject.subscribe(a=>{a.query!==""&&this.search(a)}),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&H.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}initialize(e){var t,a;e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new Y({...e,sessionId:this.dataLayer.sessionId},this.dataLayer)),((t=e.router)==null?void 0:t.enabled)===void 0||((a=e.router)==null?void 0:a.enabled)===!0?(this.routerEnabled=!0,this.routerHelper=new W(e.router?e.router:{enabled:!0}),this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href)),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href))})):this.routerHelper=new W({})}search(e){if(this.searchHelper&&e.query!==""&&e.query!==void 0&&e.query!=="undefined"){const t=this.dataLayer.forceNotCorrect;this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1,this.getRelatedSearches()}}getRelatedSearches(){this.searchHelper&&this.relatedSearchesConfig&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var s;const a=(((s=e.response)==null?void 0:s.docs)??[]).map((i,c)=>({...i,position:c+1})),r=[];for(const i of a)r.push({relatedSearch:i.related_search,position:i.position});this.dataLayer.searchResultsMetadata&&H.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:r}),this.dataLayer.setSearchRelatedSearches(a)}handleRouter(){this.routerEnabled&&this.routerHelper.updateUrl(this.dataLayer.searchObject)}parseSearchResultsResponse(e){var s,i;this.handleRouter();let t=D.combineResultsWithMetadata(e),a=D.extractFacets(e);this.dataLayer.setSearchFacets(a),(i=(s=this.dataLayer.searchstaxConfig)==null?void 0:s.hooks)!=null&&i.afterSearch&&(t=this.dataLayer.searchstaxConfig.hooks.afterSearch(t)),this.dataLayer.setSearchExternalPromotions(e.externalLinks??[]);const r=D.extractSearchResultsMetadata(e);this.dataLayer.setSearchResultsMetadata(r),this.dataLayer.setSearchResults(t)}cacheFacets(){var e;(e=this.searchHelper)==null||e.cacheFacets()}parseSuggestSuggestResponse(e){var a,r;let t=e;(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.afterAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.afterAutosuggest(e)),this.dataLayer.setSearchAutosuggest(t)}suggest(e,t){this.searchHelper&&this.searchHelper.suggest(e,this.parseSuggestSuggestResponse.bind(this),t)}changeLanguage(e){this.searchHelper&&this.dataLayer.setLanguage(e)}addSearchInputWidget(e,t){this.dataLayer.searchInputConfig||(this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Fe({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer}))}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new Ee({containerId:e,linkClickCallback:this.executeLinkClick.bind(this),searchTrigger:this.executeSearch.bind(this),config:t,dataLayer:this.dataLayer}))}addPaginationWidget(e,t){this.searchPaginationConfig=t,this.searchPaginationWidget=new Re({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig||(this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Pe({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)}))}addSearchSortingWidget(e,t){this.searchSortingConfig||(this.searchSortingConfig=t,this.searchSortingWidget=new we({containerId:e,config:t,dataLayer:this.dataLayer}))}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig||(this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Ie({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0))}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig||(this.externalPromotionsConfig=t,this.externalPromotionsWidget=new xe({containerId:e,config:t,dataLayer:this.dataLayer}))}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new ke({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){var s,i;const a={...this.dataLayer.searchObject};a.query=E.removeXSSRiskyTags(e),a.page=1,a.facets=[],this.dataLayer.forceNotCorrect=!!t;let r=(s=this.routerHelper)==null?void 0:s.searchObjectToParams(a);r&&(r=(i=this.routerHelper)==null?void 0:i.extractParamsThatDoNotStartWithRouteName(r)),r&&(a.additionalProps=Object.keys(r).map(c=>r?{key:c,value:r[c]}:{key:"",value:""})),this.dataLayer.setSearchObject(a)}executeSuggest(e){var a,r;let t={term:e,queryParams:[]};(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.beforeAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.beforeAutosuggest(t)),t&&t.term!==void 0&&t.queryParams!==void 0&&this.suggest(t.term,t.queryParams)}trackRelatedSearchClick(e){this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&H.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e})}executeLinkClick(e){var a,r;let t=D.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((r=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&r.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&(H.trackClick({result:t,...this.dataLayer.parsedData.trackingData}),setTimeout(()=>{window.location.href=(t==null?void 0:t.url)??""},0)))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}changeResultTemplate(e){var t,a,r;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(r=this.searchResultsWidget)==null||r.changeTemplate())}}exports.Searchstax=Me;
|
|
222
|
+
`,selectId:"searchstax-search-order-select"}};class d{}n(d,"externalPromotions",me),n(d,"facets",ye),n(d,"pagination",Ce),n(d,"relatedSearches",ve),n(d,"searchFeedback",Se),n(d,"searchInput",Le),n(d,"searchResults",be),n(d,"sorting",Te);class xe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"externalPromotionsContainerId");n(this,"searchExternalPromotionsMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.externalPromotionsContainerId=((a=(t=this.config.templates)==null?void 0:t.mainTemplate)==null?void 0:a.externalPromotionsContainerId)||d.externalPromotions.mainTemplate.externalPromotionsContainerId,this.searchExternalPromotionsMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions}}addExternalSearch(e){var a,r,s,i;const t=document.getElementById(this.externalPromotionsContainerId);if(t){const c=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.externalPromotion)==null?void 0:s.template)||((i=d.externalPromotions.externalPromotion)==null?void 0:i.template),l=document.createElement("div");l.classList.add("searchstax-external-promotion"),l.addEventListener("click",h=>{this.trackClick(e,h)}),l.innerHTML=m.render(c,e),t.appendChild(l)}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window.open(e.url,"_blank")}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplate)==null?void 0:s.template)||((i=d.externalPromotions.mainTemplate)==null?void 0:i.template);if(this.dataLayer.renderingEngine===x.mustache){this.searchExternalPromotionsMainContainer.innerHTML=m.render(t,e);const c=document.getElementById(this.externalPromotionsContainerId);c&&(c.innerHTML="");for(const l of e.externalPromotions)this.addExternalSearch(l)}}}class ke{constructor(e,t){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"routerHelper");n(this,"cachedPhrase","");n(this,"isCached",!1);n(this,"overlayOpened",!1);n(this,"facetPaginationStep");n(this,"facetPaginationStepMobile");n(this,"searchFacetsMainContainer",null);n(this,"searchFacetsMobileContainer",null);n(this,"searchFacetsDesktopContainer",null);n(this,"facetLimits",{});n(this,"facetLimitsMobile",{});n(this,"deactivatedFacets",{});n(this,"cachedData",null);n(this,"cacheFacets");n(this,"onFacetSelect",(e,t,a,r)=>{if(e.stopPropagation(),!t.disabled){const s=a.querySelector("input");s.checked=r?s.checked:!s.checked;const i=this.dataLayer.searchObject;let c=[...i.facets];const l=this.extractFacetValue(t);s.checked?c.find(u=>F.deepEqual(u,l)?u:!1)||(this.config.facetingType==="tabs"&&(c=c.filter(u=>u.name!==l.name)),c.push(l)):c=c.filter(h=>!F.deepEqual(h,l)),setTimeout(()=>{this.dataLayer.setSearchObject({...i,facets:c,page:1}),this.config.facetingType==="tabs"&&this.renderMainTemplate(this.generateTemplateData(),!0)},0)}});this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.cacheFacets=t,this.facetPaginationStep=this.config.itemsPerPageDesktop,this.facetPaginationStepMobile=this.config.itemsPerPageMobile,this.searchFacetsMainContainer=document.getElementById(this.containerId),this.needCache&&t(),this.initializeSubscriptions()}get needCache(){return this.config.facetingType==="showUnavailable"||this.config.facetingType==="or"||this.config.facetingType==="tabs"}get needDisabling(){return this.config.facetingType==="showUnavailable"}initializeSubscriptions(){this.needCache&&this.dataLayer.$searchFacetsCached.subscribe(e=>{e&&this.dataLayer.searchFacets&&this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$searchResults.subscribe(e=>{e&&(this.needCache&&!this.isCached&&(this.dataLayer.searchFacets&&!this.dataLayer.searchFacetsCached&&this.dataLayer.setSearchFacetsCached(this.dataLayer.searchFacets),this.cacheFacets()),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query?(this.cachedPhrase=e.query,this.isCached=!1):this.isCached=!0})}extractFacetValue(e){return{type:this.config.facetingType,name:e.parentName,value:e.value}}applyFacetLimits(e,t){const a=t?this.facetPaginationStepMobile:this.facetPaginationStep,r=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(s=>{r[s.name]||(r[s.name]=a)}),e.map(s=>({...s,values:s.values.slice(0,r[s.name]),showingAllFacets:s.values.length<=r[s.name],hasMoreFacets:s.values.length>a}))}generateTemplateData(e){if(this.generateSelectedFacetsData(),this.dataLayer.searchFacets){let t=this.dataLayer.searchFacets;this.needCache&&this.dataLayer.searchFacetsCached&&(t=this.dataLayer.searchFacetsCached,this.needDisabling&&(t=t.map(r=>{var i;const s=(i=this.dataLayer.searchFacets)==null?void 0:i.find(c=>c.name===r.name);return s?{...r,values:r.values.map(l=>{const h=s.values.find(u=>l.type==="range"?!1:l.type==="checkbox"?u.value===l.value:!1);return{...l,disabled:!h,isMobile:e}})}:{...r,values:r.values.map(l=>({...l,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(r=>{var s;return(s=this.config.specificFacets)==null?void 0:s.includes(r.name)}));const a={facets:this.applyFacetLimits(t,e),...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(a),a}else{const t={facets:[],...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(t),t}}createFacetItem(e,t,a){var l,h,u,g,p,y,L,f,C,v,S,R;const r=document.createElement("div");r.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||r.classList.add("active");const s=((u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:u.template)||((g=d.facets.facetItemContainerTemplate)==null?void 0:g.template);r.innerHTML=m.render(s,e),t.appendChild(r);const i=r.querySelector("."+(((L=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:L.facetListTitleContainerClass)||((f=d.facets.facetItemContainerTemplate)==null?void 0:f.facetListTitleContainerClass)));i==null||i.addEventListener("click",()=>{r.classList.toggle("active")});const c=r.querySelector("."+(((S=(v=(C=this.config)==null?void 0:C.templates)==null?void 0:v.facetItemContainerTemplate)==null?void 0:S.facetListContainerClass)||((R=d.facets.facetItemContainerTemplate)==null?void 0:R.facetListContainerClass)));c&&(e.values.forEach(I=>{this.createFacetListItem(I,c)}),e.hasMoreFacets&&this.createHasMoreComponent(e,c,a))}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>F.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t){var c,l,h,u,g,p,y,L,f,C,v,S,R;const a=document.createElement("div");a.classList.add("searchstax-facet-value-container"),e.disabled&&a.classList.add("searchstax-facet-value-disabled");const r=this.isChecked(e),s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.facetItemTemplate)==null?void 0:h.template)||((u=d.facets.facetItemTemplate)==null?void 0:u.template);a.innerHTML=m.render(s,{...e,isChecked:r});let i=(g=d.facets.facetItemTemplate)==null?void 0:g.checkTriggerClasses;i=((L=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemTemplate)==null?void 0:L.checkTriggerClasses)||i,i.forEach(I=>{var b;(b=a.querySelector("."+I))==null||b.addEventListener("click",w=>{this.onFacetSelect(w,e,a)})}),(R=a.querySelector("."+(((v=(C=(f=this.config)==null?void 0:f.templates)==null?void 0:C.facetItemTemplate)==null?void 0:v.inputCheckboxClass)||((S=d.facets.facetItemTemplate)==null?void 0:S.inputCheckboxClass))))==null||R.addEventListener("click",I=>{this.onFacetSelect(I,e,a,!0)}),t.appendChild(a)}createHasMoreComponent(e,t,a){var c,l,h,u,g,p,y,L;const r=document.createElement("div");r.classList.add("searchstax-facet-show-more-container");const s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.showMoreButtonContainerTemplate)==null?void 0:h.template)||((u=d.facets.showMoreButtonContainerTemplate)==null?void 0:u.template);r.innerHTML=m.render(s,e);const i=r.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)||((L=d.facets.showMoreButtonContainerTemplate)==null?void 0:L.showMoreButtonClass)));i&&(this.attachOnclickToShowMore(e,i,a),t&&t.appendChild(i))}attachOnclickToShowMore(e,t,a){t.addEventListener("click",r=>{this.onShowMoreLessClick(r,e,a)})}onShowMoreLessClick(e,t,a){e.preventDefault();const r=a?this.facetPaginationStepMobile:this.facetPaginationStep,s=a?this.facetLimits:this.facetLimitsMobile;s[t.name]===void 0?s[t.name]=r*2:s[t.name]<=t.values.length?s[t.name]=s[t.name]+r:s[t.name]=r,this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,r,s,i,c,l,h,u,g,p,y;if(e&&(!F.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const L=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplateDesktop)==null?void 0:s.template)||((i=d.facets.mainTemplateDesktop)==null?void 0:i.template);if(this.dataLayer.renderingEngine===x.mustache&&this.searchFacetsMainContainer){this.searchFacetsMainContainer.innerHTML=m.render(L,{...e});const f=(u=this.searchFacetsMainContainer)==null?void 0:u.querySelector("."+(((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||d.facets.mainTemplateDesktop.facetsContainerClass));if(f){f.innerHTML="";for(const C of e.facets)this.createFacetItem(C,f);if(this.searchFacetsMainContainer){const C=this.searchFacetsMainContainer.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||d.facets.mainTemplateDesktop.selectedFacetsContainerClass));C&&(this.createSelectedFacetsComponents(C),this.createClearFacetsComponents(C))}}}this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const r=decodeURIComponent(a.name),s=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const i=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,c=i==null?void 0:i.find(l=>l.name===r);if(c){const l=c.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${s}"`:!1);l&&e.push(l)}}}this.dataLayer.setSelectedFacetsTemplateData(e)}createSelectedFacetsComponents(e){var t;this.generateSelectedFacetsData(),(t=this.dataLayer.selectedFacetsTemplateData)==null||t.forEach(a=>{this.createSelectedFacetsComponent(e,a)})}createClearFacetsComponents(e){var i,c,l,h,u,g,p,y;const t=this.dataLayer.searchObject,a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.clearFacetsTemplate)==null?void 0:l.template)||((h=d.facets.clearFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=m.render(a,{shouldShow:t.facets.length>0});const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.clearFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.clearFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.removeSelectedFacets()}),e.appendChild(s))}createSelectedFacetsComponent(e,t){var i,c,l,h,u,g,p,y;const a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:l.template)||((h=d.facets.selectedFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=m.render(a,t);const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.selectedFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.selectedFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.unselectFacet(t)}),e.appendChild(s))}unselectFacet(e){const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(r=>JSON.stringify(r)!==JSON.stringify(this.extractFacetValue(e)))),setTimeout(()=>{this.dataLayer.setSearchObject({...t,facets:a}),this.generateSelectedFacetsData()},0)}removeSelectedFacets(){const e=this.dataLayer.searchObject;this.dataLayer.setSearchObject({...e,facets:[]})}createFilterByComponent(e){var s,i,c,l,h,u,g,p;const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.filterByTemplate)==null?void 0:c.template)||((l=d.facets.filterByTemplate)==null?void 0:l.template),a=document.createElement("div");a.innerHTML=m.render(t,{});const r=a.querySelector("."+(((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.filterByTemplate)==null?void 0:g.containerClass)||((p=d.facets.filterByTemplate)==null?void 0:p.containerClass)));r&&(e.prepend(r),r.addEventListener("click",this.openOverlay.bind(this)))}openOverlay(){var e;this.overlayOpened=!0,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;this.overlayOpened=!1,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.remove("searchstax-show"))}renderMobileTemplate(e){var t,a,r,s,i,c,l,h,u,g,p,y,L,f,C,v,S,R,I;if(e){const b=document.createElement("div");b.classList.add("searchstax-facets-container-mobile");const w=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:r.template)||((s=d.facets.mainTemplateMobile)==null?void 0:s.template);if(this.dataLayer.renderingEngine===x.mustache){if(b.innerHTML=m.render(w,{...e,overlayOpened:this.overlayOpened}),(i=this.searchFacetsMainContainer)==null||i.appendChild(b),(l=(c=this.config)==null?void 0:c.templates)!=null&&l.mainTemplateMobile)for(const q of((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.mainTemplateMobile)==null?void 0:g.closeOverlayTriggerClasses)||[]){const O=b.querySelector("."+q);O&&O.addEventListener("click",this.closeOverlay.bind(this))}else for(const q of d.facets.mainTemplateMobile.closeOverlayTriggerClasses){const O=b.querySelector("."+q);O&&O.addEventListener("click",this.closeOverlay.bind(this))}const B=b.querySelector("."+(((L=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:L.filterByContainerClass)||d.facets.mainTemplateMobile.filterByContainerClass));B&&this.createFilterByComponent(B);const P=b.querySelector("."+(((v=(C=(f=this.config)==null?void 0:f.templates)==null?void 0:C.mainTemplateMobile)==null?void 0:v.selectedFacetsContainerClass)||d.facets.mainTemplateMobile.selectedFacetsContainerClass));P&&(this.createSelectedFacetsComponents(P),this.createClearFacetsComponents(P));const j=b.querySelector("."+(((I=(R=(S=this.config)==null?void 0:S.templates)==null?void 0:R.mainTemplateMobile)==null?void 0:I.facetsContainerClass)||d.facets.mainTemplateMobile.facetsContainerClass));if(j){j.innerHTML="";for(const q of e.facets)this.createFacetItem(q,j,!0)}}}}}class Re{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"previousButtonClass");n(this,"nextButtonClass");n(this,"routerHelper");n(this,"searchPaginationMainContainer",null);var t,a,r,s,i,c;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.previousButtonClass)??d.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.nextButtonClass)??d.pagination.mainTemplate.nextButtonClass,this.searchPaginationMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e,t;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil((((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.totalResultsValue)??0)/10)}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a;const e={...this.dataLayer.parsedData.data,previousPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((a=this.dataLayer.searchObject)==null?void 0:a.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e){const t=this.dataLayer.searchObject;t&&(t.page=e,this.dataLayer.setSearchObject(t)),window.scrollTo(0,0)}nextPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1)}previousPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isFirstPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)}overridePaginationEvents(){if(this.searchPaginationMainContainer){const e=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass),t=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass);e&&e.addEventListener("click",this.previousPage.bind(this)),t&&t.addEventListener("click",this.nextPage.bind(this))}}renderMainTemplate(e){var a,r,s,i,c,l;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(r=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||r.removeEventListener("click",this.nextPage));const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.template)||((l=d.pagination.mainTemplate)==null?void 0:l.template);this.dataLayer.renderingEngine===x.mustache&&(this.searchPaginationMainContainer.innerHTML=m.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Ie{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"relatedSearchesContainerClass");n(this,"searchRelatedSearchesMainContainer",null);n(this,"track");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.relatedSearchesContainerClass=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.relatedSearchesContainerClass)||d.relatedSearches.main.relatedSearchesContainerClass,this.searchRelatedSearchesMainContainer=document.getElementById(this.containerId),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}addRelatedSearchComponent(e,t){var s,i,c,l,h;const a=document.createElement("div"),r=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.relatedSearch)==null?void 0:c.template)||d.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===x.mustache){a.innerHTML=m.render(r,e);const u=a.querySelector("."+(((h=(l=this.config.templates)==null?void 0:l.relatedSearch)==null?void 0:h.relatedSearchContainerClass)||d.relatedSearches.relatedSearch.relatedSearchContainerClass));u&&(t.appendChild(u),u.addEventListener("click",()=>{this.executeSearch(e)}))}}executeSearch(e){const t=this.dataLayer.searchObject;t.query=e.related_search,this.dataLayer.setSearchObject(t),this.track(e)}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.relatedSearches.main.template;if(this.dataLayer.renderingEngine===x.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=m.render(t,e);const c=(i=this.searchRelatedSearchesMainContainer)==null?void 0:i.querySelector(`.${this.relatedSearchesContainerClass}`);if(c)for(const l of e.relatedSearches)this.addRelatedSearchComponent(l,c)}}}class Pe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"searchFeedbackMainContainer",null);n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,this.searchFeedbackMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}onOriginalQueryClick(e){var a;e.stopPropagation(),e.preventDefault();const t=(a=e.target)==null?void 0:a.innerHTML;this.searchTrigger(t,!0)}attachClick(){var t,a,r,s,i;const e=(i=this.searchFeedbackMainContainer)==null?void 0:i.querySelector("."+(((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:r.originalQueryClass)||((s=d.searchFeedback.main)==null?void 0:s.originalQueryClass)));console.log("originalQuery",e),e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.searchFeedback.main.template;console.log("render"),this.dataLayer.renderingEngine===x.mustache&&(this.searchFeedbackMainContainer.innerHTML=m.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class Fe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"suggestAfterMinChars");n(this,"containerId");n(this,"currentInputValue","");n(this,"autosuggestResults");n(this,"searchInput");n(this,"actionButton");n(this,"autosuggestContainer");n(this,"buttonState","search");n(this,"selectedAutosuggestItem",-1);n(this,"suggestTrigger");n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.searchTrigger=e.searchTrigger,this.suggestTrigger=e.suggestTrigger,this.containerId=e.containerId,this.suggestAfterMinChars=e.config.suggestAfterMinChars,this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())}renderMainTemplate(){var s,i,c,l;const e=document.getElementById(this.containerId);if(!e)throw new Error("Search input container not found");const t=((i=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||d.searchInput.mainTemplate.template;if(this.dataLayer.renderingEngine===x.mustache){const h=m.render(t,{});e.innerHTML=h}const a=((l=(c=this.config.templates)==null?void 0:c.mainTemplate)==null?void 0:l.searchInputId)||d.searchInput.mainTemplate.searchInputId,r=document.querySelector(`#${a}`);if(r)this.searchInput=r,r.addEventListener("keyup",this.inputKeyupEvent.bind(this)),r.addEventListener("blur",this.hideAutosuggest.bind(this)),r.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===x.mustache&&(this.autosuggestContainer=document.createElement("div"),this.autosuggestContainer.classList.add("searchstax-autosuggest-container"),this.autosuggestContainer.addEventListener("mouseleave",()=>{this.resetAutosuggestSelection(),this.markActiveAutosuggestItem()}),(e=this.searchInput)==null||e.after(this.autosuggestContainer))}actionButtonInit(){this.actionButton=document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.buttonState==="search"?this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??""):this.buttonState==="close"&&this.searchInput&&(this.searchInput.value="",this.executeSearch(""))})}attachSubscriptions(){this.dataLayer.$searchTermChange.subscribe(()=>{this.handleSearchTermChange()}),this.dataLayer.$loadingChange.subscribe(()=>{this.handleLoadingChange()}),this.dataLayer.$searchAutosuggest.subscribe(e=>{e&&this.appendSuggestions(e)}),this.dataLayer.$searchObject.subscribe(e=>{e.query!=="undefined"&&e.query!==void 0&&e.query!=="*"&&this.searchInput&&(this.searchInput.value=this.cleanSuggestionTerm(e.query??""))})}handleLoadingChange(){this.dataLayer.loading?this.updateActionButtonState("loading"):this.handleSearchTermChange()}handleSearchTermChange(){var e;this.dataLayer.searchTerm===((e=this.searchInput)==null?void 0:e.value)&&this.searchInput.value!==""?this.updateActionButtonState("close"):this.updateActionButtonState("search")}updateActionButtonState(e){if(this.buttonState=e,this.actionButton)switch(this.actionButton.classList.remove("searchstax-spinner-icon"),this.actionButton.classList.remove("searchstax-search-close"),this.actionButton.classList.remove("searchstax-search-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon");break;case"close":this.actionButton.classList.add("searchstax-search-close");break}}selectPreviousAutosuggestItem(){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){const e=document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?a.classList.add("active"):a.classList.remove("active")}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest():t==="ArrowUp"?this.selectPreviousAutosuggestItem():t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){e.target&&e.target.value.length>=this.suggestAfterMinChars?this.executeSuggest(e.target.value):this.hideAutosuggest()}inputPasteEvent(e){setTimeout(()=>{this.autosuggestHandling(e),this.handleSearchTermChange()},0)}executeSuggest(e){this.suggestTrigger(e)}executeSearch(e){this.hideAutosuggest(),this.searchTrigger(e===""?"*":e)}suggestionChosen(){this.selectedAutosuggestItem>-1?this.autosuggestItemClicked(this.autosuggestResults.suggestions[this.selectedAutosuggestItem]):this.executeSearch(this.currentInputValue)}hideAutosuggest(){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection()},100)}cleanSuggestionTerm(e){return E.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var r,s,i;const t=document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((s=(r=this.config.templates)==null?void 0:r.autosuggestItemTemplate)==null?void 0:s.template)||((i=d.searchInput.autosuggestItemTemplate)==null?void 0:i.template);return t.innerHTML=m.render(a,e),t}onSuggestionEnter(e){var t;this.selectedAutosuggestItem=((t=this.autosuggestResults)==null?void 0:t.suggestions.indexOf(e))||0,this.markActiveAutosuggestItem()}appendSuggestions(e){this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.remove("hidden"));for(const t in e.suggest)if(Object.prototype.hasOwnProperty.call(e.suggest,t)){const a=e.suggest[t];for(const r in a)if(Object.prototype.hasOwnProperty.call(a,r)){const s=a[r];this.autosuggestResults=s,this.dataLayer.setAutosuggestResults(s),s.numFound>0?s.suggestions.forEach(i=>{this.autosuggestContainer&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(i))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class Ee{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"linkClickCallback");n(this,"searchCallback");n(this,"containerId");n(this,"searchResultsMainContainer");n(this,"searchResultsContainer");n(this,"searchResultLinks",[]);this.linkClickCallback=e.linkClickCallback,this.searchCallback=e.searchTrigger,this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId;const t=document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,r,s,i,c;const e=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.noSearchResultTemplate)==null?void 0:s.template)||((i=d.searchResults.noSearchResultTemplate)==null?void 0:i.template),t=((c=this.dataLayer.searchResultsMetadata)==null?void 0:c.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===x.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=m.render(e,{spellingSuggestion:t,searchTerm:this.dataLayer.searchTerm})),t&&this.searchResultsContainer){const l=this.searchResultsContainer.querySelector("a");l&&l.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,r,s;if(this.dataLayer.renderingEngine===x.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)this.renderNoResultsTemplate();else{const i=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:r.template)||((s=d.searchResults.searchResultTemplate)==null?void 0:s.template),c=e.map(l=>m.render(i,l));this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{})})}get uniqueIdAttribute(){var e,t,a,r;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((r=d.searchResults.searchResultTemplate)==null?void 0:r.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)})})}renderMainTemplate(){var t,a,r,s;const e=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.template)||((s=d.searchResults.mainTemplate)==null?void 0:s.template);this.dataLayer.renderingEngine===x.mustache&&(this.searchResultsMainContainer.innerHTML=m.render(e,{}),setTimeout(()=>{var l,h,u,g,p,y,L;const i=(u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.mainTemplate)!=null&&u.searchResultsContainerId?(y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplate)==null?void 0:y.searchResultsContainerId:(L=d.searchResults.mainTemplate)==null?void 0:L.searchResultsContainerId,c=document.getElementById(i);if(c)this.searchResultsContainer=c;else throw new Error(`Search Results Container with id ${i} not found`)},0))}}class we{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"selectId");n(this,"searchSortingMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.selectId=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.selectId)||d.sorting.main.selectId,this.searchSortingMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document.getElementById(this.selectId);if(e){const t=e.querySelector(`option[value="${decodeURIComponent(this.dataLayer.searchObject.order)}"]`);t&&(t.selected=!0)}}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.sorting.main.template;if(this.dataLayer.renderingEngine===x.mustache){this.searchSortingMainContainer.innerHTML=m.render(t,e),this.markOptionSelected();const i=document.getElementById(this.selectId);i&&i.addEventListener("change",c=>{this.setOrderQuery(c.target.value)})}}}class Me{constructor(e=x.mustache){n(this,"routerEnabled",!1);n(this,"cachedQuery","");n(this,"routerHelper");n(this,"searchHelper");n(this,"searchResultsConfig");n(this,"searchPaginationConfig");n(this,"searchFeedbackConfig");n(this,"searchSortingConfig");n(this,"searchFacetsConfig");n(this,"relatedSearchesConfig");n(this,"externalPromotionsConfig");n(this,"searchInputWidget");n(this,"searchResultsWidget");n(this,"searchFacetsWidget");n(this,"searchPaginationWidget");n(this,"searchFeedbackWidget");n(this,"searchSortingWidget");n(this,"relatedSearchesWidget");n(this,"externalPromotionsWidget");n(this,"dataLayer",new X(Z.getOrSetCookie("searchstax_session_id")));n(this,"firstRequest",!0);e&&this.dataLayer.setRenderingEngine(e),this.handleHooks()}setRenderingEngine(e=x.mustache){this.dataLayer.setRenderingEngine(e)}handleHooks(){var e,t;(t=(e=this.dataLayer.searchstaxConfig)==null?void 0:e.hooks)!=null&&t.afterSearch&&this.dataLayer.$searchResults.subscribe(a=>{this.dataLayer.searchstaxConfig.hooks.afterSearch(a)}),this.dataLayer.$searchObject.subscribe(a=>{a.query!==""&&this.search(a)}),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&H.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}initialize(e){var t,a;e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new Y({...e,sessionId:this.dataLayer.sessionId},this.dataLayer)),((t=e.router)==null?void 0:t.enabled)===void 0||((a=e.router)==null?void 0:a.enabled)===!0?(this.routerEnabled=!0,this.routerHelper=new W(e.router?e.router:{enabled:!0}),this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href)),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href))})):this.routerHelper=new W({})}search(e){if(this.searchHelper&&e.query!==""&&e.query!==void 0&&e.query!=="undefined"){const t=this.dataLayer.forceNotCorrect;this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1,this.getRelatedSearches()}}getRelatedSearches(){this.searchHelper&&this.relatedSearchesConfig&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var s;const a=(((s=e.response)==null?void 0:s.docs)??[]).map((i,c)=>({...i,position:c+1})),r=[];for(const i of a)r.push({relatedSearch:i.related_search,position:i.position});this.dataLayer.searchResultsMetadata&&H.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:r}),this.dataLayer.setSearchRelatedSearches(a)}handleRouter(){this.routerEnabled&&this.routerHelper.updateUrl(this.dataLayer.searchObject)}parseSearchResultsResponse(e){var s,i;this.handleRouter();let t=D.combineResultsWithMetadata(e),a=D.extractFacets(e);this.dataLayer.setSearchFacets(a),(i=(s=this.dataLayer.searchstaxConfig)==null?void 0:s.hooks)!=null&&i.afterSearch&&(t=this.dataLayer.searchstaxConfig.hooks.afterSearch(t)),this.dataLayer.setSearchExternalPromotions(e.externalLinks??[]);const r=D.extractSearchResultsMetadata(e);this.dataLayer.setSearchResultsMetadata(r),this.dataLayer.setSearchResults(t)}cacheFacets(){var e;(e=this.searchHelper)==null||e.cacheFacets()}parseSuggestSuggestResponse(e){var a,r;let t=e;(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.afterAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.afterAutosuggest(e)),this.dataLayer.setSearchAutosuggest(t)}suggest(e,t){this.searchHelper&&this.searchHelper.suggest(e,this.parseSuggestSuggestResponse.bind(this),t)}changeLanguage(e){this.searchHelper&&this.dataLayer.setLanguage(e)}addSearchInputWidget(e,t){this.dataLayer.searchInputConfig||(this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Fe({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer}))}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new Ee({containerId:e,linkClickCallback:this.executeLinkClick.bind(this),searchTrigger:this.executeSearch.bind(this),config:t,dataLayer:this.dataLayer}))}addPaginationWidget(e,t){this.searchPaginationConfig=t,this.searchPaginationWidget=new Re({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig||(this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Pe({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)}))}addSearchSortingWidget(e,t){this.searchSortingConfig||(this.searchSortingConfig=t,this.searchSortingWidget=new we({containerId:e,config:t,dataLayer:this.dataLayer}))}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig||(this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Ie({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0))}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig||(this.externalPromotionsConfig=t,this.externalPromotionsWidget=new xe({containerId:e,config:t,dataLayer:this.dataLayer}))}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new ke({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){var s,i;const a={...this.dataLayer.searchObject};a.query=E.removeXSSRiskyTags(e),a.page=1,a.facets=[],this.dataLayer.forceNotCorrect=!!t;let r=(s=this.routerHelper)==null?void 0:s.searchObjectToParams(a);r&&(r=(i=this.routerHelper)==null?void 0:i.extractParamsThatDoNotStartWithRouteName(r)),r&&(a.additionalProps=Object.keys(r).map(c=>r?{key:c,value:r[c]}:{key:"",value:""})),this.dataLayer.setSearchObject(a)}executeSuggest(e){var a,r;let t={term:e,queryParams:[]};(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.beforeAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.beforeAutosuggest(t)),t&&t.term!==void 0&&t.queryParams!==void 0&&this.suggest(t.term,t.queryParams)}trackRelatedSearchClick(e){this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&H.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e})}executeLinkClick(e){var a,r;let t=D.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((r=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&r.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&(H.trackClick({result:t,...this.dataLayer.parsedData.trackingData}),setTimeout(()=>{window.location.href=(t==null?void 0:t.url)??""},0)))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}changeResultTemplate(e){var t,a,r;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(r=this.searchResultsWidget)==null||r.changeTemplate())}}exports.Searchstax=Me;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Me=Object.defineProperty;var Ae=(w,C,M)=>C in w?Me(w,C,{enumerable:!0,configurable:!0,writable:!0,value:M}):w[C]=M;var n=(w,C,M)=>(Ae(w,typeof C!="symbol"?C+"":C,M),M);(function(w){"use strict";var C=(o=>(o[o.mustache=0]="mustache",o[o.vue=1]="vue",o[o.react=2]="react",o[o.angular=3]="angular",o))(C||{});class M{constructor(e){n(this,"dataLayer");this.dataLayer=e}get currentPage(){var e;return(e=this.dataLayer.searchObject)==null?void 0:e.page}get totalResults(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.totalResultsValue)||0}get resultsPerPage(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.recordsPerPageValue)||0}get startResultIndex(){var e;return(((e=this.dataLayer.searchObject)==null?void 0:e.page)-1)*this.resultsPerPage+1}get endResultIndex(){var t;const e=(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)*this.resultsPerPage+(this.resultsPerPage??0);return e>this.totalResults?this.totalResults:e}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil(this.totalResults/this.resultsPerPage)}get results(){return this.dataLayer.searchResults??[]}get autoCorrectedQuery(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||""}get originalQuery(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.query)||""}get searchTerm(){var e,t;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||((t=this.dataLayer.searchObject)==null?void 0:t.query)||""}get searchExecuted(){var e,t,a;return((e=this.dataLayer.searchObject)==null?void 0:e.query)!==void 0&&((t=this.dataLayer.searchObject)==null?void 0:t.query)!=="undefined"&&((a=this.dataLayer.searchObject)==null?void 0:a.query)!==""}get selectedFacets(){var t;const e=this.dataLayer.searchFacetsCached??this.dataLayer.searchFacets;return e?(((t=this.dataLayer.searchObject)==null?void 0:t.facets)??[]).map(s=>{const i=s.name,c=s.value,l=e.find(h=>h.name===i);if(l){const h=l.values.find(u=>u.type==="range"?!1:u.type==="checkbox"?'"'+u.value+'"'===c:!1);if(h)return h}return null}).filter(s=>s!==null):[]}get relatedSearches(){const e=this.dataLayer.searchRelatedSearches??[];return e[e.length-1]&&(e[e.length-1].last=!0),e}get externalPromotions(){return this.dataLayer.searchExternalPromotions??[]}get data(){return{currentPage:this.currentPage,totalResults:this.totalResults,resultsPerPage:this.resultsPerPage,startResultIndex:this.startResultIndex,endResultIndex:this.endResultIndex,isFirstPage:this.isFirstPage,isLastPage:this.isLastPage,results:this.results,searchTerm:this.searchTerm!=="undefined"?this.searchTerm:"",autoCorrectedQuery:this.autoCorrectedQuery,originalQuery:this.originalQuery,selectedFacets:this.selectedFacets,searchExecuted:this.searchExecuted,relatedSearches:this.relatedSearches,hasRelatedSearches:this.relatedSearches.length>0,externalPromotions:this.externalPromotions,hasExternalPromotions:this.externalPromotions.length>0,hasResults:this.results.length>0,hasResultsOrExternalPromotions:this.results.length>0||this.externalPromotions.length>0}}get trackingData(){var e,t,a,r;return{searchTerm:this.dataLayer.searchTerm!=="undefined"?this.dataLayer.searchTerm:"",trackApiKey:((e=this.dataLayer.searchstaxConfig)==null?void 0:e.trackApiKey)??"",session:this.dataLayer.sessionId,language:this.dataLayer.language,recordsPerPage:((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.recordsPerPageValue)??0,totalResults:((a=this.dataLayer.searchResultsMetadata)==null?void 0:a.totalResultsValue)??0,currentPage:this.dataLayer.currentPage,latencyVal:((r=this.dataLayer.searchResultsMetadata)==null?void 0:r.latency)??0}}}class F{static deepEqual(e,t){const a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(const s of a){const i=e[s],c=t[s],l=this.isObject(i)&&this.isObject(c);if(l&&!this.deepEqual(i,c)||!l&&i!==c)return!1}return!0}static isObject(e){return e!=null&&typeof e=="object"}}class x{constructor(e){n(this,"value");n(this,"observers",[]);this.value=e,this.observers=[]}subscribe(e){this.observers.push(e),e(this.value)}unsubscribe(e){const t=this.observers.indexOf(e);t!==-1&&this.observers.splice(t,1)}setValue(e){this.value=e,this.notify()}getValue(){return this.value}notify(){this.observers.forEach(e=>e(this.value))}}class E{static removeXSSRiskyTags(e){var t="script|style|iframe|object|embed|form|input|button",a=new RegExp("</?("+t+")(\\s[^>]*)?>","gi");return e?e.replace(a,""):""}}class J{constructor(e){n(this,"$searchTermChange",new x(""));n(this,"$loadingChange",new x(!1));n(this,"$searchResults",new x(null));n(this,"$searchResultsMetadata",new x(null));n(this,"$searchAutosuggest",new x(null));n(this,"$searchFacets",new x(null));n(this,"$searchFacetsCached",new x(null));n(this,"$searchstaxConfig",new x(null));n(this,"$autosuggestResults",new x(null));n(this,"$searchObject",new x({query:"",page:99999999,order:"",facets:[],additionalProps:[]}));n(this,"$searchRelatedSearches",new x(null));n(this,"$searchInputConfig",new x(null));n(this,"$searchExternalPromotions",new x(null));n(this,"$facetsTemplateData",new x(null));n(this,"$selectedFacetsTemplateData",new x(null));n(this,"$paginationData",new x(null));n(this,"$language",new x("en"));n(this,"currentPageValue",1);n(this,"renderingEngineValue",C.mustache);n(this,"parsedData",new M(this));n(this,"sessionId");n(this,"autoCorrect",!0);n(this,"forceNotCorrect",!1);this.sessionId=e}setSearchTerm(e){this.$searchTermChange.setValue(E.removeXSSRiskyTags(e))}setRenderingEngine(e){this.renderingEngineValue=e}setCurrentPage(e){this.currentPageValue=e}setLoading(e){this.$loadingChange.setValue(e)}setSearchResults(e){F.deepEqual(e,this.searchResults??[])||this.$searchResults.setValue(e)}setSearchResultsMetadata(e){F.deepEqual(e,this.searchResultsMetadata??{})||this.$searchResultsMetadata.setValue(e)}setSearchAutosuggest(e){this.$searchAutosuggest.setValue(e)}setSearchObject(e){var a,r;let t=e;(r=(a=this.searchstaxConfig)==null?void 0:a.hooks)!=null&&r.beforeSearch&&t&&(t=this.searchstaxConfig.hooks.beforeSearch(t)),t&&(!F.deepEqual(t,this.searchObject??{})||this.forceNotCorrect)&&this.$searchObject.setValue(t)}setSearchFacets(e){F.deepEqual(e,this.searchFacets??[])||this.$searchFacets.setValue(e)}setSearchFacetsCached(e){F.deepEqual(e,this.searchFacetsCached??[])||this.$searchFacetsCached.setValue(e)}setSearchRelatedSearches(e){F.deepEqual(e,this.searchRelatedSearches??[])||this.$searchRelatedSearches.setValue(e)}setSearchExternalPromotions(e){F.deepEqual(e,this.searchExternalPromotions??[])||this.$searchExternalPromotions.setValue(e)}setLanguage(e){this.$language.setValue(e)}setSearchstaxConfig(e){this.$searchstaxConfig.setValue(e)}setSearchInputConfig(e){this.$searchInputConfig.setValue(e)}setAutosuggestResults(e){this.$autosuggestResults.setValue(e)}setFacetsTemplateData(e){this.$facetsTemplateData.setValue(e)}setSelectedFacetsTemplateData(e){this.$selectedFacetsTemplateData.setValue(e)}setPaginationData(e){this.$paginationData.setValue(e)}get searchstaxConfig(){return this.$searchstaxConfig.getValue()}get searchFacets(){return this.$searchFacets.getValue()?JSON.parse(JSON.stringify(this.$searchFacets.getValue())):null}get searchFacetsCached(){return this.$searchFacetsCached.getValue()?JSON.parse(JSON.stringify(this.$searchFacetsCached.getValue())):null}get searchResults(){return this.$searchResults.getValue()?JSON.parse(JSON.stringify(this.$searchResults.getValue())):null}get searchTerm(){return this.$searchTermChange.getValue()}get loading(){return this.$loadingChange.getValue()}get searchAutosuggest(){return this.$searchAutosuggest.getValue()}get searchResultsMetadata(){return this.$searchResultsMetadata.getValue()?JSON.parse(JSON.stringify(this.$searchResultsMetadata.getValue())):null}get currentPage(){return this.currentPageValue}get renderingEngine(){return this.renderingEngineValue}get searchObject(){return JSON.parse(JSON.stringify(this.$searchObject.getValue()))}get searchRelatedSearches(){return this.$searchRelatedSearches.getValue()?JSON.parse(JSON.stringify(this.$searchRelatedSearches.getValue())):null}get searchExternalPromotions(){return this.$searchExternalPromotions.getValue()?JSON.parse(JSON.stringify(this.$searchExternalPromotions.getValue())):null}get language(){return this.$language.getValue()}get searchInputConfig(){return this.$searchInputConfig.getValue()}get autosuggestResults(){return this.$autosuggestResults.getValue()}get facetsTemplateData(){return this.$facetsTemplateData.getValue()}get selectedFacetsTemplateData(){return this.$selectedFacetsTemplateData.getValue()}get paginationData(){return this.$paginationData.getValue()}}class D{static combineResultsWithMetadata(e){const t=[],a=parseInt(e.response.start+"")-1,r=parseInt(e.responseHeader.params.rows);return e.response.docs.forEach((s,i)=>{const c={custom:null,uniqueId:this.getValueByKey(e.responseHeader.params.uniqueId,s,e)??"",position:a*r+1+i,ribbon:this.doesMapExist("ribbon",e)?this.getValueByKey("ribbon",s,e):null,paths:this.doesMapExist("paths",e)?this.getValueByKey("paths",s,e):null,url:this.doesMapExist("url",e)?this.getValueByKey("url",s,e):null,title:this.doesMapExist("title",e)?this.getValueByKey("title",s,e):null,promoted:s["[elevated]"]?s["[elevated]"]:!1,thumbnail:this.doesMapExist("thumbnail",e)?this.getValueByKey("thumbnail",s,e):null,date:this.doesMapExist("date",e)?this.getValueByKey("date",s,e):null,snippet:this.doesMapExist("snippet",e)?this.getValueByKey("snippet",s,e):null,description:this.doesMapExist("description",e)?this.getValueByKey("description",s,e):null,unmappedFields:this.getUnmappedFields(s,e),allFields:this.getAllFields(s,e)};t.push(c)}),t}static extractFacets(e){const t=[];for(const a of e.metadata.facets){let r={values:[]};if(r.name=a.name,r.label=a.label,a.name in e.facet_counts.facet_fields){const s=e.facet_counts.facet_fields[a.name];for(let i=0;i<s.length;i+=2){const c={};c.value=s[i],c.parentName=r.name,c.count=s[i+1],c.type="checkbox",r.values.push(c)}}r.values.length>0&&t.push(r)}return t}static extractSearchResultsMetadata(e){var a,r,s,i;let t="";return t=((i=(s=(r=(a=e==null?void 0:e.spellcheck)==null?void 0:a.suggestions)==null?void 0:r[0])==null?void 0:s.suggestion)==null?void 0:i[0])??"",typeof t!="string"&&(t=(t==null?void 0:t.word)??""),{recordsPerPageValue:parseInt(e.responseHeader.params.rows),startDocVal:parseInt(e.response.start+""),totalResultsValue:parseInt(e.response.numFound+""),latency:parseInt(e.responseHeader.QTime+""),endDocValue:parseInt(e.responseHeader.params.rows)+parseInt(e.response.start+""),spellingSuggestion:t,autoCorrectedQuery:e.responseHeader.params.autoCorrectedQ??"",impressions:this.getImpressions(e)}}static getImpressions(e){const t=[],a=this.combineResultsWithMetadata(e);for(const r in a){const s=a[r],i={};i.cDocId=this.getDataForAnalytics(s.uniqueId),s.title&&(i.cDocTitle=this.getDataForAnalytics(s.title)),i.position=s.position,t.push(i)}return t}static getDataForAnalytics(e){return e!==null?typeof e>"u"?"":typeof e=="string"?e:typeof e.join<"u"?e[0]:e:""}static findResultByUniqueId(e,t){return t.find(a=>a.uniqueId===e)??null}static getUnmappedFields(e,t){const a=t.metadata.results.filter(s=>s.result_card==="").map(s=>s.name),r=[];for(const s of Object.keys(e))if(a.indexOf(s)!==-1){const i=Array.isArray(e[s])?e[s].join(", "):e[s];r.push({key:s,value:i,isImage:this.checkIfImage(e[s])})}return r}static checkIfImage(e){return e===void 0||typeof e!="string"?!1:/\.(gif|jpe?g|tiff?|png|webp|bmp)$/i.test(e)}static getAllFields(e,t){const a=t.metadata.results.map(s=>s.name),r=[];for(const s of Object.keys(e))a.indexOf(s)!==-1&&r.push({key:s,value:e[s],isImage:this.checkIfImage(e[s])});return r}static doesMapExist(e,t){return t.metadata.results.find(a=>a.result_card===e)!==void 0}static getValueByKey(e,t,a){const r=a.metadata.results.find(i=>i.result_card===e);if(r===void 0)return null;const s=t[r.name];return s===void 0?null:typeof s=="string"?s:Array.isArray(s)?s.join(", "):null}}class K{constructor(e){n(this,"routeName","searchstax");n(this,"ignoredKeys",[]);n(this,"queryStringHelper");n(this,"titleParser");e.routeName&&(this.routeName=e.routeName),e.ignoredKeys&&(this.ignoredKeys=e.ignoredKeys),e.title&&(this.titleParser=e.title),this.queryStringHelper=new X(this.routeName)}updateUrl(e){const t=this.searchObjectToUrl(e);let a=document.title;this.titleParser&&(a=this.titleParser(e)),document.title=a,window.location.href!==t&&window.history.pushState({},a,t)}searchObjectToUrl(e){return this.queryStringHelper.urlHasQueryParams(window.location.href)?window.location.href.split("?")[0]+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys}):window.location.href+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys})}searchObjectToParams(e){const t={};if(e.query&&(t[this.routeName+"[query]"]=encodeURIComponent(e.query)),e.page&&(t[this.routeName+"[page]"]=e.page+""),e.order&&(t[this.routeName+"[order]"]=e.order),e.facets)for(const a in e.facets){const r=e.facets[a].type+":"+encodeURIComponent(e.facets[a].name)+":"+encodeURIComponent(e.facets[a].value);t[this.routeName+`[facets][${a}]`]=r}if(this.queryStringHelper.urlHasQueryParams(window.location.href)){const a=this.queryStringHelper.urlToParams(window.location.href);for(const r in a)r.startsWith(this.routeName)&&delete a[r];return{...a,...t}}else return t}extractParamsThatDoNotStartWithRouteName(e){const t={};for(const a in e)a.startsWith(this.routeName)||(t[a]=e[a]);return t}extractArrayOfFacetsFromQueryParameters(e){var a,r,s;const t=[];for(const i in e)if(i.startsWith(this.routeName+"[facets]")){const c=E.removeXSSRiskyTags((a=e[i].split(":"))==null?void 0:a[0]),l=E.removeXSSRiskyTags(decodeURIComponent((r=e[i].split(":"))==null?void 0:r[1])),h=E.removeXSSRiskyTags(decodeURIComponent((s=e[i].split(":"))==null?void 0:s[2]));t.push({type:c,name:l,value:h})}return t}urlToSearchObject(e){const t=this.queryStringHelper.urlToParams(e);return{query:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[query]"]))||"",page:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[page]"]))?parseInt(t[this.routeName+"[page]"]):1,order:E.removeXSSRiskyTags(t[this.routeName+"[order]"])||"",facets:this.extractArrayOfFacetsFromQueryParameters(t)||[]}}}class X{constructor(e){n(this,"routeName","");n(this,"stringify",(e,t)=>{const a=this.filterOutIgnoredKeys(e,t.ignoredKeys);return Object.keys(a).map(r=>{const s=a[r];return Array.isArray(s)?s.map(i=>`${r}=${i}`).join("&"):`${r}=${s}`}).join("&")});this.routeName=e}filterOutIgnoredKeys(e,t){const a=t||[],r={};return Object.keys(e).forEach(s=>{a.includes(s)||e[s]!==""&&(r[s]=e[s])}),r}urlToParams(e){const t={},a=e.split("?")[1];return a&&a.split("&").forEach(r=>{const[s,i]=r.split("=");t[s]=i}),t}doesParamContainRouteName(e){return e.indexOf(this.routeName)!==-1}urlHasQueryParams(e){return e.indexOf("?")!==-1}}class G{constructor(e,t){n(this,"cachedQuery","");n(this,"url","");n(this,"relatedSearches","");n(this,"suggester","");n(this,"authHeader");n(this,"authHeaderRelated");n(this,"trackApiKey","");n(this,"session","");n(this,"searchAuthType");n(this,"searchAuth","");n(this,"controllerSearch");n(this,"signalSearch");n(this,"controllerSuggest");n(this,"signalSuggest");n(this,"dataLayer");this.dataLayer=t,this.url=e.searchURL,this.dataLayer.setLanguage(e.language),this.suggester=e.suggesterURL,this.trackApiKey=e.trackApiKey,this.session=e.sessionId,this.searchAuthType=e.authType,this.searchAuth=e.searchAuth,this.authHeader=new Headers,this.authHeader.append("Accept","application/json");const a=this.searchAuthType==="token"?`Token ${e.searchAuth}`:`Basic ${e.searchAuth}`;this.authHeader.append("Authorization",a),this.authHeaderRelated=new Headers,this.authHeaderRelated.append("Accept","application/json"),this.authHeaderRelated.append("Authorization",e.searchAuth)}generateFacetQuery(e,t){let a=[];if(!t)e.forEach(function(r){const s=r.name+":"+r.value;a=a.concat("fq="+decodeURIComponent(s).replace(" "," "))});else{const r={};e.forEach(function(s){const i=s.name+":"+s.value,c=decodeURIComponent(i).replace(" "," ").split(":");r[c[0]]?r[c[0]].push(c[1]):r[c[0]]=[c[1]]});for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)){const i=r[s],c=s;let l="";for(const h of i)l+=` ${c}:${h}`;a=a.concat("fq="+l.trim())}}return a.length?"&"+a.join("&"):""}getRelatedSearches(e,t,a,r){const s=new Headers;s.append("Accept","application/json"),s.append("Authorization",a),fetch(t+"?search="+encodeURIComponent(e.query)+"&language="+this.dataLayer.language,{method:"GET",headers:s,credentials:"same-origin"}).then(i=>i.json()).then(i=>{r(i)})}cacheFacets(){this.dataLayer.searchObject.query!==this.cachedQuery&&(this.cachedQuery=this.dataLayer.searchObject.query,this.search({query:this.dataLayer.searchObject.query??"*",page:1,order:"",facets:[],additionalProps:this.dataLayer.searchObject.additionalProps},this.cacheFacetsCallback.bind(this)))}cacheFacetsCallback(e){let t=D.extractFacets(e);this.dataLayer.setSearchFacetsCached(t)}search(e,t,a=!1,r=!1){if(e.query&&e.query!=="undefined"){this.dataLayer.setSearchTerm(e.query),this.dataLayer.setLoading(!0),this.controllerSearch&&this.controllerSearch.abort(),this.controllerSearch=new AbortController,this.signalSearch=this.controllerSearch.signal;const s=new Proxy(new URLSearchParams(window.location.search),{get:(u,g)=>u.get(g)??""}),i=s.languageVariant?"&fq=_language:"+s.languageVariant:"",c=e.order?`&sort=${e.order}`:"",l=this.url+"?q="+encodeURIComponent(e.query.trim())+"&start="+(e.page-1)+this.toQueryString(e.additionalProps??[])+this.generateFacetQuery(e.facets.filter(u=>u.type==="or"||u.type==="showUnavailable"),!0)+this.generateFacetQuery(e.facets.filter(u=>u.type==="and"||u.type==="tabs"),!1)+c+`&spellcheck.correct=${this.dataLayer.autoCorrect&&!r}&language=`+this.dataLayer.language+i,h={method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSearch};a&&delete h.signal,fetch(l,h).then(u=>u.json()).then(u=>{this.dataLayer.setLoading(!1),t(u)}).catch(()=>{this.dataLayer.setLoading(!1)})}}suggest(e,t,a){this.controllerSuggest&&this.controllerSuggest.abort(),this.controllerSuggest=new AbortController,this.signalSuggest=this.controllerSuggest.signal;const r=this.suggester+"?q="+e.trim()+this.toQueryString(a)+"&language="+this.dataLayer.language;fetch(r,{method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSuggest}).then(s=>s.json()).then(s=>{t(s)}).catch(()=>()=>{})}fields(){return this.fields}toQueryString(e){if(e.length===0)return"";const t=[];for(const a of e)t.push(encodeURIComponent(a.key)+"="+encodeURIComponent(a.value));return"&"+t.join("&")}}class Y{static getOrSetCookie(e){let t=this.getCookie(e);return t==null&&(t=this.makeid(25),this.setCookie(e,t,{secure:!0,"max-age":3600})),t}static makeid(e){let t="";const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=a.length;for(let s=0;s<e;s++)t+=a.charAt(Math.floor(Math.random()*r));return t}static getCookie(e){const t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0}static setCookie(e,t,a){const r={path:"/",...a};a.expires instanceof Date&&(r.expires=a.expires.toUTCString());let s=encodeURIComponent(e)+"="+encodeURIComponent(t);for(const i in r){s+="; "+i;const c=r[i];c!==!0&&(s+="="+c)}document.cookie=s}}class H{static trackClick(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,cDocId:e.result.uniqueId,cDocTitle:e.result.title,position:e.result.position,language:e.language};setTimeout(()=>{this.msq.push(["trackClick",t])},0)}static trackSearch(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["track",t])},0)}static trackRelatedSearchClick(e){const t={session:e.session,key:e.trackApiKey,query:e.relatedSearch.search_term,position:e.relatedSearch.position,relatedSearch:e.relatedSearch.related_search,pageNo:e.currentPage,shownHits:e.recordsPerPage,totalHits:e.totalResults,language:e.language};setTimeout(()=>{this.msq.push(["trackRelatedSearchClick",t])},0)}static trackRelatedSearches(e){const t={session:e.session,key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,latency:e.latencyVal,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["trackRelatedSearch",t])},0)}}n(H,"msq",window._msq||[]);/*!
|
|
1
|
+
var Me=Object.defineProperty;var Ae=(w,C,M)=>C in w?Me(w,C,{enumerable:!0,configurable:!0,writable:!0,value:M}):w[C]=M;var n=(w,C,M)=>(Ae(w,typeof C!="symbol"?C+"":C,M),M);(function(w){"use strict";var C=(o=>(o[o.mustache=0]="mustache",o[o.vue=1]="vue",o[o.react=2]="react",o[o.angular=3]="angular",o))(C||{});class M{constructor(e){n(this,"dataLayer");this.dataLayer=e}get currentPage(){var e;return(e=this.dataLayer.searchObject)==null?void 0:e.page}get totalResults(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.totalResultsValue)||0}get resultsPerPage(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.recordsPerPageValue)||0}get startResultIndex(){var e;return(((e=this.dataLayer.searchObject)==null?void 0:e.page)-1)*this.resultsPerPage+1}get endResultIndex(){var t;const e=(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)*this.resultsPerPage+(this.resultsPerPage??0);return e>this.totalResults?this.totalResults:e}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil(this.totalResults/this.resultsPerPage)}get results(){return this.dataLayer.searchResults??[]}get autoCorrectedQuery(){var e;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||""}get originalQuery(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.query)||""}get searchTerm(){var e,t;return((e=this.dataLayer.searchResultsMetadata)==null?void 0:e.autoCorrectedQuery)||((t=this.dataLayer.searchObject)==null?void 0:t.query)||""}get searchExecuted(){var e,t,a;return((e=this.dataLayer.searchObject)==null?void 0:e.query)!==void 0&&((t=this.dataLayer.searchObject)==null?void 0:t.query)!=="undefined"&&((a=this.dataLayer.searchObject)==null?void 0:a.query)!==""}get selectedFacets(){var t;const e=this.dataLayer.searchFacetsCached??this.dataLayer.searchFacets;return e?(((t=this.dataLayer.searchObject)==null?void 0:t.facets)??[]).map(s=>{const i=s.name,c=s.value,l=e.find(h=>h.name===i);if(l){const h=l.values.find(u=>u.type==="range"?!1:u.type==="checkbox"?'"'+u.value+'"'===c:!1);if(h)return h}return null}).filter(s=>s!==null):[]}get relatedSearches(){const e=this.dataLayer.searchRelatedSearches??[];return e[e.length-1]&&(e[e.length-1].last=!0),e}get externalPromotions(){return this.dataLayer.searchExternalPromotions??[]}get data(){return{currentPage:this.currentPage,totalResults:this.totalResults,resultsPerPage:this.resultsPerPage,startResultIndex:this.startResultIndex,endResultIndex:this.endResultIndex,isFirstPage:this.isFirstPage,isLastPage:this.isLastPage,results:this.results,searchTerm:this.searchTerm!=="undefined"?this.searchTerm:"",autoCorrectedQuery:this.autoCorrectedQuery,originalQuery:this.originalQuery,selectedFacets:this.selectedFacets,searchExecuted:this.searchExecuted,relatedSearches:this.relatedSearches,hasRelatedSearches:this.relatedSearches.length>0,externalPromotions:this.externalPromotions,hasExternalPromotions:this.externalPromotions.length>0,hasResults:this.results.length>0,hasResultsOrExternalPromotions:this.results.length>0||this.externalPromotions.length>0}}get trackingData(){var e,t,a,r;return{searchTerm:this.dataLayer.searchTerm!=="undefined"?this.dataLayer.searchTerm:"",trackApiKey:((e=this.dataLayer.searchstaxConfig)==null?void 0:e.trackApiKey)??"",session:this.dataLayer.sessionId,language:this.dataLayer.language,recordsPerPage:((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.recordsPerPageValue)??0,totalResults:((a=this.dataLayer.searchResultsMetadata)==null?void 0:a.totalResultsValue)??0,currentPage:this.dataLayer.currentPage,latencyVal:((r=this.dataLayer.searchResultsMetadata)==null?void 0:r.latency)??0}}}class F{static deepEqual(e,t){const a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(const s of a){const i=e[s],c=t[s],l=this.isObject(i)&&this.isObject(c);if(l&&!this.deepEqual(i,c)||!l&&i!==c)return!1}return!0}static isObject(e){return e!=null&&typeof e=="object"}}class x{constructor(e){n(this,"value");n(this,"observers",[]);this.value=e,this.observers=[]}subscribe(e){this.observers.push(e),e(this.value)}unsubscribe(e){const t=this.observers.indexOf(e);t!==-1&&this.observers.splice(t,1)}setValue(e){this.value=e,this.notify()}getValue(){return this.value}notify(){this.observers.forEach(e=>e(this.value))}}class E{static removeXSSRiskyTags(e){var t="script|style|iframe|object|embed|form|input|button",a=new RegExp("</?("+t+")(\\s[^>]*)?>","gi");return e?e.replace(a,""):""}}class J{constructor(e){n(this,"$searchTermChange",new x(""));n(this,"$loadingChange",new x(!1));n(this,"$searchResults",new x(null));n(this,"$searchResultsMetadata",new x(null));n(this,"$searchAutosuggest",new x(null));n(this,"$searchFacets",new x(null));n(this,"$searchFacetsCached",new x(null));n(this,"$searchstaxConfig",new x(null));n(this,"$autosuggestResults",new x(null));n(this,"$searchObject",new x({query:"",page:99999999,order:"",facets:[],additionalProps:[]}));n(this,"$searchRelatedSearches",new x(null));n(this,"$searchInputConfig",new x(null));n(this,"$searchExternalPromotions",new x(null));n(this,"$facetsTemplateData",new x(null));n(this,"$selectedFacetsTemplateData",new x(null));n(this,"$paginationData",new x(null));n(this,"$language",new x("en"));n(this,"currentPageValue",1);n(this,"renderingEngineValue",C.mustache);n(this,"parsedData",new M(this));n(this,"sessionId");n(this,"autoCorrect",!0);n(this,"forceNotCorrect",!1);this.sessionId=e}setSearchTerm(e){this.$searchTermChange.setValue(E.removeXSSRiskyTags(e))}setRenderingEngine(e){this.renderingEngineValue=e}setCurrentPage(e){this.currentPageValue=e}setLoading(e){this.$loadingChange.setValue(e)}setSearchResults(e){F.deepEqual(e,this.searchResults??[])||this.$searchResults.setValue(e)}setSearchResultsMetadata(e){F.deepEqual(e,this.searchResultsMetadata??{})||this.$searchResultsMetadata.setValue(e)}setSearchAutosuggest(e){this.$searchAutosuggest.setValue(e)}setSearchObject(e){var a,r;let t=e;(r=(a=this.searchstaxConfig)==null?void 0:a.hooks)!=null&&r.beforeSearch&&t&&(t=this.searchstaxConfig.hooks.beforeSearch(t)),t&&(!F.deepEqual(t,this.searchObject??{})||this.forceNotCorrect)&&this.$searchObject.setValue(t)}setSearchFacets(e){F.deepEqual(e,this.searchFacets??[])||this.$searchFacets.setValue(e)}setSearchFacetsCached(e){F.deepEqual(e,this.searchFacetsCached??[])||this.$searchFacetsCached.setValue(e)}setSearchRelatedSearches(e){F.deepEqual(e,this.searchRelatedSearches??[])||this.$searchRelatedSearches.setValue(e)}setSearchExternalPromotions(e){F.deepEqual(e,this.searchExternalPromotions??[])||this.$searchExternalPromotions.setValue(e)}setLanguage(e){this.$language.setValue(e)}setSearchstaxConfig(e){this.$searchstaxConfig.setValue(e)}setSearchInputConfig(e){this.$searchInputConfig.setValue(e)}setAutosuggestResults(e){this.$autosuggestResults.setValue(e)}setFacetsTemplateData(e){this.$facetsTemplateData.setValue(e)}setSelectedFacetsTemplateData(e){this.$selectedFacetsTemplateData.setValue(e)}setPaginationData(e){this.$paginationData.setValue(e)}get searchstaxConfig(){return this.$searchstaxConfig.getValue()}get searchFacets(){return this.$searchFacets.getValue()?JSON.parse(JSON.stringify(this.$searchFacets.getValue())):null}get searchFacetsCached(){return this.$searchFacetsCached.getValue()?JSON.parse(JSON.stringify(this.$searchFacetsCached.getValue())):null}get searchResults(){return this.$searchResults.getValue()?JSON.parse(JSON.stringify(this.$searchResults.getValue())):null}get searchTerm(){return this.$searchTermChange.getValue()}get loading(){return this.$loadingChange.getValue()}get searchAutosuggest(){return this.$searchAutosuggest.getValue()}get searchResultsMetadata(){return this.$searchResultsMetadata.getValue()?JSON.parse(JSON.stringify(this.$searchResultsMetadata.getValue())):null}get currentPage(){return this.currentPageValue}get renderingEngine(){return this.renderingEngineValue}get searchObject(){return JSON.parse(JSON.stringify(this.$searchObject.getValue()))}get searchRelatedSearches(){return this.$searchRelatedSearches.getValue()?JSON.parse(JSON.stringify(this.$searchRelatedSearches.getValue())):null}get searchExternalPromotions(){return this.$searchExternalPromotions.getValue()?JSON.parse(JSON.stringify(this.$searchExternalPromotions.getValue())):null}get language(){return this.$language.getValue()}get searchInputConfig(){return this.$searchInputConfig.getValue()}get autosuggestResults(){return this.$autosuggestResults.getValue()}get facetsTemplateData(){return this.$facetsTemplateData.getValue()}get selectedFacetsTemplateData(){return this.$selectedFacetsTemplateData.getValue()}get paginationData(){return this.$paginationData.getValue()}}class D{static combineResultsWithMetadata(e){const t=[],a=parseInt(e.response.start+"")-1,r=parseInt(e.responseHeader.params.rows);return e.response.docs.forEach((s,i)=>{const c={custom:null,uniqueId:this.getValueByKey(e.responseHeader.params.uniqueId,s,e)??"",position:a*r+1+i,ribbon:this.doesMapExist("ribbon",e)?this.getValueByKey("ribbon",s,e):null,paths:this.doesMapExist("paths",e)?this.getValueByKey("paths",s,e):null,url:this.doesMapExist("url",e)?this.getValueByKey("url",s,e):null,title:this.doesMapExist("title",e)?this.getValueByKey("title",s,e):null,promoted:s["[elevated]"]?s["[elevated]"]:!1,thumbnail:this.doesMapExist("thumbnail",e)?this.getValueByKey("thumbnail",s,e):null,date:this.doesMapExist("date",e)?this.getValueByKey("date",s,e):null,snippet:this.doesMapExist("snippet",e)?this.getValueByKey("snippet",s,e):null,description:this.doesMapExist("description",e)?this.getValueByKey("description",s,e):null,unmappedFields:this.getUnmappedFields(s,e),allFields:this.getAllFields(s,e)};t.push(c)}),t}static extractFacets(e){const t=[];for(const a of e.metadata.facets){let r={values:[]};if(r.name=a.name,r.label=a.label,a.name in e.facet_counts.facet_fields){const s=e.facet_counts.facet_fields[a.name];for(let i=0;i<s.length;i+=2){const c={};c.value=s[i],c.parentName=r.name,c.count=s[i+1],c.type="checkbox",r.values.push(c)}}r.values.length>0&&t.push(r)}return t}static extractSearchResultsMetadata(e){var a,r,s,i;let t="";return t=((i=(s=(r=(a=e==null?void 0:e.spellcheck)==null?void 0:a.suggestions)==null?void 0:r[0])==null?void 0:s.suggestion)==null?void 0:i[0])??"",typeof t!="string"&&(t=(t==null?void 0:t.word)??""),{recordsPerPageValue:parseInt(e.responseHeader.params.rows),startDocVal:parseInt(e.response.start+""),totalResultsValue:parseInt(e.response.numFound+""),latency:parseInt(e.responseHeader.QTime+""),endDocValue:parseInt(e.responseHeader.params.rows)+parseInt(e.response.start+""),spellingSuggestion:t,autoCorrectedQuery:e.responseHeader.params.autoCorrectedQ??"",impressions:this.getImpressions(e)}}static getImpressions(e){const t=[],a=this.combineResultsWithMetadata(e);for(const r in a){const s=a[r],i={};i.cDocId=this.getDataForAnalytics(s.uniqueId),s.title&&(i.cDocTitle=this.getDataForAnalytics(s.title)),i.position=s.position,t.push(i)}return t}static getDataForAnalytics(e){return e!==null?typeof e>"u"?"":typeof e=="string"?e:typeof e.join<"u"?e[0]:e:""}static findResultByUniqueId(e,t){return t.find(a=>a.uniqueId===e)??null}static getUnmappedFields(e,t){const a=t.metadata.results.filter(s=>s.result_card==="").map(s=>s.name),r=[];for(const s of Object.keys(e))if(a.indexOf(s)!==-1){const i=Array.isArray(e[s])?e[s].join(", "):e[s];r.push({key:s,value:i,isImage:this.checkIfImage(e[s])})}return r}static checkIfImage(e){return e===void 0||typeof e!="string"?!1:/\.(gif|jpe?g|tiff?|png|webp|bmp)$/i.test(e)}static getAllFields(e,t){const a=t.metadata.results.map(s=>s.name),r=[];for(const s of Object.keys(e))a.indexOf(s)!==-1&&r.push({key:s,value:e[s],isImage:this.checkIfImage(e[s])});return r}static doesMapExist(e,t){return t.metadata.results.find(a=>a.result_card===e)!==void 0}static getValueByKey(e,t,a){const r=a.metadata.results.find(i=>i.result_card===e);if(r===void 0)return null;const s=t[r.name];return s===void 0?null:typeof s=="string"?s:Array.isArray(s)?s.join(", "):null}}class K{constructor(e){n(this,"routeName","searchstax");n(this,"ignoredKeys",[]);n(this,"queryStringHelper");n(this,"titleParser");e.routeName&&(this.routeName=e.routeName),e.ignoredKeys&&(this.ignoredKeys=e.ignoredKeys),e.title&&(this.titleParser=e.title),this.queryStringHelper=new X(this.routeName)}updateUrl(e){const t=this.searchObjectToUrl(e);let a=document.title;this.titleParser&&(a=this.titleParser(e)),document.title=a,window.location.href!==t&&window.history.pushState({},a,t)}searchObjectToUrl(e){return this.queryStringHelper.urlHasQueryParams(window.location.href)?window.location.href.split("?")[0]+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys}):window.location.href+"?"+this.queryStringHelper.stringify(this.searchObjectToParams(e),{ignoredKeys:this.ignoredKeys})}searchObjectToParams(e){const t={};if(e.query&&(t[this.routeName+"[query]"]=encodeURIComponent(e.query)),e.page&&(t[this.routeName+"[page]"]=e.page+""),e.order&&(t[this.routeName+"[order]"]=e.order),e.facets)for(const a in e.facets){const r=e.facets[a].type+":"+encodeURIComponent(e.facets[a].name)+":"+encodeURIComponent(e.facets[a].value);t[this.routeName+`[facets][${a}]`]=r}if(this.queryStringHelper.urlHasQueryParams(window.location.href)){const a=this.queryStringHelper.urlToParams(window.location.href);for(const r in a)r.startsWith(this.routeName)&&delete a[r];return{...a,...t}}else return t}extractParamsThatDoNotStartWithRouteName(e){const t={};for(const a in e)a.startsWith(this.routeName)||(t[a]=e[a]);return t}extractArrayOfFacetsFromQueryParameters(e){var a,r,s;const t=[];for(const i in e)if(i.startsWith(this.routeName+"[facets]")){const c=E.removeXSSRiskyTags((a=e[i].split(":"))==null?void 0:a[0]),l=E.removeXSSRiskyTags(decodeURIComponent((r=e[i].split(":"))==null?void 0:r[1])),h=E.removeXSSRiskyTags(decodeURIComponent((s=e[i].split(":"))==null?void 0:s[2]));t.push({type:c,name:l,value:h})}return t}urlToSearchObject(e){const t=this.queryStringHelper.urlToParams(e);return{query:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[query]"]))||"",page:E.removeXSSRiskyTags(decodeURIComponent(t[this.routeName+"[page]"]))?parseInt(t[this.routeName+"[page]"]):1,order:E.removeXSSRiskyTags(t[this.routeName+"[order]"])||"",facets:this.extractArrayOfFacetsFromQueryParameters(t)||[]}}}class X{constructor(e){n(this,"routeName","");n(this,"stringify",(e,t)=>{const a=this.filterOutIgnoredKeys(e,t.ignoredKeys);return Object.keys(a).map(r=>{const s=a[r];return Array.isArray(s)?s.map(i=>`${r}=${i}`).join("&"):`${r}=${s}`}).join("&")});this.routeName=e}filterOutIgnoredKeys(e,t){const a=t||[],r={};return Object.keys(e).forEach(s=>{a.includes(s)||e[s]!==""&&(r[s]=e[s])}),r}urlToParams(e){const t={},a=e.split("?")[1];return a&&a.split("&").forEach(r=>{const[s,i]=r.split("=");t[s]=i}),t}doesParamContainRouteName(e){return e.indexOf(this.routeName)!==-1}urlHasQueryParams(e){return e.indexOf("?")!==-1}}class G{constructor(e,t){n(this,"cachedQuery","");n(this,"url","");n(this,"relatedSearches","");n(this,"suggester","");n(this,"authHeader");n(this,"authHeaderRelated");n(this,"trackApiKey","");n(this,"session","");n(this,"searchAuthType");n(this,"searchAuth","");n(this,"controllerSearch");n(this,"signalSearch");n(this,"controllerSuggest");n(this,"signalSuggest");n(this,"dataLayer");this.dataLayer=t,this.url=e.searchURL,this.dataLayer.setLanguage(e.language),this.suggester=e.suggesterURL,this.trackApiKey=e.trackApiKey,this.session=e.sessionId,this.searchAuthType=e.authType,this.searchAuth=e.searchAuth,this.authHeader=new Headers,this.authHeader.append("Accept","application/json");const a=this.searchAuthType==="token"?`Token ${e.searchAuth}`:`Basic ${e.searchAuth}`;this.authHeader.append("Authorization",a),this.authHeaderRelated=new Headers,this.authHeaderRelated.append("Accept","application/json"),this.authHeaderRelated.append("Authorization",e.searchAuth)}generateFacetQuery(e,t){let a=[];if(!t)e.forEach(function(r){const s=r.name+':"'+r.value+'"';a=a.concat("fq="+decodeURIComponent(s).replace(" "," "))});else{const r={};e.forEach(function(s){const i=s.name+":"+s.value,c=decodeURIComponent(i).replace(" "," ").split(":");r[c[0]]?r[c[0]].push(c[1]):r[c[0]]=[c[1]]});for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)){const i=r[s],c=s;let l="";for(const h of i)l+=` ${c}:"${h}"`;a=a.concat("fq="+l.trim())}}return a.length?"&"+a.join("&"):""}getRelatedSearches(e,t,a,r){const s=new Headers;s.append("Accept","application/json"),s.append("Authorization",a),fetch(t+"?search="+encodeURIComponent(e.query)+"&language="+this.dataLayer.language,{method:"GET",headers:s,credentials:"same-origin"}).then(i=>i.json()).then(i=>{r(i)})}cacheFacets(){this.dataLayer.searchObject.query!==this.cachedQuery&&(this.cachedQuery=this.dataLayer.searchObject.query,this.search({query:this.dataLayer.searchObject.query??"*",page:1,order:"",facets:[],additionalProps:this.dataLayer.searchObject.additionalProps},this.cacheFacetsCallback.bind(this)))}cacheFacetsCallback(e){let t=D.extractFacets(e);this.dataLayer.setSearchFacetsCached(t)}search(e,t,a=!1,r=!1){if(e.query&&e.query!=="undefined"){this.dataLayer.setSearchTerm(e.query),this.dataLayer.setLoading(!0),this.controllerSearch&&this.controllerSearch.abort(),this.controllerSearch=new AbortController,this.signalSearch=this.controllerSearch.signal;const s=new Proxy(new URLSearchParams(window.location.search),{get:(u,g)=>u.get(g)??""}),i=s.languageVariant?"&fq=_language:"+s.languageVariant:"",c=e.order?`&sort=${e.order}`:"",l=this.url+"?q="+encodeURIComponent(e.query.trim())+"&start="+(e.page-1)+this.toQueryString(e.additionalProps??[])+this.generateFacetQuery(e.facets.filter(u=>u.type==="or"||u.type==="showUnavailable"),!0)+this.generateFacetQuery(e.facets.filter(u=>u.type==="and"||u.type==="tabs"),!1)+c+`&spellcheck.correct=${this.dataLayer.autoCorrect&&!r}&language=`+this.dataLayer.language+i,h={method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSearch};a&&delete h.signal,fetch(l,h).then(u=>u.json()).then(u=>{this.dataLayer.setLoading(!1),t(u)}).catch(()=>{this.dataLayer.setLoading(!1)})}}suggest(e,t,a){this.controllerSuggest&&this.controllerSuggest.abort(),this.controllerSuggest=new AbortController,this.signalSuggest=this.controllerSuggest.signal;const r=this.suggester+"?q="+e.trim()+this.toQueryString(a)+"&language="+this.dataLayer.language;fetch(r,{method:"GET",headers:this.authHeader,credentials:"same-origin",signal:this.signalSuggest}).then(s=>s.json()).then(s=>{t(s)}).catch(()=>()=>{})}fields(){return this.fields}toQueryString(e){if(e.length===0)return"";const t=[];for(const a of e)t.push(encodeURIComponent(a.key)+"="+encodeURIComponent(a.value));return"&"+t.join("&")}}class Y{static getOrSetCookie(e){let t=this.getCookie(e);return t==null&&(t=this.makeid(25),this.setCookie(e,t,{secure:!0,"max-age":3600})),t}static makeid(e){let t="";const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=a.length;for(let s=0;s<e;s++)t+=a.charAt(Math.floor(Math.random()*r));return t}static getCookie(e){const t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0}static setCookie(e,t,a){const r={path:"/",...a};a.expires instanceof Date&&(r.expires=a.expires.toUTCString());let s=encodeURIComponent(e)+"="+encodeURIComponent(t);for(const i in r){s+="; "+i;const c=r[i];c!==!0&&(s+="="+c)}document.cookie=s}}class H{static trackClick(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,cDocId:e.result.uniqueId,cDocTitle:e.result.title,position:e.result.position,language:e.language};setTimeout(()=>{this.msq.push(["trackClick",t])},0)}static trackSearch(e){const t={key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,totalHits:e.totalResults,pageNo:e.currentPage,latency:e.latencyVal,session:e.session,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["track",t])},0)}static trackRelatedSearchClick(e){const t={session:e.session,key:e.trackApiKey,query:e.relatedSearch.search_term,position:e.relatedSearch.position,relatedSearch:e.relatedSearch.related_search,pageNo:e.currentPage,shownHits:e.recordsPerPage,totalHits:e.totalResults,language:e.language};setTimeout(()=>{this.msq.push(["trackRelatedSearchClick",t])},0)}static trackRelatedSearches(e){const t={session:e.session,key:e.trackApiKey,query:e.searchTerm,shownHits:e.recordsPerPage,latency:e.latencyVal,language:e.language,impressions:e.impressions};setTimeout(()=>{this.msq.push(["trackRelatedSearch",t])},0)}}n(H,"msq",window._msq||[]);/*!
|
|
2
2
|
* mustache.js - Logic-less {{mustache}} templates with JavaScript
|
|
3
3
|
* http://github.com/janl/mustache.js
|
|
4
4
|
*/var Z=Object.prototype.toString,q=Array.isArray||function(e){return Z.call(e)==="[object Array]"};function U(o){return typeof o=="function"}function ee(o){return q(o)?"array":typeof o}function W(o){return o.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function _(o,e){return o!=null&&typeof o=="object"&&e in o}function te(o,e){return o!=null&&typeof o!="object"&&o.hasOwnProperty&&o.hasOwnProperty(e)}var ae=RegExp.prototype.test;function se(o,e){return ae.call(o,e)}var re=/\S/;function ie(o){return!se(re,o)}var ne={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function ce(o){return String(o).replace(/[&<>"'`=\/]/g,function(t){return ne[t]})}var le=/\s*/,oe=/\s+/,z=/\s*=/,he=/\s*\}/,ue=/#|\^|\/|>|\{|&|=|!/;function de(o,e){if(!o)return[];var t=!1,a=[],r=[],s=[],i=!1,c=!1,l="",h=0;function u(){if(i&&!c)for(;s.length;)delete r[s.pop()];else s=[];i=!1,c=!1}var g,p,y;function b(P){if(typeof P=="string"&&(P=P.split(oe,2)),!q(P)||P.length!==2)throw new Error("Invalid tags: "+P);g=new RegExp(W(P[0])+"\\s*"),p=new RegExp("\\s*"+W(P[1])),y=new RegExp("\\s*"+W("}"+P[1]))}b(e||f.tags);for(var m=new $(o),v,S,L,R,I,T;!m.eos();){if(v=m.pos,L=m.scanUntil(g),L)for(var A=0,N=L.length;A<N;++A)R=L.charAt(A),ie(R)?(s.push(r.length),l+=R):(c=!0,t=!0,l+=" "),r.push(["text",R,v,v+1]),v+=1,R===`
|
|
@@ -219,4 +219,4 @@ var Me=Object.defineProperty;var Ae=(w,C,M)=>C in w?Me(w,C,{enumerable:!0,config
|
|
|
219
219
|
</div>
|
|
220
220
|
{{/hasResultsOrExternalPromotions}}
|
|
221
221
|
{{/searchExecuted}}
|
|
222
|
-
`,selectId:"searchstax-search-order-select"}};class d{}n(d,"externalPromotions",fe),n(d,"facets",me),n(d,"pagination",ye),n(d,"relatedSearches",Ce),n(d,"searchFeedback",ve),n(d,"searchInput",Se),n(d,"searchResults",Le),n(d,"sorting",be);class Te{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"externalPromotionsContainerId");n(this,"searchExternalPromotionsMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.externalPromotionsContainerId=((a=(t=this.config.templates)==null?void 0:t.mainTemplate)==null?void 0:a.externalPromotionsContainerId)||d.externalPromotions.mainTemplate.externalPromotionsContainerId,this.searchExternalPromotionsMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions}}addExternalSearch(e){var a,r,s,i;const t=document.getElementById(this.externalPromotionsContainerId);if(t){const c=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.externalPromotion)==null?void 0:s.template)||((i=d.externalPromotions.externalPromotion)==null?void 0:i.template),l=document.createElement("div");l.classList.add("searchstax-external-promotion"),l.addEventListener("click",h=>{this.trackClick(e,h)}),l.innerHTML=f.render(c,e),t.appendChild(l)}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window.open(e.url,"_blank")}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplate)==null?void 0:s.template)||((i=d.externalPromotions.mainTemplate)==null?void 0:i.template);if(this.dataLayer.renderingEngine===C.mustache){this.searchExternalPromotionsMainContainer.innerHTML=f.render(t,e);const c=document.getElementById(this.externalPromotionsContainerId);c&&(c.innerHTML="");for(const l of e.externalPromotions)this.addExternalSearch(l)}}}class xe{constructor(e,t){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"routerHelper");n(this,"cachedPhrase","");n(this,"isCached",!1);n(this,"overlayOpened",!1);n(this,"facetPaginationStep");n(this,"facetPaginationStepMobile");n(this,"searchFacetsMainContainer",null);n(this,"searchFacetsMobileContainer",null);n(this,"searchFacetsDesktopContainer",null);n(this,"facetLimits",{});n(this,"facetLimitsMobile",{});n(this,"deactivatedFacets",{});n(this,"cachedData",null);n(this,"cacheFacets");n(this,"onFacetSelect",(e,t,a,r)=>{if(e.stopPropagation(),!t.disabled){const s=a.querySelector("input");s.checked=r?s.checked:!s.checked;const i=this.dataLayer.searchObject;let c=[...i.facets];const l=this.extractFacetValue(t);s.checked?c.find(u=>F.deepEqual(u,l)?u:!1)||(this.config.facetingType==="tabs"&&(c=c.filter(u=>u.name!==l.name)),c.push(l)):c=c.filter(h=>!F.deepEqual(h,l)),setTimeout(()=>{this.dataLayer.setSearchObject({...i,facets:c,page:1}),this.config.facetingType==="tabs"&&this.renderMainTemplate(this.generateTemplateData(),!0),this.generateTemplateData()},0)}});this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.cacheFacets=t,this.facetPaginationStep=this.config.itemsPerPageDesktop,this.facetPaginationStepMobile=this.config.itemsPerPageMobile,this.searchFacetsMainContainer=document.getElementById(this.containerId),this.needCache&&t(),this.initializeSubscriptions()}get needCache(){return this.config.facetingType==="showUnavailable"||this.config.facetingType==="or"||this.config.facetingType==="tabs"}get needDisabling(){return this.config.facetingType==="showUnavailable"}initializeSubscriptions(){this.needCache&&this.dataLayer.$searchFacetsCached.subscribe(e=>{e&&this.dataLayer.searchFacets&&this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$searchResults.subscribe(e=>{e&&(this.needCache&&!this.isCached&&(this.dataLayer.searchFacets&&!this.dataLayer.searchFacetsCached&&this.dataLayer.setSearchFacetsCached(this.dataLayer.searchFacets),this.cacheFacets()),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query?(this.cachedPhrase=e.query,this.isCached=!1):this.isCached=!0})}extractFacetValue(e){return{type:this.config.facetingType,name:e.parentName,value:e.value}}applyFacetLimits(e,t){const a=t?this.facetPaginationStepMobile:this.facetPaginationStep,r=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(s=>{r[s.name]||(r[s.name]=a)}),e.map(s=>({...s,values:s.values.slice(0,r[s.name]),showingAllFacets:s.values.length<=r[s.name],hasMoreFacets:s.values.length>a}))}generateTemplateData(e){if(this.generateSelectedFacetsData(),this.dataLayer.searchFacets){let t=this.dataLayer.searchFacets;this.needCache&&this.dataLayer.searchFacetsCached&&(t=this.dataLayer.searchFacetsCached,this.needDisabling&&(t=t.map(r=>{var i;const s=(i=this.dataLayer.searchFacets)==null?void 0:i.find(c=>c.name===r.name);if(s){const c={...r,values:r.values.map(l=>{const h=s.values.find(u=>l.type==="range"?!1:l.type==="checkbox"?u.value===l.value:!1);return{...l,disabled:!h,isMobile:e}})};return this.dataLayer.setFacetsTemplateData(c),c}else{const c={...r,values:r.values.map(l=>({...l,disabled:!0})),isMobile:e};return this.dataLayer.setFacetsTemplateData(c),c}}))),this.config.specificFacets&&(t=t.filter(r=>{var s;return(s=this.config.specificFacets)==null?void 0:s.includes(r.name)}));const a={facets:this.applyFacetLimits(t,e),...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(a),a}else{const t={facets:[],...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(t),t}}createFacetItem(e,t,a){var l,h,u,g,p,y,b,m,v,S,L,R;const r=document.createElement("div");r.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||r.classList.add("active");const s=((u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:u.template)||((g=d.facets.facetItemContainerTemplate)==null?void 0:g.template);r.innerHTML=f.render(s,e),t.appendChild(r);const i=r.querySelector("."+(((b=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:b.facetListTitleContainerClass)||((m=d.facets.facetItemContainerTemplate)==null?void 0:m.facetListTitleContainerClass)));i==null||i.addEventListener("click",()=>{r.classList.toggle("active")});const c=r.querySelector("."+(((L=(S=(v=this.config)==null?void 0:v.templates)==null?void 0:S.facetItemContainerTemplate)==null?void 0:L.facetListContainerClass)||((R=d.facets.facetItemContainerTemplate)==null?void 0:R.facetListContainerClass)));c&&(e.values.forEach(I=>{this.createFacetListItem(I,c)}),e.hasMoreFacets&&this.createHasMoreComponent(e,c,a))}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>F.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t){var c,l,h,u,g,p,y,b,m,v,S,L,R;const a=document.createElement("div");a.classList.add("searchstax-facet-value-container"),e.disabled&&a.classList.add("searchstax-facet-value-disabled");const r=this.isChecked(e),s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.facetItemTemplate)==null?void 0:h.template)||((u=d.facets.facetItemTemplate)==null?void 0:u.template);a.innerHTML=f.render(s,{...e,isChecked:r});let i=(g=d.facets.facetItemTemplate)==null?void 0:g.checkTriggerClasses;i=((b=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemTemplate)==null?void 0:b.checkTriggerClasses)||i,i.forEach(I=>{var T;(T=a.querySelector("."+I))==null||T.addEventListener("click",A=>{this.onFacetSelect(A,e,a)})}),(R=a.querySelector("."+(((S=(v=(m=this.config)==null?void 0:m.templates)==null?void 0:v.facetItemTemplate)==null?void 0:S.inputCheckboxClass)||((L=d.facets.facetItemTemplate)==null?void 0:L.inputCheckboxClass))))==null||R.addEventListener("click",I=>{this.onFacetSelect(I,e,a,!0)}),t.appendChild(a)}createHasMoreComponent(e,t,a){var c,l,h,u,g,p,y,b;const r=document.createElement("div");r.classList.add("searchstax-facet-show-more-container");const s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.showMoreButtonContainerTemplate)==null?void 0:h.template)||((u=d.facets.showMoreButtonContainerTemplate)==null?void 0:u.template);r.innerHTML=f.render(s,e);const i=r.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)||((b=d.facets.showMoreButtonContainerTemplate)==null?void 0:b.showMoreButtonClass)));i&&(this.attachOnclickToShowMore(e,i,a),t&&t.appendChild(i))}attachOnclickToShowMore(e,t,a){t.addEventListener("click",r=>{this.onShowMoreLessClick(r,e,a)})}onShowMoreLessClick(e,t,a){e.preventDefault();const r=a?this.facetPaginationStepMobile:this.facetPaginationStep,s=a?this.facetLimits:this.facetLimitsMobile;s[t.name]===void 0?s[t.name]=r*2:s[t.name]<=t.values.length?s[t.name]=s[t.name]+r:s[t.name]=r,this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,r,s,i,c,l,h,u,g,p,y;if(e&&(!F.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const b=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplateDesktop)==null?void 0:s.template)||((i=d.facets.mainTemplateDesktop)==null?void 0:i.template);if(this.dataLayer.renderingEngine===C.mustache&&this.searchFacetsMainContainer){this.searchFacetsMainContainer.innerHTML=f.render(b,{...e});const m=(u=this.searchFacetsMainContainer)==null?void 0:u.querySelector("."+(((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||d.facets.mainTemplateDesktop.facetsContainerClass));if(m){m.innerHTML="";for(const v of e.facets)this.createFacetItem(v,m);if(this.searchFacetsMainContainer){const v=this.searchFacetsMainContainer.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||d.facets.mainTemplateDesktop.selectedFacetsContainerClass));v&&(this.createSelectedFacetsComponents(v),this.createClearFacetsComponents(v))}}}this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const r=decodeURIComponent(a.name),s=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const i=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,c=i==null?void 0:i.find(l=>l.name===r);if(c){const l=c.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${s}"`:!1);l&&e.push(l)}}}this.dataLayer.setSelectedFacetsTemplateData(e)}createSelectedFacetsComponents(e){var t;this.generateSelectedFacetsData(),(t=this.dataLayer.selectedFacetsTemplateData)==null||t.forEach(a=>{this.createSelectedFacetsComponent(e,a)})}createClearFacetsComponents(e){var i,c,l,h,u,g,p,y;const t=this.dataLayer.searchObject,a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.clearFacetsTemplate)==null?void 0:l.template)||((h=d.facets.clearFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=f.render(a,{shouldShow:t.facets.length>0});const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.clearFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.clearFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.removeSelectedFacets()}),e.appendChild(s))}createSelectedFacetsComponent(e,t){var i,c,l,h,u,g,p,y;const a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:l.template)||((h=d.facets.selectedFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=f.render(a,t);const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.selectedFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.selectedFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.unselectFacet(t)}),e.appendChild(s))}unselectFacet(e){console.log("data",e);const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(r=>JSON.stringify(r)!==JSON.stringify(this.extractFacetValue(e)))),setTimeout(()=>{this.dataLayer.setSearchObject({...t,facets:a}),this.generateSelectedFacetsData()},0)}removeSelectedFacets(){const e=this.dataLayer.searchObject;this.dataLayer.setSearchObject({...e,facets:[]})}createFilterByComponent(e){var s,i,c,l,h,u,g,p;const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.filterByTemplate)==null?void 0:c.template)||((l=d.facets.filterByTemplate)==null?void 0:l.template),a=document.createElement("div");a.innerHTML=f.render(t,{});const r=a.querySelector("."+(((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.filterByTemplate)==null?void 0:g.containerClass)||((p=d.facets.filterByTemplate)==null?void 0:p.containerClass)));r&&(e.prepend(r),r.addEventListener("click",this.openOverlay.bind(this)))}openOverlay(){var e;this.overlayOpened=!0,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;this.overlayOpened=!1,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.remove("searchstax-show"))}renderMobileTemplate(e){var t,a,r,s,i,c,l,h,u,g,p,y,b,m,v,S,L,R,I;if(e){const T=document.createElement("div");T.classList.add("searchstax-facets-container-mobile");const A=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:r.template)||((s=d.facets.mainTemplateMobile)==null?void 0:s.template);if(this.dataLayer.renderingEngine===C.mustache){if(T.innerHTML=f.render(A,{...e,overlayOpened:this.overlayOpened}),(i=this.searchFacetsMainContainer)==null||i.appendChild(T),(l=(c=this.config)==null?void 0:c.templates)!=null&&l.mainTemplateMobile)for(const B of((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.mainTemplateMobile)==null?void 0:g.closeOverlayTriggerClasses)||[]){const j=T.querySelector("."+B);j&&j.addEventListener("click",this.closeOverlay.bind(this))}else for(const B of d.facets.mainTemplateMobile.closeOverlayTriggerClasses){const j=T.querySelector("."+B);j&&j.addEventListener("click",this.closeOverlay.bind(this))}const N=T.querySelector("."+(((b=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:b.filterByContainerClass)||d.facets.mainTemplateMobile.filterByContainerClass));N&&this.createFilterByComponent(N);const P=T.querySelector("."+(((S=(v=(m=this.config)==null?void 0:m.templates)==null?void 0:v.mainTemplateMobile)==null?void 0:S.selectedFacetsContainerClass)||d.facets.mainTemplateMobile.selectedFacetsContainerClass));P&&(this.createSelectedFacetsComponents(P),this.createClearFacetsComponents(P));const Q=T.querySelector("."+(((I=(R=(L=this.config)==null?void 0:L.templates)==null?void 0:R.mainTemplateMobile)==null?void 0:I.facetsContainerClass)||d.facets.mainTemplateMobile.facetsContainerClass));if(Q){Q.innerHTML="";for(const B of e.facets)this.createFacetItem(B,Q,!0)}}}}}class ke{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"previousButtonClass");n(this,"nextButtonClass");n(this,"routerHelper");n(this,"searchPaginationMainContainer",null);var t,a,r,s,i,c;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.previousButtonClass)??d.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.nextButtonClass)??d.pagination.mainTemplate.nextButtonClass,this.searchPaginationMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e,t;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil((((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.totalResultsValue)??0)/10)}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a;const e={...this.dataLayer.parsedData.data,previousPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((a=this.dataLayer.searchObject)==null?void 0:a.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e){const t=this.dataLayer.searchObject;t&&(t.page=e,this.dataLayer.setSearchObject(t)),window.scrollTo(0,0)}nextPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1)}previousPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isFirstPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)}overridePaginationEvents(){if(this.searchPaginationMainContainer){const e=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass),t=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass);e&&e.addEventListener("click",this.previousPage.bind(this)),t&&t.addEventListener("click",this.nextPage.bind(this))}}renderMainTemplate(e){var a,r,s,i,c,l;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(r=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||r.removeEventListener("click",this.nextPage));const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.template)||((l=d.pagination.mainTemplate)==null?void 0:l.template);this.dataLayer.renderingEngine===C.mustache&&(this.searchPaginationMainContainer.innerHTML=f.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Re{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"relatedSearchesContainerClass");n(this,"searchRelatedSearchesMainContainer",null);n(this,"track");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.relatedSearchesContainerClass=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.relatedSearchesContainerClass)||d.relatedSearches.main.relatedSearchesContainerClass,this.searchRelatedSearchesMainContainer=document.getElementById(this.containerId),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}addRelatedSearchComponent(e,t){var s,i,c,l,h;const a=document.createElement("div"),r=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.relatedSearch)==null?void 0:c.template)||d.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===C.mustache){a.innerHTML=f.render(r,e);const u=a.querySelector("."+(((h=(l=this.config.templates)==null?void 0:l.relatedSearch)==null?void 0:h.relatedSearchContainerClass)||d.relatedSearches.relatedSearch.relatedSearchContainerClass));u&&(t.appendChild(u),u.addEventListener("click",()=>{this.executeSearch(e)}))}}executeSearch(e){const t=this.dataLayer.searchObject;t.query=e.related_search,this.dataLayer.setSearchObject(t),this.track(e)}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.relatedSearches.main.template;if(this.dataLayer.renderingEngine===C.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=f.render(t,e);const c=(i=this.searchRelatedSearchesMainContainer)==null?void 0:i.querySelector(`.${this.relatedSearchesContainerClass}`);if(c)for(const l of e.relatedSearches)this.addRelatedSearchComponent(l,c)}}}class Ie{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"searchFeedbackMainContainer",null);n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,this.searchFeedbackMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}onOriginalQueryClick(e){var a;e.stopPropagation(),e.preventDefault();const t=(a=e.target)==null?void 0:a.innerHTML;this.searchTrigger(t,!0)}attachClick(){var t,a,r,s,i;const e=(i=this.searchFeedbackMainContainer)==null?void 0:i.querySelector("."+(((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:r.originalQueryClass)||((s=d.searchFeedback.main)==null?void 0:s.originalQueryClass)));console.log("originalQuery",e),e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.searchFeedback.main.template;console.log("render"),this.dataLayer.renderingEngine===C.mustache&&(this.searchFeedbackMainContainer.innerHTML=f.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class Pe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"suggestAfterMinChars");n(this,"containerId");n(this,"currentInputValue","");n(this,"autosuggestResults");n(this,"searchInput");n(this,"actionButton");n(this,"autosuggestContainer");n(this,"buttonState","search");n(this,"selectedAutosuggestItem",-1);n(this,"suggestTrigger");n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.searchTrigger=e.searchTrigger,this.suggestTrigger=e.suggestTrigger,this.containerId=e.containerId,this.suggestAfterMinChars=e.config.suggestAfterMinChars,this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())}renderMainTemplate(){var s,i,c,l;const e=document.getElementById(this.containerId);if(!e)throw new Error("Search input container not found");const t=((i=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||d.searchInput.mainTemplate.template;if(this.dataLayer.renderingEngine===C.mustache){const h=f.render(t,{});e.innerHTML=h}const a=((l=(c=this.config.templates)==null?void 0:c.mainTemplate)==null?void 0:l.searchInputId)||d.searchInput.mainTemplate.searchInputId,r=document.querySelector(`#${a}`);if(r)this.searchInput=r,r.addEventListener("keyup",this.inputKeyupEvent.bind(this)),r.addEventListener("blur",this.hideAutosuggest.bind(this)),r.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===C.mustache&&(this.autosuggestContainer=document.createElement("div"),this.autosuggestContainer.classList.add("searchstax-autosuggest-container"),this.autosuggestContainer.addEventListener("mouseleave",()=>{this.resetAutosuggestSelection(),this.markActiveAutosuggestItem()}),(e=this.searchInput)==null||e.after(this.autosuggestContainer))}actionButtonInit(){this.actionButton=document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.buttonState==="search"?this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??""):this.buttonState==="close"&&this.searchInput&&(this.searchInput.value="",this.executeSearch(""))})}attachSubscriptions(){this.dataLayer.$searchTermChange.subscribe(()=>{this.handleSearchTermChange()}),this.dataLayer.$loadingChange.subscribe(()=>{this.handleLoadingChange()}),this.dataLayer.$searchAutosuggest.subscribe(e=>{e&&this.appendSuggestions(e)}),this.dataLayer.$searchObject.subscribe(e=>{e.query!=="undefined"&&e.query!==void 0&&e.query!=="*"&&this.searchInput&&(this.searchInput.value=this.cleanSuggestionTerm(e.query??""))})}handleLoadingChange(){this.dataLayer.loading?this.updateActionButtonState("loading"):this.handleSearchTermChange()}handleSearchTermChange(){var e;this.dataLayer.searchTerm===((e=this.searchInput)==null?void 0:e.value)&&this.searchInput.value!==""?this.updateActionButtonState("close"):this.updateActionButtonState("search")}updateActionButtonState(e){if(this.buttonState=e,this.actionButton)switch(this.actionButton.classList.remove("searchstax-spinner-icon"),this.actionButton.classList.remove("searchstax-search-close"),this.actionButton.classList.remove("searchstax-search-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon");break;case"close":this.actionButton.classList.add("searchstax-search-close");break}}selectPreviousAutosuggestItem(){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){const e=document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?a.classList.add("active"):a.classList.remove("active")}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest():t==="ArrowUp"?this.selectPreviousAutosuggestItem():t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){e.target&&e.target.value.length>=this.suggestAfterMinChars?this.executeSuggest(e.target.value):this.hideAutosuggest()}inputPasteEvent(e){setTimeout(()=>{this.autosuggestHandling(e),this.handleSearchTermChange()},0)}executeSuggest(e){this.suggestTrigger(e)}executeSearch(e){this.hideAutosuggest(),this.searchTrigger(e===""?"*":e)}suggestionChosen(){this.selectedAutosuggestItem>-1?this.autosuggestItemClicked(this.autosuggestResults.suggestions[this.selectedAutosuggestItem]):this.executeSearch(this.currentInputValue)}hideAutosuggest(){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection()},100)}cleanSuggestionTerm(e){return E.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var r,s,i;const t=document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((s=(r=this.config.templates)==null?void 0:r.autosuggestItemTemplate)==null?void 0:s.template)||((i=d.searchInput.autosuggestItemTemplate)==null?void 0:i.template);return t.innerHTML=f.render(a,e),t}onSuggestionEnter(e){var t;this.selectedAutosuggestItem=((t=this.autosuggestResults)==null?void 0:t.suggestions.indexOf(e))||0,this.markActiveAutosuggestItem()}appendSuggestions(e){this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.remove("hidden"));for(const t in e.suggest)if(Object.prototype.hasOwnProperty.call(e.suggest,t)){const a=e.suggest[t];for(const r in a)if(Object.prototype.hasOwnProperty.call(a,r)){const s=a[r];this.autosuggestResults=s,this.dataLayer.setAutosuggestResults(s),s.numFound>0?s.suggestions.forEach(i=>{this.autosuggestContainer&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(i))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class Fe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"linkClickCallback");n(this,"searchCallback");n(this,"containerId");n(this,"searchResultsMainContainer");n(this,"searchResultsContainer");n(this,"searchResultLinks",[]);this.linkClickCallback=e.linkClickCallback,this.searchCallback=e.searchTrigger,this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId;const t=document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,r,s,i,c;const e=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.noSearchResultTemplate)==null?void 0:s.template)||((i=d.searchResults.noSearchResultTemplate)==null?void 0:i.template),t=((c=this.dataLayer.searchResultsMetadata)==null?void 0:c.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===C.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=f.render(e,{spellingSuggestion:t,searchTerm:this.dataLayer.searchTerm})),t&&this.searchResultsContainer){const l=this.searchResultsContainer.querySelector("a");l&&l.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,r,s;if(this.dataLayer.renderingEngine===C.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)this.renderNoResultsTemplate();else{const i=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:r.template)||((s=d.searchResults.searchResultTemplate)==null?void 0:s.template),c=e.map(l=>f.render(i,l));this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{})})}get uniqueIdAttribute(){var e,t,a,r;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((r=d.searchResults.searchResultTemplate)==null?void 0:r.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)})})}renderMainTemplate(){var t,a,r,s;const e=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.template)||((s=d.searchResults.mainTemplate)==null?void 0:s.template);this.dataLayer.renderingEngine===C.mustache&&(this.searchResultsMainContainer.innerHTML=f.render(e,{}),setTimeout(()=>{var l,h,u,g,p,y,b;const i=(u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.mainTemplate)!=null&&u.searchResultsContainerId?(y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplate)==null?void 0:y.searchResultsContainerId:(b=d.searchResults.mainTemplate)==null?void 0:b.searchResultsContainerId,c=document.getElementById(i);if(c)this.searchResultsContainer=c;else throw new Error(`Search Results Container with id ${i} not found`)},0))}}class Ee{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"selectId");n(this,"searchSortingMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.selectId=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.selectId)||d.sorting.main.selectId,this.searchSortingMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document.getElementById(this.selectId);if(e){const t=e.querySelector(`option[value="${decodeURIComponent(this.dataLayer.searchObject.order)}"]`);t&&(t.selected=!0)}}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.sorting.main.template;if(this.dataLayer.renderingEngine===C.mustache){this.searchSortingMainContainer.innerHTML=f.render(t,e),this.markOptionSelected();const i=document.getElementById(this.selectId);i&&i.addEventListener("change",c=>{this.setOrderQuery(c.target.value)})}}}class we{constructor(e=C.mustache){n(this,"routerEnabled",!1);n(this,"cachedQuery","");n(this,"routerHelper");n(this,"searchHelper");n(this,"searchResultsConfig");n(this,"searchPaginationConfig");n(this,"searchFeedbackConfig");n(this,"searchSortingConfig");n(this,"searchFacetsConfig");n(this,"relatedSearchesConfig");n(this,"externalPromotionsConfig");n(this,"searchInputWidget");n(this,"searchResultsWidget");n(this,"searchFacetsWidget");n(this,"searchPaginationWidget");n(this,"searchFeedbackWidget");n(this,"searchSortingWidget");n(this,"relatedSearchesWidget");n(this,"externalPromotionsWidget");n(this,"dataLayer",new J(Y.getOrSetCookie("searchstax_session_id")));n(this,"firstRequest",!0);e&&this.dataLayer.setRenderingEngine(e),this.handleHooks()}setRenderingEngine(e=C.mustache){this.dataLayer.setRenderingEngine(e)}handleHooks(){var e,t;(t=(e=this.dataLayer.searchstaxConfig)==null?void 0:e.hooks)!=null&&t.afterSearch&&this.dataLayer.$searchResults.subscribe(a=>{this.dataLayer.searchstaxConfig.hooks.afterSearch(a)}),this.dataLayer.$searchObject.subscribe(a=>{a.query!==""&&this.search(a)}),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&H.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}initialize(e){var t,a;e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new G({...e,sessionId:this.dataLayer.sessionId},this.dataLayer)),((t=e.router)==null?void 0:t.enabled)===void 0||((a=e.router)==null?void 0:a.enabled)===!0?(this.routerEnabled=!0,this.routerHelper=new K(e.router?e.router:{enabled:!0}),this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href)),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href))})):this.routerHelper=new K({})}search(e){if(this.searchHelper&&e.query!==""&&e.query!==void 0&&e.query!=="undefined"){const t=this.dataLayer.forceNotCorrect;this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1,this.getRelatedSearches()}}getRelatedSearches(){this.searchHelper&&this.relatedSearchesConfig&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var s;const a=(((s=e.response)==null?void 0:s.docs)??[]).map((i,c)=>({...i,position:c+1})),r=[];for(const i of a)r.push({relatedSearch:i.related_search,position:i.position});this.dataLayer.searchResultsMetadata&&H.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:r}),this.dataLayer.setSearchRelatedSearches(a)}handleRouter(){this.routerEnabled&&this.routerHelper.updateUrl(this.dataLayer.searchObject)}parseSearchResultsResponse(e){var s,i;this.handleRouter();let t=D.combineResultsWithMetadata(e),a=D.extractFacets(e);this.dataLayer.setSearchFacets(a),(i=(s=this.dataLayer.searchstaxConfig)==null?void 0:s.hooks)!=null&&i.afterSearch&&(t=this.dataLayer.searchstaxConfig.hooks.afterSearch(t)),this.dataLayer.setSearchExternalPromotions(e.externalLinks??[]);const r=D.extractSearchResultsMetadata(e);this.dataLayer.setSearchResultsMetadata(r),this.dataLayer.setSearchResults(t)}cacheFacets(){var e;(e=this.searchHelper)==null||e.cacheFacets()}parseSuggestSuggestResponse(e){var a,r;let t=e;(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.afterAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.afterAutosuggest(e)),this.dataLayer.setSearchAutosuggest(t)}suggest(e,t){this.searchHelper&&this.searchHelper.suggest(e,this.parseSuggestSuggestResponse.bind(this),t)}changeLanguage(e){this.searchHelper&&this.dataLayer.setLanguage(e)}addSearchInputWidget(e,t){this.dataLayer.searchInputConfig||(this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Pe({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer}))}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new Fe({containerId:e,linkClickCallback:this.executeLinkClick.bind(this),searchTrigger:this.executeSearch.bind(this),config:t,dataLayer:this.dataLayer}))}addPaginationWidget(e,t){this.searchPaginationConfig=t,this.searchPaginationWidget=new ke({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig||(this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Ie({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)}))}addSearchSortingWidget(e,t){this.searchSortingConfig||(this.searchSortingConfig=t,this.searchSortingWidget=new Ee({containerId:e,config:t,dataLayer:this.dataLayer}))}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig||(this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Re({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0))}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig||(this.externalPromotionsConfig=t,this.externalPromotionsWidget=new Te({containerId:e,config:t,dataLayer:this.dataLayer}))}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new xe({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){var s,i;const a={...this.dataLayer.searchObject};a.query=E.removeXSSRiskyTags(e),a.page=1,a.facets=[],this.dataLayer.forceNotCorrect=!!t;let r=(s=this.routerHelper)==null?void 0:s.searchObjectToParams(a);r&&(r=(i=this.routerHelper)==null?void 0:i.extractParamsThatDoNotStartWithRouteName(r)),r&&(a.additionalProps=Object.keys(r).map(c=>r?{key:c,value:r[c]}:{key:"",value:""})),this.dataLayer.setSearchObject(a)}executeSuggest(e){var a,r;let t={term:e,queryParams:[]};(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.beforeAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.beforeAutosuggest(t)),t&&t.term!==void 0&&t.queryParams!==void 0&&this.suggest(t.term,t.queryParams)}trackRelatedSearchClick(e){this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&H.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e})}executeLinkClick(e){var a,r;let t=D.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((r=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&r.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&(H.trackClick({result:t,...this.dataLayer.parsedData.trackingData}),setTimeout(()=>{window.location.href=(t==null?void 0:t.url)??""},0)))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}changeResultTemplate(e){var t,a,r;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(r=this.searchResultsWidget)==null||r.changeTemplate())}}w.Searchstax=we,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})})(this["@searchstaxInc/searchstudioUxJs"]=this["@searchstaxInc/searchstudioUxJs"]||{});
|
|
222
|
+
`,selectId:"searchstax-search-order-select"}};class d{}n(d,"externalPromotions",fe),n(d,"facets",me),n(d,"pagination",ye),n(d,"relatedSearches",Ce),n(d,"searchFeedback",ve),n(d,"searchInput",Se),n(d,"searchResults",Le),n(d,"sorting",be);class Te{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"externalPromotionsContainerId");n(this,"searchExternalPromotionsMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.externalPromotionsContainerId=((a=(t=this.config.templates)==null?void 0:t.mainTemplate)==null?void 0:a.externalPromotionsContainerId)||d.externalPromotions.mainTemplate.externalPromotionsContainerId,this.searchExternalPromotionsMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions}}addExternalSearch(e){var a,r,s,i;const t=document.getElementById(this.externalPromotionsContainerId);if(t){const c=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.externalPromotion)==null?void 0:s.template)||((i=d.externalPromotions.externalPromotion)==null?void 0:i.template),l=document.createElement("div");l.classList.add("searchstax-external-promotion"),l.addEventListener("click",h=>{this.trackClick(e,h)}),l.innerHTML=f.render(c,e),t.appendChild(l)}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window.open(e.url,"_blank")}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplate)==null?void 0:s.template)||((i=d.externalPromotions.mainTemplate)==null?void 0:i.template);if(this.dataLayer.renderingEngine===C.mustache){this.searchExternalPromotionsMainContainer.innerHTML=f.render(t,e);const c=document.getElementById(this.externalPromotionsContainerId);c&&(c.innerHTML="");for(const l of e.externalPromotions)this.addExternalSearch(l)}}}class xe{constructor(e,t){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"routerHelper");n(this,"cachedPhrase","");n(this,"isCached",!1);n(this,"overlayOpened",!1);n(this,"facetPaginationStep");n(this,"facetPaginationStepMobile");n(this,"searchFacetsMainContainer",null);n(this,"searchFacetsMobileContainer",null);n(this,"searchFacetsDesktopContainer",null);n(this,"facetLimits",{});n(this,"facetLimitsMobile",{});n(this,"deactivatedFacets",{});n(this,"cachedData",null);n(this,"cacheFacets");n(this,"onFacetSelect",(e,t,a,r)=>{if(e.stopPropagation(),!t.disabled){const s=a.querySelector("input");s.checked=r?s.checked:!s.checked;const i=this.dataLayer.searchObject;let c=[...i.facets];const l=this.extractFacetValue(t);s.checked?c.find(u=>F.deepEqual(u,l)?u:!1)||(this.config.facetingType==="tabs"&&(c=c.filter(u=>u.name!==l.name)),c.push(l)):c=c.filter(h=>!F.deepEqual(h,l)),setTimeout(()=>{this.dataLayer.setSearchObject({...i,facets:c,page:1}),this.config.facetingType==="tabs"&&this.renderMainTemplate(this.generateTemplateData(),!0)},0)}});this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.cacheFacets=t,this.facetPaginationStep=this.config.itemsPerPageDesktop,this.facetPaginationStepMobile=this.config.itemsPerPageMobile,this.searchFacetsMainContainer=document.getElementById(this.containerId),this.needCache&&t(),this.initializeSubscriptions()}get needCache(){return this.config.facetingType==="showUnavailable"||this.config.facetingType==="or"||this.config.facetingType==="tabs"}get needDisabling(){return this.config.facetingType==="showUnavailable"}initializeSubscriptions(){this.needCache&&this.dataLayer.$searchFacetsCached.subscribe(e=>{e&&this.dataLayer.searchFacets&&this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$searchResults.subscribe(e=>{e&&(this.needCache&&!this.isCached&&(this.dataLayer.searchFacets&&!this.dataLayer.searchFacetsCached&&this.dataLayer.setSearchFacetsCached(this.dataLayer.searchFacets),this.cacheFacets()),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query?(this.cachedPhrase=e.query,this.isCached=!1):this.isCached=!0})}extractFacetValue(e){return{type:this.config.facetingType,name:e.parentName,value:e.value}}applyFacetLimits(e,t){const a=t?this.facetPaginationStepMobile:this.facetPaginationStep,r=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(s=>{r[s.name]||(r[s.name]=a)}),e.map(s=>({...s,values:s.values.slice(0,r[s.name]),showingAllFacets:s.values.length<=r[s.name],hasMoreFacets:s.values.length>a}))}generateTemplateData(e){if(this.generateSelectedFacetsData(),this.dataLayer.searchFacets){let t=this.dataLayer.searchFacets;this.needCache&&this.dataLayer.searchFacetsCached&&(t=this.dataLayer.searchFacetsCached,this.needDisabling&&(t=t.map(r=>{var i;const s=(i=this.dataLayer.searchFacets)==null?void 0:i.find(c=>c.name===r.name);return s?{...r,values:r.values.map(l=>{const h=s.values.find(u=>l.type==="range"?!1:l.type==="checkbox"?u.value===l.value:!1);return{...l,disabled:!h,isMobile:e}})}:{...r,values:r.values.map(l=>({...l,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(r=>{var s;return(s=this.config.specificFacets)==null?void 0:s.includes(r.name)}));const a={facets:this.applyFacetLimits(t,e),...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(a),a}else{const t={facets:[],...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(t),t}}createFacetItem(e,t,a){var l,h,u,g,p,y,b,m,v,S,L,R;const r=document.createElement("div");r.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||r.classList.add("active");const s=((u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:u.template)||((g=d.facets.facetItemContainerTemplate)==null?void 0:g.template);r.innerHTML=f.render(s,e),t.appendChild(r);const i=r.querySelector("."+(((b=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:b.facetListTitleContainerClass)||((m=d.facets.facetItemContainerTemplate)==null?void 0:m.facetListTitleContainerClass)));i==null||i.addEventListener("click",()=>{r.classList.toggle("active")});const c=r.querySelector("."+(((L=(S=(v=this.config)==null?void 0:v.templates)==null?void 0:S.facetItemContainerTemplate)==null?void 0:L.facetListContainerClass)||((R=d.facets.facetItemContainerTemplate)==null?void 0:R.facetListContainerClass)));c&&(e.values.forEach(I=>{this.createFacetListItem(I,c)}),e.hasMoreFacets&&this.createHasMoreComponent(e,c,a))}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>F.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t){var c,l,h,u,g,p,y,b,m,v,S,L,R;const a=document.createElement("div");a.classList.add("searchstax-facet-value-container"),e.disabled&&a.classList.add("searchstax-facet-value-disabled");const r=this.isChecked(e),s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.facetItemTemplate)==null?void 0:h.template)||((u=d.facets.facetItemTemplate)==null?void 0:u.template);a.innerHTML=f.render(s,{...e,isChecked:r});let i=(g=d.facets.facetItemTemplate)==null?void 0:g.checkTriggerClasses;i=((b=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.facetItemTemplate)==null?void 0:b.checkTriggerClasses)||i,i.forEach(I=>{var T;(T=a.querySelector("."+I))==null||T.addEventListener("click",A=>{this.onFacetSelect(A,e,a)})}),(R=a.querySelector("."+(((S=(v=(m=this.config)==null?void 0:m.templates)==null?void 0:v.facetItemTemplate)==null?void 0:S.inputCheckboxClass)||((L=d.facets.facetItemTemplate)==null?void 0:L.inputCheckboxClass))))==null||R.addEventListener("click",I=>{this.onFacetSelect(I,e,a,!0)}),t.appendChild(a)}createHasMoreComponent(e,t,a){var c,l,h,u,g,p,y,b;const r=document.createElement("div");r.classList.add("searchstax-facet-show-more-container");const s=((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.showMoreButtonContainerTemplate)==null?void 0:h.template)||((u=d.facets.showMoreButtonContainerTemplate)==null?void 0:u.template);r.innerHTML=f.render(s,e);const i=r.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)||((b=d.facets.showMoreButtonContainerTemplate)==null?void 0:b.showMoreButtonClass)));i&&(this.attachOnclickToShowMore(e,i,a),t&&t.appendChild(i))}attachOnclickToShowMore(e,t,a){t.addEventListener("click",r=>{this.onShowMoreLessClick(r,e,a)})}onShowMoreLessClick(e,t,a){e.preventDefault();const r=a?this.facetPaginationStepMobile:this.facetPaginationStep,s=a?this.facetLimits:this.facetLimitsMobile;s[t.name]===void 0?s[t.name]=r*2:s[t.name]<=t.values.length?s[t.name]=s[t.name]+r:s[t.name]=r,this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,r,s,i,c,l,h,u,g,p,y;if(e&&(!F.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const b=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.mainTemplateDesktop)==null?void 0:s.template)||((i=d.facets.mainTemplateDesktop)==null?void 0:i.template);if(this.dataLayer.renderingEngine===C.mustache&&this.searchFacetsMainContainer){this.searchFacetsMainContainer.innerHTML=f.render(b,{...e});const m=(u=this.searchFacetsMainContainer)==null?void 0:u.querySelector("."+(((h=(l=(c=this.config)==null?void 0:c.templates)==null?void 0:l.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||d.facets.mainTemplateDesktop.facetsContainerClass));if(m){m.innerHTML="";for(const v of e.facets)this.createFacetItem(v,m);if(this.searchFacetsMainContainer){const v=this.searchFacetsMainContainer.querySelector("."+(((y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||d.facets.mainTemplateDesktop.selectedFacetsContainerClass));v&&(this.createSelectedFacetsComponents(v),this.createClearFacetsComponents(v))}}}this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const r=decodeURIComponent(a.name),s=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const i=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,c=i==null?void 0:i.find(l=>l.name===r);if(c){const l=c.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${s}"`:!1);l&&e.push(l)}}}this.dataLayer.setSelectedFacetsTemplateData(e)}createSelectedFacetsComponents(e){var t;this.generateSelectedFacetsData(),(t=this.dataLayer.selectedFacetsTemplateData)==null||t.forEach(a=>{this.createSelectedFacetsComponent(e,a)})}createClearFacetsComponents(e){var i,c,l,h,u,g,p,y;const t=this.dataLayer.searchObject,a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.clearFacetsTemplate)==null?void 0:l.template)||((h=d.facets.clearFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=f.render(a,{shouldShow:t.facets.length>0});const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.clearFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.clearFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.removeSelectedFacets()}),e.appendChild(s))}createSelectedFacetsComponent(e,t){var i,c,l,h,u,g,p,y;const a=((l=(c=(i=this.config)==null?void 0:i.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:l.template)||((h=d.facets.selectedFacetsTemplate)==null?void 0:h.template),r=document.createElement("div");r.innerHTML=f.render(a,t);const s=r.querySelector("."+(((p=(g=(u=this.config)==null?void 0:u.templates)==null?void 0:g.selectedFacetsTemplate)==null?void 0:p.containerClass)||((y=d.facets.selectedFacetsTemplate)==null?void 0:y.containerClass)));s&&(s.addEventListener("click",()=>{this.unselectFacet(t)}),e.appendChild(s))}unselectFacet(e){const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(r=>JSON.stringify(r)!==JSON.stringify(this.extractFacetValue(e)))),setTimeout(()=>{this.dataLayer.setSearchObject({...t,facets:a}),this.generateSelectedFacetsData()},0)}removeSelectedFacets(){const e=this.dataLayer.searchObject;this.dataLayer.setSearchObject({...e,facets:[]})}createFilterByComponent(e){var s,i,c,l,h,u,g,p;const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.filterByTemplate)==null?void 0:c.template)||((l=d.facets.filterByTemplate)==null?void 0:l.template),a=document.createElement("div");a.innerHTML=f.render(t,{});const r=a.querySelector("."+(((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.filterByTemplate)==null?void 0:g.containerClass)||((p=d.facets.filterByTemplate)==null?void 0:p.containerClass)));r&&(e.prepend(r),r.addEventListener("click",this.openOverlay.bind(this)))}openOverlay(){var e;this.overlayOpened=!0,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;this.overlayOpened=!1,this.searchFacetsMainContainer&&(document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.remove("searchstax-show"))}renderMobileTemplate(e){var t,a,r,s,i,c,l,h,u,g,p,y,b,m,v,S,L,R,I;if(e){const T=document.createElement("div");T.classList.add("searchstax-facets-container-mobile");const A=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:r.template)||((s=d.facets.mainTemplateMobile)==null?void 0:s.template);if(this.dataLayer.renderingEngine===C.mustache){if(T.innerHTML=f.render(A,{...e,overlayOpened:this.overlayOpened}),(i=this.searchFacetsMainContainer)==null||i.appendChild(T),(l=(c=this.config)==null?void 0:c.templates)!=null&&l.mainTemplateMobile)for(const B of((g=(u=(h=this.config)==null?void 0:h.templates)==null?void 0:u.mainTemplateMobile)==null?void 0:g.closeOverlayTriggerClasses)||[]){const j=T.querySelector("."+B);j&&j.addEventListener("click",this.closeOverlay.bind(this))}else for(const B of d.facets.mainTemplateMobile.closeOverlayTriggerClasses){const j=T.querySelector("."+B);j&&j.addEventListener("click",this.closeOverlay.bind(this))}const N=T.querySelector("."+(((b=(y=(p=this.config)==null?void 0:p.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:b.filterByContainerClass)||d.facets.mainTemplateMobile.filterByContainerClass));N&&this.createFilterByComponent(N);const P=T.querySelector("."+(((S=(v=(m=this.config)==null?void 0:m.templates)==null?void 0:v.mainTemplateMobile)==null?void 0:S.selectedFacetsContainerClass)||d.facets.mainTemplateMobile.selectedFacetsContainerClass));P&&(this.createSelectedFacetsComponents(P),this.createClearFacetsComponents(P));const Q=T.querySelector("."+(((I=(R=(L=this.config)==null?void 0:L.templates)==null?void 0:R.mainTemplateMobile)==null?void 0:I.facetsContainerClass)||d.facets.mainTemplateMobile.facetsContainerClass));if(Q){Q.innerHTML="";for(const B of e.facets)this.createFacetItem(B,Q,!0)}}}}}class ke{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"previousButtonClass");n(this,"nextButtonClass");n(this,"routerHelper");n(this,"searchPaginationMainContainer",null);var t,a,r,s,i,c;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.previousButtonClass)??d.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.nextButtonClass)??d.pagination.mainTemplate.nextButtonClass,this.searchPaginationMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}get isFirstPage(){var e;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===1}get isLastPage(){var e,t;return((e=this.dataLayer.searchObject)==null?void 0:e.page)===Math.ceil((((t=this.dataLayer.searchResultsMetadata)==null?void 0:t.totalResultsValue)??0)/10)}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a;const e={...this.dataLayer.parsedData.data,previousPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:this.routerHelper.searchObjectToUrl({...this.dataLayer.searchObject,page:((a=this.dataLayer.searchObject)==null?void 0:a.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e){const t=this.dataLayer.searchObject;t&&(t.page=e,this.dataLayer.setSearchObject(t)),window.scrollTo(0,0)}nextPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1)}previousPage(e){var t;e.preventDefault(),e.stopPropagation(),this.isFirstPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)-1)}overridePaginationEvents(){if(this.searchPaginationMainContainer){const e=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass),t=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass);e&&e.addEventListener("click",this.previousPage.bind(this)),t&&t.addEventListener("click",this.nextPage.bind(this))}}renderMainTemplate(e){var a,r,s,i,c,l;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(r=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||r.removeEventListener("click",this.nextPage));const t=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.mainTemplate)==null?void 0:c.template)||((l=d.pagination.mainTemplate)==null?void 0:l.template);this.dataLayer.renderingEngine===C.mustache&&(this.searchPaginationMainContainer.innerHTML=f.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Re{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"relatedSearchesContainerClass");n(this,"searchRelatedSearchesMainContainer",null);n(this,"track");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.relatedSearchesContainerClass=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.relatedSearchesContainerClass)||d.relatedSearches.main.relatedSearchesContainerClass,this.searchRelatedSearchesMainContainer=document.getElementById(this.containerId),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}addRelatedSearchComponent(e,t){var s,i,c,l,h;const a=document.createElement("div"),r=((c=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.relatedSearch)==null?void 0:c.template)||d.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===C.mustache){a.innerHTML=f.render(r,e);const u=a.querySelector("."+(((h=(l=this.config.templates)==null?void 0:l.relatedSearch)==null?void 0:h.relatedSearchContainerClass)||d.relatedSearches.relatedSearch.relatedSearchContainerClass));u&&(t.appendChild(u),u.addEventListener("click",()=>{this.executeSearch(e)}))}}executeSearch(e){const t=this.dataLayer.searchObject;t.query=e.related_search,this.dataLayer.setSearchObject(t),this.track(e)}renderMainTemplate(e){var a,r,s,i;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.relatedSearches.main.template;if(this.dataLayer.renderingEngine===C.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=f.render(t,e);const c=(i=this.searchRelatedSearchesMainContainer)==null?void 0:i.querySelector(`.${this.relatedSearchesContainerClass}`);if(c)for(const l of e.relatedSearches)this.addRelatedSearchComponent(l,c)}}}class Ie{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"searchFeedbackMainContainer",null);n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,this.searchFeedbackMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}onOriginalQueryClick(e){var a;e.stopPropagation(),e.preventDefault();const t=(a=e.target)==null?void 0:a.innerHTML;this.searchTrigger(t,!0)}attachClick(){var t,a,r,s,i;const e=(i=this.searchFeedbackMainContainer)==null?void 0:i.querySelector("."+(((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:r.originalQueryClass)||((s=d.searchFeedback.main)==null?void 0:s.originalQueryClass)));console.log("originalQuery",e),e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.searchFeedback.main.template;console.log("render"),this.dataLayer.renderingEngine===C.mustache&&(this.searchFeedbackMainContainer.innerHTML=f.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class Pe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"suggestAfterMinChars");n(this,"containerId");n(this,"currentInputValue","");n(this,"autosuggestResults");n(this,"searchInput");n(this,"actionButton");n(this,"autosuggestContainer");n(this,"buttonState","search");n(this,"selectedAutosuggestItem",-1);n(this,"suggestTrigger");n(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.searchTrigger=e.searchTrigger,this.suggestTrigger=e.suggestTrigger,this.containerId=e.containerId,this.suggestAfterMinChars=e.config.suggestAfterMinChars,this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())}renderMainTemplate(){var s,i,c,l;const e=document.getElementById(this.containerId);if(!e)throw new Error("Search input container not found");const t=((i=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||d.searchInput.mainTemplate.template;if(this.dataLayer.renderingEngine===C.mustache){const h=f.render(t,{});e.innerHTML=h}const a=((l=(c=this.config.templates)==null?void 0:c.mainTemplate)==null?void 0:l.searchInputId)||d.searchInput.mainTemplate.searchInputId,r=document.querySelector(`#${a}`);if(r)this.searchInput=r,r.addEventListener("keyup",this.inputKeyupEvent.bind(this)),r.addEventListener("blur",this.hideAutosuggest.bind(this)),r.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===C.mustache&&(this.autosuggestContainer=document.createElement("div"),this.autosuggestContainer.classList.add("searchstax-autosuggest-container"),this.autosuggestContainer.addEventListener("mouseleave",()=>{this.resetAutosuggestSelection(),this.markActiveAutosuggestItem()}),(e=this.searchInput)==null||e.after(this.autosuggestContainer))}actionButtonInit(){this.actionButton=document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.buttonState==="search"?this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??""):this.buttonState==="close"&&this.searchInput&&(this.searchInput.value="",this.executeSearch(""))})}attachSubscriptions(){this.dataLayer.$searchTermChange.subscribe(()=>{this.handleSearchTermChange()}),this.dataLayer.$loadingChange.subscribe(()=>{this.handleLoadingChange()}),this.dataLayer.$searchAutosuggest.subscribe(e=>{e&&this.appendSuggestions(e)}),this.dataLayer.$searchObject.subscribe(e=>{e.query!=="undefined"&&e.query!==void 0&&e.query!=="*"&&this.searchInput&&(this.searchInput.value=this.cleanSuggestionTerm(e.query??""))})}handleLoadingChange(){this.dataLayer.loading?this.updateActionButtonState("loading"):this.handleSearchTermChange()}handleSearchTermChange(){var e;this.dataLayer.searchTerm===((e=this.searchInput)==null?void 0:e.value)&&this.searchInput.value!==""?this.updateActionButtonState("close"):this.updateActionButtonState("search")}updateActionButtonState(e){if(this.buttonState=e,this.actionButton)switch(this.actionButton.classList.remove("searchstax-spinner-icon"),this.actionButton.classList.remove("searchstax-search-close"),this.actionButton.classList.remove("searchstax-search-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon");break;case"close":this.actionButton.classList.add("searchstax-search-close");break}}selectPreviousAutosuggestItem(){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){const e=document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?a.classList.add("active"):a.classList.remove("active")}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest():t==="ArrowUp"?this.selectPreviousAutosuggestItem():t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){e.target&&e.target.value.length>=this.suggestAfterMinChars?this.executeSuggest(e.target.value):this.hideAutosuggest()}inputPasteEvent(e){setTimeout(()=>{this.autosuggestHandling(e),this.handleSearchTermChange()},0)}executeSuggest(e){this.suggestTrigger(e)}executeSearch(e){this.hideAutosuggest(),this.searchTrigger(e===""?"*":e)}suggestionChosen(){this.selectedAutosuggestItem>-1?this.autosuggestItemClicked(this.autosuggestResults.suggestions[this.selectedAutosuggestItem]):this.executeSearch(this.currentInputValue)}hideAutosuggest(){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection()},100)}cleanSuggestionTerm(e){return E.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var r,s,i;const t=document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((s=(r=this.config.templates)==null?void 0:r.autosuggestItemTemplate)==null?void 0:s.template)||((i=d.searchInput.autosuggestItemTemplate)==null?void 0:i.template);return t.innerHTML=f.render(a,e),t}onSuggestionEnter(e){var t;this.selectedAutosuggestItem=((t=this.autosuggestResults)==null?void 0:t.suggestions.indexOf(e))||0,this.markActiveAutosuggestItem()}appendSuggestions(e){this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.remove("hidden"));for(const t in e.suggest)if(Object.prototype.hasOwnProperty.call(e.suggest,t)){const a=e.suggest[t];for(const r in a)if(Object.prototype.hasOwnProperty.call(a,r)){const s=a[r];this.autosuggestResults=s,this.dataLayer.setAutosuggestResults(s),s.numFound>0?s.suggestions.forEach(i=>{this.autosuggestContainer&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(i))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class Fe{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"linkClickCallback");n(this,"searchCallback");n(this,"containerId");n(this,"searchResultsMainContainer");n(this,"searchResultsContainer");n(this,"searchResultLinks",[]);this.linkClickCallback=e.linkClickCallback,this.searchCallback=e.searchTrigger,this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId;const t=document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,r,s,i,c;const e=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.noSearchResultTemplate)==null?void 0:s.template)||((i=d.searchResults.noSearchResultTemplate)==null?void 0:i.template),t=((c=this.dataLayer.searchResultsMetadata)==null?void 0:c.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===C.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=f.render(e,{spellingSuggestion:t,searchTerm:this.dataLayer.searchTerm})),t&&this.searchResultsContainer){const l=this.searchResultsContainer.querySelector("a");l&&l.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,r,s;if(this.dataLayer.renderingEngine===C.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)this.renderNoResultsTemplate();else{const i=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:r.template)||((s=d.searchResults.searchResultTemplate)==null?void 0:s.template),c=e.map(l=>f.render(i,l));this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{})})}get uniqueIdAttribute(){var e,t,a,r;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((r=d.searchResults.searchResultTemplate)==null?void 0:r.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)})})}renderMainTemplate(){var t,a,r,s;const e=((r=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:r.template)||((s=d.searchResults.mainTemplate)==null?void 0:s.template);this.dataLayer.renderingEngine===C.mustache&&(this.searchResultsMainContainer.innerHTML=f.render(e,{}),setTimeout(()=>{var l,h,u,g,p,y,b;const i=(u=(h=(l=this.config)==null?void 0:l.templates)==null?void 0:h.mainTemplate)!=null&&u.searchResultsContainerId?(y=(p=(g=this.config)==null?void 0:g.templates)==null?void 0:p.mainTemplate)==null?void 0:y.searchResultsContainerId:(b=d.searchResults.mainTemplate)==null?void 0:b.searchResultsContainerId,c=document.getElementById(i);if(c)this.searchResultsContainer=c;else throw new Error(`Search Results Container with id ${i} not found`)},0))}}class Ee{constructor(e){n(this,"dataLayer");n(this,"config");n(this,"containerId");n(this,"selectId");n(this,"searchSortingMainContainer",null);var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.selectId=((a=(t=this.config.templates)==null?void 0:t.main)==null?void 0:a.selectId)||d.sorting.main.selectId,this.searchSortingMainContainer=document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){return{...this.dataLayer.parsedData.data}}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document.getElementById(this.selectId);if(e){const t=e.querySelector(`option[value="${decodeURIComponent(this.dataLayer.searchObject.order)}"]`);t&&(t.selected=!0)}}renderMainTemplate(e){var a,r,s;const t=((s=(r=(a=this.config)==null?void 0:a.templates)==null?void 0:r.main)==null?void 0:s.template)||d.sorting.main.template;if(this.dataLayer.renderingEngine===C.mustache){this.searchSortingMainContainer.innerHTML=f.render(t,e),this.markOptionSelected();const i=document.getElementById(this.selectId);i&&i.addEventListener("change",c=>{this.setOrderQuery(c.target.value)})}}}class we{constructor(e=C.mustache){n(this,"routerEnabled",!1);n(this,"cachedQuery","");n(this,"routerHelper");n(this,"searchHelper");n(this,"searchResultsConfig");n(this,"searchPaginationConfig");n(this,"searchFeedbackConfig");n(this,"searchSortingConfig");n(this,"searchFacetsConfig");n(this,"relatedSearchesConfig");n(this,"externalPromotionsConfig");n(this,"searchInputWidget");n(this,"searchResultsWidget");n(this,"searchFacetsWidget");n(this,"searchPaginationWidget");n(this,"searchFeedbackWidget");n(this,"searchSortingWidget");n(this,"relatedSearchesWidget");n(this,"externalPromotionsWidget");n(this,"dataLayer",new J(Y.getOrSetCookie("searchstax_session_id")));n(this,"firstRequest",!0);e&&this.dataLayer.setRenderingEngine(e),this.handleHooks()}setRenderingEngine(e=C.mustache){this.dataLayer.setRenderingEngine(e)}handleHooks(){var e,t;(t=(e=this.dataLayer.searchstaxConfig)==null?void 0:e.hooks)!=null&&t.afterSearch&&this.dataLayer.$searchResults.subscribe(a=>{this.dataLayer.searchstaxConfig.hooks.afterSearch(a)}),this.dataLayer.$searchObject.subscribe(a=>{a.query!==""&&this.search(a)}),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&H.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}initialize(e){var t,a;e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new G({...e,sessionId:this.dataLayer.sessionId},this.dataLayer)),((t=e.router)==null?void 0:t.enabled)===void 0||((a=e.router)==null?void 0:a.enabled)===!0?(this.routerEnabled=!0,this.routerHelper=new K(e.router?e.router:{enabled:!0}),this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href)),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window.location.href))})):this.routerHelper=new K({})}search(e){if(this.searchHelper&&e.query!==""&&e.query!==void 0&&e.query!=="undefined"){const t=this.dataLayer.forceNotCorrect;this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1,this.getRelatedSearches()}}getRelatedSearches(){this.searchHelper&&this.relatedSearchesConfig&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var s;const a=(((s=e.response)==null?void 0:s.docs)??[]).map((i,c)=>({...i,position:c+1})),r=[];for(const i of a)r.push({relatedSearch:i.related_search,position:i.position});this.dataLayer.searchResultsMetadata&&H.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:r}),this.dataLayer.setSearchRelatedSearches(a)}handleRouter(){this.routerEnabled&&this.routerHelper.updateUrl(this.dataLayer.searchObject)}parseSearchResultsResponse(e){var s,i;this.handleRouter();let t=D.combineResultsWithMetadata(e),a=D.extractFacets(e);this.dataLayer.setSearchFacets(a),(i=(s=this.dataLayer.searchstaxConfig)==null?void 0:s.hooks)!=null&&i.afterSearch&&(t=this.dataLayer.searchstaxConfig.hooks.afterSearch(t)),this.dataLayer.setSearchExternalPromotions(e.externalLinks??[]);const r=D.extractSearchResultsMetadata(e);this.dataLayer.setSearchResultsMetadata(r),this.dataLayer.setSearchResults(t)}cacheFacets(){var e;(e=this.searchHelper)==null||e.cacheFacets()}parseSuggestSuggestResponse(e){var a,r;let t=e;(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.afterAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.afterAutosuggest(e)),this.dataLayer.setSearchAutosuggest(t)}suggest(e,t){this.searchHelper&&this.searchHelper.suggest(e,this.parseSuggestSuggestResponse.bind(this),t)}changeLanguage(e){this.searchHelper&&this.dataLayer.setLanguage(e)}addSearchInputWidget(e,t){this.dataLayer.searchInputConfig||(this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Pe({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer}))}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new Fe({containerId:e,linkClickCallback:this.executeLinkClick.bind(this),searchTrigger:this.executeSearch.bind(this),config:t,dataLayer:this.dataLayer}))}addPaginationWidget(e,t){this.searchPaginationConfig=t,this.searchPaginationWidget=new ke({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig||(this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Ie({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)}))}addSearchSortingWidget(e,t){this.searchSortingConfig||(this.searchSortingConfig=t,this.searchSortingWidget=new Ee({containerId:e,config:t,dataLayer:this.dataLayer}))}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig||(this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Re({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0))}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig||(this.externalPromotionsConfig=t,this.externalPromotionsWidget=new Te({containerId:e,config:t,dataLayer:this.dataLayer}))}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new xe({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){var s,i;const a={...this.dataLayer.searchObject};a.query=E.removeXSSRiskyTags(e),a.page=1,a.facets=[],this.dataLayer.forceNotCorrect=!!t;let r=(s=this.routerHelper)==null?void 0:s.searchObjectToParams(a);r&&(r=(i=this.routerHelper)==null?void 0:i.extractParamsThatDoNotStartWithRouteName(r)),r&&(a.additionalProps=Object.keys(r).map(c=>r?{key:c,value:r[c]}:{key:"",value:""})),this.dataLayer.setSearchObject(a)}executeSuggest(e){var a,r;let t={term:e,queryParams:[]};(r=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&r.beforeAutosuggest&&(t=this.dataLayer.searchInputConfig.hooks.beforeAutosuggest(t)),t&&t.term!==void 0&&t.queryParams!==void 0&&this.suggest(t.term,t.queryParams)}trackRelatedSearchClick(e){this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&H.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e})}executeLinkClick(e){var a,r;let t=D.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((r=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&r.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&(H.trackClick({result:t,...this.dataLayer.parsedData.trackingData}),setTimeout(()=>{window.location.href=(t==null?void 0:t.url)??""},0)))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}changeResultTemplate(e){var t,a,r;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(r=this.searchResultsWidget)==null||r.changeTemplate())}}w.Searchstax=we,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})})(this["@searchstaxInc/searchstudioUxJs"]=this["@searchstaxInc/searchstudioUxJs"]||{});
|
|
@@ -525,7 +525,7 @@ class Y {
|
|
|
525
525
|
let a = [];
|
|
526
526
|
if (!t)
|
|
527
527
|
e.forEach(function(r) {
|
|
528
|
-
const s = r.name +
|
|
528
|
+
const s = r.name + ':"' + r.value + '"';
|
|
529
529
|
a = a.concat("fq=" + decodeURIComponent(s).replace(" ", " "));
|
|
530
530
|
});
|
|
531
531
|
else {
|
|
@@ -539,7 +539,7 @@ class Y {
|
|
|
539
539
|
const i = r[s], c = s;
|
|
540
540
|
let l = "";
|
|
541
541
|
for (const h of i)
|
|
542
|
-
l += ` ${c}
|
|
542
|
+
l += ` ${c}:"${h}"`;
|
|
543
543
|
a = a.concat("fq=" + l.trim());
|
|
544
544
|
}
|
|
545
545
|
}
|
|
@@ -1420,7 +1420,7 @@ class ke {
|
|
|
1420
1420
|
let c = [...i.facets];
|
|
1421
1421
|
const l = this.extractFacetValue(t);
|
|
1422
1422
|
s.checked ? c.find((u) => F.deepEqual(u, l) ? u : !1) || (this.config.facetingType === "tabs" && (c = c.filter((u) => u.name !== l.name)), c.push(l)) : c = c.filter((h) => !F.deepEqual(h, l)), setTimeout(() => {
|
|
1423
|
-
this.dataLayer.setSearchObject({ ...i, facets: c, page: 1 }), this.config.facetingType === "tabs" && this.renderMainTemplate(this.generateTemplateData(), !0)
|
|
1423
|
+
this.dataLayer.setSearchObject({ ...i, facets: c, page: 1 }), this.config.facetingType === "tabs" && this.renderMainTemplate(this.generateTemplateData(), !0);
|
|
1424
1424
|
}, 0);
|
|
1425
1425
|
}
|
|
1426
1426
|
});
|
|
@@ -1465,30 +1465,24 @@ class ke {
|
|
|
1465
1465
|
this.needCache && this.dataLayer.searchFacetsCached && (t = this.dataLayer.searchFacetsCached, this.needDisabling && (t = t.map((r) => {
|
|
1466
1466
|
var i;
|
|
1467
1467
|
const s = (i = this.dataLayer.searchFacets) == null ? void 0 : i.find((c) => c.name === r.name);
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
return {
|
|
1474
|
-
...l,
|
|
1475
|
-
disabled: !h,
|
|
1476
|
-
isMobile: e
|
|
1477
|
-
};
|
|
1478
|
-
})
|
|
1479
|
-
};
|
|
1480
|
-
return this.dataLayer.setFacetsTemplateData(c), c;
|
|
1481
|
-
} else {
|
|
1482
|
-
const c = {
|
|
1483
|
-
...r,
|
|
1484
|
-
values: r.values.map((l) => ({
|
|
1468
|
+
return s ? {
|
|
1469
|
+
...r,
|
|
1470
|
+
values: r.values.map((l) => {
|
|
1471
|
+
const h = s.values.find((u) => l.type === "range" ? !1 : l.type === "checkbox" ? u.value === l.value : !1);
|
|
1472
|
+
return {
|
|
1485
1473
|
...l,
|
|
1486
|
-
disabled: !
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
}
|
|
1490
|
-
|
|
1491
|
-
|
|
1474
|
+
disabled: !h,
|
|
1475
|
+
isMobile: e
|
|
1476
|
+
};
|
|
1477
|
+
})
|
|
1478
|
+
} : {
|
|
1479
|
+
...r,
|
|
1480
|
+
values: r.values.map((l) => ({
|
|
1481
|
+
...l,
|
|
1482
|
+
disabled: !0
|
|
1483
|
+
})),
|
|
1484
|
+
isMobile: e
|
|
1485
|
+
};
|
|
1492
1486
|
}))), this.config.specificFacets && (t = t.filter((r) => {
|
|
1493
1487
|
var s;
|
|
1494
1488
|
return (s = this.config.specificFacets) == null ? void 0 : s.includes(r.name);
|
|
@@ -1639,7 +1633,6 @@ class ke {
|
|
|
1639
1633
|
}), e.appendChild(s));
|
|
1640
1634
|
}
|
|
1641
1635
|
unselectFacet(e) {
|
|
1642
|
-
console.log("data", e);
|
|
1643
1636
|
const t = this.dataLayer.searchObject;
|
|
1644
1637
|
let a = [...t.facets];
|
|
1645
1638
|
e.type === "checkbox" && (a = a.filter((r) => JSON.stringify(r) !== JSON.stringify(this.extractFacetValue(e)))), setTimeout(() => {
|