@searchstax-inc/searchstudio-ux-js 4.1.49 → 4.1.54

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to the "searchstudio-ux-js" project will be documented in this file.
4
4
 
5
+ ## [4.1.54]
6
+ ### Bug Fixes
7
+ - fixed various console errors in headles libraries
8
+ - fixed autosuggest flickering in certain scenarios
9
+
5
10
  ## [4.1.49]
6
11
  ### Bug Fixes
7
12
  - fix OR facet logic
@@ -431,4 +431,4 @@ Please report this to https://github.com/markedjs/marked.`,n){const a="<p>An err
431
431
 
432
432
  </div>
433
433
  </div>
434
- `,thumbsUpButtonClass:"searchstax-lightweight-widget-thumbs-up",thumbsDownButtonClass:"searchstax-lightweight-widget-thumbs-down"}};class M{}l(M,"answer",Mn),l(M,"externalPromotions",Cn),l(M,"facets",bn),l(M,"pagination",Sn),l(M,"relatedSearches",Tn),l(M,"searchFeedback",xn),l(M,"searchInput",kn),l(M,"location",En),l(M,"searchResults",An),l(M,"sorting",vn),l(M,"feedback",B);class Dn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"externalPromotionsContainerId");l(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)||M.externalPromotions.mainTemplate.externalPromotionsContainerId,typeof document<"u"&&(this.searchExternalPromotionsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions};return this.dataLayer.setExternalPromotionsData(e),e}addExternalSearch(e){var a,s,i,r;const t=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;if(t){const o=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.externalPromotion)==null?void 0:i.template)||((r=M.externalPromotions.externalPromotion)==null?void 0:r.template);if(typeof document<"u"){const c=document==null?void 0:document.createElement("div");c.classList.add("searchstax-external-promotion"),c.addEventListener("click",h=>{this.trackClick(e,h)}),c.innerHTML=v.render(o,e),t.appendChild(c)}}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window==null||window.open(e.url,"_blank")}renderMainTemplate(e){var a,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||((r=M.externalPromotions.mainTemplate)==null?void 0:r.template);if(this.dataLayer.renderingEngine===z.mustache){this.searchExternalPromotionsMainContainer.innerHTML=v.render(t,e);const o=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;o&&(o.innerHTML="");for(const c of e.externalPromotions)this.addExternalSearch(c)}}}class U{static addAccessibilityNotificationContainerToBody(){if(!document.getElementById("searchAccessibilityContainer")){const t=document.createElement("div");t.setAttribute("aria-live","polite"),t.setAttribute("id","searchAccessibilityContainer"),document.body.appendChild(t)}}static setAccessibilityText(e,t,a){this.addAccessibilityNotificationContainerToBody();const s=a??"searchAccessibility",i=document.getElementById(s);i&&i.remove();const r=document.createElement("span");r.setAttribute("id",s),r.innerHTML=e;const o=document.getElementById("searchAccessibilityContainer");o&&setTimeout(()=>{o.appendChild(r)},t??100)}}class In{constructor(e,t){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"routerHelper");l(this,"cachedPhrase","");l(this,"cachedANDFacets","");l(this,"isCached",!1);l(this,"overlayOpened",!1);l(this,"facetPaginationStep");l(this,"facetPaginationStepMobile");l(this,"searchFacetsMainContainer",null);l(this,"searchFacetsMobileContainer",null);l(this,"searchFacetsDesktopContainer",null);l(this,"facetLimits",{});l(this,"facetLimitsMobile",{});l(this,"deactivatedFacets",{});l(this,"focusedElement",null);l(this,"cachedData",null);l(this,"cacheFacets");l(this,"onFacetSelect",(e,t,a,s,i)=>{if(e.stopPropagation(),!t.disabled){const r=a.querySelector("input");let o=s?r.checked:!r.checked;i!==void 0&&(o=!i),r.checked=o;const c=this.dataLayer.searchObject;let h=[...c.facets];const d=this.extractFacetValue(t);o?h.find(g=>ne.deepEqual(g,d)?g:!1)||(this.config.facetingType==="tabs"&&(h=h.filter(g=>g.name!==d.name)),h.push(d)):h=h.filter(p=>!ne.deepEqual(p,d)),setTimeout(()=>{this.dataLayer.setSearchObject({...c,facets:h,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,typeof document<"u"&&(this.searchFacetsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.needCache&&t(this.config.facetingType==="tabs"),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.$searchFacetsCachedTabs.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.config.facetingType==="tabs")),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query||this.cachedANDFacets!==this.dataLayer.parsedData.cachedANDFacets?(this.cachedANDFacets=this.dataLayer.parsedData.cachedANDFacets,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,s=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(i=>{s[i.name]||(s[i.name]=a)}),e.map(i=>({...i,values:i.values.slice(0,s[i.name]),showingAllFacets:i.values.length<=s[i.name],hasMoreFacets:i.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.config.facetingType==="tabs"&&this.dataLayer.searchFacetsCachedTabs&&(t=this.dataLayer.searchFacetsCachedTabs),this.needDisabling&&(t=t.map(s=>{var r;const i=(r=this.dataLayer.searchFacets)==null?void 0:r.find(o=>o.name===s.name);return i?{...s,values:s.values.map(c=>{const h=i.values.find(d=>c.type==="range"?!1:c.type==="checkbox"?d.value===c.value:!1);return{...c,disabled:!h,isMobile:e}})}:{...s,values:s.values.map(c=>({...c,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(s=>{var i;return(i=this.config.specificFacets)==null?void 0:i.includes(s.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 s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,R;if(typeof document<"u"){const T=document==null?void 0:document.createElement("div");T.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||T.classList.add("active");const D=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemContainerTemplate)==null?void 0:r.template)||((o=M.facets.facetItemContainerTemplate)==null?void 0:o.template);T.innerHTML=v.render(D,e),t.appendChild(T);const N=T.querySelector("."+(((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:d.facetListTitleContainerClass)||((p=M.facets.facetItemContainerTemplate)==null?void 0:p.facetListTitleContainerClass)));N==null||N.addEventListener("click",()=>{T.classList.toggle("active");const _=T.classList.contains("active"),he=N.querySelector(".searchstax-facet-title");he&&he.setAttribute("aria-expanded",String(_))}),(f=N==null?void 0:N.querySelector("."+((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:L.facetListTitleContainerInner)))==null||f.addEventListener("keydown",_=>{if(_.code==="Enter"||_.code==="Space"){_.preventDefault(),T.classList.toggle("active");const he=T.classList.contains("active"),ue=N.querySelector(".searchstax-facet-title");ue&&ue.setAttribute("aria-expanded",String(he))}});const q=T.querySelector("."+(((A=(S=(w=this.config)==null?void 0:w.templates)==null?void 0:S.facetItemContainerTemplate)==null?void 0:A.facetListContainerClass)||((R=M.facets.facetItemContainerTemplate)==null?void 0:R.facetListContainerClass)));q&&(e.values.forEach(_=>{this.createFacetListItem(_,q,e.name)}),e.hasMoreFacets&&this.createHasMoreComponent(e,q,a))}}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>ne.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t,a){var s,i,r,o,c,h,d,p,g,y,L,f;if(typeof document<"u"){const w=document==null?void 0:document.createElement("div");w.classList.add("searchstax-facet-value-container"),e.disabled&&w.classList.add("searchstax-facet-value-disabled");const S=this.isChecked(e),A=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemTemplate)==null?void 0:r.template)||((o=M.facets.facetItemTemplate)==null?void 0:o.template);w.innerHTML=v.render(A,{...e,isChecked:S});let R=(c=M.facets.facetItemTemplate)==null?void 0:c.checkTriggerClasses;R=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.facetItemTemplate)==null?void 0:p.checkTriggerClasses)||R,R.forEach(D=>{const N=w.querySelector("."+D);N==null||N.addEventListener("click",q=>{this.onFacetSelect(q,e,w)})});const T=w.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemTemplate)==null?void 0:L.inputCheckboxClass)||((f=M.facets.facetItemTemplate)==null?void 0:f.inputCheckboxClass)));T==null||T.addEventListener("click",D=>{this.onFacetSelect(D,e,w,!0)}),T&&(T==null||T.setAttribute("data-test-value",`${encodeURIComponent(a)}:&quot;${encodeURIComponent(e.value)}&quot;`)),t.appendChild(w)}}createHasMoreComponent(e,t,a){var s,i,r,o,c,h,d,p,g,y;if(typeof document<"u"){const L=document==null?void 0:document.createElement("div");L.classList.add("searchstax-facet-show-more-container");const f=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.showMoreButtonContainerTemplate)==null?void 0:r.template)||((o=M.facets.showMoreButtonContainerTemplate)==null?void 0:o.template);L.innerHTML=v.render(f,{...e,focusId:`moreLess${(h=(c=e==null?void 0:e.values)==null?void 0:c[0])==null?void 0:h.value}`});const w=L.querySelector("."+(((g=(p=(d=this.config)==null?void 0:d.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:g.showMoreButtonClass)||((y=M.facets.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)));w&&(this.attachOnclickToShowMore(e,w,a),t&&t.appendChild(w))}}attachOnclickToShowMore(e,t,a){t.addEventListener("click",s=>{this.onShowMoreLessClick(s,e,a)}),t.addEventListener("keydown",s=>{s.code==="Space"&&s.preventDefault()}),t.addEventListener("keyup",s=>{(s.code==="Space"||s.code==="Enter")&&(s.preventDefault(),this.onShowMoreLessClick(s,e,a))})}onShowMoreLessClick(e,t,a){e.preventDefault();const s=a?this.facetPaginationStepMobile:this.facetPaginationStep,i=a?this.facetLimits:this.facetLimitsMobile;i[t.name]===void 0?i[t.name]=s*2:i[t.name]<=t.values.length?(U.setAccessibilityText(`More Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=i[t.name]+s):(U.setAccessibilityText(`Less Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=s),this.generateTemplateData(a),this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,s,i,r,o,c,h,d,p,g,y;if(e&&(!ne.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const L=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplateDesktop)==null?void 0:i.template)||((r=M.facets.mainTemplateDesktop)==null?void 0:r.template);if(this.dataLayer.renderingEngine===z.mustache&&this.searchFacetsMainContainer){const f=document.activeElement;f instanceof HTMLInputElement&&f.type==="checkbox"||f!=null&&f.classList.contains("searchstax-facet-show-more-button")||f!=null&&f.classList.contains("searchstax-facet-show-less-button")?this.focusedElement=f:this.focusedElement=null,this.searchFacetsMainContainer.innerHTML=v.render(L,{...e});const w=(d=this.searchFacetsMainContainer)==null?void 0:d.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||M.facets.mainTemplateDesktop.facetsContainerClass));if(w){w.innerHTML="";for(const S of e.facets)this.createFacetItem(S,w);if(this.searchFacetsMainContainer){const S=this.searchFacetsMainContainer.querySelector("."+(((y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||M.facets.mainTemplateDesktop.selectedFacetsContainerClass));S&&(this.createSelectedFacetsComponents(S),this.createClearFacetsComponents(S))}if(this.focusedElement){if(this.focusedElement.classList.contains("searchstax-facet-show-more-button")||this.focusedElement.classList.contains("searchstax-facet-show-less-button")){const R=this.focusedElement.getAttribute("data-focus"),T=this.searchFacetsMainContainer.querySelector(`[data-focus="${R}"]`);T instanceof HTMLElement&&T.focus(),this.focusedElement=null;return}const S=this.focusedElement.getAttribute("data-test-value"),A=this.searchFacetsMainContainer.querySelector(`[data-test-value="${S}"]`);A instanceof HTMLInputElement&&A.focus(),this.focusedElement=null}}}setTimeout(()=>{document.querySelectorAll(".searchstax-facet-title").forEach(w=>{w.setAttribute("aria-expanded",String(!0)),w.setAttribute("tabindex","0"),w.setAttribute("role","button")})},100),this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const s=decodeURIComponent(a.name),i=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const r=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,o=r==null?void 0:r.find(c=>c.name===s);if(o){const c=o.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${i}"`:!1);c&&e.push(c)}}}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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=this.dataLayer.searchObject,p=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.clearFacetsTemplate)==null?void 0:s.template)||((i=M.facets.clearFacetsTemplate)==null?void 0:i.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,{shouldShow:d.facets.length>0});const y=g.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.clearFacetsTemplate)==null?void 0:c.containerClass)||((h=M.facets.clearFacetsTemplate)==null?void 0:h.containerClass)));y&&(y.addEventListener("click",()=>{this.removeSelectedFacets()}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.removeSelectedFacets()}),e.appendChild(y))}}createSelectedFacetsComponent(e,t){var a,s,i,r,o,c,h,d;if(typeof document<"u"){const p=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.selectedFacetsTemplate)==null?void 0:i.template)||((r=M.facets.selectedFacetsTemplate)==null?void 0:r.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,t);const y=g.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:h.containerClass)||((d=M.facets.selectedFacetsTemplate)==null?void 0:d.containerClass)));y&&(y.addEventListener("click",()=>{this.unselectFacet(t)}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.unselectFacet(t)}),e.appendChild(y))}}unselectFacet(e){const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(s=>JSON.stringify(s)!==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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.filterByTemplate)==null?void 0:s.template)||((i=M.facets.filterByTemplate)==null?void 0:i.template),p=document==null?void 0:document.createElement("div");p.innerHTML=v.render(d,{});const g=p.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.filterByTemplate)==null?void 0:c.containerClass)||((h=M.facets.filterByTemplate)==null?void 0:h.containerClass)));g&&(e.prepend(g),g.addEventListener("click",this.openOverlay.bind(this)),g.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.openOverlay()}))}}openOverlay(){var e;U.setAccessibilityText("Facet overlay opened. Tab to select facets."),this.overlayOpened=!0,this.searchFacetsMainContainer&&(typeof document<"u"&&document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;U.setAccessibilityText("Facet overlay closed"),this.overlayOpened=!1,this.searchFacetsMainContainer&&(typeof document<"u"&&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,s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,R,T;if(e&&typeof document<"u"){const D=document==null?void 0:document.createElement("div");D.classList.add("searchstax-facets-container-mobile");const N=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:s.template)||((i=M.facets.mainTemplateMobile)==null?void 0:i.template);if(this.dataLayer.renderingEngine===z.mustache){if(D.innerHTML=v.render(N,{...e,overlayOpened:this.overlayOpened}),(r=this.searchFacetsMainContainer)==null||r.appendChild(D),(c=(o=this.config)==null?void 0:o.templates)!=null&&c.mainTemplateMobile)for(const ue of((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.mainTemplateMobile)==null?void 0:p.closeOverlayTriggerClasses)||[]){const F=D.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}else for(const ue of M.facets.mainTemplateMobile.closeOverlayTriggerClasses){const F=D.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}const q=D.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:L.filterByContainerClass)||M.facets.mainTemplateMobile.filterByContainerClass));q&&this.createFilterByComponent(q);const _=D.querySelector("."+(((S=(w=(f=this.config)==null?void 0:f.templates)==null?void 0:w.mainTemplateMobile)==null?void 0:S.selectedFacetsContainerClass)||M.facets.mainTemplateMobile.selectedFacetsContainerClass));_&&(this.createSelectedFacetsComponents(_),this.createClearFacetsComponents(_));const he=D.querySelector("."+(((T=(R=(A=this.config)==null?void 0:A.templates)==null?void 0:R.mainTemplateMobile)==null?void 0:T.facetsContainerClass)||M.facets.mainTemplateMobile.facetsContainerClass));if(he){he.innerHTML="";for(const ue of e.facets)this.createFacetItem(ue,he,!0)}}}}}class jn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"previousButtonClass");l(this,"nextButtonClass");l(this,"loadMoreButtonClass");l(this,"routerHelper");l(this,"searchPaginationMainContainer",null);var t,a,s,i,r,o,c,h,d;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.previousButtonClass)??M.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.nextButtonClass)??M.pagination.mainTemplate.nextButtonClass,this.loadMoreButtonClass=((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.infiniteScrollTemplate)==null?void 0:d.loadMoreButtonClass)??M.pagination.infiniteScrollTemplate.loadMoreButtonClass,typeof document<"u"&&(this.searchPaginationMainContainer=document==null?void 0: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(){return this.dataLayer.parsedData.data.isLastPage}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a,s,i;const e={...this.dataLayer.parsedData.data,previousPageLink:(a=this.routerHelper)==null?void 0:a.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:(i=this.routerHelper)==null?void 0:i.searchObjectToUrl({...this.dataLayer.searchObject,page:((s=this.dataLayer.searchObject)==null?void 0:s.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e,t){const a=this.dataLayer.searchObject;a&&(a.page=e,this.dataLayer.setSearchObject(a)),t||window==null||window.scrollTo(0,0),document.body.tabIndex=-1,document.body.focus()}nextPage(e){var t;e==null||e.preventDefault(),e==null||e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1,this.dataLayer.isInfiniteScroll)}previousPage(e){var t;e==null||e.preventDefault(),e==null||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),a=this.searchPaginationMainContainer.querySelector("."+this.loadMoreButtonClass);e&&(e.addEventListener("click",this.previousPage.bind(this)),e.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.previousPage(s)})),t&&(t.addEventListener("click",this.nextPage.bind(this)),t.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)})),a&&(a.addEventListener("click",this.nextPage.bind(this)),a.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)}))}}renderMainTemplate(e){var a,s,i,r,o,c,h,d,p,g;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(s=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||s.removeEventListener("click",this.nextPage));let t=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.template)||((c=M.pagination.mainTemplate)==null?void 0:c.template);this.dataLayer.isInfiniteScroll&&(t=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.infiniteScrollTemplate)==null?void 0:p.template)||((g=M.pagination.infiniteScrollTemplate)==null?void 0:g.template)),this.dataLayer.renderingEngine===z.mustache&&(this.searchPaginationMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Rn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"relatedSearchesContainerClass");l(this,"searchRelatedSearchesMainContainer",null);l(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)||M.relatedSearches.main.relatedSearchesContainerClass,typeof document<"u"&&(this.searchRelatedSearchesMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setRelatedSearchesData(e),e}addRelatedSearchComponent(e,t){var a,s,i,r,o;if(typeof document<"u"){const c=document==null?void 0:document.createElement("div"),h=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.relatedSearch)==null?void 0:i.template)||M.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===z.mustache){c.innerHTML=v.render(h,e);const d=c.querySelector("."+(((o=(r=this.config.templates)==null?void 0:r.relatedSearch)==null?void 0:o.relatedSearchContainerClass)||M.relatedSearches.relatedSearch.relatedSearchContainerClass));d&&(t.appendChild(d),d.addEventListener("click",()=>{this.executeSearch(e)}),d.addEventListener("keyup",p=>{(p.code==="Space"||p.code==="Enter")&&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,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.relatedSearches.main.template;if(this.dataLayer.renderingEngine===z.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=v.render(t,e);const o=(r=this.searchRelatedSearchesMainContainer)==null?void 0:r.querySelector(`.${this.relatedSearchesContainerClass}`);if(o)for(const c of e.relatedSearches)this.addRelatedSearchComponent(c,o)}}}class Nn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"searchFeedbackMainContainer",null);l(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,typeof document<"u"&&(this.searchFeedbackMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchFeedbackData(e),e}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,s,i,r;const e=(r=this.searchFeedbackMainContainer)==null?void 0:r.querySelector("."+(((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:s.originalQueryClass)||((i=M.searchFeedback.main)==null?void 0:i.originalQueryClass)));e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.searchFeedback.main.template;this.dataLayer.renderingEngine===z.mustache&&(this.searchFeedbackMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class Pn{constructor(e){l(this,"searchHelper");l(this,"dataLayer");l(this,"config");l(this,"suggestAfterMinChars");l(this,"containerId");l(this,"currentInputValue","");l(this,"autosuggestResults");l(this,"searchInput");l(this,"actionButton");l(this,"autosuggestContainer");l(this,"buttonState","search");l(this,"selectedAutosuggestItem",-1);l(this,"suggestTrigger");l(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.suggestAfterMinChars===void 0&&this.getSuggestAfterValue(),this.dataLayer.$locationEnabled.subscribeUntilHasValue(()=>{this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())},200)}renderMainTemplate(){var e,t,a,s;if(typeof document<"u"){const i=document==null?void 0:document.getElementById(this.containerId);if(!i)throw new Error("Search input container not found");const r=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.searchInput.mainTemplate.template,o={...this.dataLayer.parsedData.data,locationEnabled:!!this.dataLayer.locationEnabled};if(this.dataLayer.setInputWidgetTemplateData(o),this.dataLayer.renderingEngine===z.mustache){const d=v.render(r,o);i.innerHTML=d,this.dataLayer.setInputTemplateRendered(!0)}const c=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.searchInputId)||M.searchInput.mainTemplate.searchInputId,h=document==null?void 0:document.querySelector(`#${c}`);if(h)this.searchInput=h,h.addEventListener("keyup",this.inputKeyupEvent.bind(this)),h.addEventListener("blur",this.hideAutosuggest.bind(this)),h.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===z.mustache&&typeof document<"u"&&(this.autosuggestContainer=document==null?void 0: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))}getSuggestAfterValue(){this.dataLayer.searchHelper&&this.dataLayer.searchHelper.suggest("*",e=>{this.suggestAfterMinChars=e.metadata.minPrefixChars},[])}actionButtonInit(){typeof document<"u"&&(this.actionButton=document==null?void 0:document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??"")}))}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(){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-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon"),this.actionButton.setAttribute("aria-label","search");break}}selectPreviousAutosuggestItem(e){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem===0?(this.selectedAutosuggestItem=-1,e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length)),U.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem===this.autosuggestResults.suggestions.length-1?(this.selectedAutosuggestItem=-1,U.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){if(typeof document<"u"){const e=document==null?void 0:document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?(a.classList.add("active"),U.setAccessibilityText(`Selected suggestion: ${a.innerText}`)):a.classList.remove("active")}}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest(e.target):t==="ArrowUp"?this.selectPreviousAutosuggestItem(e.target):t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){this.suggestAfterMinChars&&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(e){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection(),e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length)),U.setAccessibilityText("No Suggestion selected")},200)}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var s,i,r;const t=document==null?void 0:document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((i=(s=this.config.templates)==null?void 0:s.autosuggestItemTemplate)==null?void 0:i.template)||((r=M.searchInput.autosuggestItemTemplate)==null?void 0:r.template);return t.innerHTML=v.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 s in a)if(Object.prototype.hasOwnProperty.call(a,s)){const i=a[s];i.numFound?U.setAccessibilityText("Suggestions are available. Use up and down arrows to navigate while focusing input. Use Escape key to escape out of the suggestions",2e3):U.setAccessibilityText("",0),this.autosuggestResults=i,this.dataLayer.setAutosuggestResults(i),i.numFound>0?i.suggestions.forEach(r=>{this.autosuggestContainer&&typeof document<"u"&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(r))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class On{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"linkClickCallback");l(this,"searchCallback");l(this,"containerId");l(this,"searchResultsMainContainer");l(this,"searchResultsContainer");l(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==null?void 0:document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.dataLayer.setIsInfiniteScroll(e.config.renderMethod==="infiniteScroll"),this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchObject.subscribe(()=>{U.setAccessibilityText("Searching...")}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,s,i,r,o;const e=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.noSearchResultTemplate)==null?void 0:i.template)||((r=M.searchResults.noSearchResultTemplate)==null?void 0:r.template),t=((o=this.dataLayer.searchResultsMetadata)==null?void 0:o.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===z.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=v.render(e,{spellingSuggestion:t,...this.dataLayer.parsedData.data,searchCallback:this.searchCallback.bind(this)})),t&&this.searchResultsContainer){const c=this.searchResultsContainer.querySelector("a");c&&c.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,s,i,r;if(this.dataLayer.renderingEngine===z.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)U.setAccessibilityText("Search has no results"),this.renderNoResultsTemplate();else{U.setAccessibilityText(`Showing ${this.dataLayer.parsedData.startResultIndex} through ${this.dataLayer.parsedData.endResultIndex} results from ${this.dataLayer.parsedData.totalResults}. Press tab to navigate through results`);const o=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:s.template)||((i=M.searchResults.searchResultTemplate)==null?void 0:i.template),c=e.map(h=>v.render(o,h));((r=this.config)==null?void 0:r.renderMethod)==="infiniteScroll"&&this.dataLayer.searchObject.page>1?this.searchResultsContainer.innerHTML+=c.join(""):this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{}),e.removeEventListener("keydown",()=>{})})}get uniqueIdAttribute(){var e,t,a,s;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((s=M.searchResults.searchResultTemplate)==null?void 0:s.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}),e.addEventListener("keydown",t=>{if(t.code==="Space"||t.code==="Enter"){const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}})})}renderMainTemplate(){var t,a,s,i;const e=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.template)||((i=M.searchResults.mainTemplate)==null?void 0:i.template);this.dataLayer.renderingEngine===z.mustache&&(this.searchResultsMainContainer.innerHTML=v.render(e,{}),setTimeout(()=>{var c,h,d,p,g,y,L;const r=(d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.mainTemplate)!=null&&d.searchResultsContainerId?(y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplate)==null?void 0:y.searchResultsContainerId:(L=M.searchResults.mainTemplate)==null?void 0:L.searchResultsContainerId,o=document==null?void 0:document.getElementById(r);if(o)this.searchResultsContainer=o;else throw new Error(`Search Results Container with id ${r} not found`)},0))}}class _n{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"selectId");l(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)||M.sorting.main.selectId,this.searchSortingMainContainer=document==null?void 0:document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchSortingData(e),e}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document==null?void 0: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,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.sorting.main.template;if(this.dataLayer.renderingEngine===z.mustache){this.searchSortingMainContainer.innerHTML=v.render(t,e),this.markOptionSelected();const r=document==null?void 0:document.getElementById(this.selectId);r&&r.addEventListener("change",o=>{this.setOrderQuery(o.target.value)})}}}class Fn{constructor(e){l(this,"analyticsKey");l(this,"containerId");l(this,"mainContainer");l(this,"isLightweight");l(this,"emailOverride");l(this,"feedbackTextAreaOverride");l(this,"mainTemplateOverride");l(this,"lightweightTemplateOverride");l(this,"focusedElement",null);l(this,"focusTrapListener",null);l(this,"lastFocusedElementBeforeModal",null);l(this,"templateData",{feedbackOpen:!1,ratings:[{index:1,isSelected:!1},{index:2,isSelected:!1},{index:3,isSelected:!1},{index:4,isSelected:!1},{index:5,isSelected:!1},{index:6,isSelected:!1},{index:7,isSelected:!1},{index:8,isSelected:!1},{index:9,isSelected:!1},{index:10,isSelected:!1}],emailInput:"",feedbackTextArea:"",charactersLeft:2e3,maxLength:2e3,errors:{rating:!1,email:!1},submitted:!1,thumbsUpActive:!1,thumbsDownActive:!1});l(this,"thumbsUpValue",10);l(this,"thumbsDownValue",1);l(this,"ratedQuestion","");l(this,"language","");l(this,"model","");l(this,"analyticsSrc","");this.analyticsKey=e.analyticsKey,this.containerId=e.containerId??"sf-feedback",this.isLightweight=e.lightweight??!1,this.isLightweight&&this.templateData.ratings.unshift({index:0,isSelected:!1}),this.thumbsUpValue=e.thumbsUpValue??10,this.thumbsDownValue=e.thumbsDownValue??1,this.emailOverride=e.emailOverride,this.feedbackTextAreaOverride=e.feedbackTextAreaOverride,this.mainTemplateOverride=e.mainTemplateOverride,this.lightweightTemplateOverride=e.lightweightTemplateOverride,this.mainContainer=document.getElementById(this.containerId),this.language=e.language??"",this.model=e.model??"",this.analyticsSrc=e.analyticsSrc??"",this.init()}init(){ce.attachAnalyticsScript(this.analyticsSrc),this.renderMainTemplate(this.generateTemplateData())}generateTemplateData(){return this.templateData}renderMainTemplate(e){var s,i;const t=document.activeElement;(t instanceof HTMLInputElement||t instanceof HTMLButtonElement||t instanceof HTMLTextAreaElement||t instanceof HTMLAnchorElement)&&(t.type==="radio"||t.type==="button"||t.type==="textarea"||t instanceof HTMLAnchorElement)?this.focusedElement=t:this.focusedElement=null,this.mainContainer;let a=(s=B==null?void 0:B.mainTemplate)==null?void 0:s.template;if(this.mainTemplateOverride&&(a=this.mainTemplateOverride),this.isLightweight&&(a=(i=B.lightweightTemplate)==null?void 0:i.template,this.lightweightTemplateOverride&&(a=this.lightweightTemplateOverride)),this.mainContainer.innerHTML=v.render(a,e),this.focusedElement&&this.mainContainer){const r=this.focusedElement.type==="radio"?this.focusedElement.getAttribute("id"):this.focusedElement.getAttribute("class"),o=this.focusedElement.type==="radio"?"id":"class",c=this.mainContainer.querySelector(`[${o}="${r}"]`);(c instanceof HTMLInputElement||c instanceof HTMLButtonElement||c instanceof HTMLTextAreaElement||c instanceof HTMLAnchorElement)&&c.focus(),this.focusedElement=null}this.attachEvents()}attachEvents(){this.isLightweight?this.attachLightweightEvents():(this.attachOpenModalEvent(),this.closeModalEvent(),this.attachRatingEvents(),this.attachTextAreaEvents(),this.attachEmailInputEvents(),this.attachSubmitButtonEvents())}attachFocusTrap(){this.focusTrapListener&&document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=e=>{if(!this.templateData.feedbackOpen)return;const t=this.getModalElement();if(!t)return;const a=this.getFocusableElements(t);if(a.length===0)return;const s=a[0],i=a[a.length-1];e.key==="Tab"&&(e.shiftKey?(document.activeElement===s||!t.contains(document.activeElement))&&(e.preventDefault(),i==null||i.focus()):(document.activeElement===i||!t.contains(document.activeElement))&&(e.preventDefault(),s==null||s.focus())),e.key==="Escape"&&(e.preventDefault(),this.closeFeedbackModal())},document.addEventListener("keydown",this.focusTrapListener)}getFocusableElements(e){const t=["button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t))}getModalElement(){var t,a;const e=(t=B.mainTemplate)==null?void 0:t.modalContainerClass;return((a=this.mainContainer)==null?void 0:a.querySelector(`.${e}`))||null}attachLightweightEvents(){var i,r,o,c;const e=(i=B.lightweightTemplate)==null?void 0:i.thumbsUpButtonClass,t=(r=B.lightweightTemplate)==null?void 0:r.thumbsDownButtonClass,a=(o=this.mainContainer)==null?void 0:o.querySelector("."+e),s=(c=this.mainContainer)==null?void 0:c.querySelector("."+t);a&&a.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[this.templateData.ratings.length-1].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!0,this.templateData.thumbsDownActive=!1,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsUpValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())}),s&&s.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[0].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!1,this.templateData.thumbsDownActive=!0,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsDownValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())})}attachSubmitButtonEvents(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.submitButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.checkIfValid()})}checkIfValid(){var s,i;const e=(i=this.mainContainer)==null?void 0:i.querySelector("#"+((s=B.mainTemplate)==null?void 0:s.emailInputId));this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,U.setAccessibilityText("Please enter a valid email address.")),this.templateData.ratings.some(r=>r.isSelected)?this.templateData.errors.rating=!1:(this.templateData.errors.rating=!0,U.setAccessibilityText("Please Rate your experience.")),this.templateData.errors.rating||this.templateData.errors.email?this.renderMainTemplate(this.generateTemplateData()):this.submit()}submit(){var t,a,s;this.templateData.submitted=!0;const e=(t=this.templateData.ratings.find(i=>i.isSelected))==null?void 0:t.index;e!==void 0&&(ce.trackFeedback({trackApiKey:this.analyticsKey,email:this.emailOverride&&this.isLightweight?this.emailOverride():this.templateData.emailInput,rating:e,feedback:this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea,model:this.model?this.model:void 0,language:this.language?this.language:void 0}),this.showCheckmarkAnimation(),U.setAccessibilityText("Feedback has been sent.",1e3),(s=this.mainContainer)!=null&&s.querySelector("."+((a=B.mainTemplate)==null?void 0:a.checkmarkClass))?setTimeout(()=>{this.closeFeedbackModal(),this.renderMainTemplate(this.generateTemplateData())},2e3):(setTimeout(()=>{this.closeFeedbackModal()},500),this.renderMainTemplate(this.generateTemplateData())))}validateEmail(e){return e===""?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}attachEmailInputEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=B.mainTemplate)==null?void 0:t.emailInputId));e&&(e.addEventListener("input",()=>{this.templateData.emailInput=e.value}),e.addEventListener("blur",()=>{setTimeout(()=>{this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,U.setAccessibilityText("Please enter a valid email address.")),this.renderMainTemplate(this.generateTemplateData())},300)}))}attachTextAreaEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=B.mainTemplate)==null?void 0:t.feedbackTextAreaId));e&&e.addEventListener("input",()=>{var i,r;this.templateData.feedbackTextArea=e.value,this.templateData.charactersLeft=this.templateData.maxLength-e.value.length;const s=(r=this.mainContainer)==null?void 0:r.querySelector("."+((i=B.mainTemplate)==null?void 0:i.charactersRemainingContainerclass));s&&(s.innerText=this.templateData.charactersLeft+"")})}attachRatingEvents(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.ratingInputclass,t=(s=this.mainContainer)==null?void 0:s.querySelectorAll("."+e);t&&t.forEach(i=>{i.addEventListener("click",r=>{const o=r.target.value;this.templateData.ratings.forEach(c=>{c.isSelected=c.index+""===o}),this.templateData.errors.rating=!1,this.renderMainTemplate(this.generateTemplateData())})})}attachOpenModalEvent(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.openModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",i=>{i.preventDefault(),this.toggleModal()})}toggleModal(){this.templateData.feedbackOpen?this.closeFeedbackModal():this.openFeedbackModal()}closeModalEvent(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.closeModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.closeFeedbackModal()})}openFeedbackModal(){this.lastFocusedElementBeforeModal=document.activeElement,this.templateData.feedbackOpen=!0,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{const e=this.getModalElement();if(e){const t=this.getFocusableElements(e);t.length>0&&t[0].focus()}this.attachFocusTrap()},0),U.setAccessibilityText("Feedback form opened",1e3)}closeFeedbackModal(){this.templateData.feedbackOpen=!1,this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null),this.renderMainTemplate(this.generateTemplateData()),this.lastFocusedElementBeforeModal&&(this.lastFocusedElementBeforeModal.focus(),this.lastFocusedElementBeforeModal=null),U.setAccessibilityText("Feedback form closed",1e3)}showCheckmarkAnimation(){var o,c,h,d,p,g;const e=(o=B.mainTemplate)==null?void 0:o.submitButtonClass,t=(c=this.mainContainer)==null?void 0:c.querySelector("."+e);t&&(t.disabled=!0);const a=(h=B.mainTemplate)==null?void 0:h.checkmarkClass,s=(d=this.mainContainer)==null?void 0:d.querySelector("."+a);s&&s.classList.remove("hidden");const i=(p=B.mainTemplate)==null?void 0:p.submitButtonTextClass,r=(g=this.mainContainer)==null?void 0:g.querySelector("."+i);r&&r.classList.add("visibility"),setTimeout(()=>{s&&s.classList.add("hidden"),r&&r.classList.remove("visibility"),t&&(t.disabled=!1)},2e3)}destroy(){this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null)}}class zn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"answerContainer",null);l(this,"showMoreVisible",!1);l(this,"renderFeedbackWidget",!1);l(this,"clicked",!1);l(this,"renderedWithShowMore",!1);var t;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.renderFeedbackWidget=((t=this.config.feedbackwidget)==null?void 0:t.renderFeedbackWidget)||!1,this.config.showMoreAfterWordCount&&(this.dataLayer.answerWidgetShowMoreLimit=this.config.showMoreAfterWordCount),typeof document<"u"&&(this.answerContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.dataLayer.setIsAnswerWidgetCreated(!0)}initializeSubscriptions(){this.dataLayer.$answer.subscribe(()=>{this.clicked?this.showMoreVisible=!1:this.showMoreVisible=this.dataLayer.parsedData.shouldShowAnswerLoadMore,this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerLoading.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerError.subscribe(e=>{e&&setTimeout(()=>{this.renderMainTemplate(this.generateTemplateData())},100)}),this.dataLayer.$searchObject.subscribe(()=>{this.clicked=!1,this.renderedWithShowMore=!1,this.showMoreVisible=!1}),this.dataLayer.$paginationData.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answer.subscribe(e=>{e&&setTimeout(()=>{this.initializeWidget()},600)}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.dataLayer.$answer.getValue()&&setTimeout(()=>{this.initializeWidget()},600)})}searchstaxFeedbackTextAreaOverride(){return"Question: "+(this.dataLayer.searchObject.query==="undefined"?"":this.dataLayer.searchObject.query)+" Answer: "+this.dataLayer.parsedData.getAnswerData}initializeWidget(){var e,t,a,s,i;this.renderFeedbackWidget&&document.getElementById("feedbackWidgetContainer")&&!this.dataLayer.answerLoading&&new Fn({analyticsKey:this.dataLayer.parsedData.trackingData.trackApiKey,containerId:"feedbackWidgetContainer",lightweight:!0,model:this.dataLayer.parsedData.trackingData.model,language:this.dataLayer.parsedData.trackingData.language,emailOverride:(e=this.config.feedbackwidget)==null?void 0:e.emailOverride,feedbackTextAreaOverride:((t=this.config.feedbackwidget)==null?void 0:t.searchstaxFeedbackTextAreaOverride)??this.searchstaxFeedbackTextAreaOverride.bind(this),thumbsUpValue:((a=this.config.feedbackwidget)==null?void 0:a.thumbsUpValue)??10,thumbsDownValue:((s=this.config.feedbackwidget)==null?void 0:s.thumbsDownValue)??0,lightweightTemplateOverride:(i=this.config.feedbackwidget)==null?void 0:i.lightweightTemplateOverride})}showMore(e){e.preventDefault(),this.clicked=!0,this.showMoreVisible=!1,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{this.initializeWidget()},600)}attachClickEventToShowMore(){const e=document.querySelector(".searchstax-answer-load-more-button");e&&e.addEventListener("click",this.showMore.bind(this))}trackLinkClick(e){e.preventDefault(),e.stopPropagation();const a=e.target.getAttribute("href");ce.trackAnswerLinkClick({href:a,answer:this.dataLayer.parsedData.getAnswerData,...this.dataLayer.parsedData.trackingData}).then(()=>{window.open(a,"_blank")}).catch(()=>{window.open(a,"_blank")})}attachLinkTracking(){document.querySelectorAll(".searchstax-answer-link").forEach(t=>{t.getAttribute("listener")!=="true"&&(t.setAttribute("listener","true"),t.addEventListener("click",this.trackLinkClick.bind(this)))})}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.answer.main.template;this.dataLayer.renderingEngine===z.mustache?(!this.renderedWithShowMore||!e.answerLoading||this.clicked)&&(e.showMoreButtonVisible&&(this.renderedWithShowMore=!0),this.answerContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClickEventToShowMore(),this.attachLinkTracking()},100)):setTimeout(()=>{this.attachLinkTracking()},500)}generateTemplateData(){const e={...this.dataLayer.parsedData.data,showMoreButtonVisible:this.showMoreVisible};return this.dataLayer.setAnswerFullData(e),e}}class fs{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"currentSelectValue","");l(this,"locationInput");l(this,"radiusInput");l(this,"locationDecode");l(this,"locationDecodeCoordinatesToAddress");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.locationDecode=(t=e.config.hooks)==null?void 0:t.locationDecode,this.locationDecodeCoordinatesToAddress=(a=e.config.hooks)==null?void 0:a.locationDecodeCoordinatesToAddress,this.dataLayer.locationEnabled&&this.dataLayer.$inputTemplateRendered.subscribeUntil(()=>{this.renderMainTemplate(),this.attachSubscriptions()},!0,500)}renderMainTemplate(){var e,t,a,s,i,r,o,c;if(typeof document<"u"){const h=document==null?void 0:document.getElementById(this.containerId);if(!h)throw new Error("Search input container not found");const d=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.location.mainTemplate.template,p={...this.dataLayer.parsedData.data};if(this.dataLayer.setLocationWidgetTemplateData(p),this.dataLayer.renderingEngine===z.mustache){const g=v.render(d,p);h.innerHTML=g;const y=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.locationInputId)||M.location.mainTemplate.locationInputId,L=document==null?void 0:document.querySelector(`#${y}`);if(L)this.locationInput=L,L.addEventListener("blur",this.blurEvent.bind(this)),L.addEventListener("focus",this.focusEvent.bind(this));else throw new Error("Input not found");const f=((r=(i=this.config.templates)==null?void 0:i.mainTemplate)==null?void 0:r.radiusInputId)||M.location.mainTemplate.radiusInputId,w=document==null?void 0:document.querySelector(`#${f}`);w instanceof HTMLSelectElement&&(this.radiusInput=w,w.addEventListener("change",this.radiusSelectChangeEvent.bind(this)));const S=((c=(o=this.config.templates)==null?void 0:o.mainTemplate)==null?void 0:c.currentLocationActionButtonId)||M.location.mainTemplate.currentLocationActionButtonId,A=document==null?void 0:document.querySelector(`#${S}`);A&&A.addEventListener("click",this.getCurrentLocation.bind(this))}}}setCurrentLocationFields(e){this.dataLayer.setLocationCoordinatesDecoded(e),this.dataLayer.setSearchLocation(this.dataLayer.searchLocationCoordinatesDecoded),this.dataLayer.renderingEngine===z.mustache&&this.locationInput&&(this.locationInput.value=this.dataLayer.searchLocationCoordinatesDecoded)}getCurrentLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(e=>{const t=e.coords.latitude.toString(),a=e.coords.longitude.toString(),s=Math.floor(parseFloat(t)*100)/100,i=Math.floor(parseFloat(a)*100)/100;this.dataLayer.setSearchLat(s+""),this.dataLayer.setSearchLong(i+"");const r=this.locationDecodeCoordinatesToAddress;r?r(s+"",i+"").then(o=>{this.setCurrentLocationFields(o.address||"Current Location")}).catch(()=>{this.setCurrentLocationFields("Current Location")}):this.setCurrentLocationFields("Current Location")},()=>{console.error("Unable to retrieve your location")}):console.error("Geolocation is not supported by this browser.")}setRadiusValue(e){this.dataLayer.setSearchRadius(e)}radiusSelectChangeEvent(e){this.currentSelectValue=e.target.value,this.setRadiusValue(this.currentSelectValue)}attachSubscriptions(){this.dataLayer.$searchObject.subscribe(e=>{this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(e.location.address??"")),this.radiusInput&&e.location.radius&&(this.radiusInput.value=e.location.radius||"")})}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}triggerGeocoder(e){const t=this.locationDecode;this.dataLayer.setLocationDecodingLoading(!0),e&&this.dataLayer.searchLocation!==e&&e!==this.dataLayer.searchLocationCoordinatesDecoded?t(e).then(a=>{this.dataLayer.setSearchLocation(a.address||""),this.dataLayer.setSearchLat(a.lat||""),this.dataLayer.setSearchLong(a.lon||""),this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(a.address||"")),this.dataLayer.renderingEngine===z.mustache&&a.error&&this.locationInput&&this.locationInput.classList.add("searchstax-input-location-error"),a.error?this.dataLayer.setLocationError(!0):this.dataLayer.setLocationError(!1),this.dataLayer.setLocationDecodingLoading(!1)}).catch(()=>{this.dataLayer.setLocationDecodingLoading(!1)}):e===""&&(this.dataLayer.setSearchLocation(void 0),this.dataLayer.setSearchLat(void 0),this.dataLayer.setSearchLong(void 0),this.dataLayer.setLocationDecodingLoading(!1))}focusEvent(e){e.target.classList.remove("searchstax-input-location-error"),this.dataLayer.setLocationError(!1)}blurEvent(e){const a=e.target.value;this.triggerGeocoder(a)}}class $n{constructor(e=z.mustache){l(this,"routerEnabled",!1);l(this,"cachedQuery","");l(this,"routerHelper");l(this,"searchHelper");l(this,"searchResultsConfig");l(this,"searchPaginationConfig");l(this,"searchFeedbackConfig");l(this,"searchSortingConfig");l(this,"searchFacetsConfig");l(this,"relatedSearchesConfig");l(this,"externalPromotionsConfig");l(this,"searchInputWidget");l(this,"searchLocationWidget");l(this,"searchResultsWidget");l(this,"searchFacetsWidget");l(this,"searchPaginationWidget");l(this,"searchFeedbackWidget");l(this,"searchSortingWidget");l(this,"relatedSearchesWidget");l(this,"externalPromotionsWidget");l(this,"answerWidget");l(this,"locationObserver",null);l(this,"dataLayer");l(this,"firstRequest",!0);l(this,"previousQuery","");l(this,"eventSource",null);l(this,"renderEngine",z.mustache);e&&(this.renderEngine=e)}setRenderingEngine(e=z.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)}),setTimeout(()=>{this.dataLayer.$searchObject.subscribe(a=>{var s,i,r,o,c,h;a.query!==this.previousQuery&&this.dataLayer.setAnswerData(""),a.query!==""&&a.query!==void 0&&a.query!=="undefined"?(this.search(a),a.query!==this.previousQuery&&this.startSSE(a.query)):(s=this.dataLayer.searchLocationConfig)!=null&&s.locationSearchEnabled&&!((i=this.dataLayer.searchLocationConfig)!=null&&i.locationValuesOverride)?this.getMetadata(a):(o=(r=this.dataLayer.searchLocationConfig)==null?void 0:r.locationValuesOverride)!=null&&o.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((h=(c=this.dataLayer.searchLocationConfig)==null?void 0:c.locationValuesOverride)==null?void 0:h.locationFilterDefaultValue),this.previousQuery=a.query})},10),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}startSSE(e){var t,a;this.eventSource&&((t=this.eventSource)==null||t.close(),this.dataLayer.setAnswerData("")),this.dataLayer.turnAIAnswerGenerationOn===!0&&this.dataLayer.questionURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&(this.eventSource=(a=this.searchHelper)==null?void 0:a.startSSE(e,this.parseAnswerResultsResponse.bind(this)))}attachAnalyticsScript(e){ce.attachAnalyticsScript(e)}initialize(e){var t,a;if(this.dataLayer=new Gi("searchstax_session_id",e.sessionId),this.renderEngine&&this.dataLayer.setRenderingEngine(this.renderEngine),this.handleHooks(),e.questionURL&&(this.dataLayer.questionURL=e.questionURL),e.analyticsBaseUrl&&typeof window<"u"&&(window.analyticsBaseUrl=e.analyticsBaseUrl,window._msq=e._msq||[],this.attachAnalyticsScript(e.analyticsSrc)),e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),e.language&&this.dataLayer.setLanguage(e.language),e.model&&this.dataLayer.setModel(e.model),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new an({...e,sessionId:this.dataLayer.sessionId},this.dataLayer),this.dataLayer.searchHelper=this.searchHelper),((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 ls(e.router?e.router:{enabled:!0});const s=this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"");this.dataLayer.searchObject.itemsPerPage?s.itemsPerPage=this.dataLayer.searchObject.itemsPerPage:s.itemsPerPage&&this.dataLayer.setItemsPerPage(s.itemsPerPage),s.model&&this.dataLayer.setModel(s.model),s.location&&(s.location.address&&this.dataLayer.setSearchLocation(s.location.address),s.location.lat&&this.dataLayer.setSearchLat(s.location.lat),s.location.lon&&this.dataLayer.setSearchLong(s.location.lon),s.location.radius&&this.dataLayer.setSearchRadius(s.location.radius)),this.dataLayer.setSearchObject(s),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"",this.dataLayer.searchObject.itemsPerPage))})}else this.routerHelper=new ls({})}getMetadata(e){this.searchHelper&&(e.query==="undefined"||e.query===void 0)&&this.dataLayer.setSearchObject({...e,query:"*"})}search(e){if(this.searchHelper){const t=this.dataLayer.forceNotCorrect;this.searchHelper.url&&(this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1),this.getRelatedSearches()}}getRelatedSearches(){var e;this.searchHelper&&this.relatedSearchesConfig&&((e=this.relatedSearchesConfig)!=null&&e.relatedSearchesURL)&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var i,r;const a=(((i=e.response)==null?void 0:i.docs)??[]).map((o,c)=>({...o,position:c+1})),s=[];for(const o of a)s.push({relatedSearch:o.related_search,position:o.position});this.dataLayer.setSearchRelatedSearches(a),this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&s.length&&ce.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:s,totalRelatredSearches:((r=this.dataLayer.searchRelatedSearches)==null?void 0:r.length)??0})}handleRouter(){if(this.routerEnabled){const e={...this.dataLayer.searchObject};this.dataLayer.isInfiniteScroll&&delete e.page,this.routerHelper.updateUrl(e)}}parseSearchResultsResponseMetadata(e){var s,i,r,o;const t=et.extractSearchResultsMetadata(e),a=((i=(s=this.dataLayer.searchLocationConfig)==null?void 0:s.locationValuesOverride)==null?void 0:i.locationFilterDefaultValue)??((o=(r=t.location)==null?void 0:r.filter)==null?void 0:o.defaultValue);!this.dataLayer.searchRadius&&a&&this.dataLayer.setSearchRadius(a),this.dataLayer.setSearchResultsMetadata(t)}parseSearchResultsResponse(e){var s,i;this.handleRouter(),this.dataLayer.setItemsPerPage(parseInt(e.responseHeader.params.rows)),this.dataLayer.setModel(e.responseHeader.params.model);let t=et.combineResultsWithMetadata(e),a=et.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??[]),this.parseSearchResultsResponseMetadata(e),this.dataLayer.setSearchResults(t)}parseAnswerResultsResponse(e){this.handleRouter(),e!==ze.question&&e!==ze.notQuestion&&(this.dataLayer.setAnswerLoading(!0),this.dataLayer.setAnswerData(this.dataLayer.getAnswerData+e))}cacheFacets(e){var t,a;e?(t=this.searchHelper)==null||t.cacheFacets(!0).then(()=>{}):(a=this.searchHelper)==null||a.cacheFacets().then(()=>{})}parseSuggestSuggestResponse(e){var a,s;let t=e;(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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.$locationEnabled.subscribeUntilHasValue(()=>{this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Pn({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer})},200)}addSearchLocationWidget(e,t){var a,s;this.dataLayer.searchLocationConfig||(t.locationSearchEnabled?(this.dataLayer.setLocationEnabled(!0),this.dataLayer.setSearchLocationConfig(t),t.locationValuesOverride?(this.searchLocationWidget=new fs({containerId:e,config:t,dataLayer:this.dataLayer}),(a=t==null?void 0:t.locationValuesOverride)!=null&&a.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((s=t==null?void 0:t.locationValuesOverride)==null?void 0:s.locationFilterDefaultValue)):this.dataLayer.$searchResultsMetadata.subscribeUntilHasValue(()=>{this.searchLocationWidget=new fs({containerId:e,config:t,dataLayer:this.dataLayer})},0)):this.dataLayer.setLocationEnabled(!1))}addAnswerWidget(e,t){this.dataLayer.turnAIAnswerGenerationOn=!0,this.startSSE(this.dataLayer.searchObject.query),this.dataLayer.setAnswerData(""),this.answerWidget=new zn({containerId:e,config:t,dataLayer:this.dataLayer})}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new On({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 jn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Nn({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)})}addSearchSortingWidget(e,t){this.searchSortingConfig=t,this.searchSortingWidget=new _n({containerId:e,config:t,dataLayer:this.dataLayer})}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Rn({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0)}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig=t,this.externalPromotionsWidget=new Dn({containerId:e,config:t,dataLayer:this.dataLayer})}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new In({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){const a={...this.dataLayer.searchObject};a.query=Y.removeXSSRiskyTags(e),a.page=1,a.facets=[],a.location={...a.location},this.locationObserver&&this.dataLayer.$locationDecodingLoading.unsubscribe(this.locationObserver),this.locationObserver=this.dataLayer.$locationDecodingLoading.subscribeUntil(()=>{var i,r;a.location.address=this.dataLayer.searchLocation,a.location.radius=this.dataLayer.searchRadius,a.location.lat=this.dataLayer.searchLat,a.location.lon=this.dataLayer.searchLong,this.dataLayer.forceNotCorrect=!!t;let s=(i=this.routerHelper)==null?void 0:i.searchObjectToParams(a);s&&(s=(r=this.routerHelper)==null?void 0:r.extractParamsThatDoNotStartWithRouteName(s)),s&&(a.additionalProps=Object.keys(s).map(o=>s?{key:o,value:s[o]}:{key:"",value:""})),this.dataLayer.setSearchObject(a),this.dataLayer.lastSearchValue=a.query},!1)}executeSuggest(e){var a,s;let t={term:e,queryParams:[]};(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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){var t;this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&!this.dataLayer.cookiesDisabled&&ce.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e,totalRelatredSearches:((t=this.dataLayer.searchRelatedSearches)==null?void 0:t.length)??0})}executeLinkClick(e){var a,s;let t=et.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((s=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&s.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackClick({result:t,...this.dataLayer.parsedData.trackingData}).then(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}).catch(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}setCookiesDisabled(e){this.dataLayer.setCookiesDisabled(e)}changeResultTemplate(e){var t,a,s;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(s=this.searchResultsWidget)==null||s.changeTemplate())}}exports.Searchstax=$n;
434
+ `,thumbsUpButtonClass:"searchstax-lightweight-widget-thumbs-up",thumbsDownButtonClass:"searchstax-lightweight-widget-thumbs-down"}};class M{}l(M,"answer",Mn),l(M,"externalPromotions",Cn),l(M,"facets",bn),l(M,"pagination",Sn),l(M,"relatedSearches",Tn),l(M,"searchFeedback",xn),l(M,"searchInput",kn),l(M,"location",En),l(M,"searchResults",An),l(M,"sorting",vn),l(M,"feedback",B);class Dn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"externalPromotionsContainerId");l(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)||M.externalPromotions.mainTemplate.externalPromotionsContainerId,typeof document<"u"&&(this.searchExternalPromotionsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions};return this.dataLayer.setExternalPromotionsData(e),e}addExternalSearch(e){var a,s,i,r;const t=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;if(t){const o=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.externalPromotion)==null?void 0:i.template)||((r=M.externalPromotions.externalPromotion)==null?void 0:r.template);if(typeof document<"u"){const c=document==null?void 0:document.createElement("div");c.classList.add("searchstax-external-promotion"),c.addEventListener("click",h=>{this.trackClick(e,h)}),c.innerHTML=v.render(o,e),t.appendChild(c)}}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window==null||window.open(e.url,"_blank")}renderMainTemplate(e){var a,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||((r=M.externalPromotions.mainTemplate)==null?void 0:r.template);if(this.dataLayer.renderingEngine===z.mustache){this.searchExternalPromotionsMainContainer.innerHTML=v.render(t,e);const o=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;o&&(o.innerHTML="");for(const c of e.externalPromotions)this.addExternalSearch(c)}}}class U{static addAccessibilityNotificationContainerToBody(){if(!document.getElementById("searchAccessibilityContainer")){const t=document.createElement("div");t.setAttribute("aria-live","polite"),t.setAttribute("id","searchAccessibilityContainer"),document.body.appendChild(t)}}static setAccessibilityText(e,t,a){this.addAccessibilityNotificationContainerToBody();const s=a??"searchAccessibility",i=document.getElementById(s);i&&i.remove();const r=document.createElement("span");r.setAttribute("id",s),r.innerHTML=e;const o=document.getElementById("searchAccessibilityContainer");o&&setTimeout(()=>{o.appendChild(r)},t??100)}}class In{constructor(e,t){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"routerHelper");l(this,"cachedPhrase","");l(this,"cachedANDFacets","");l(this,"isCached",!1);l(this,"overlayOpened",!1);l(this,"facetPaginationStep");l(this,"facetPaginationStepMobile");l(this,"searchFacetsMainContainer",null);l(this,"searchFacetsMobileContainer",null);l(this,"searchFacetsDesktopContainer",null);l(this,"facetLimits",{});l(this,"facetLimitsMobile",{});l(this,"deactivatedFacets",{});l(this,"focusedElement",null);l(this,"cachedData",null);l(this,"cacheFacets");l(this,"onFacetSelect",(e,t,a,s,i)=>{if(e.stopPropagation(),!t.disabled){const r=a.querySelector("input");let o=s?r.checked:!r.checked;i!==void 0&&(o=!i),r.checked=o;const c=this.dataLayer.searchObject;let h=[...c.facets];const d=this.extractFacetValue(t);o?h.find(g=>ne.deepEqual(g,d)?g:!1)||(this.config.facetingType==="tabs"&&(h=h.filter(g=>g.name!==d.name)),h.push(d)):h=h.filter(p=>!ne.deepEqual(p,d)),setTimeout(()=>{this.dataLayer.setSearchObject({...c,facets:h,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,typeof document<"u"&&(this.searchFacetsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.needCache&&t(this.config.facetingType==="tabs"),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.$searchFacetsCachedTabs.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.config.facetingType==="tabs")),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query||this.cachedANDFacets!==this.dataLayer.parsedData.cachedANDFacets?(this.cachedANDFacets=this.dataLayer.parsedData.cachedANDFacets,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,s=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(i=>{s[i.name]||(s[i.name]=a)}),e.map(i=>({...i,values:i.values.slice(0,s[i.name]),showingAllFacets:i.values.length<=s[i.name],hasMoreFacets:i.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.config.facetingType==="tabs"&&this.dataLayer.searchFacetsCachedTabs&&(t=this.dataLayer.searchFacetsCachedTabs),this.needDisabling&&(t=t.map(s=>{var r;const i=(r=this.dataLayer.searchFacets)==null?void 0:r.find(o=>o.name===s.name);return i?{...s,values:s.values.map(c=>{const h=i.values.find(d=>c.type==="range"?!1:c.type==="checkbox"?d.value===c.value:!1);return{...c,disabled:!h,isMobile:e}})}:{...s,values:s.values.map(c=>({...c,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(s=>{var i;return(i=this.config.specificFacets)==null?void 0:i.includes(s.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 s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,R;if(typeof document<"u"){const T=document==null?void 0:document.createElement("div");T.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||T.classList.add("active");const D=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemContainerTemplate)==null?void 0:r.template)||((o=M.facets.facetItemContainerTemplate)==null?void 0:o.template);T.innerHTML=v.render(D,e),t.appendChild(T);const N=T.querySelector("."+(((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:d.facetListTitleContainerClass)||((p=M.facets.facetItemContainerTemplate)==null?void 0:p.facetListTitleContainerClass)));N==null||N.addEventListener("click",()=>{T.classList.toggle("active");const _=T.classList.contains("active"),he=N.querySelector(".searchstax-facet-title");he&&he.setAttribute("aria-expanded",String(_))}),(f=N==null?void 0:N.querySelector("."+((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:L.facetListTitleContainerInner)))==null||f.addEventListener("keydown",_=>{if(_.code==="Enter"||_.code==="Space"){_.preventDefault(),T.classList.toggle("active");const he=T.classList.contains("active"),ue=N.querySelector(".searchstax-facet-title");ue&&ue.setAttribute("aria-expanded",String(he))}});const q=T.querySelector("."+(((A=(S=(w=this.config)==null?void 0:w.templates)==null?void 0:S.facetItemContainerTemplate)==null?void 0:A.facetListContainerClass)||((R=M.facets.facetItemContainerTemplate)==null?void 0:R.facetListContainerClass)));q&&(e.values.forEach(_=>{this.createFacetListItem(_,q,e.name)}),e.hasMoreFacets&&this.createHasMoreComponent(e,q,a))}}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>ne.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t,a){var s,i,r,o,c,h,d,p,g,y,L,f;if(typeof document<"u"){const w=document==null?void 0:document.createElement("div");w.classList.add("searchstax-facet-value-container"),e.disabled&&w.classList.add("searchstax-facet-value-disabled");const S=this.isChecked(e),A=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemTemplate)==null?void 0:r.template)||((o=M.facets.facetItemTemplate)==null?void 0:o.template);w.innerHTML=v.render(A,{...e,isChecked:S});let R=(c=M.facets.facetItemTemplate)==null?void 0:c.checkTriggerClasses;R=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.facetItemTemplate)==null?void 0:p.checkTriggerClasses)||R,R.forEach(D=>{const N=w.querySelector("."+D);N==null||N.addEventListener("click",q=>{this.onFacetSelect(q,e,w)})});const T=w.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemTemplate)==null?void 0:L.inputCheckboxClass)||((f=M.facets.facetItemTemplate)==null?void 0:f.inputCheckboxClass)));T==null||T.addEventListener("click",D=>{this.onFacetSelect(D,e,w,!0)}),T&&(T==null||T.setAttribute("data-test-value",`${encodeURIComponent(a)}:&quot;${encodeURIComponent(e.value)}&quot;`)),t.appendChild(w)}}createHasMoreComponent(e,t,a){var s,i,r,o,c,h,d,p,g,y;if(typeof document<"u"){const L=document==null?void 0:document.createElement("div");L.classList.add("searchstax-facet-show-more-container");const f=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.showMoreButtonContainerTemplate)==null?void 0:r.template)||((o=M.facets.showMoreButtonContainerTemplate)==null?void 0:o.template);L.innerHTML=v.render(f,{...e,focusId:`moreLess${(h=(c=e==null?void 0:e.values)==null?void 0:c[0])==null?void 0:h.value}`});const w=L.querySelector("."+(((g=(p=(d=this.config)==null?void 0:d.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:g.showMoreButtonClass)||((y=M.facets.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)));w&&(this.attachOnclickToShowMore(e,w,a),t&&t.appendChild(w))}}attachOnclickToShowMore(e,t,a){t.addEventListener("click",s=>{this.onShowMoreLessClick(s,e,a)}),t.addEventListener("keydown",s=>{s.code==="Space"&&s.preventDefault()}),t.addEventListener("keyup",s=>{(s.code==="Space"||s.code==="Enter")&&(s.preventDefault(),this.onShowMoreLessClick(s,e,a))})}onShowMoreLessClick(e,t,a){e.preventDefault();const s=a?this.facetPaginationStepMobile:this.facetPaginationStep,i=a?this.facetLimits:this.facetLimitsMobile;i[t.name]===void 0?i[t.name]=s*2:i[t.name]<=t.values.length?(U.setAccessibilityText(`More Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=i[t.name]+s):(U.setAccessibilityText(`Less Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=s),this.generateTemplateData(a),this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,s,i,r,o,c,h,d,p,g,y;if(e&&(!ne.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const L=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplateDesktop)==null?void 0:i.template)||((r=M.facets.mainTemplateDesktop)==null?void 0:r.template);if(this.dataLayer.renderingEngine===z.mustache&&this.searchFacetsMainContainer){const f=document.activeElement;f instanceof HTMLInputElement&&f.type==="checkbox"||f!=null&&f.classList.contains("searchstax-facet-show-more-button")||f!=null&&f.classList.contains("searchstax-facet-show-less-button")?this.focusedElement=f:this.focusedElement=null,this.searchFacetsMainContainer.innerHTML=v.render(L,{...e});const w=(d=this.searchFacetsMainContainer)==null?void 0:d.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||M.facets.mainTemplateDesktop.facetsContainerClass));if(w){w.innerHTML="";for(const S of e.facets)this.createFacetItem(S,w);if(this.searchFacetsMainContainer){const S=this.searchFacetsMainContainer.querySelector("."+(((y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||M.facets.mainTemplateDesktop.selectedFacetsContainerClass));S&&(this.createSelectedFacetsComponents(S),this.createClearFacetsComponents(S))}if(this.focusedElement){if(this.focusedElement.classList.contains("searchstax-facet-show-more-button")||this.focusedElement.classList.contains("searchstax-facet-show-less-button")){const R=this.focusedElement.getAttribute("data-focus"),T=this.searchFacetsMainContainer.querySelector(`[data-focus="${R}"]`);T instanceof HTMLElement&&T.focus(),this.focusedElement=null;return}const S=this.focusedElement.getAttribute("data-test-value"),A=this.searchFacetsMainContainer.querySelector(`[data-test-value="${S}"]`);A instanceof HTMLInputElement&&A.focus(),this.focusedElement=null}}}setTimeout(()=>{document.querySelectorAll(".searchstax-facet-title").forEach(w=>{w.setAttribute("aria-expanded",String(!0)),w.setAttribute("tabindex","0"),w.setAttribute("role","button")})},100),this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const s=decodeURIComponent(a.name),i=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const r=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,o=r==null?void 0:r.find(c=>c.name===s);if(o){const c=o.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${i}"`:!1);c&&e.push(c)}}}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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=this.dataLayer.searchObject,p=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.clearFacetsTemplate)==null?void 0:s.template)||((i=M.facets.clearFacetsTemplate)==null?void 0:i.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,{shouldShow:d.facets.length>0});const y=g.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.clearFacetsTemplate)==null?void 0:c.containerClass)||((h=M.facets.clearFacetsTemplate)==null?void 0:h.containerClass)));y&&(y.addEventListener("click",()=>{this.removeSelectedFacets()}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.removeSelectedFacets()}),e.appendChild(y))}}createSelectedFacetsComponent(e,t){var a,s,i,r,o,c,h,d;if(typeof document<"u"){const p=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.selectedFacetsTemplate)==null?void 0:i.template)||((r=M.facets.selectedFacetsTemplate)==null?void 0:r.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,t);const y=g.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:h.containerClass)||((d=M.facets.selectedFacetsTemplate)==null?void 0:d.containerClass)));y&&(y.addEventListener("click",()=>{this.unselectFacet(t)}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.unselectFacet(t)}),e.appendChild(y))}}unselectFacet(e){const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(s=>JSON.stringify(s)!==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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.filterByTemplate)==null?void 0:s.template)||((i=M.facets.filterByTemplate)==null?void 0:i.template),p=document==null?void 0:document.createElement("div");p.innerHTML=v.render(d,{});const g=p.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.filterByTemplate)==null?void 0:c.containerClass)||((h=M.facets.filterByTemplate)==null?void 0:h.containerClass)));g&&(e.prepend(g),g.addEventListener("click",this.openOverlay.bind(this)),g.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.openOverlay()}))}}openOverlay(){var e;U.setAccessibilityText("Facet overlay opened. Tab to select facets."),this.overlayOpened=!0,this.searchFacetsMainContainer&&(typeof document<"u"&&document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;U.setAccessibilityText("Facet overlay closed"),this.overlayOpened=!1,this.searchFacetsMainContainer&&(typeof document<"u"&&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,s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,R,T;if(e&&typeof document<"u"){const D=document==null?void 0:document.createElement("div");D.classList.add("searchstax-facets-container-mobile");const N=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:s.template)||((i=M.facets.mainTemplateMobile)==null?void 0:i.template);if(this.dataLayer.renderingEngine===z.mustache){if(D.innerHTML=v.render(N,{...e,overlayOpened:this.overlayOpened}),(r=this.searchFacetsMainContainer)==null||r.appendChild(D),(c=(o=this.config)==null?void 0:o.templates)!=null&&c.mainTemplateMobile)for(const ue of((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.mainTemplateMobile)==null?void 0:p.closeOverlayTriggerClasses)||[]){const F=D.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}else for(const ue of M.facets.mainTemplateMobile.closeOverlayTriggerClasses){const F=D.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}const q=D.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:L.filterByContainerClass)||M.facets.mainTemplateMobile.filterByContainerClass));q&&this.createFilterByComponent(q);const _=D.querySelector("."+(((S=(w=(f=this.config)==null?void 0:f.templates)==null?void 0:w.mainTemplateMobile)==null?void 0:S.selectedFacetsContainerClass)||M.facets.mainTemplateMobile.selectedFacetsContainerClass));_&&(this.createSelectedFacetsComponents(_),this.createClearFacetsComponents(_));const he=D.querySelector("."+(((T=(R=(A=this.config)==null?void 0:A.templates)==null?void 0:R.mainTemplateMobile)==null?void 0:T.facetsContainerClass)||M.facets.mainTemplateMobile.facetsContainerClass));if(he){he.innerHTML="";for(const ue of e.facets)this.createFacetItem(ue,he,!0)}}}}}class jn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"previousButtonClass");l(this,"nextButtonClass");l(this,"loadMoreButtonClass");l(this,"routerHelper");l(this,"searchPaginationMainContainer",null);var t,a,s,i,r,o,c,h,d;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.previousButtonClass)??M.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.nextButtonClass)??M.pagination.mainTemplate.nextButtonClass,this.loadMoreButtonClass=((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.infiniteScrollTemplate)==null?void 0:d.loadMoreButtonClass)??M.pagination.infiniteScrollTemplate.loadMoreButtonClass,typeof document<"u"&&(this.searchPaginationMainContainer=document==null?void 0: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(){return this.dataLayer.parsedData.data.isLastPage}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a,s,i;const e={...this.dataLayer.parsedData.data,previousPageLink:(a=this.routerHelper)==null?void 0:a.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:(i=this.routerHelper)==null?void 0:i.searchObjectToUrl({...this.dataLayer.searchObject,page:((s=this.dataLayer.searchObject)==null?void 0:s.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e,t){const a=this.dataLayer.searchObject;a&&(a.page=e,this.dataLayer.setSearchObject(a)),t||window==null||window.scrollTo(0,0),document.body.tabIndex=-1,document.body.focus()}nextPage(e){var t;e==null||e.preventDefault(),e==null||e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1,this.dataLayer.isInfiniteScroll)}previousPage(e){var t;e==null||e.preventDefault(),e==null||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),a=this.searchPaginationMainContainer.querySelector("."+this.loadMoreButtonClass);e&&(e.addEventListener("click",this.previousPage.bind(this)),e.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.previousPage(s)})),t&&(t.addEventListener("click",this.nextPage.bind(this)),t.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)})),a&&(a.addEventListener("click",this.nextPage.bind(this)),a.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)}))}}renderMainTemplate(e){var a,s,i,r,o,c,h,d,p,g;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(s=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||s.removeEventListener("click",this.nextPage));let t=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.template)||((c=M.pagination.mainTemplate)==null?void 0:c.template);this.dataLayer.isInfiniteScroll&&(t=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.infiniteScrollTemplate)==null?void 0:p.template)||((g=M.pagination.infiniteScrollTemplate)==null?void 0:g.template)),this.dataLayer.renderingEngine===z.mustache&&(this.searchPaginationMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Rn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"relatedSearchesContainerClass");l(this,"searchRelatedSearchesMainContainer",null);l(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)||M.relatedSearches.main.relatedSearchesContainerClass,typeof document<"u"&&(this.searchRelatedSearchesMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setRelatedSearchesData(e),e}addRelatedSearchComponent(e,t){var a,s,i,r,o;if(typeof document<"u"){const c=document==null?void 0:document.createElement("div"),h=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.relatedSearch)==null?void 0:i.template)||M.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===z.mustache){c.innerHTML=v.render(h,e);const d=c.querySelector("."+(((o=(r=this.config.templates)==null?void 0:r.relatedSearch)==null?void 0:o.relatedSearchContainerClass)||M.relatedSearches.relatedSearch.relatedSearchContainerClass));d&&(t.appendChild(d),d.addEventListener("click",()=>{this.executeSearch(e)}),d.addEventListener("keyup",p=>{(p.code==="Space"||p.code==="Enter")&&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,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.relatedSearches.main.template;if(this.dataLayer.renderingEngine===z.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=v.render(t,e);const o=(r=this.searchRelatedSearchesMainContainer)==null?void 0:r.querySelector(`.${this.relatedSearchesContainerClass}`);if(o)for(const c of e.relatedSearches)this.addRelatedSearchComponent(c,o)}}}class Nn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"searchFeedbackMainContainer",null);l(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,typeof document<"u"&&(this.searchFeedbackMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchFeedbackData(e),e}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,s,i,r;const e=(r=this.searchFeedbackMainContainer)==null?void 0:r.querySelector("."+(((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:s.originalQueryClass)||((i=M.searchFeedback.main)==null?void 0:i.originalQueryClass)));e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.searchFeedback.main.template;this.dataLayer.renderingEngine===z.mustache&&(this.searchFeedbackMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class Pn{constructor(e){l(this,"searchHelper");l(this,"dataLayer");l(this,"config");l(this,"suggestAfterMinChars");l(this,"containerId");l(this,"currentInputValue","");l(this,"autosuggestResults");l(this,"searchInput");l(this,"actionButton");l(this,"autosuggestContainer");l(this,"buttonState","search");l(this,"selectedAutosuggestItem",-1);l(this,"suggestTrigger");l(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.suggestAfterMinChars===void 0&&this.getSuggestAfterValue(),this.dataLayer.$locationEnabled.subscribeUntilHasValue(()=>{this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())},200)}renderMainTemplate(){var e,t,a,s;if(typeof document<"u"){const i=document==null?void 0:document.getElementById(this.containerId);if(!i)throw new Error("Search input container not found");const r=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.searchInput.mainTemplate.template,o={...this.dataLayer.parsedData.data,locationEnabled:!!this.dataLayer.locationEnabled};if(this.dataLayer.setInputWidgetTemplateData(o),this.dataLayer.renderingEngine===z.mustache){const d=v.render(r,o);i.innerHTML=d,this.dataLayer.setInputTemplateRendered(!0)}const c=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.searchInputId)||M.searchInput.mainTemplate.searchInputId,h=document==null?void 0:document.querySelector(`#${c}`);if(h)this.searchInput=h,h.addEventListener("keyup",this.inputKeyupEvent.bind(this)),h.addEventListener("blur",this.hideAutosuggest.bind(this)),h.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===z.mustache&&typeof document<"u"&&(this.autosuggestContainer=document==null?void 0: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))}getSuggestAfterValue(){this.dataLayer.searchHelper&&this.dataLayer.searchHelper.suggest("*",e=>{this.suggestAfterMinChars=e.metadata.minPrefixChars},[])}actionButtonInit(){typeof document<"u"&&(this.actionButton=document==null?void 0:document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??"")}))}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(){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-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon"),this.actionButton.setAttribute("aria-label","search");break}}selectPreviousAutosuggestItem(e){var t;this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem===0?(this.selectedAutosuggestItem=-1,e&&(e!=null&&e.focus)&&((t=e==null?void 0:e.focus)==null||t.call(e),e.setSelectionRange(e.value.length,e.value.length)),U.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem===this.autosuggestResults.suggestions.length-1?(this.selectedAutosuggestItem=-1,U.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){if(typeof document<"u"){const e=document==null?void 0:document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?(a.classList.add("active"),U.setAccessibilityText(`Selected suggestion: ${a.innerText}`)):a.classList.remove("active")}}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest(e.target):t==="ArrowUp"?this.selectPreviousAutosuggestItem(e.target):t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){this.suggestAfterMinChars&&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(e){setTimeout(()=>{var t;this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection(),e&&(e!=null&&e.focus)&&((t=e==null?void 0:e.focus)==null||t.call(e),e.setSelectionRange(e.value.length,e.value.length)),U.setAccessibilityText("No Suggestion selected")},200)}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var s,i,r;const t=document==null?void 0:document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((i=(s=this.config.templates)==null?void 0:s.autosuggestItemTemplate)==null?void 0:i.template)||((r=M.searchInput.autosuggestItemTemplate)==null?void 0:r.template);return t.innerHTML=v.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 s in a)if(Object.prototype.hasOwnProperty.call(a,s)){const i=a[s];i.numFound?U.setAccessibilityText("Suggestions are available. Use up and down arrows to navigate while focusing input. Use Escape key to escape out of the suggestions",2e3):U.setAccessibilityText("",0),this.autosuggestResults=i,this.dataLayer.setAutosuggestResults(i),i.numFound>0?i.suggestions.forEach(r=>{this.autosuggestContainer&&typeof document<"u"&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(r))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class On{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"linkClickCallback");l(this,"searchCallback");l(this,"containerId");l(this,"searchResultsMainContainer");l(this,"searchResultsContainer");l(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==null?void 0:document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.dataLayer.setIsInfiniteScroll(e.config.renderMethod==="infiniteScroll"),this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchObject.subscribe(()=>{U.setAccessibilityText("Searching...")}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,s,i,r,o;const e=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.noSearchResultTemplate)==null?void 0:i.template)||((r=M.searchResults.noSearchResultTemplate)==null?void 0:r.template),t=((o=this.dataLayer.searchResultsMetadata)==null?void 0:o.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===z.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=v.render(e,{spellingSuggestion:t,...this.dataLayer.parsedData.data,searchCallback:this.searchCallback.bind(this)})),t&&this.searchResultsContainer){const c=this.searchResultsContainer.querySelector("a");c&&c.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,s,i,r;if(this.dataLayer.renderingEngine===z.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)U.setAccessibilityText("Search has no results"),this.renderNoResultsTemplate();else{U.setAccessibilityText(`Showing ${this.dataLayer.parsedData.startResultIndex} through ${this.dataLayer.parsedData.endResultIndex} results from ${this.dataLayer.parsedData.totalResults}. Press tab to navigate through results`);const o=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:s.template)||((i=M.searchResults.searchResultTemplate)==null?void 0:i.template),c=e.map(h=>v.render(o,h));((r=this.config)==null?void 0:r.renderMethod)==="infiniteScroll"&&this.dataLayer.searchObject.page>1?this.searchResultsContainer.innerHTML+=c.join(""):this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{}),e.removeEventListener("keydown",()=>{})})}get uniqueIdAttribute(){var e,t,a,s;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((s=M.searchResults.searchResultTemplate)==null?void 0:s.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}),e.addEventListener("keydown",t=>{if(t.code==="Space"||t.code==="Enter"){const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}})})}renderMainTemplate(){var t,a,s,i;const e=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.template)||((i=M.searchResults.mainTemplate)==null?void 0:i.template);this.dataLayer.renderingEngine===z.mustache&&(this.searchResultsMainContainer.innerHTML=v.render(e,{}),setTimeout(()=>{var c,h,d,p,g,y,L;const r=(d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.mainTemplate)!=null&&d.searchResultsContainerId?(y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplate)==null?void 0:y.searchResultsContainerId:(L=M.searchResults.mainTemplate)==null?void 0:L.searchResultsContainerId,o=document==null?void 0:document.getElementById(r);if(o)this.searchResultsContainer=o;else throw new Error(`Search Results Container with id ${r} not found`)},0))}}class _n{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"selectId");l(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)||M.sorting.main.selectId,this.searchSortingMainContainer=document==null?void 0:document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchSortingData(e),e}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document==null?void 0: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,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.sorting.main.template;if(this.dataLayer.renderingEngine===z.mustache){this.searchSortingMainContainer.innerHTML=v.render(t,e),this.markOptionSelected();const r=document==null?void 0:document.getElementById(this.selectId);r&&r.addEventListener("change",o=>{this.setOrderQuery(o.target.value)})}}}class Fn{constructor(e){l(this,"analyticsKey");l(this,"containerId");l(this,"mainContainer");l(this,"isLightweight");l(this,"emailOverride");l(this,"feedbackTextAreaOverride");l(this,"mainTemplateOverride");l(this,"lightweightTemplateOverride");l(this,"focusedElement",null);l(this,"focusTrapListener",null);l(this,"lastFocusedElementBeforeModal",null);l(this,"templateData",{feedbackOpen:!1,ratings:[{index:1,isSelected:!1},{index:2,isSelected:!1},{index:3,isSelected:!1},{index:4,isSelected:!1},{index:5,isSelected:!1},{index:6,isSelected:!1},{index:7,isSelected:!1},{index:8,isSelected:!1},{index:9,isSelected:!1},{index:10,isSelected:!1}],emailInput:"",feedbackTextArea:"",charactersLeft:2e3,maxLength:2e3,errors:{rating:!1,email:!1},submitted:!1,thumbsUpActive:!1,thumbsDownActive:!1});l(this,"thumbsUpValue",10);l(this,"thumbsDownValue",1);l(this,"ratedQuestion","");l(this,"language","");l(this,"model","");l(this,"analyticsSrc","");this.analyticsKey=e.analyticsKey,this.containerId=e.containerId??"sf-feedback",this.isLightweight=e.lightweight??!1,this.isLightweight&&this.templateData.ratings.unshift({index:0,isSelected:!1}),this.thumbsUpValue=e.thumbsUpValue??10,this.thumbsDownValue=e.thumbsDownValue??1,this.emailOverride=e.emailOverride,this.feedbackTextAreaOverride=e.feedbackTextAreaOverride,this.mainTemplateOverride=e.mainTemplateOverride,this.lightweightTemplateOverride=e.lightweightTemplateOverride,this.mainContainer=document.getElementById(this.containerId),this.language=e.language??"",this.model=e.model??"",this.analyticsSrc=e.analyticsSrc??"",this.init()}init(){ce.attachAnalyticsScript(this.analyticsSrc),this.renderMainTemplate(this.generateTemplateData())}generateTemplateData(){return this.templateData}renderMainTemplate(e){var s,i;const t=document.activeElement;(t instanceof HTMLInputElement||t instanceof HTMLButtonElement||t instanceof HTMLTextAreaElement||t instanceof HTMLAnchorElement)&&(t.type==="radio"||t.type==="button"||t.type==="textarea"||t instanceof HTMLAnchorElement)?this.focusedElement=t:this.focusedElement=null,this.mainContainer;let a=(s=B==null?void 0:B.mainTemplate)==null?void 0:s.template;if(this.mainTemplateOverride&&(a=this.mainTemplateOverride),this.isLightweight&&(a=(i=B.lightweightTemplate)==null?void 0:i.template,this.lightweightTemplateOverride&&(a=this.lightweightTemplateOverride)),this.mainContainer.innerHTML=v.render(a,e),this.focusedElement&&this.mainContainer){const r=this.focusedElement.type==="radio"?this.focusedElement.getAttribute("id"):this.focusedElement.getAttribute("class"),o=this.focusedElement.type==="radio"?"id":"class",c=this.mainContainer.querySelector(`[${o}="${r}"]`);(c instanceof HTMLInputElement||c instanceof HTMLButtonElement||c instanceof HTMLTextAreaElement||c instanceof HTMLAnchorElement)&&c.focus(),this.focusedElement=null}this.attachEvents()}attachEvents(){this.isLightweight?this.attachLightweightEvents():(this.attachOpenModalEvent(),this.closeModalEvent(),this.attachRatingEvents(),this.attachTextAreaEvents(),this.attachEmailInputEvents(),this.attachSubmitButtonEvents())}attachFocusTrap(){this.focusTrapListener&&document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=e=>{if(!this.templateData.feedbackOpen)return;const t=this.getModalElement();if(!t)return;const a=this.getFocusableElements(t);if(a.length===0)return;const s=a[0],i=a[a.length-1];e.key==="Tab"&&(e.shiftKey?(document.activeElement===s||!t.contains(document.activeElement))&&(e.preventDefault(),i==null||i.focus()):(document.activeElement===i||!t.contains(document.activeElement))&&(e.preventDefault(),s==null||s.focus())),e.key==="Escape"&&(e.preventDefault(),this.closeFeedbackModal())},document.addEventListener("keydown",this.focusTrapListener)}getFocusableElements(e){const t=["button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t))}getModalElement(){var t,a;const e=(t=B.mainTemplate)==null?void 0:t.modalContainerClass;return((a=this.mainContainer)==null?void 0:a.querySelector(`.${e}`))||null}attachLightweightEvents(){var i,r,o,c;const e=(i=B.lightweightTemplate)==null?void 0:i.thumbsUpButtonClass,t=(r=B.lightweightTemplate)==null?void 0:r.thumbsDownButtonClass,a=(o=this.mainContainer)==null?void 0:o.querySelector("."+e),s=(c=this.mainContainer)==null?void 0:c.querySelector("."+t);a&&a.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[this.templateData.ratings.length-1].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!0,this.templateData.thumbsDownActive=!1,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsUpValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())}),s&&s.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[0].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!1,this.templateData.thumbsDownActive=!0,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsDownValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())})}attachSubmitButtonEvents(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.submitButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.checkIfValid()})}checkIfValid(){var s,i;const e=(i=this.mainContainer)==null?void 0:i.querySelector("#"+((s=B.mainTemplate)==null?void 0:s.emailInputId));this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,U.setAccessibilityText("Please enter a valid email address.")),this.templateData.ratings.some(r=>r.isSelected)?this.templateData.errors.rating=!1:(this.templateData.errors.rating=!0,U.setAccessibilityText("Please Rate your experience.")),this.templateData.errors.rating||this.templateData.errors.email?this.renderMainTemplate(this.generateTemplateData()):this.submit()}submit(){var t,a,s;this.templateData.submitted=!0;const e=(t=this.templateData.ratings.find(i=>i.isSelected))==null?void 0:t.index;e!==void 0&&(ce.trackFeedback({trackApiKey:this.analyticsKey,email:this.emailOverride&&this.isLightweight?this.emailOverride():this.templateData.emailInput,rating:e,feedback:this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea,model:this.model?this.model:void 0,language:this.language?this.language:void 0}),this.showCheckmarkAnimation(),U.setAccessibilityText("Feedback has been sent.",1e3),(s=this.mainContainer)!=null&&s.querySelector("."+((a=B.mainTemplate)==null?void 0:a.checkmarkClass))?setTimeout(()=>{this.closeFeedbackModal(),this.renderMainTemplate(this.generateTemplateData())},2e3):(setTimeout(()=>{this.closeFeedbackModal()},500),this.renderMainTemplate(this.generateTemplateData())))}validateEmail(e){return e===""?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}attachEmailInputEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=B.mainTemplate)==null?void 0:t.emailInputId));e&&(e.addEventListener("input",()=>{this.templateData.emailInput=e.value}),e.addEventListener("blur",()=>{setTimeout(()=>{this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,U.setAccessibilityText("Please enter a valid email address.")),this.renderMainTemplate(this.generateTemplateData())},300)}))}attachTextAreaEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=B.mainTemplate)==null?void 0:t.feedbackTextAreaId));e&&e.addEventListener("input",()=>{var i,r;this.templateData.feedbackTextArea=e.value,this.templateData.charactersLeft=this.templateData.maxLength-e.value.length;const s=(r=this.mainContainer)==null?void 0:r.querySelector("."+((i=B.mainTemplate)==null?void 0:i.charactersRemainingContainerclass));s&&(s.innerText=this.templateData.charactersLeft+"")})}attachRatingEvents(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.ratingInputclass,t=(s=this.mainContainer)==null?void 0:s.querySelectorAll("."+e);t&&t.forEach(i=>{i.addEventListener("click",r=>{const o=r.target.value;this.templateData.ratings.forEach(c=>{c.isSelected=c.index+""===o}),this.templateData.errors.rating=!1,this.renderMainTemplate(this.generateTemplateData())})})}attachOpenModalEvent(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.openModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",i=>{i.preventDefault(),this.toggleModal()})}toggleModal(){this.templateData.feedbackOpen?this.closeFeedbackModal():this.openFeedbackModal()}closeModalEvent(){var a,s;const e=(a=B.mainTemplate)==null?void 0:a.closeModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.closeFeedbackModal()})}openFeedbackModal(){this.lastFocusedElementBeforeModal=document.activeElement,this.templateData.feedbackOpen=!0,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{const e=this.getModalElement();if(e){const t=this.getFocusableElements(e);t.length>0&&t[0].focus()}this.attachFocusTrap()},0),U.setAccessibilityText("Feedback form opened",1e3)}closeFeedbackModal(){this.templateData.feedbackOpen=!1,this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null),this.renderMainTemplate(this.generateTemplateData()),this.lastFocusedElementBeforeModal&&(this.lastFocusedElementBeforeModal.focus(),this.lastFocusedElementBeforeModal=null),U.setAccessibilityText("Feedback form closed",1e3)}showCheckmarkAnimation(){var o,c,h,d,p,g;const e=(o=B.mainTemplate)==null?void 0:o.submitButtonClass,t=(c=this.mainContainer)==null?void 0:c.querySelector("."+e);t&&(t.disabled=!0);const a=(h=B.mainTemplate)==null?void 0:h.checkmarkClass,s=(d=this.mainContainer)==null?void 0:d.querySelector("."+a);s&&s.classList.remove("hidden");const i=(p=B.mainTemplate)==null?void 0:p.submitButtonTextClass,r=(g=this.mainContainer)==null?void 0:g.querySelector("."+i);r&&r.classList.add("visibility"),setTimeout(()=>{s&&s.classList.add("hidden"),r&&r.classList.remove("visibility"),t&&(t.disabled=!1)},2e3)}destroy(){this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null)}}class zn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"answerContainer",null);l(this,"showMoreVisible",!1);l(this,"renderFeedbackWidget",!1);l(this,"clicked",!1);l(this,"renderedWithShowMore",!1);var t;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.renderFeedbackWidget=((t=this.config.feedbackwidget)==null?void 0:t.renderFeedbackWidget)||!1,this.config.showMoreAfterWordCount&&(this.dataLayer.answerWidgetShowMoreLimit=this.config.showMoreAfterWordCount),typeof document<"u"&&(this.answerContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.dataLayer.setIsAnswerWidgetCreated(!0)}initializeSubscriptions(){this.dataLayer.$answer.subscribe(()=>{this.clicked?this.showMoreVisible=!1:this.showMoreVisible=this.dataLayer.parsedData.shouldShowAnswerLoadMore,this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerLoading.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerError.subscribe(e=>{e&&setTimeout(()=>{this.renderMainTemplate(this.generateTemplateData())},100)}),this.dataLayer.$searchObject.subscribe(()=>{this.clicked=!1,this.renderedWithShowMore=!1,this.showMoreVisible=!1}),this.dataLayer.$paginationData.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answer.subscribe(e=>{e&&setTimeout(()=>{this.initializeWidget()},600)}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.dataLayer.$answer.getValue()&&setTimeout(()=>{this.initializeWidget()},600)})}searchstaxFeedbackTextAreaOverride(){return"Question: "+(this.dataLayer.searchObject.query==="undefined"?"":this.dataLayer.searchObject.query)+" Answer: "+this.dataLayer.parsedData.getAnswerData}initializeWidget(){var e,t,a,s,i;this.renderFeedbackWidget&&document.getElementById("feedbackWidgetContainer")&&!this.dataLayer.answerLoading&&new Fn({analyticsKey:this.dataLayer.parsedData.trackingData.trackApiKey,containerId:"feedbackWidgetContainer",lightweight:!0,model:this.dataLayer.parsedData.trackingData.model,language:this.dataLayer.parsedData.trackingData.language,emailOverride:(e=this.config.feedbackwidget)==null?void 0:e.emailOverride,feedbackTextAreaOverride:((t=this.config.feedbackwidget)==null?void 0:t.searchstaxFeedbackTextAreaOverride)??this.searchstaxFeedbackTextAreaOverride.bind(this),thumbsUpValue:((a=this.config.feedbackwidget)==null?void 0:a.thumbsUpValue)??10,thumbsDownValue:((s=this.config.feedbackwidget)==null?void 0:s.thumbsDownValue)??0,lightweightTemplateOverride:(i=this.config.feedbackwidget)==null?void 0:i.lightweightTemplateOverride})}showMore(e){e.preventDefault(),this.clicked=!0,this.showMoreVisible=!1,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{this.initializeWidget()},600)}attachClickEventToShowMore(){const e=document.querySelector(".searchstax-answer-load-more-button");e&&e.addEventListener("click",this.showMore.bind(this))}trackLinkClick(e){e.preventDefault(),e.stopPropagation();const a=e.target.getAttribute("href");ce.trackAnswerLinkClick({href:a,answer:this.dataLayer.parsedData.getAnswerData,...this.dataLayer.parsedData.trackingData}).then(()=>{window.open(a,"_blank")}).catch(()=>{window.open(a,"_blank")})}attachLinkTracking(){document.querySelectorAll(".searchstax-answer-link").forEach(t=>{t.getAttribute("listener")!=="true"&&(t.setAttribute("listener","true"),t.addEventListener("click",this.trackLinkClick.bind(this)))})}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.answer.main.template;this.dataLayer.renderingEngine===z.mustache?(!this.renderedWithShowMore||!e.answerLoading||this.clicked)&&(e.showMoreButtonVisible&&(this.renderedWithShowMore=!0),this.answerContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClickEventToShowMore(),this.attachLinkTracking()},100)):setTimeout(()=>{this.attachLinkTracking()},500)}generateTemplateData(){const e={...this.dataLayer.parsedData.data,showMoreButtonVisible:this.showMoreVisible};return this.dataLayer.setAnswerFullData(e),e}}class fs{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"currentSelectValue","");l(this,"locationInput");l(this,"radiusInput");l(this,"locationDecode");l(this,"locationDecodeCoordinatesToAddress");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.locationDecode=(t=e.config.hooks)==null?void 0:t.locationDecode,this.locationDecodeCoordinatesToAddress=(a=e.config.hooks)==null?void 0:a.locationDecodeCoordinatesToAddress,this.dataLayer.locationEnabled&&this.dataLayer.$inputTemplateRendered.subscribeUntil(()=>{this.renderMainTemplate(),this.attachSubscriptions()},!0,500)}renderMainTemplate(){var e,t,a,s,i,r,o,c;if(typeof document<"u"){const h=document==null?void 0:document.getElementById(this.containerId);if(!h)throw new Error("Search input container not found");const d=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.location.mainTemplate.template,p={...this.dataLayer.parsedData.data};if(this.dataLayer.setLocationWidgetTemplateData(p),this.dataLayer.renderingEngine===z.mustache){const g=v.render(d,p);h.innerHTML=g;const y=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.locationInputId)||M.location.mainTemplate.locationInputId,L=document==null?void 0:document.querySelector(`#${y}`);if(L)this.locationInput=L,L.addEventListener("blur",this.blurEvent.bind(this)),L.addEventListener("focus",this.focusEvent.bind(this));else throw new Error("Input not found");const f=((r=(i=this.config.templates)==null?void 0:i.mainTemplate)==null?void 0:r.radiusInputId)||M.location.mainTemplate.radiusInputId,w=document==null?void 0:document.querySelector(`#${f}`);w instanceof HTMLSelectElement&&(this.radiusInput=w,w.addEventListener("change",this.radiusSelectChangeEvent.bind(this)));const S=((c=(o=this.config.templates)==null?void 0:o.mainTemplate)==null?void 0:c.currentLocationActionButtonId)||M.location.mainTemplate.currentLocationActionButtonId,A=document==null?void 0:document.querySelector(`#${S}`);A&&A.addEventListener("click",this.getCurrentLocation.bind(this))}}}setCurrentLocationFields(e){this.dataLayer.setLocationCoordinatesDecoded(e),this.dataLayer.setSearchLocation(this.dataLayer.searchLocationCoordinatesDecoded),this.dataLayer.renderingEngine===z.mustache&&this.locationInput&&(this.locationInput.value=this.dataLayer.searchLocationCoordinatesDecoded)}getCurrentLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(e=>{const t=e.coords.latitude.toString(),a=e.coords.longitude.toString(),s=Math.floor(parseFloat(t)*100)/100,i=Math.floor(parseFloat(a)*100)/100;this.dataLayer.setSearchLat(s+""),this.dataLayer.setSearchLong(i+"");const r=this.locationDecodeCoordinatesToAddress;r?r(s+"",i+"").then(o=>{this.setCurrentLocationFields(o.address||"Current Location")}).catch(()=>{this.setCurrentLocationFields("Current Location")}):this.setCurrentLocationFields("Current Location")},()=>{console.error("Unable to retrieve your location")}):console.error("Geolocation is not supported by this browser.")}setRadiusValue(e){this.dataLayer.setSearchRadius(e)}radiusSelectChangeEvent(e){this.currentSelectValue=e.target.value,this.setRadiusValue(this.currentSelectValue)}attachSubscriptions(){this.dataLayer.$searchObject.subscribe(e=>{this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(e.location.address??"")),this.radiusInput&&e.location.radius&&(this.radiusInput.value=e.location.radius||"")})}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}triggerGeocoder(e){const t=this.locationDecode;this.dataLayer.setLocationDecodingLoading(!0),e&&this.dataLayer.searchLocation!==e&&e!==this.dataLayer.searchLocationCoordinatesDecoded?t(e).then(a=>{this.dataLayer.setSearchLocation(a.address||""),this.dataLayer.setSearchLat(a.lat||""),this.dataLayer.setSearchLong(a.lon||""),this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(a.address||"")),this.dataLayer.renderingEngine===z.mustache&&a.error&&this.locationInput&&this.locationInput.classList.add("searchstax-input-location-error"),a.error?this.dataLayer.setLocationError(!0):this.dataLayer.setLocationError(!1),this.dataLayer.setLocationDecodingLoading(!1)}).catch(()=>{this.dataLayer.setLocationDecodingLoading(!1)}):e===""&&(this.dataLayer.setSearchLocation(void 0),this.dataLayer.setSearchLat(void 0),this.dataLayer.setSearchLong(void 0),this.dataLayer.setLocationDecodingLoading(!1))}focusEvent(e){e.target.classList.remove("searchstax-input-location-error"),this.dataLayer.setLocationError(!1)}blurEvent(e){const a=e.target.value;this.triggerGeocoder(a)}}class $n{constructor(e=z.mustache){l(this,"routerEnabled",!1);l(this,"cachedQuery","");l(this,"routerHelper");l(this,"searchHelper");l(this,"searchResultsConfig");l(this,"searchPaginationConfig");l(this,"searchFeedbackConfig");l(this,"searchSortingConfig");l(this,"searchFacetsConfig");l(this,"relatedSearchesConfig");l(this,"externalPromotionsConfig");l(this,"searchInputWidget");l(this,"searchLocationWidget");l(this,"searchResultsWidget");l(this,"searchFacetsWidget");l(this,"searchPaginationWidget");l(this,"searchFeedbackWidget");l(this,"searchSortingWidget");l(this,"relatedSearchesWidget");l(this,"externalPromotionsWidget");l(this,"answerWidget");l(this,"locationObserver",null);l(this,"dataLayer");l(this,"firstRequest",!0);l(this,"previousQuery","");l(this,"eventSource",null);l(this,"renderEngine",z.mustache);e&&(this.renderEngine=e)}setRenderingEngine(e=z.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)}),setTimeout(()=>{this.dataLayer.$searchObject.subscribe(a=>{var s,i,r,o,c,h;a.query!==this.previousQuery&&this.dataLayer.setAnswerData(""),a.query!==""&&a.query!==void 0&&a.query!=="undefined"?(this.search(a),a.query!==this.previousQuery&&this.startSSE(a.query)):(s=this.dataLayer.searchLocationConfig)!=null&&s.locationSearchEnabled&&!((i=this.dataLayer.searchLocationConfig)!=null&&i.locationValuesOverride)?this.getMetadata(a):(o=(r=this.dataLayer.searchLocationConfig)==null?void 0:r.locationValuesOverride)!=null&&o.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((h=(c=this.dataLayer.searchLocationConfig)==null?void 0:c.locationValuesOverride)==null?void 0:h.locationFilterDefaultValue),this.previousQuery=a.query})},10),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}startSSE(e){var t,a;this.eventSource&&((t=this.eventSource)==null||t.close(),this.dataLayer.setAnswerData("")),this.dataLayer.turnAIAnswerGenerationOn===!0&&this.dataLayer.questionURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&(this.eventSource=(a=this.searchHelper)==null?void 0:a.startSSE(e,this.parseAnswerResultsResponse.bind(this)))}attachAnalyticsScript(e){ce.attachAnalyticsScript(e)}initialize(e){var t,a;if(this.dataLayer=new Gi("searchstax_session_id",e.sessionId),this.renderEngine&&this.dataLayer.setRenderingEngine(this.renderEngine),this.handleHooks(),e.questionURL&&(this.dataLayer.questionURL=e.questionURL),e.analyticsBaseUrl&&typeof window<"u"&&(window.analyticsBaseUrl=e.analyticsBaseUrl,window._msq=e._msq||[],this.attachAnalyticsScript(e.analyticsSrc)),e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),e.language&&this.dataLayer.setLanguage(e.language),e.model&&this.dataLayer.setModel(e.model),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new an({...e,sessionId:this.dataLayer.sessionId},this.dataLayer),this.dataLayer.searchHelper=this.searchHelper),((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 ls(e.router?e.router:{enabled:!0});const s=this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"");this.dataLayer.searchObject.itemsPerPage?s.itemsPerPage=this.dataLayer.searchObject.itemsPerPage:s.itemsPerPage&&this.dataLayer.setItemsPerPage(s.itemsPerPage),s.model&&this.dataLayer.setModel(s.model),s.location&&(s.location.address&&this.dataLayer.setSearchLocation(s.location.address),s.location.lat&&this.dataLayer.setSearchLat(s.location.lat),s.location.lon&&this.dataLayer.setSearchLong(s.location.lon),s.location.radius&&this.dataLayer.setSearchRadius(s.location.radius)),this.dataLayer.setSearchObject(s),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"",this.dataLayer.searchObject.itemsPerPage))})}else this.routerHelper=new ls({})}getMetadata(e){this.searchHelper&&(e.query==="undefined"||e.query===void 0)&&this.dataLayer.setSearchObject({...e,query:"*"})}search(e){if(this.searchHelper){const t=this.dataLayer.forceNotCorrect;this.searchHelper.url&&(this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1),this.getRelatedSearches()}}getRelatedSearches(){var e;this.searchHelper&&this.relatedSearchesConfig&&((e=this.relatedSearchesConfig)!=null&&e.relatedSearchesURL)&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var i,r;const a=(((i=e.response)==null?void 0:i.docs)??[]).map((o,c)=>({...o,position:c+1})),s=[];for(const o of a)s.push({relatedSearch:o.related_search,position:o.position});this.dataLayer.setSearchRelatedSearches(a),this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&s.length&&ce.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:s,totalRelatredSearches:((r=this.dataLayer.searchRelatedSearches)==null?void 0:r.length)??0})}handleRouter(){if(this.routerEnabled){const e={...this.dataLayer.searchObject};this.dataLayer.isInfiniteScroll&&delete e.page,this.routerHelper.updateUrl(e)}}parseSearchResultsResponseMetadata(e){var s,i,r,o;const t=et.extractSearchResultsMetadata(e),a=((i=(s=this.dataLayer.searchLocationConfig)==null?void 0:s.locationValuesOverride)==null?void 0:i.locationFilterDefaultValue)??((o=(r=t.location)==null?void 0:r.filter)==null?void 0:o.defaultValue);!this.dataLayer.searchRadius&&a&&this.dataLayer.setSearchRadius(a),this.dataLayer.setSearchResultsMetadata(t)}parseSearchResultsResponse(e){var s,i;this.handleRouter(),this.dataLayer.setItemsPerPage(parseInt(e.responseHeader.params.rows)),this.dataLayer.setModel(e.responseHeader.params.model);let t=et.combineResultsWithMetadata(e),a=et.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??[]),this.parseSearchResultsResponseMetadata(e),this.dataLayer.setSearchResults(t)}parseAnswerResultsResponse(e){this.handleRouter(),e!==ze.question&&e!==ze.notQuestion&&(this.dataLayer.setAnswerLoading(!0),this.dataLayer.setAnswerData(this.dataLayer.getAnswerData+e))}cacheFacets(e){var t,a;e?(t=this.searchHelper)==null||t.cacheFacets(!0).then(()=>{}):(a=this.searchHelper)==null||a.cacheFacets().then(()=>{})}parseSuggestSuggestResponse(e){var a,s;let t=e;(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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.$locationEnabled.subscribeUntilHasValue(()=>{this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Pn({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer})},200)}addSearchLocationWidget(e,t){var a,s;this.dataLayer.searchLocationConfig||(t.locationSearchEnabled?(this.dataLayer.setLocationEnabled(!0),this.dataLayer.setSearchLocationConfig(t),t.locationValuesOverride?(this.searchLocationWidget=new fs({containerId:e,config:t,dataLayer:this.dataLayer}),(a=t==null?void 0:t.locationValuesOverride)!=null&&a.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((s=t==null?void 0:t.locationValuesOverride)==null?void 0:s.locationFilterDefaultValue)):this.dataLayer.$searchResultsMetadata.subscribeUntilHasValue(()=>{this.searchLocationWidget=new fs({containerId:e,config:t,dataLayer:this.dataLayer})},0)):this.dataLayer.setLocationEnabled(!1))}addAnswerWidget(e,t){this.dataLayer.turnAIAnswerGenerationOn=!0,this.startSSE(this.dataLayer.searchObject.query),this.dataLayer.setAnswerData(""),this.answerWidget=new zn({containerId:e,config:t,dataLayer:this.dataLayer})}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new On({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 jn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Nn({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)})}addSearchSortingWidget(e,t){this.searchSortingConfig=t,this.searchSortingWidget=new _n({containerId:e,config:t,dataLayer:this.dataLayer})}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Rn({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0)}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig=t,this.externalPromotionsWidget=new Dn({containerId:e,config:t,dataLayer:this.dataLayer})}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new In({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){const a={...this.dataLayer.searchObject};a.query=Y.removeXSSRiskyTags(e),a.page=1,a.facets=[],a.location={...a.location},this.locationObserver&&this.dataLayer.$locationDecodingLoading.unsubscribe(this.locationObserver),this.locationObserver=this.dataLayer.$locationDecodingLoading.subscribeUntil(()=>{var i,r;a.location.address=this.dataLayer.searchLocation,a.location.radius=this.dataLayer.searchRadius,a.location.lat=this.dataLayer.searchLat,a.location.lon=this.dataLayer.searchLong,this.dataLayer.forceNotCorrect=!!t;let s=(i=this.routerHelper)==null?void 0:i.searchObjectToParams(a);s&&(s=(r=this.routerHelper)==null?void 0:r.extractParamsThatDoNotStartWithRouteName(s)),s&&(a.additionalProps=Object.keys(s).map(o=>s?{key:o,value:s[o]}:{key:"",value:""})),this.dataLayer.setSearchObject(a),this.dataLayer.lastSearchValue=a.query},!1)}executeSuggest(e){var a,s;let t={term:e,queryParams:[]};(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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){var t;this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&!this.dataLayer.cookiesDisabled&&ce.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e,totalRelatredSearches:((t=this.dataLayer.searchRelatedSearches)==null?void 0:t.length)??0})}executeLinkClick(e){var a,s;let t=et.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((s=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&s.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackClick({result:t,...this.dataLayer.parsedData.trackingData}).then(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}).catch(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}setCookiesDisabled(e){this.dataLayer.setCookiesDisabled(e)}changeResultTemplate(e){var t,a,s;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(s=this.searchResultsWidget)==null||s.changeTemplate())}}exports.Searchstax=$n;
@@ -431,4 +431,4 @@ Please report this to https://github.com/markedjs/marked.`,n){const a="<p>An err
431
431
 
432
432
  </div>
433
433
  </div>
434
- `,thumbsUpButtonClass:"searchstax-lightweight-widget-thumbs-up",thumbsDownButtonClass:"searchstax-lightweight-widget-thumbs-down"}};class M{}l(M,"answer",on),l(M,"externalPromotions",ln),l(M,"facets",cn),l(M,"pagination",hn),l(M,"relatedSearches",un),l(M,"searchFeedback",dn),l(M,"searchInput",gn),l(M,"location",pn),l(M,"searchResults",fn),l(M,"sorting",mn),l(M,"feedback",V);class Ln{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"externalPromotionsContainerId");l(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)||M.externalPromotions.mainTemplate.externalPromotionsContainerId,typeof document<"u"&&(this.searchExternalPromotionsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions};return this.dataLayer.setExternalPromotionsData(e),e}addExternalSearch(e){var a,s,i,r;const t=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;if(t){const o=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.externalPromotion)==null?void 0:i.template)||((r=M.externalPromotions.externalPromotion)==null?void 0:r.template);if(typeof document<"u"){const c=document==null?void 0:document.createElement("div");c.classList.add("searchstax-external-promotion"),c.addEventListener("click",h=>{this.trackClick(e,h)}),c.innerHTML=v.render(o,e),t.appendChild(c)}}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window==null||window.open(e.url,"_blank")}renderMainTemplate(e){var a,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||((r=M.externalPromotions.mainTemplate)==null?void 0:r.template);if(this.dataLayer.renderingEngine===D.mustache){this.searchExternalPromotionsMainContainer.innerHTML=v.render(t,e);const o=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;o&&(o.innerHTML="");for(const c of e.externalPromotions)this.addExternalSearch(c)}}}class Q{static addAccessibilityNotificationContainerToBody(){if(!document.getElementById("searchAccessibilityContainer")){const t=document.createElement("div");t.setAttribute("aria-live","polite"),t.setAttribute("id","searchAccessibilityContainer"),document.body.appendChild(t)}}static setAccessibilityText(e,t,a){this.addAccessibilityNotificationContainerToBody();const s=a??"searchAccessibility",i=document.getElementById(s);i&&i.remove();const r=document.createElement("span");r.setAttribute("id",s),r.innerHTML=e;const o=document.getElementById("searchAccessibilityContainer");o&&setTimeout(()=>{o.appendChild(r)},t??100)}}class yn{constructor(e,t){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"routerHelper");l(this,"cachedPhrase","");l(this,"cachedANDFacets","");l(this,"isCached",!1);l(this,"overlayOpened",!1);l(this,"facetPaginationStep");l(this,"facetPaginationStepMobile");l(this,"searchFacetsMainContainer",null);l(this,"searchFacetsMobileContainer",null);l(this,"searchFacetsDesktopContainer",null);l(this,"facetLimits",{});l(this,"facetLimitsMobile",{});l(this,"deactivatedFacets",{});l(this,"focusedElement",null);l(this,"cachedData",null);l(this,"cacheFacets");l(this,"onFacetSelect",(e,t,a,s,i)=>{if(e.stopPropagation(),!t.disabled){const r=a.querySelector("input");let o=s?r.checked:!r.checked;i!==void 0&&(o=!i),r.checked=o;const c=this.dataLayer.searchObject;let h=[...c.facets];const d=this.extractFacetValue(t);o?h.find(g=>re.deepEqual(g,d)?g:!1)||(this.config.facetingType==="tabs"&&(h=h.filter(g=>g.name!==d.name)),h.push(d)):h=h.filter(p=>!re.deepEqual(p,d)),setTimeout(()=>{this.dataLayer.setSearchObject({...c,facets:h,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,typeof document<"u"&&(this.searchFacetsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.needCache&&t(this.config.facetingType==="tabs"),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.$searchFacetsCachedTabs.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.config.facetingType==="tabs")),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query||this.cachedANDFacets!==this.dataLayer.parsedData.cachedANDFacets?(this.cachedANDFacets=this.dataLayer.parsedData.cachedANDFacets,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,s=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(i=>{s[i.name]||(s[i.name]=a)}),e.map(i=>({...i,values:i.values.slice(0,s[i.name]),showingAllFacets:i.values.length<=s[i.name],hasMoreFacets:i.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.config.facetingType==="tabs"&&this.dataLayer.searchFacetsCachedTabs&&(t=this.dataLayer.searchFacetsCachedTabs),this.needDisabling&&(t=t.map(s=>{var r;const i=(r=this.dataLayer.searchFacets)==null?void 0:r.find(o=>o.name===s.name);return i?{...s,values:s.values.map(c=>{const h=i.values.find(d=>c.type==="range"?!1:c.type==="checkbox"?d.value===c.value:!1);return{...c,disabled:!h,isMobile:e}})}:{...s,values:s.values.map(c=>({...c,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(s=>{var i;return(i=this.config.specificFacets)==null?void 0:i.includes(s.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 s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,N;if(typeof document<"u"){const T=document==null?void 0:document.createElement("div");T.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||T.classList.add("active");const R=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemContainerTemplate)==null?void 0:r.template)||((o=M.facets.facetItemContainerTemplate)==null?void 0:o.template);T.innerHTML=v.render(R,e),t.appendChild(T);const P=T.querySelector("."+(((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:d.facetListTitleContainerClass)||((p=M.facets.facetItemContainerTemplate)==null?void 0:p.facetListTitleContainerClass)));P==null||P.addEventListener("click",()=>{T.classList.toggle("active");const F=T.classList.contains("active"),de=P.querySelector(".searchstax-facet-title");de&&de.setAttribute("aria-expanded",String(F))}),(f=P==null?void 0:P.querySelector("."+((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:L.facetListTitleContainerInner)))==null||f.addEventListener("keydown",F=>{if(F.code==="Enter"||F.code==="Space"){F.preventDefault(),T.classList.toggle("active");const de=T.classList.contains("active"),ge=P.querySelector(".searchstax-facet-title");ge&&ge.setAttribute("aria-expanded",String(de))}});const W=T.querySelector("."+(((A=(S=(w=this.config)==null?void 0:w.templates)==null?void 0:S.facetItemContainerTemplate)==null?void 0:A.facetListContainerClass)||((N=M.facets.facetItemContainerTemplate)==null?void 0:N.facetListContainerClass)));W&&(e.values.forEach(F=>{this.createFacetListItem(F,W,e.name)}),e.hasMoreFacets&&this.createHasMoreComponent(e,W,a))}}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>re.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t,a){var s,i,r,o,c,h,d,p,g,y,L,f;if(typeof document<"u"){const w=document==null?void 0:document.createElement("div");w.classList.add("searchstax-facet-value-container"),e.disabled&&w.classList.add("searchstax-facet-value-disabled");const S=this.isChecked(e),A=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemTemplate)==null?void 0:r.template)||((o=M.facets.facetItemTemplate)==null?void 0:o.template);w.innerHTML=v.render(A,{...e,isChecked:S});let N=(c=M.facets.facetItemTemplate)==null?void 0:c.checkTriggerClasses;N=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.facetItemTemplate)==null?void 0:p.checkTriggerClasses)||N,N.forEach(R=>{const P=w.querySelector("."+R);P==null||P.addEventListener("click",W=>{this.onFacetSelect(W,e,w)})});const T=w.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemTemplate)==null?void 0:L.inputCheckboxClass)||((f=M.facets.facetItemTemplate)==null?void 0:f.inputCheckboxClass)));T==null||T.addEventListener("click",R=>{this.onFacetSelect(R,e,w,!0)}),T&&(T==null||T.setAttribute("data-test-value",`${encodeURIComponent(a)}:&quot;${encodeURIComponent(e.value)}&quot;`)),t.appendChild(w)}}createHasMoreComponent(e,t,a){var s,i,r,o,c,h,d,p,g,y;if(typeof document<"u"){const L=document==null?void 0:document.createElement("div");L.classList.add("searchstax-facet-show-more-container");const f=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.showMoreButtonContainerTemplate)==null?void 0:r.template)||((o=M.facets.showMoreButtonContainerTemplate)==null?void 0:o.template);L.innerHTML=v.render(f,{...e,focusId:`moreLess${(h=(c=e==null?void 0:e.values)==null?void 0:c[0])==null?void 0:h.value}`});const w=L.querySelector("."+(((g=(p=(d=this.config)==null?void 0:d.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:g.showMoreButtonClass)||((y=M.facets.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)));w&&(this.attachOnclickToShowMore(e,w,a),t&&t.appendChild(w))}}attachOnclickToShowMore(e,t,a){t.addEventListener("click",s=>{this.onShowMoreLessClick(s,e,a)}),t.addEventListener("keydown",s=>{s.code==="Space"&&s.preventDefault()}),t.addEventListener("keyup",s=>{(s.code==="Space"||s.code==="Enter")&&(s.preventDefault(),this.onShowMoreLessClick(s,e,a))})}onShowMoreLessClick(e,t,a){e.preventDefault();const s=a?this.facetPaginationStepMobile:this.facetPaginationStep,i=a?this.facetLimits:this.facetLimitsMobile;i[t.name]===void 0?i[t.name]=s*2:i[t.name]<=t.values.length?(Q.setAccessibilityText(`More Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=i[t.name]+s):(Q.setAccessibilityText(`Less Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=s),this.generateTemplateData(a),this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,s,i,r,o,c,h,d,p,g,y;if(e&&(!re.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const L=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplateDesktop)==null?void 0:i.template)||((r=M.facets.mainTemplateDesktop)==null?void 0:r.template);if(this.dataLayer.renderingEngine===D.mustache&&this.searchFacetsMainContainer){const f=document.activeElement;f instanceof HTMLInputElement&&f.type==="checkbox"||f!=null&&f.classList.contains("searchstax-facet-show-more-button")||f!=null&&f.classList.contains("searchstax-facet-show-less-button")?this.focusedElement=f:this.focusedElement=null,this.searchFacetsMainContainer.innerHTML=v.render(L,{...e});const w=(d=this.searchFacetsMainContainer)==null?void 0:d.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||M.facets.mainTemplateDesktop.facetsContainerClass));if(w){w.innerHTML="";for(const S of e.facets)this.createFacetItem(S,w);if(this.searchFacetsMainContainer){const S=this.searchFacetsMainContainer.querySelector("."+(((y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||M.facets.mainTemplateDesktop.selectedFacetsContainerClass));S&&(this.createSelectedFacetsComponents(S),this.createClearFacetsComponents(S))}if(this.focusedElement){if(this.focusedElement.classList.contains("searchstax-facet-show-more-button")||this.focusedElement.classList.contains("searchstax-facet-show-less-button")){const N=this.focusedElement.getAttribute("data-focus"),T=this.searchFacetsMainContainer.querySelector(`[data-focus="${N}"]`);T instanceof HTMLElement&&T.focus(),this.focusedElement=null;return}const S=this.focusedElement.getAttribute("data-test-value"),A=this.searchFacetsMainContainer.querySelector(`[data-test-value="${S}"]`);A instanceof HTMLInputElement&&A.focus(),this.focusedElement=null}}}setTimeout(()=>{document.querySelectorAll(".searchstax-facet-title").forEach(w=>{w.setAttribute("aria-expanded",String(!0)),w.setAttribute("tabindex","0"),w.setAttribute("role","button")})},100),this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const s=decodeURIComponent(a.name),i=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const r=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,o=r==null?void 0:r.find(c=>c.name===s);if(o){const c=o.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${i}"`:!1);c&&e.push(c)}}}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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=this.dataLayer.searchObject,p=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.clearFacetsTemplate)==null?void 0:s.template)||((i=M.facets.clearFacetsTemplate)==null?void 0:i.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,{shouldShow:d.facets.length>0});const y=g.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.clearFacetsTemplate)==null?void 0:c.containerClass)||((h=M.facets.clearFacetsTemplate)==null?void 0:h.containerClass)));y&&(y.addEventListener("click",()=>{this.removeSelectedFacets()}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.removeSelectedFacets()}),e.appendChild(y))}}createSelectedFacetsComponent(e,t){var a,s,i,r,o,c,h,d;if(typeof document<"u"){const p=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.selectedFacetsTemplate)==null?void 0:i.template)||((r=M.facets.selectedFacetsTemplate)==null?void 0:r.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,t);const y=g.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:h.containerClass)||((d=M.facets.selectedFacetsTemplate)==null?void 0:d.containerClass)));y&&(y.addEventListener("click",()=>{this.unselectFacet(t)}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.unselectFacet(t)}),e.appendChild(y))}}unselectFacet(e){const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(s=>JSON.stringify(s)!==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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.filterByTemplate)==null?void 0:s.template)||((i=M.facets.filterByTemplate)==null?void 0:i.template),p=document==null?void 0:document.createElement("div");p.innerHTML=v.render(d,{});const g=p.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.filterByTemplate)==null?void 0:c.containerClass)||((h=M.facets.filterByTemplate)==null?void 0:h.containerClass)));g&&(e.prepend(g),g.addEventListener("click",this.openOverlay.bind(this)),g.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.openOverlay()}))}}openOverlay(){var e;Q.setAccessibilityText("Facet overlay opened. Tab to select facets."),this.overlayOpened=!0,this.searchFacetsMainContainer&&(typeof document<"u"&&document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;Q.setAccessibilityText("Facet overlay closed"),this.overlayOpened=!1,this.searchFacetsMainContainer&&(typeof document<"u"&&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,s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,N,T;if(e&&typeof document<"u"){const R=document==null?void 0:document.createElement("div");R.classList.add("searchstax-facets-container-mobile");const P=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:s.template)||((i=M.facets.mainTemplateMobile)==null?void 0:i.template);if(this.dataLayer.renderingEngine===D.mustache){if(R.innerHTML=v.render(P,{...e,overlayOpened:this.overlayOpened}),(r=this.searchFacetsMainContainer)==null||r.appendChild(R),(c=(o=this.config)==null?void 0:o.templates)!=null&&c.mainTemplateMobile)for(const ge of((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.mainTemplateMobile)==null?void 0:p.closeOverlayTriggerClasses)||[]){const z=R.querySelector("."+ge);z&&(z.addEventListener("click",this.closeOverlay.bind(this)),z.addEventListener("keyup",Me=>{(Me.code==="Space"||Me.code==="Enter")&&this.closeOverlay()}))}else for(const ge of M.facets.mainTemplateMobile.closeOverlayTriggerClasses){const z=R.querySelector("."+ge);z&&(z.addEventListener("click",this.closeOverlay.bind(this)),z.addEventListener("keyup",Me=>{(Me.code==="Space"||Me.code==="Enter")&&this.closeOverlay()}))}const W=R.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:L.filterByContainerClass)||M.facets.mainTemplateMobile.filterByContainerClass));W&&this.createFilterByComponent(W);const F=R.querySelector("."+(((S=(w=(f=this.config)==null?void 0:f.templates)==null?void 0:w.mainTemplateMobile)==null?void 0:S.selectedFacetsContainerClass)||M.facets.mainTemplateMobile.selectedFacetsContainerClass));F&&(this.createSelectedFacetsComponents(F),this.createClearFacetsComponents(F));const de=R.querySelector("."+(((T=(N=(A=this.config)==null?void 0:A.templates)==null?void 0:N.mainTemplateMobile)==null?void 0:T.facetsContainerClass)||M.facets.mainTemplateMobile.facetsContainerClass));if(de){de.innerHTML="";for(const ge of e.facets)this.createFacetItem(ge,de,!0)}}}}}class wn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"previousButtonClass");l(this,"nextButtonClass");l(this,"loadMoreButtonClass");l(this,"routerHelper");l(this,"searchPaginationMainContainer",null);var t,a,s,i,r,o,c,h,d;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.previousButtonClass)??M.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.nextButtonClass)??M.pagination.mainTemplate.nextButtonClass,this.loadMoreButtonClass=((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.infiniteScrollTemplate)==null?void 0:d.loadMoreButtonClass)??M.pagination.infiniteScrollTemplate.loadMoreButtonClass,typeof document<"u"&&(this.searchPaginationMainContainer=document==null?void 0: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(){return this.dataLayer.parsedData.data.isLastPage}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a,s,i;const e={...this.dataLayer.parsedData.data,previousPageLink:(a=this.routerHelper)==null?void 0:a.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:(i=this.routerHelper)==null?void 0:i.searchObjectToUrl({...this.dataLayer.searchObject,page:((s=this.dataLayer.searchObject)==null?void 0:s.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e,t){const a=this.dataLayer.searchObject;a&&(a.page=e,this.dataLayer.setSearchObject(a)),t||window==null||window.scrollTo(0,0),document.body.tabIndex=-1,document.body.focus()}nextPage(e){var t;e==null||e.preventDefault(),e==null||e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1,this.dataLayer.isInfiniteScroll)}previousPage(e){var t;e==null||e.preventDefault(),e==null||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),a=this.searchPaginationMainContainer.querySelector("."+this.loadMoreButtonClass);e&&(e.addEventListener("click",this.previousPage.bind(this)),e.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.previousPage(s)})),t&&(t.addEventListener("click",this.nextPage.bind(this)),t.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)})),a&&(a.addEventListener("click",this.nextPage.bind(this)),a.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)}))}}renderMainTemplate(e){var a,s,i,r,o,c,h,d,p,g;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(s=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||s.removeEventListener("click",this.nextPage));let t=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.template)||((c=M.pagination.mainTemplate)==null?void 0:c.template);this.dataLayer.isInfiniteScroll&&(t=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.infiniteScrollTemplate)==null?void 0:p.template)||((g=M.pagination.infiniteScrollTemplate)==null?void 0:g.template)),this.dataLayer.renderingEngine===D.mustache&&(this.searchPaginationMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Mn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"relatedSearchesContainerClass");l(this,"searchRelatedSearchesMainContainer",null);l(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)||M.relatedSearches.main.relatedSearchesContainerClass,typeof document<"u"&&(this.searchRelatedSearchesMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setRelatedSearchesData(e),e}addRelatedSearchComponent(e,t){var a,s,i,r,o;if(typeof document<"u"){const c=document==null?void 0:document.createElement("div"),h=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.relatedSearch)==null?void 0:i.template)||M.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===D.mustache){c.innerHTML=v.render(h,e);const d=c.querySelector("."+(((o=(r=this.config.templates)==null?void 0:r.relatedSearch)==null?void 0:o.relatedSearchContainerClass)||M.relatedSearches.relatedSearch.relatedSearchContainerClass));d&&(t.appendChild(d),d.addEventListener("click",()=>{this.executeSearch(e)}),d.addEventListener("keyup",p=>{(p.code==="Space"||p.code==="Enter")&&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,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.relatedSearches.main.template;if(this.dataLayer.renderingEngine===D.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=v.render(t,e);const o=(r=this.searchRelatedSearchesMainContainer)==null?void 0:r.querySelector(`.${this.relatedSearchesContainerClass}`);if(o)for(const c of e.relatedSearches)this.addRelatedSearchComponent(c,o)}}}class Cn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"searchFeedbackMainContainer",null);l(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,typeof document<"u"&&(this.searchFeedbackMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchFeedbackData(e),e}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,s,i,r;const e=(r=this.searchFeedbackMainContainer)==null?void 0:r.querySelector("."+(((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:s.originalQueryClass)||((i=M.searchFeedback.main)==null?void 0:i.originalQueryClass)));e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.searchFeedback.main.template;this.dataLayer.renderingEngine===D.mustache&&(this.searchFeedbackMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class bn{constructor(e){l(this,"searchHelper");l(this,"dataLayer");l(this,"config");l(this,"suggestAfterMinChars");l(this,"containerId");l(this,"currentInputValue","");l(this,"autosuggestResults");l(this,"searchInput");l(this,"actionButton");l(this,"autosuggestContainer");l(this,"buttonState","search");l(this,"selectedAutosuggestItem",-1);l(this,"suggestTrigger");l(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.suggestAfterMinChars===void 0&&this.getSuggestAfterValue(),this.dataLayer.$locationEnabled.subscribeUntilHasValue(()=>{this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())},200)}renderMainTemplate(){var e,t,a,s;if(typeof document<"u"){const i=document==null?void 0:document.getElementById(this.containerId);if(!i)throw new Error("Search input container not found");const r=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.searchInput.mainTemplate.template,o={...this.dataLayer.parsedData.data,locationEnabled:!!this.dataLayer.locationEnabled};if(this.dataLayer.setInputWidgetTemplateData(o),this.dataLayer.renderingEngine===D.mustache){const d=v.render(r,o);i.innerHTML=d,this.dataLayer.setInputTemplateRendered(!0)}const c=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.searchInputId)||M.searchInput.mainTemplate.searchInputId,h=document==null?void 0:document.querySelector(`#${c}`);if(h)this.searchInput=h,h.addEventListener("keyup",this.inputKeyupEvent.bind(this)),h.addEventListener("blur",this.hideAutosuggest.bind(this)),h.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===D.mustache&&typeof document<"u"&&(this.autosuggestContainer=document==null?void 0: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))}getSuggestAfterValue(){this.dataLayer.searchHelper&&this.dataLayer.searchHelper.suggest("*",e=>{this.suggestAfterMinChars=e.metadata.minPrefixChars},[])}actionButtonInit(){typeof document<"u"&&(this.actionButton=document==null?void 0:document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??"")}))}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(){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-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon"),this.actionButton.setAttribute("aria-label","search");break}}selectPreviousAutosuggestItem(e){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem===0?(this.selectedAutosuggestItem=-1,e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length)),Q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem===this.autosuggestResults.suggestions.length-1?(this.selectedAutosuggestItem=-1,Q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){if(typeof document<"u"){const e=document==null?void 0:document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?(a.classList.add("active"),Q.setAccessibilityText(`Selected suggestion: ${a.innerText}`)):a.classList.remove("active")}}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest(e.target):t==="ArrowUp"?this.selectPreviousAutosuggestItem(e.target):t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){this.suggestAfterMinChars&&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(e){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection(),e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length)),Q.setAccessibilityText("No Suggestion selected")},200)}cleanSuggestionTerm(e){return q.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var s,i,r;const t=document==null?void 0:document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((i=(s=this.config.templates)==null?void 0:s.autosuggestItemTemplate)==null?void 0:i.template)||((r=M.searchInput.autosuggestItemTemplate)==null?void 0:r.template);return t.innerHTML=v.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 s in a)if(Object.prototype.hasOwnProperty.call(a,s)){const i=a[s];i.numFound?Q.setAccessibilityText("Suggestions are available. Use up and down arrows to navigate while focusing input. Use Escape key to escape out of the suggestions",2e3):Q.setAccessibilityText("",0),this.autosuggestResults=i,this.dataLayer.setAutosuggestResults(i),i.numFound>0?i.suggestions.forEach(r=>{this.autosuggestContainer&&typeof document<"u"&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(r))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class Sn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"linkClickCallback");l(this,"searchCallback");l(this,"containerId");l(this,"searchResultsMainContainer");l(this,"searchResultsContainer");l(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==null?void 0:document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.dataLayer.setIsInfiniteScroll(e.config.renderMethod==="infiniteScroll"),this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchObject.subscribe(()=>{Q.setAccessibilityText("Searching...")}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,s,i,r,o;const e=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.noSearchResultTemplate)==null?void 0:i.template)||((r=M.searchResults.noSearchResultTemplate)==null?void 0:r.template),t=((o=this.dataLayer.searchResultsMetadata)==null?void 0:o.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===D.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=v.render(e,{spellingSuggestion:t,...this.dataLayer.parsedData.data,searchCallback:this.searchCallback.bind(this)})),t&&this.searchResultsContainer){const c=this.searchResultsContainer.querySelector("a");c&&c.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,s,i,r;if(this.dataLayer.renderingEngine===D.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)Q.setAccessibilityText("Search has no results"),this.renderNoResultsTemplate();else{Q.setAccessibilityText(`Showing ${this.dataLayer.parsedData.startResultIndex} through ${this.dataLayer.parsedData.endResultIndex} results from ${this.dataLayer.parsedData.totalResults}. Press tab to navigate through results`);const o=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:s.template)||((i=M.searchResults.searchResultTemplate)==null?void 0:i.template),c=e.map(h=>v.render(o,h));((r=this.config)==null?void 0:r.renderMethod)==="infiniteScroll"&&this.dataLayer.searchObject.page>1?this.searchResultsContainer.innerHTML+=c.join(""):this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{}),e.removeEventListener("keydown",()=>{})})}get uniqueIdAttribute(){var e,t,a,s;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((s=M.searchResults.searchResultTemplate)==null?void 0:s.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}),e.addEventListener("keydown",t=>{if(t.code==="Space"||t.code==="Enter"){const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}})})}renderMainTemplate(){var t,a,s,i;const e=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.template)||((i=M.searchResults.mainTemplate)==null?void 0:i.template);this.dataLayer.renderingEngine===D.mustache&&(this.searchResultsMainContainer.innerHTML=v.render(e,{}),setTimeout(()=>{var c,h,d,p,g,y,L;const r=(d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.mainTemplate)!=null&&d.searchResultsContainerId?(y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplate)==null?void 0:y.searchResultsContainerId:(L=M.searchResults.mainTemplate)==null?void 0:L.searchResultsContainerId,o=document==null?void 0:document.getElementById(r);if(o)this.searchResultsContainer=o;else throw new Error(`Search Results Container with id ${r} not found`)},0))}}class Tn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"selectId");l(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)||M.sorting.main.selectId,this.searchSortingMainContainer=document==null?void 0:document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchSortingData(e),e}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document==null?void 0: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,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.sorting.main.template;if(this.dataLayer.renderingEngine===D.mustache){this.searchSortingMainContainer.innerHTML=v.render(t,e),this.markOptionSelected();const r=document==null?void 0:document.getElementById(this.selectId);r&&r.addEventListener("change",o=>{this.setOrderQuery(o.target.value)})}}}class xn{constructor(e){l(this,"analyticsKey");l(this,"containerId");l(this,"mainContainer");l(this,"isLightweight");l(this,"emailOverride");l(this,"feedbackTextAreaOverride");l(this,"mainTemplateOverride");l(this,"lightweightTemplateOverride");l(this,"focusedElement",null);l(this,"focusTrapListener",null);l(this,"lastFocusedElementBeforeModal",null);l(this,"templateData",{feedbackOpen:!1,ratings:[{index:1,isSelected:!1},{index:2,isSelected:!1},{index:3,isSelected:!1},{index:4,isSelected:!1},{index:5,isSelected:!1},{index:6,isSelected:!1},{index:7,isSelected:!1},{index:8,isSelected:!1},{index:9,isSelected:!1},{index:10,isSelected:!1}],emailInput:"",feedbackTextArea:"",charactersLeft:2e3,maxLength:2e3,errors:{rating:!1,email:!1},submitted:!1,thumbsUpActive:!1,thumbsDownActive:!1});l(this,"thumbsUpValue",10);l(this,"thumbsDownValue",1);l(this,"ratedQuestion","");l(this,"language","");l(this,"model","");l(this,"analyticsSrc","");this.analyticsKey=e.analyticsKey,this.containerId=e.containerId??"sf-feedback",this.isLightweight=e.lightweight??!1,this.isLightweight&&this.templateData.ratings.unshift({index:0,isSelected:!1}),this.thumbsUpValue=e.thumbsUpValue??10,this.thumbsDownValue=e.thumbsDownValue??1,this.emailOverride=e.emailOverride,this.feedbackTextAreaOverride=e.feedbackTextAreaOverride,this.mainTemplateOverride=e.mainTemplateOverride,this.lightweightTemplateOverride=e.lightweightTemplateOverride,this.mainContainer=document.getElementById(this.containerId),this.language=e.language??"",this.model=e.model??"",this.analyticsSrc=e.analyticsSrc??"",this.init()}init(){ce.attachAnalyticsScript(this.analyticsSrc),this.renderMainTemplate(this.generateTemplateData())}generateTemplateData(){return this.templateData}renderMainTemplate(e){var s,i;const t=document.activeElement;(t instanceof HTMLInputElement||t instanceof HTMLButtonElement||t instanceof HTMLTextAreaElement||t instanceof HTMLAnchorElement)&&(t.type==="radio"||t.type==="button"||t.type==="textarea"||t instanceof HTMLAnchorElement)?this.focusedElement=t:this.focusedElement=null,this.mainContainer;let a=(s=V==null?void 0:V.mainTemplate)==null?void 0:s.template;if(this.mainTemplateOverride&&(a=this.mainTemplateOverride),this.isLightweight&&(a=(i=V.lightweightTemplate)==null?void 0:i.template,this.lightweightTemplateOverride&&(a=this.lightweightTemplateOverride)),this.mainContainer.innerHTML=v.render(a,e),this.focusedElement&&this.mainContainer){const r=this.focusedElement.type==="radio"?this.focusedElement.getAttribute("id"):this.focusedElement.getAttribute("class"),o=this.focusedElement.type==="radio"?"id":"class",c=this.mainContainer.querySelector(`[${o}="${r}"]`);(c instanceof HTMLInputElement||c instanceof HTMLButtonElement||c instanceof HTMLTextAreaElement||c instanceof HTMLAnchorElement)&&c.focus(),this.focusedElement=null}this.attachEvents()}attachEvents(){this.isLightweight?this.attachLightweightEvents():(this.attachOpenModalEvent(),this.closeModalEvent(),this.attachRatingEvents(),this.attachTextAreaEvents(),this.attachEmailInputEvents(),this.attachSubmitButtonEvents())}attachFocusTrap(){this.focusTrapListener&&document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=e=>{if(!this.templateData.feedbackOpen)return;const t=this.getModalElement();if(!t)return;const a=this.getFocusableElements(t);if(a.length===0)return;const s=a[0],i=a[a.length-1];e.key==="Tab"&&(e.shiftKey?(document.activeElement===s||!t.contains(document.activeElement))&&(e.preventDefault(),i==null||i.focus()):(document.activeElement===i||!t.contains(document.activeElement))&&(e.preventDefault(),s==null||s.focus())),e.key==="Escape"&&(e.preventDefault(),this.closeFeedbackModal())},document.addEventListener("keydown",this.focusTrapListener)}getFocusableElements(e){const t=["button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t))}getModalElement(){var t,a;const e=(t=V.mainTemplate)==null?void 0:t.modalContainerClass;return((a=this.mainContainer)==null?void 0:a.querySelector(`.${e}`))||null}attachLightweightEvents(){var i,r,o,c;const e=(i=V.lightweightTemplate)==null?void 0:i.thumbsUpButtonClass,t=(r=V.lightweightTemplate)==null?void 0:r.thumbsDownButtonClass,a=(o=this.mainContainer)==null?void 0:o.querySelector("."+e),s=(c=this.mainContainer)==null?void 0:c.querySelector("."+t);a&&a.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[this.templateData.ratings.length-1].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!0,this.templateData.thumbsDownActive=!1,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsUpValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())}),s&&s.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[0].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!1,this.templateData.thumbsDownActive=!0,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsDownValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())})}attachSubmitButtonEvents(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.submitButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.checkIfValid()})}checkIfValid(){var s,i;const e=(i=this.mainContainer)==null?void 0:i.querySelector("#"+((s=V.mainTemplate)==null?void 0:s.emailInputId));this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,Q.setAccessibilityText("Please enter a valid email address.")),this.templateData.ratings.some(r=>r.isSelected)?this.templateData.errors.rating=!1:(this.templateData.errors.rating=!0,Q.setAccessibilityText("Please Rate your experience.")),this.templateData.errors.rating||this.templateData.errors.email?this.renderMainTemplate(this.generateTemplateData()):this.submit()}submit(){var t,a,s;this.templateData.submitted=!0;const e=(t=this.templateData.ratings.find(i=>i.isSelected))==null?void 0:t.index;e!==void 0&&(ce.trackFeedback({trackApiKey:this.analyticsKey,email:this.emailOverride&&this.isLightweight?this.emailOverride():this.templateData.emailInput,rating:e,feedback:this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea,model:this.model?this.model:void 0,language:this.language?this.language:void 0}),this.showCheckmarkAnimation(),Q.setAccessibilityText("Feedback has been sent.",1e3),(s=this.mainContainer)!=null&&s.querySelector("."+((a=V.mainTemplate)==null?void 0:a.checkmarkClass))?setTimeout(()=>{this.closeFeedbackModal(),this.renderMainTemplate(this.generateTemplateData())},2e3):(setTimeout(()=>{this.closeFeedbackModal()},500),this.renderMainTemplate(this.generateTemplateData())))}validateEmail(e){return e===""?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}attachEmailInputEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=V.mainTemplate)==null?void 0:t.emailInputId));e&&(e.addEventListener("input",()=>{this.templateData.emailInput=e.value}),e.addEventListener("blur",()=>{setTimeout(()=>{this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,Q.setAccessibilityText("Please enter a valid email address.")),this.renderMainTemplate(this.generateTemplateData())},300)}))}attachTextAreaEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=V.mainTemplate)==null?void 0:t.feedbackTextAreaId));e&&e.addEventListener("input",()=>{var i,r;this.templateData.feedbackTextArea=e.value,this.templateData.charactersLeft=this.templateData.maxLength-e.value.length;const s=(r=this.mainContainer)==null?void 0:r.querySelector("."+((i=V.mainTemplate)==null?void 0:i.charactersRemainingContainerclass));s&&(s.innerText=this.templateData.charactersLeft+"")})}attachRatingEvents(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.ratingInputclass,t=(s=this.mainContainer)==null?void 0:s.querySelectorAll("."+e);t&&t.forEach(i=>{i.addEventListener("click",r=>{const o=r.target.value;this.templateData.ratings.forEach(c=>{c.isSelected=c.index+""===o}),this.templateData.errors.rating=!1,this.renderMainTemplate(this.generateTemplateData())})})}attachOpenModalEvent(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.openModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",i=>{i.preventDefault(),this.toggleModal()})}toggleModal(){this.templateData.feedbackOpen?this.closeFeedbackModal():this.openFeedbackModal()}closeModalEvent(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.closeModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.closeFeedbackModal()})}openFeedbackModal(){this.lastFocusedElementBeforeModal=document.activeElement,this.templateData.feedbackOpen=!0,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{const e=this.getModalElement();if(e){const t=this.getFocusableElements(e);t.length>0&&t[0].focus()}this.attachFocusTrap()},0),Q.setAccessibilityText("Feedback form opened",1e3)}closeFeedbackModal(){this.templateData.feedbackOpen=!1,this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null),this.renderMainTemplate(this.generateTemplateData()),this.lastFocusedElementBeforeModal&&(this.lastFocusedElementBeforeModal.focus(),this.lastFocusedElementBeforeModal=null),Q.setAccessibilityText("Feedback form closed",1e3)}showCheckmarkAnimation(){var o,c,h,d,p,g;const e=(o=V.mainTemplate)==null?void 0:o.submitButtonClass,t=(c=this.mainContainer)==null?void 0:c.querySelector("."+e);t&&(t.disabled=!0);const a=(h=V.mainTemplate)==null?void 0:h.checkmarkClass,s=(d=this.mainContainer)==null?void 0:d.querySelector("."+a);s&&s.classList.remove("hidden");const i=(p=V.mainTemplate)==null?void 0:p.submitButtonTextClass,r=(g=this.mainContainer)==null?void 0:g.querySelector("."+i);r&&r.classList.add("visibility"),setTimeout(()=>{s&&s.classList.add("hidden"),r&&r.classList.remove("visibility"),t&&(t.disabled=!1)},2e3)}destroy(){this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null)}}class kn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"answerContainer",null);l(this,"showMoreVisible",!1);l(this,"renderFeedbackWidget",!1);l(this,"clicked",!1);l(this,"renderedWithShowMore",!1);var t;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.renderFeedbackWidget=((t=this.config.feedbackwidget)==null?void 0:t.renderFeedbackWidget)||!1,this.config.showMoreAfterWordCount&&(this.dataLayer.answerWidgetShowMoreLimit=this.config.showMoreAfterWordCount),typeof document<"u"&&(this.answerContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.dataLayer.setIsAnswerWidgetCreated(!0)}initializeSubscriptions(){this.dataLayer.$answer.subscribe(()=>{this.clicked?this.showMoreVisible=!1:this.showMoreVisible=this.dataLayer.parsedData.shouldShowAnswerLoadMore,this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerLoading.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerError.subscribe(e=>{e&&setTimeout(()=>{this.renderMainTemplate(this.generateTemplateData())},100)}),this.dataLayer.$searchObject.subscribe(()=>{this.clicked=!1,this.renderedWithShowMore=!1,this.showMoreVisible=!1}),this.dataLayer.$paginationData.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answer.subscribe(e=>{e&&setTimeout(()=>{this.initializeWidget()},600)}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.dataLayer.$answer.getValue()&&setTimeout(()=>{this.initializeWidget()},600)})}searchstaxFeedbackTextAreaOverride(){return"Question: "+(this.dataLayer.searchObject.query==="undefined"?"":this.dataLayer.searchObject.query)+" Answer: "+this.dataLayer.parsedData.getAnswerData}initializeWidget(){var e,t,a,s,i;this.renderFeedbackWidget&&document.getElementById("feedbackWidgetContainer")&&!this.dataLayer.answerLoading&&new xn({analyticsKey:this.dataLayer.parsedData.trackingData.trackApiKey,containerId:"feedbackWidgetContainer",lightweight:!0,model:this.dataLayer.parsedData.trackingData.model,language:this.dataLayer.parsedData.trackingData.language,emailOverride:(e=this.config.feedbackwidget)==null?void 0:e.emailOverride,feedbackTextAreaOverride:((t=this.config.feedbackwidget)==null?void 0:t.searchstaxFeedbackTextAreaOverride)??this.searchstaxFeedbackTextAreaOverride.bind(this),thumbsUpValue:((a=this.config.feedbackwidget)==null?void 0:a.thumbsUpValue)??10,thumbsDownValue:((s=this.config.feedbackwidget)==null?void 0:s.thumbsDownValue)??0,lightweightTemplateOverride:(i=this.config.feedbackwidget)==null?void 0:i.lightweightTemplateOverride})}showMore(e){e.preventDefault(),this.clicked=!0,this.showMoreVisible=!1,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{this.initializeWidget()},600)}attachClickEventToShowMore(){const e=document.querySelector(".searchstax-answer-load-more-button");e&&e.addEventListener("click",this.showMore.bind(this))}trackLinkClick(e){e.preventDefault(),e.stopPropagation();const a=e.target.getAttribute("href");ce.trackAnswerLinkClick({href:a,answer:this.dataLayer.parsedData.getAnswerData,...this.dataLayer.parsedData.trackingData}).then(()=>{window.open(a,"_blank")}).catch(()=>{window.open(a,"_blank")})}attachLinkTracking(){document.querySelectorAll(".searchstax-answer-link").forEach(t=>{t.getAttribute("listener")!=="true"&&(t.setAttribute("listener","true"),t.addEventListener("click",this.trackLinkClick.bind(this)))})}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.answer.main.template;this.dataLayer.renderingEngine===D.mustache?(!this.renderedWithShowMore||!e.answerLoading||this.clicked)&&(e.showMoreButtonVisible&&(this.renderedWithShowMore=!0),this.answerContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClickEventToShowMore(),this.attachLinkTracking()},100)):setTimeout(()=>{this.attachLinkTracking()},500)}generateTemplateData(){const e={...this.dataLayer.parsedData.data,showMoreButtonVisible:this.showMoreVisible};return this.dataLayer.setAnswerFullData(e),e}}class ls{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"currentSelectValue","");l(this,"locationInput");l(this,"radiusInput");l(this,"locationDecode");l(this,"locationDecodeCoordinatesToAddress");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.locationDecode=(t=e.config.hooks)==null?void 0:t.locationDecode,this.locationDecodeCoordinatesToAddress=(a=e.config.hooks)==null?void 0:a.locationDecodeCoordinatesToAddress,this.dataLayer.locationEnabled&&this.dataLayer.$inputTemplateRendered.subscribeUntil(()=>{this.renderMainTemplate(),this.attachSubscriptions()},!0,500)}renderMainTemplate(){var e,t,a,s,i,r,o,c;if(typeof document<"u"){const h=document==null?void 0:document.getElementById(this.containerId);if(!h)throw new Error("Search input container not found");const d=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.location.mainTemplate.template,p={...this.dataLayer.parsedData.data};if(this.dataLayer.setLocationWidgetTemplateData(p),this.dataLayer.renderingEngine===D.mustache){const g=v.render(d,p);h.innerHTML=g;const y=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.locationInputId)||M.location.mainTemplate.locationInputId,L=document==null?void 0:document.querySelector(`#${y}`);if(L)this.locationInput=L,L.addEventListener("blur",this.blurEvent.bind(this)),L.addEventListener("focus",this.focusEvent.bind(this));else throw new Error("Input not found");const f=((r=(i=this.config.templates)==null?void 0:i.mainTemplate)==null?void 0:r.radiusInputId)||M.location.mainTemplate.radiusInputId,w=document==null?void 0:document.querySelector(`#${f}`);w instanceof HTMLSelectElement&&(this.radiusInput=w,w.addEventListener("change",this.radiusSelectChangeEvent.bind(this)));const S=((c=(o=this.config.templates)==null?void 0:o.mainTemplate)==null?void 0:c.currentLocationActionButtonId)||M.location.mainTemplate.currentLocationActionButtonId,A=document==null?void 0:document.querySelector(`#${S}`);A&&A.addEventListener("click",this.getCurrentLocation.bind(this))}}}setCurrentLocationFields(e){this.dataLayer.setLocationCoordinatesDecoded(e),this.dataLayer.setSearchLocation(this.dataLayer.searchLocationCoordinatesDecoded),this.dataLayer.renderingEngine===D.mustache&&this.locationInput&&(this.locationInput.value=this.dataLayer.searchLocationCoordinatesDecoded)}getCurrentLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(e=>{const t=e.coords.latitude.toString(),a=e.coords.longitude.toString(),s=Math.floor(parseFloat(t)*100)/100,i=Math.floor(parseFloat(a)*100)/100;this.dataLayer.setSearchLat(s+""),this.dataLayer.setSearchLong(i+"");const r=this.locationDecodeCoordinatesToAddress;r?r(s+"",i+"").then(o=>{this.setCurrentLocationFields(o.address||"Current Location")}).catch(()=>{this.setCurrentLocationFields("Current Location")}):this.setCurrentLocationFields("Current Location")},()=>{console.error("Unable to retrieve your location")}):console.error("Geolocation is not supported by this browser.")}setRadiusValue(e){this.dataLayer.setSearchRadius(e)}radiusSelectChangeEvent(e){this.currentSelectValue=e.target.value,this.setRadiusValue(this.currentSelectValue)}attachSubscriptions(){this.dataLayer.$searchObject.subscribe(e=>{this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(e.location.address??"")),this.radiusInput&&e.location.radius&&(this.radiusInput.value=e.location.radius||"")})}cleanSuggestionTerm(e){return q.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}triggerGeocoder(e){const t=this.locationDecode;this.dataLayer.setLocationDecodingLoading(!0),e&&this.dataLayer.searchLocation!==e&&e!==this.dataLayer.searchLocationCoordinatesDecoded?t(e).then(a=>{this.dataLayer.setSearchLocation(a.address||""),this.dataLayer.setSearchLat(a.lat||""),this.dataLayer.setSearchLong(a.lon||""),this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(a.address||"")),this.dataLayer.renderingEngine===D.mustache&&a.error&&this.locationInput&&this.locationInput.classList.add("searchstax-input-location-error"),a.error?this.dataLayer.setLocationError(!0):this.dataLayer.setLocationError(!1),this.dataLayer.setLocationDecodingLoading(!1)}).catch(()=>{this.dataLayer.setLocationDecodingLoading(!1)}):e===""&&(this.dataLayer.setSearchLocation(void 0),this.dataLayer.setSearchLat(void 0),this.dataLayer.setSearchLong(void 0),this.dataLayer.setLocationDecodingLoading(!1))}focusEvent(e){e.target.classList.remove("searchstax-input-location-error"),this.dataLayer.setLocationError(!1)}blurEvent(e){const a=e.target.value;this.triggerGeocoder(a)}}class En{constructor(e=D.mustache){l(this,"routerEnabled",!1);l(this,"cachedQuery","");l(this,"routerHelper");l(this,"searchHelper");l(this,"searchResultsConfig");l(this,"searchPaginationConfig");l(this,"searchFeedbackConfig");l(this,"searchSortingConfig");l(this,"searchFacetsConfig");l(this,"relatedSearchesConfig");l(this,"externalPromotionsConfig");l(this,"searchInputWidget");l(this,"searchLocationWidget");l(this,"searchResultsWidget");l(this,"searchFacetsWidget");l(this,"searchPaginationWidget");l(this,"searchFeedbackWidget");l(this,"searchSortingWidget");l(this,"relatedSearchesWidget");l(this,"externalPromotionsWidget");l(this,"answerWidget");l(this,"locationObserver",null);l(this,"dataLayer");l(this,"firstRequest",!0);l(this,"previousQuery","");l(this,"eventSource",null);l(this,"renderEngine",D.mustache);e&&(this.renderEngine=e)}setRenderingEngine(e=D.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)}),setTimeout(()=>{this.dataLayer.$searchObject.subscribe(a=>{var s,i,r,o,c,h;a.query!==this.previousQuery&&this.dataLayer.setAnswerData(""),a.query!==""&&a.query!==void 0&&a.query!=="undefined"?(this.search(a),a.query!==this.previousQuery&&this.startSSE(a.query)):(s=this.dataLayer.searchLocationConfig)!=null&&s.locationSearchEnabled&&!((i=this.dataLayer.searchLocationConfig)!=null&&i.locationValuesOverride)?this.getMetadata(a):(o=(r=this.dataLayer.searchLocationConfig)==null?void 0:r.locationValuesOverride)!=null&&o.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((h=(c=this.dataLayer.searchLocationConfig)==null?void 0:c.locationValuesOverride)==null?void 0:h.locationFilterDefaultValue),this.previousQuery=a.query})},10),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}startSSE(e){var t,a;this.eventSource&&((t=this.eventSource)==null||t.close(),this.dataLayer.setAnswerData("")),this.dataLayer.turnAIAnswerGenerationOn===!0&&this.dataLayer.questionURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&(this.eventSource=(a=this.searchHelper)==null?void 0:a.startSSE(e,this.parseAnswerResultsResponse.bind(this)))}attachAnalyticsScript(e){ce.attachAnalyticsScript(e)}initialize(e){var t,a;if(this.dataLayer=new _i("searchstax_session_id",e.sessionId),this.renderEngine&&this.dataLayer.setRenderingEngine(this.renderEngine),this.handleHooks(),e.questionURL&&(this.dataLayer.questionURL=e.questionURL),e.analyticsBaseUrl&&typeof window<"u"&&(window.analyticsBaseUrl=e.analyticsBaseUrl,window._msq=e._msq||[],this.attachAnalyticsScript(e.analyticsSrc)),e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),e.language&&this.dataLayer.setLanguage(e.language),e.model&&this.dataLayer.setModel(e.model),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new Hi({...e,sessionId:this.dataLayer.sessionId},this.dataLayer),this.dataLayer.searchHelper=this.searchHelper),((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 es(e.router?e.router:{enabled:!0});const s=this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"");this.dataLayer.searchObject.itemsPerPage?s.itemsPerPage=this.dataLayer.searchObject.itemsPerPage:s.itemsPerPage&&this.dataLayer.setItemsPerPage(s.itemsPerPage),s.model&&this.dataLayer.setModel(s.model),s.location&&(s.location.address&&this.dataLayer.setSearchLocation(s.location.address),s.location.lat&&this.dataLayer.setSearchLat(s.location.lat),s.location.lon&&this.dataLayer.setSearchLong(s.location.lon),s.location.radius&&this.dataLayer.setSearchRadius(s.location.radius)),this.dataLayer.setSearchObject(s),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"",this.dataLayer.searchObject.itemsPerPage))})}else this.routerHelper=new es({})}getMetadata(e){this.searchHelper&&(e.query==="undefined"||e.query===void 0)&&this.dataLayer.setSearchObject({...e,query:"*"})}search(e){if(this.searchHelper){const t=this.dataLayer.forceNotCorrect;this.searchHelper.url&&(this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1),this.getRelatedSearches()}}getRelatedSearches(){var e;this.searchHelper&&this.relatedSearchesConfig&&((e=this.relatedSearchesConfig)!=null&&e.relatedSearchesURL)&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var i,r;const a=(((i=e.response)==null?void 0:i.docs)??[]).map((o,c)=>({...o,position:c+1})),s=[];for(const o of a)s.push({relatedSearch:o.related_search,position:o.position});this.dataLayer.setSearchRelatedSearches(a),this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&s.length&&ce.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:s,totalRelatredSearches:((r=this.dataLayer.searchRelatedSearches)==null?void 0:r.length)??0})}handleRouter(){if(this.routerEnabled){const e={...this.dataLayer.searchObject};this.dataLayer.isInfiniteScroll&&delete e.page,this.routerHelper.updateUrl(e)}}parseSearchResultsResponseMetadata(e){var s,i,r,o;const t=tt.extractSearchResultsMetadata(e),a=((i=(s=this.dataLayer.searchLocationConfig)==null?void 0:s.locationValuesOverride)==null?void 0:i.locationFilterDefaultValue)??((o=(r=t.location)==null?void 0:r.filter)==null?void 0:o.defaultValue);!this.dataLayer.searchRadius&&a&&this.dataLayer.setSearchRadius(a),this.dataLayer.setSearchResultsMetadata(t)}parseSearchResultsResponse(e){var s,i;this.handleRouter(),this.dataLayer.setItemsPerPage(parseInt(e.responseHeader.params.rows)),this.dataLayer.setModel(e.responseHeader.params.model);let t=tt.combineResultsWithMetadata(e),a=tt.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??[]),this.parseSearchResultsResponseMetadata(e),this.dataLayer.setSearchResults(t)}parseAnswerResultsResponse(e){this.handleRouter(),e!==Ie.question&&e!==Ie.notQuestion&&(this.dataLayer.setAnswerLoading(!0),this.dataLayer.setAnswerData(this.dataLayer.getAnswerData+e))}cacheFacets(e){var t,a;e?(t=this.searchHelper)==null||t.cacheFacets(!0).then(()=>{}):(a=this.searchHelper)==null||a.cacheFacets().then(()=>{})}parseSuggestSuggestResponse(e){var a,s;let t=e;(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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.$locationEnabled.subscribeUntilHasValue(()=>{this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new bn({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer})},200)}addSearchLocationWidget(e,t){var a,s;this.dataLayer.searchLocationConfig||(t.locationSearchEnabled?(this.dataLayer.setLocationEnabled(!0),this.dataLayer.setSearchLocationConfig(t),t.locationValuesOverride?(this.searchLocationWidget=new ls({containerId:e,config:t,dataLayer:this.dataLayer}),(a=t==null?void 0:t.locationValuesOverride)!=null&&a.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((s=t==null?void 0:t.locationValuesOverride)==null?void 0:s.locationFilterDefaultValue)):this.dataLayer.$searchResultsMetadata.subscribeUntilHasValue(()=>{this.searchLocationWidget=new ls({containerId:e,config:t,dataLayer:this.dataLayer})},0)):this.dataLayer.setLocationEnabled(!1))}addAnswerWidget(e,t){this.dataLayer.turnAIAnswerGenerationOn=!0,this.startSSE(this.dataLayer.searchObject.query),this.dataLayer.setAnswerData(""),this.answerWidget=new kn({containerId:e,config:t,dataLayer:this.dataLayer})}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new Sn({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 wn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Cn({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)})}addSearchSortingWidget(e,t){this.searchSortingConfig=t,this.searchSortingWidget=new Tn({containerId:e,config:t,dataLayer:this.dataLayer})}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Mn({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0)}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig=t,this.externalPromotionsWidget=new Ln({containerId:e,config:t,dataLayer:this.dataLayer})}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new yn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){const a={...this.dataLayer.searchObject};a.query=q.removeXSSRiskyTags(e),a.page=1,a.facets=[],a.location={...a.location},this.locationObserver&&this.dataLayer.$locationDecodingLoading.unsubscribe(this.locationObserver),this.locationObserver=this.dataLayer.$locationDecodingLoading.subscribeUntil(()=>{var i,r;a.location.address=this.dataLayer.searchLocation,a.location.radius=this.dataLayer.searchRadius,a.location.lat=this.dataLayer.searchLat,a.location.lon=this.dataLayer.searchLong,this.dataLayer.forceNotCorrect=!!t;let s=(i=this.routerHelper)==null?void 0:i.searchObjectToParams(a);s&&(s=(r=this.routerHelper)==null?void 0:r.extractParamsThatDoNotStartWithRouteName(s)),s&&(a.additionalProps=Object.keys(s).map(o=>s?{key:o,value:s[o]}:{key:"",value:""})),this.dataLayer.setSearchObject(a),this.dataLayer.lastSearchValue=a.query},!1)}executeSuggest(e){var a,s;let t={term:e,queryParams:[]};(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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){var t;this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&!this.dataLayer.cookiesDisabled&&ce.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e,totalRelatredSearches:((t=this.dataLayer.searchRelatedSearches)==null?void 0:t.length)??0})}executeLinkClick(e){var a,s;let t=tt.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((s=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&s.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackClick({result:t,...this.dataLayer.parsedData.trackingData}).then(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}).catch(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}setCookiesDisabled(e){this.dataLayer.setCookiesDisabled(e)}changeResultTemplate(e){var t,a,s;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(s=this.searchResultsWidget)==null||s.changeTemplate())}}Te.Searchstax=En,Object.defineProperty(Te,Symbol.toStringTag,{value:"Module"})})(this["@searchstaxInc/searchstudioUxJs"]=this["@searchstaxInc/searchstudioUxJs"]||{});
434
+ `,thumbsUpButtonClass:"searchstax-lightweight-widget-thumbs-up",thumbsDownButtonClass:"searchstax-lightweight-widget-thumbs-down"}};class M{}l(M,"answer",on),l(M,"externalPromotions",ln),l(M,"facets",cn),l(M,"pagination",hn),l(M,"relatedSearches",un),l(M,"searchFeedback",dn),l(M,"searchInput",gn),l(M,"location",pn),l(M,"searchResults",fn),l(M,"sorting",mn),l(M,"feedback",V);class Ln{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"externalPromotionsContainerId");l(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)||M.externalPromotions.mainTemplate.externalPromotionsContainerId,typeof document<"u"&&(this.searchExternalPromotionsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions};return this.dataLayer.setExternalPromotionsData(e),e}addExternalSearch(e){var a,s,i,r;const t=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;if(t){const o=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.externalPromotion)==null?void 0:i.template)||((r=M.externalPromotions.externalPromotion)==null?void 0:r.template);if(typeof document<"u"){const c=document==null?void 0:document.createElement("div");c.classList.add("searchstax-external-promotion"),c.addEventListener("click",h=>{this.trackClick(e,h)}),c.innerHTML=v.render(o,e),t.appendChild(c)}}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window==null||window.open(e.url,"_blank")}renderMainTemplate(e){var a,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplate)==null?void 0:i.template)||((r=M.externalPromotions.mainTemplate)==null?void 0:r.template);if(this.dataLayer.renderingEngine===D.mustache){this.searchExternalPromotionsMainContainer.innerHTML=v.render(t,e);const o=typeof document<"u"?document==null?void 0:document.getElementById(this.externalPromotionsContainerId):null;o&&(o.innerHTML="");for(const c of e.externalPromotions)this.addExternalSearch(c)}}}class Q{static addAccessibilityNotificationContainerToBody(){if(!document.getElementById("searchAccessibilityContainer")){const t=document.createElement("div");t.setAttribute("aria-live","polite"),t.setAttribute("id","searchAccessibilityContainer"),document.body.appendChild(t)}}static setAccessibilityText(e,t,a){this.addAccessibilityNotificationContainerToBody();const s=a??"searchAccessibility",i=document.getElementById(s);i&&i.remove();const r=document.createElement("span");r.setAttribute("id",s),r.innerHTML=e;const o=document.getElementById("searchAccessibilityContainer");o&&setTimeout(()=>{o.appendChild(r)},t??100)}}class yn{constructor(e,t){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"routerHelper");l(this,"cachedPhrase","");l(this,"cachedANDFacets","");l(this,"isCached",!1);l(this,"overlayOpened",!1);l(this,"facetPaginationStep");l(this,"facetPaginationStepMobile");l(this,"searchFacetsMainContainer",null);l(this,"searchFacetsMobileContainer",null);l(this,"searchFacetsDesktopContainer",null);l(this,"facetLimits",{});l(this,"facetLimitsMobile",{});l(this,"deactivatedFacets",{});l(this,"focusedElement",null);l(this,"cachedData",null);l(this,"cacheFacets");l(this,"onFacetSelect",(e,t,a,s,i)=>{if(e.stopPropagation(),!t.disabled){const r=a.querySelector("input");let o=s?r.checked:!r.checked;i!==void 0&&(o=!i),r.checked=o;const c=this.dataLayer.searchObject;let h=[...c.facets];const d=this.extractFacetValue(t);o?h.find(g=>re.deepEqual(g,d)?g:!1)||(this.config.facetingType==="tabs"&&(h=h.filter(g=>g.name!==d.name)),h.push(d)):h=h.filter(p=>!re.deepEqual(p,d)),setTimeout(()=>{this.dataLayer.setSearchObject({...c,facets:h,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,typeof document<"u"&&(this.searchFacetsMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.needCache&&t(this.config.facetingType==="tabs"),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.$searchFacetsCachedTabs.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.config.facetingType==="tabs")),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query||this.cachedANDFacets!==this.dataLayer.parsedData.cachedANDFacets?(this.cachedANDFacets=this.dataLayer.parsedData.cachedANDFacets,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,s=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(i=>{s[i.name]||(s[i.name]=a)}),e.map(i=>({...i,values:i.values.slice(0,s[i.name]),showingAllFacets:i.values.length<=s[i.name],hasMoreFacets:i.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.config.facetingType==="tabs"&&this.dataLayer.searchFacetsCachedTabs&&(t=this.dataLayer.searchFacetsCachedTabs),this.needDisabling&&(t=t.map(s=>{var r;const i=(r=this.dataLayer.searchFacets)==null?void 0:r.find(o=>o.name===s.name);return i?{...s,values:s.values.map(c=>{const h=i.values.find(d=>c.type==="range"?!1:c.type==="checkbox"?d.value===c.value:!1);return{...c,disabled:!h,isMobile:e}})}:{...s,values:s.values.map(c=>({...c,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(s=>{var i;return(i=this.config.specificFacets)==null?void 0:i.includes(s.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 s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,N;if(typeof document<"u"){const T=document==null?void 0:document.createElement("div");T.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||T.classList.add("active");const R=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemContainerTemplate)==null?void 0:r.template)||((o=M.facets.facetItemContainerTemplate)==null?void 0:o.template);T.innerHTML=v.render(R,e),t.appendChild(T);const P=T.querySelector("."+(((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.facetItemContainerTemplate)==null?void 0:d.facetListTitleContainerClass)||((p=M.facets.facetItemContainerTemplate)==null?void 0:p.facetListTitleContainerClass)));P==null||P.addEventListener("click",()=>{T.classList.toggle("active");const F=T.classList.contains("active"),de=P.querySelector(".searchstax-facet-title");de&&de.setAttribute("aria-expanded",String(F))}),(f=P==null?void 0:P.querySelector("."+((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemContainerTemplate)==null?void 0:L.facetListTitleContainerInner)))==null||f.addEventListener("keydown",F=>{if(F.code==="Enter"||F.code==="Space"){F.preventDefault(),T.classList.toggle("active");const de=T.classList.contains("active"),ge=P.querySelector(".searchstax-facet-title");ge&&ge.setAttribute("aria-expanded",String(de))}});const W=T.querySelector("."+(((A=(S=(w=this.config)==null?void 0:w.templates)==null?void 0:S.facetItemContainerTemplate)==null?void 0:A.facetListContainerClass)||((N=M.facets.facetItemContainerTemplate)==null?void 0:N.facetListContainerClass)));W&&(e.values.forEach(F=>{this.createFacetListItem(F,W,e.name)}),e.hasMoreFacets&&this.createHasMoreComponent(e,W,a))}}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(a=>re.deepEqual(a,this.extractFacetValue(e))))}createFacetListItem(e,t,a){var s,i,r,o,c,h,d,p,g,y,L,f;if(typeof document<"u"){const w=document==null?void 0:document.createElement("div");w.classList.add("searchstax-facet-value-container"),e.disabled&&w.classList.add("searchstax-facet-value-disabled");const S=this.isChecked(e),A=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.facetItemTemplate)==null?void 0:r.template)||((o=M.facets.facetItemTemplate)==null?void 0:o.template);w.innerHTML=v.render(A,{...e,isChecked:S});let N=(c=M.facets.facetItemTemplate)==null?void 0:c.checkTriggerClasses;N=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.facetItemTemplate)==null?void 0:p.checkTriggerClasses)||N,N.forEach(R=>{const P=w.querySelector("."+R);P==null||P.addEventListener("click",W=>{this.onFacetSelect(W,e,w)})});const T=w.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.facetItemTemplate)==null?void 0:L.inputCheckboxClass)||((f=M.facets.facetItemTemplate)==null?void 0:f.inputCheckboxClass)));T==null||T.addEventListener("click",R=>{this.onFacetSelect(R,e,w,!0)}),T&&(T==null||T.setAttribute("data-test-value",`${encodeURIComponent(a)}:&quot;${encodeURIComponent(e.value)}&quot;`)),t.appendChild(w)}}createHasMoreComponent(e,t,a){var s,i,r,o,c,h,d,p,g,y;if(typeof document<"u"){const L=document==null?void 0:document.createElement("div");L.classList.add("searchstax-facet-show-more-container");const f=((r=(i=(s=this.config)==null?void 0:s.templates)==null?void 0:i.showMoreButtonContainerTemplate)==null?void 0:r.template)||((o=M.facets.showMoreButtonContainerTemplate)==null?void 0:o.template);L.innerHTML=v.render(f,{...e,focusId:`moreLess${(h=(c=e==null?void 0:e.values)==null?void 0:c[0])==null?void 0:h.value}`});const w=L.querySelector("."+(((g=(p=(d=this.config)==null?void 0:d.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:g.showMoreButtonClass)||((y=M.facets.showMoreButtonContainerTemplate)==null?void 0:y.showMoreButtonClass)));w&&(this.attachOnclickToShowMore(e,w,a),t&&t.appendChild(w))}}attachOnclickToShowMore(e,t,a){t.addEventListener("click",s=>{this.onShowMoreLessClick(s,e,a)}),t.addEventListener("keydown",s=>{s.code==="Space"&&s.preventDefault()}),t.addEventListener("keyup",s=>{(s.code==="Space"||s.code==="Enter")&&(s.preventDefault(),this.onShowMoreLessClick(s,e,a))})}onShowMoreLessClick(e,t,a){e.preventDefault();const s=a?this.facetPaginationStepMobile:this.facetPaginationStep,i=a?this.facetLimits:this.facetLimitsMobile;i[t.name]===void 0?i[t.name]=s*2:i[t.name]<=t.values.length?(Q.setAccessibilityText(`More Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=i[t.name]+s):(Q.setAccessibilityText(`Less Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=s),this.generateTemplateData(a),this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var a,s,i,r,o,c,h,d,p,g,y;if(e&&(!re.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const L=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.mainTemplateDesktop)==null?void 0:i.template)||((r=M.facets.mainTemplateDesktop)==null?void 0:r.template);if(this.dataLayer.renderingEngine===D.mustache&&this.searchFacetsMainContainer){const f=document.activeElement;f instanceof HTMLInputElement&&f.type==="checkbox"||f!=null&&f.classList.contains("searchstax-facet-show-more-button")||f!=null&&f.classList.contains("searchstax-facet-show-less-button")?this.focusedElement=f:this.focusedElement=null,this.searchFacetsMainContainer.innerHTML=v.render(L,{...e});const w=(d=this.searchFacetsMainContainer)==null?void 0:d.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.mainTemplateDesktop)==null?void 0:h.facetsContainerClass)||M.facets.mainTemplateDesktop.facetsContainerClass));if(w){w.innerHTML="";for(const S of e.facets)this.createFacetItem(S,w);if(this.searchFacetsMainContainer){const S=this.searchFacetsMainContainer.querySelector("."+(((y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplateDesktop)==null?void 0:y.selectedFacetsContainerClass)||M.facets.mainTemplateDesktop.selectedFacetsContainerClass));S&&(this.createSelectedFacetsComponents(S),this.createClearFacetsComponents(S))}if(this.focusedElement){if(this.focusedElement.classList.contains("searchstax-facet-show-more-button")||this.focusedElement.classList.contains("searchstax-facet-show-less-button")){const N=this.focusedElement.getAttribute("data-focus"),T=this.searchFacetsMainContainer.querySelector(`[data-focus="${N}"]`);T instanceof HTMLElement&&T.focus(),this.focusedElement=null;return}const S=this.focusedElement.getAttribute("data-test-value"),A=this.searchFacetsMainContainer.querySelector(`[data-test-value="${S}"]`);A instanceof HTMLInputElement&&A.focus(),this.focusedElement=null}}}setTimeout(()=>{document.querySelectorAll(".searchstax-facet-title").forEach(w=>{w.setAttribute("aria-expanded",String(!0)),w.setAttribute("tabindex","0"),w.setAttribute("role","button")})},100),this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const a of t){const s=decodeURIComponent(a.name),i=decodeURIComponent(a.value);if(this.dataLayer.searchFacets){const r=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,o=r==null?void 0:r.find(c=>c.name===s);if(o){const c=o.values.find(h=>h.type==="range"?!1:h.type==="checkbox"?`"${h.value}"`==`"${i}"`:!1);c&&e.push(c)}}}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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=this.dataLayer.searchObject,p=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.clearFacetsTemplate)==null?void 0:s.template)||((i=M.facets.clearFacetsTemplate)==null?void 0:i.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,{shouldShow:d.facets.length>0});const y=g.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.clearFacetsTemplate)==null?void 0:c.containerClass)||((h=M.facets.clearFacetsTemplate)==null?void 0:h.containerClass)));y&&(y.addEventListener("click",()=>{this.removeSelectedFacets()}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.removeSelectedFacets()}),e.appendChild(y))}}createSelectedFacetsComponent(e,t){var a,s,i,r,o,c,h,d;if(typeof document<"u"){const p=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.selectedFacetsTemplate)==null?void 0:i.template)||((r=M.facets.selectedFacetsTemplate)==null?void 0:r.template),g=document==null?void 0:document.createElement("div");g.innerHTML=v.render(p,t);const y=g.querySelector("."+(((h=(c=(o=this.config)==null?void 0:o.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:h.containerClass)||((d=M.facets.selectedFacetsTemplate)==null?void 0:d.containerClass)));y&&(y.addEventListener("click",()=>{this.unselectFacet(t)}),y.addEventListener("keyup",L=>{(L.code==="Space"||L.code==="Enter")&&this.unselectFacet(t)}),e.appendChild(y))}}unselectFacet(e){const t=this.dataLayer.searchObject;let a=[...t.facets];e.type==="checkbox"&&(a=a.filter(s=>JSON.stringify(s)!==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 t,a,s,i,r,o,c,h;if(typeof document<"u"){const d=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.filterByTemplate)==null?void 0:s.template)||((i=M.facets.filterByTemplate)==null?void 0:i.template),p=document==null?void 0:document.createElement("div");p.innerHTML=v.render(d,{});const g=p.querySelector("."+(((c=(o=(r=this.config)==null?void 0:r.templates)==null?void 0:o.filterByTemplate)==null?void 0:c.containerClass)||((h=M.facets.filterByTemplate)==null?void 0:h.containerClass)));g&&(e.prepend(g),g.addEventListener("click",this.openOverlay.bind(this)),g.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.openOverlay()}))}}openOverlay(){var e;Q.setAccessibilityText("Facet overlay opened. Tab to select facets."),this.overlayOpened=!0,this.searchFacetsMainContainer&&(typeof document<"u"&&document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;Q.setAccessibilityText("Facet overlay closed"),this.overlayOpened=!1,this.searchFacetsMainContainer&&(typeof document<"u"&&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,s,i,r,o,c,h,d,p,g,y,L,f,w,S,A,N,T;if(e&&typeof document<"u"){const R=document==null?void 0:document.createElement("div");R.classList.add("searchstax-facets-container-mobile");const P=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplateMobile)==null?void 0:s.template)||((i=M.facets.mainTemplateMobile)==null?void 0:i.template);if(this.dataLayer.renderingEngine===D.mustache){if(R.innerHTML=v.render(P,{...e,overlayOpened:this.overlayOpened}),(r=this.searchFacetsMainContainer)==null||r.appendChild(R),(c=(o=this.config)==null?void 0:o.templates)!=null&&c.mainTemplateMobile)for(const ge of((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.mainTemplateMobile)==null?void 0:p.closeOverlayTriggerClasses)||[]){const z=R.querySelector("."+ge);z&&(z.addEventListener("click",this.closeOverlay.bind(this)),z.addEventListener("keyup",Me=>{(Me.code==="Space"||Me.code==="Enter")&&this.closeOverlay()}))}else for(const ge of M.facets.mainTemplateMobile.closeOverlayTriggerClasses){const z=R.querySelector("."+ge);z&&(z.addEventListener("click",this.closeOverlay.bind(this)),z.addEventListener("keyup",Me=>{(Me.code==="Space"||Me.code==="Enter")&&this.closeOverlay()}))}const W=R.querySelector("."+(((L=(y=(g=this.config)==null?void 0:g.templates)==null?void 0:y.mainTemplateMobile)==null?void 0:L.filterByContainerClass)||M.facets.mainTemplateMobile.filterByContainerClass));W&&this.createFilterByComponent(W);const F=R.querySelector("."+(((S=(w=(f=this.config)==null?void 0:f.templates)==null?void 0:w.mainTemplateMobile)==null?void 0:S.selectedFacetsContainerClass)||M.facets.mainTemplateMobile.selectedFacetsContainerClass));F&&(this.createSelectedFacetsComponents(F),this.createClearFacetsComponents(F));const de=R.querySelector("."+(((T=(N=(A=this.config)==null?void 0:A.templates)==null?void 0:N.mainTemplateMobile)==null?void 0:T.facetsContainerClass)||M.facets.mainTemplateMobile.facetsContainerClass));if(de){de.innerHTML="";for(const ge of e.facets)this.createFacetItem(ge,de,!0)}}}}}class wn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"previousButtonClass");l(this,"nextButtonClass");l(this,"loadMoreButtonClass");l(this,"routerHelper");l(this,"searchPaginationMainContainer",null);var t,a,s,i,r,o,c,h,d;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.previousButtonClass)??M.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.nextButtonClass)??M.pagination.mainTemplate.nextButtonClass,this.loadMoreButtonClass=((d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.infiniteScrollTemplate)==null?void 0:d.loadMoreButtonClass)??M.pagination.infiniteScrollTemplate.loadMoreButtonClass,typeof document<"u"&&(this.searchPaginationMainContainer=document==null?void 0: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(){return this.dataLayer.parsedData.data.isLastPage}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var t,a,s,i;const e={...this.dataLayer.parsedData.data,previousPageLink:(a=this.routerHelper)==null?void 0:a.searchObjectToUrl({...this.dataLayer.searchObject,page:((t=this.dataLayer.searchObject)==null?void 0:t.page)-1}),nextPageLink:(i=this.routerHelper)==null?void 0:i.searchObjectToUrl({...this.dataLayer.searchObject,page:((s=this.dataLayer.searchObject)==null?void 0:s.page)+1})};return this.dataLayer.setPaginationData(e),e}goToPage(e,t){const a=this.dataLayer.searchObject;a&&(a.page=e,this.dataLayer.setSearchObject(a)),t||window==null||window.scrollTo(0,0),document.body.tabIndex=-1,document.body.focus()}nextPage(e){var t;e==null||e.preventDefault(),e==null||e.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1,this.dataLayer.isInfiniteScroll)}previousPage(e){var t;e==null||e.preventDefault(),e==null||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),a=this.searchPaginationMainContainer.querySelector("."+this.loadMoreButtonClass);e&&(e.addEventListener("click",this.previousPage.bind(this)),e.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.previousPage(s)})),t&&(t.addEventListener("click",this.nextPage.bind(this)),t.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)})),a&&(a.addEventListener("click",this.nextPage.bind(this)),a.addEventListener("keydown",s=>{(s.code==="Space"||s.code==="Enter")&&this.nextPage(s)}))}}renderMainTemplate(e){var a,s,i,r,o,c,h,d,p,g;this.searchPaginationMainContainer&&((a=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||a.removeEventListener("click",this.previousPage),(s=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||s.removeEventListener("click",this.nextPage));let t=((o=(r=(i=this.config)==null?void 0:i.templates)==null?void 0:r.mainTemplate)==null?void 0:o.template)||((c=M.pagination.mainTemplate)==null?void 0:c.template);this.dataLayer.isInfiniteScroll&&(t=((p=(d=(h=this.config)==null?void 0:h.templates)==null?void 0:d.infiniteScrollTemplate)==null?void 0:p.template)||((g=M.pagination.infiniteScrollTemplate)==null?void 0:g.template)),this.dataLayer.renderingEngine===D.mustache&&(this.searchPaginationMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class Mn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"relatedSearchesContainerClass");l(this,"searchRelatedSearchesMainContainer",null);l(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)||M.relatedSearches.main.relatedSearchesContainerClass,typeof document<"u"&&(this.searchRelatedSearchesMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setRelatedSearchesData(e),e}addRelatedSearchComponent(e,t){var a,s,i,r,o;if(typeof document<"u"){const c=document==null?void 0:document.createElement("div"),h=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.relatedSearch)==null?void 0:i.template)||M.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===D.mustache){c.innerHTML=v.render(h,e);const d=c.querySelector("."+(((o=(r=this.config.templates)==null?void 0:r.relatedSearch)==null?void 0:o.relatedSearchContainerClass)||M.relatedSearches.relatedSearch.relatedSearchContainerClass));d&&(t.appendChild(d),d.addEventListener("click",()=>{this.executeSearch(e)}),d.addEventListener("keyup",p=>{(p.code==="Space"||p.code==="Enter")&&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,s,i,r;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.relatedSearches.main.template;if(this.dataLayer.renderingEngine===D.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=v.render(t,e);const o=(r=this.searchRelatedSearchesMainContainer)==null?void 0:r.querySelector(`.${this.relatedSearchesContainerClass}`);if(o)for(const c of e.relatedSearches)this.addRelatedSearchComponent(c,o)}}}class Cn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"searchFeedbackMainContainer",null);l(this,"searchTrigger");this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,typeof document<"u"&&(this.searchFeedbackMainContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchFeedbackData(e),e}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,s,i,r;const e=(r=this.searchFeedbackMainContainer)==null?void 0:r.querySelector("."+(((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.main)==null?void 0:s.originalQueryClass)||((i=M.searchFeedback.main)==null?void 0:i.originalQueryClass)));e&&e.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.searchFeedback.main.template;this.dataLayer.renderingEngine===D.mustache&&(this.searchFeedbackMainContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClick()},0))}}class bn{constructor(e){l(this,"searchHelper");l(this,"dataLayer");l(this,"config");l(this,"suggestAfterMinChars");l(this,"containerId");l(this,"currentInputValue","");l(this,"autosuggestResults");l(this,"searchInput");l(this,"actionButton");l(this,"autosuggestContainer");l(this,"buttonState","search");l(this,"selectedAutosuggestItem",-1);l(this,"suggestTrigger");l(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.suggestAfterMinChars===void 0&&this.getSuggestAfterValue(),this.dataLayer.$locationEnabled.subscribeUntilHasValue(()=>{this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())},200)}renderMainTemplate(){var e,t,a,s;if(typeof document<"u"){const i=document==null?void 0:document.getElementById(this.containerId);if(!i)throw new Error("Search input container not found");const r=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.searchInput.mainTemplate.template,o={...this.dataLayer.parsedData.data,locationEnabled:!!this.dataLayer.locationEnabled};if(this.dataLayer.setInputWidgetTemplateData(o),this.dataLayer.renderingEngine===D.mustache){const d=v.render(r,o);i.innerHTML=d,this.dataLayer.setInputTemplateRendered(!0)}const c=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.searchInputId)||M.searchInput.mainTemplate.searchInputId,h=document==null?void 0:document.querySelector(`#${c}`);if(h)this.searchInput=h,h.addEventListener("keyup",this.inputKeyupEvent.bind(this)),h.addEventListener("blur",this.hideAutosuggest.bind(this)),h.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===D.mustache&&typeof document<"u"&&(this.autosuggestContainer=document==null?void 0: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))}getSuggestAfterValue(){this.dataLayer.searchHelper&&this.dataLayer.searchHelper.suggest("*",e=>{this.suggestAfterMinChars=e.metadata.minPrefixChars},[])}actionButtonInit(){typeof document<"u"&&(this.actionButton=document==null?void 0:document.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??"")}))}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(){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-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon"),this.actionButton.setAttribute("aria-label","search");break}}selectPreviousAutosuggestItem(e){var t;this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem===0?(this.selectedAutosuggestItem=-1,e&&(e!=null&&e.focus)&&((t=e==null?void 0:e.focus)==null||t.call(e),e.setSelectionRange(e.value.length,e.value.length)),Q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem===this.autosuggestResults.suggestions.length-1?(this.selectedAutosuggestItem=-1,Q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){if(typeof document<"u"){const e=document==null?void 0:document.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const a=e[t];t===this.selectedAutosuggestItem?(a.classList.add("active"),Q.setAccessibilityText(`Selected suggestion: ${a.innerText}`)):a.classList.remove("active")}}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest(e.target):t==="ArrowUp"?this.selectPreviousAutosuggestItem(e.target):t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){this.suggestAfterMinChars&&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(e){setTimeout(()=>{var t;this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection(),e&&(e!=null&&e.focus)&&((t=e==null?void 0:e.focus)==null||t.call(e),e.setSelectionRange(e.value.length,e.value.length)),Q.setAccessibilityText("No Suggestion selected")},200)}cleanSuggestionTerm(e){return q.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var s,i,r;const t=document==null?void 0:document.createElement("div");t.classList.add("searchstax-autosuggest-item"),t.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),t.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const a=((i=(s=this.config.templates)==null?void 0:s.autosuggestItemTemplate)==null?void 0:i.template)||((r=M.searchInput.autosuggestItemTemplate)==null?void 0:r.template);return t.innerHTML=v.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 s in a)if(Object.prototype.hasOwnProperty.call(a,s)){const i=a[s];i.numFound?Q.setAccessibilityText("Suggestions are available. Use up and down arrows to navigate while focusing input. Use Escape key to escape out of the suggestions",2e3):Q.setAccessibilityText("",0),this.autosuggestResults=i,this.dataLayer.setAutosuggestResults(i),i.numFound>0?i.suggestions.forEach(r=>{this.autosuggestContainer&&typeof document<"u"&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(r))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class Sn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"linkClickCallback");l(this,"searchCallback");l(this,"containerId");l(this,"searchResultsMainContainer");l(this,"searchResultsContainer");l(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==null?void 0:document.getElementById(this.containerId);if(t)this.searchResultsMainContainer=t;else throw new Error(`Search Results Main Container with id ${this.containerId} not found`);this.dataLayer.setIsInfiniteScroll(e.config.renderMethod==="infiniteScroll"),this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchObject.subscribe(()=>{Q.setAccessibilityText("Searching...")}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var a,s,i,r,o;const e=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.noSearchResultTemplate)==null?void 0:i.template)||((r=M.searchResults.noSearchResultTemplate)==null?void 0:r.template),t=((o=this.dataLayer.searchResultsMetadata)==null?void 0:o.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===D.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=v.render(e,{spellingSuggestion:t,...this.dataLayer.parsedData.data,searchCallback:this.searchCallback.bind(this)})),t&&this.searchResultsContainer){const c=this.searchResultsContainer.querySelector("a");c&&c.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.searchCallback(t)})}}renderResults(e){var t,a,s,i,r;if(this.dataLayer.renderingEngine===D.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)Q.setAccessibilityText("Search has no results"),this.renderNoResultsTemplate();else{Q.setAccessibilityText(`Showing ${this.dataLayer.parsedData.startResultIndex} through ${this.dataLayer.parsedData.endResultIndex} results from ${this.dataLayer.parsedData.totalResults}. Press tab to navigate through results`);const o=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.searchResultTemplate)==null?void 0:s.template)||((i=M.searchResults.searchResultTemplate)==null?void 0:i.template),c=e.map(h=>v.render(o,h));((r=this.config)==null?void 0:r.renderMethod)==="infiniteScroll"&&this.dataLayer.searchObject.page>1?this.searchResultsContainer.innerHTML+=c.join(""):this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{}),e.removeEventListener("keydown",()=>{})})}get uniqueIdAttribute(){var e,t,a,s;return((a=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)||((s=M.searchResults.searchResultTemplate)==null?void 0:s.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}),e.addEventListener("keydown",t=>{if(t.code==="Space"||t.code==="Enter"){const a=e.getAttribute(this.uniqueIdAttribute)??"";a&&this.linkClickCallback(a)}})})}renderMainTemplate(){var t,a,s,i;const e=((s=(a=(t=this.config)==null?void 0:t.templates)==null?void 0:a.mainTemplate)==null?void 0:s.template)||((i=M.searchResults.mainTemplate)==null?void 0:i.template);this.dataLayer.renderingEngine===D.mustache&&(this.searchResultsMainContainer.innerHTML=v.render(e,{}),setTimeout(()=>{var c,h,d,p,g,y,L;const r=(d=(h=(c=this.config)==null?void 0:c.templates)==null?void 0:h.mainTemplate)!=null&&d.searchResultsContainerId?(y=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplate)==null?void 0:y.searchResultsContainerId:(L=M.searchResults.mainTemplate)==null?void 0:L.searchResultsContainerId,o=document==null?void 0:document.getElementById(r);if(o)this.searchResultsContainer=o;else throw new Error(`Search Results Container with id ${r} not found`)},0))}}class Tn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"selectId");l(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)||M.sorting.main.selectId,this.searchSortingMainContainer=document==null?void 0:document.getElementById(this.containerId),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchSortingData(e),e}setOrderQuery(e){const t=this.dataLayer.searchObject;t&&(t.order=e,this.dataLayer.setSearchObject(t))}markOptionSelected(){const e=document==null?void 0: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,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.sorting.main.template;if(this.dataLayer.renderingEngine===D.mustache){this.searchSortingMainContainer.innerHTML=v.render(t,e),this.markOptionSelected();const r=document==null?void 0:document.getElementById(this.selectId);r&&r.addEventListener("change",o=>{this.setOrderQuery(o.target.value)})}}}class xn{constructor(e){l(this,"analyticsKey");l(this,"containerId");l(this,"mainContainer");l(this,"isLightweight");l(this,"emailOverride");l(this,"feedbackTextAreaOverride");l(this,"mainTemplateOverride");l(this,"lightweightTemplateOverride");l(this,"focusedElement",null);l(this,"focusTrapListener",null);l(this,"lastFocusedElementBeforeModal",null);l(this,"templateData",{feedbackOpen:!1,ratings:[{index:1,isSelected:!1},{index:2,isSelected:!1},{index:3,isSelected:!1},{index:4,isSelected:!1},{index:5,isSelected:!1},{index:6,isSelected:!1},{index:7,isSelected:!1},{index:8,isSelected:!1},{index:9,isSelected:!1},{index:10,isSelected:!1}],emailInput:"",feedbackTextArea:"",charactersLeft:2e3,maxLength:2e3,errors:{rating:!1,email:!1},submitted:!1,thumbsUpActive:!1,thumbsDownActive:!1});l(this,"thumbsUpValue",10);l(this,"thumbsDownValue",1);l(this,"ratedQuestion","");l(this,"language","");l(this,"model","");l(this,"analyticsSrc","");this.analyticsKey=e.analyticsKey,this.containerId=e.containerId??"sf-feedback",this.isLightweight=e.lightweight??!1,this.isLightweight&&this.templateData.ratings.unshift({index:0,isSelected:!1}),this.thumbsUpValue=e.thumbsUpValue??10,this.thumbsDownValue=e.thumbsDownValue??1,this.emailOverride=e.emailOverride,this.feedbackTextAreaOverride=e.feedbackTextAreaOverride,this.mainTemplateOverride=e.mainTemplateOverride,this.lightweightTemplateOverride=e.lightweightTemplateOverride,this.mainContainer=document.getElementById(this.containerId),this.language=e.language??"",this.model=e.model??"",this.analyticsSrc=e.analyticsSrc??"",this.init()}init(){ce.attachAnalyticsScript(this.analyticsSrc),this.renderMainTemplate(this.generateTemplateData())}generateTemplateData(){return this.templateData}renderMainTemplate(e){var s,i;const t=document.activeElement;(t instanceof HTMLInputElement||t instanceof HTMLButtonElement||t instanceof HTMLTextAreaElement||t instanceof HTMLAnchorElement)&&(t.type==="radio"||t.type==="button"||t.type==="textarea"||t instanceof HTMLAnchorElement)?this.focusedElement=t:this.focusedElement=null,this.mainContainer;let a=(s=V==null?void 0:V.mainTemplate)==null?void 0:s.template;if(this.mainTemplateOverride&&(a=this.mainTemplateOverride),this.isLightweight&&(a=(i=V.lightweightTemplate)==null?void 0:i.template,this.lightweightTemplateOverride&&(a=this.lightweightTemplateOverride)),this.mainContainer.innerHTML=v.render(a,e),this.focusedElement&&this.mainContainer){const r=this.focusedElement.type==="radio"?this.focusedElement.getAttribute("id"):this.focusedElement.getAttribute("class"),o=this.focusedElement.type==="radio"?"id":"class",c=this.mainContainer.querySelector(`[${o}="${r}"]`);(c instanceof HTMLInputElement||c instanceof HTMLButtonElement||c instanceof HTMLTextAreaElement||c instanceof HTMLAnchorElement)&&c.focus(),this.focusedElement=null}this.attachEvents()}attachEvents(){this.isLightweight?this.attachLightweightEvents():(this.attachOpenModalEvent(),this.closeModalEvent(),this.attachRatingEvents(),this.attachTextAreaEvents(),this.attachEmailInputEvents(),this.attachSubmitButtonEvents())}attachFocusTrap(){this.focusTrapListener&&document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=e=>{if(!this.templateData.feedbackOpen)return;const t=this.getModalElement();if(!t)return;const a=this.getFocusableElements(t);if(a.length===0)return;const s=a[0],i=a[a.length-1];e.key==="Tab"&&(e.shiftKey?(document.activeElement===s||!t.contains(document.activeElement))&&(e.preventDefault(),i==null||i.focus()):(document.activeElement===i||!t.contains(document.activeElement))&&(e.preventDefault(),s==null||s.focus())),e.key==="Escape"&&(e.preventDefault(),this.closeFeedbackModal())},document.addEventListener("keydown",this.focusTrapListener)}getFocusableElements(e){const t=["button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t))}getModalElement(){var t,a;const e=(t=V.mainTemplate)==null?void 0:t.modalContainerClass;return((a=this.mainContainer)==null?void 0:a.querySelector(`.${e}`))||null}attachLightweightEvents(){var i,r,o,c;const e=(i=V.lightweightTemplate)==null?void 0:i.thumbsUpButtonClass,t=(r=V.lightweightTemplate)==null?void 0:r.thumbsDownButtonClass,a=(o=this.mainContainer)==null?void 0:o.querySelector("."+e),s=(c=this.mainContainer)==null?void 0:c.querySelector("."+t);a&&a.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[this.templateData.ratings.length-1].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!0,this.templateData.thumbsDownActive=!1,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsUpValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())}),s&&s.addEventListener("click",()=>{const h=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[0].isSelected&&this.ratedQuestion===h||(this.templateData.thumbsUpActive=!1,this.templateData.thumbsDownActive=!0,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsDownValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=h,this.submit())})}attachSubmitButtonEvents(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.submitButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.checkIfValid()})}checkIfValid(){var s,i;const e=(i=this.mainContainer)==null?void 0:i.querySelector("#"+((s=V.mainTemplate)==null?void 0:s.emailInputId));this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,Q.setAccessibilityText("Please enter a valid email address.")),this.templateData.ratings.some(r=>r.isSelected)?this.templateData.errors.rating=!1:(this.templateData.errors.rating=!0,Q.setAccessibilityText("Please Rate your experience.")),this.templateData.errors.rating||this.templateData.errors.email?this.renderMainTemplate(this.generateTemplateData()):this.submit()}submit(){var t,a,s;this.templateData.submitted=!0;const e=(t=this.templateData.ratings.find(i=>i.isSelected))==null?void 0:t.index;e!==void 0&&(ce.trackFeedback({trackApiKey:this.analyticsKey,email:this.emailOverride&&this.isLightweight?this.emailOverride():this.templateData.emailInput,rating:e,feedback:this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea,model:this.model?this.model:void 0,language:this.language?this.language:void 0}),this.showCheckmarkAnimation(),Q.setAccessibilityText("Feedback has been sent.",1e3),(s=this.mainContainer)!=null&&s.querySelector("."+((a=V.mainTemplate)==null?void 0:a.checkmarkClass))?setTimeout(()=>{this.closeFeedbackModal(),this.renderMainTemplate(this.generateTemplateData())},2e3):(setTimeout(()=>{this.closeFeedbackModal()},500),this.renderMainTemplate(this.generateTemplateData())))}validateEmail(e){return e===""?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}attachEmailInputEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=V.mainTemplate)==null?void 0:t.emailInputId));e&&(e.addEventListener("input",()=>{this.templateData.emailInput=e.value}),e.addEventListener("blur",()=>{setTimeout(()=>{this.validateEmail(e.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,Q.setAccessibilityText("Please enter a valid email address.")),this.renderMainTemplate(this.generateTemplateData())},300)}))}attachTextAreaEvents(){var t,a;const e=(a=this.mainContainer)==null?void 0:a.querySelector("#"+((t=V.mainTemplate)==null?void 0:t.feedbackTextAreaId));e&&e.addEventListener("input",()=>{var i,r;this.templateData.feedbackTextArea=e.value,this.templateData.charactersLeft=this.templateData.maxLength-e.value.length;const s=(r=this.mainContainer)==null?void 0:r.querySelector("."+((i=V.mainTemplate)==null?void 0:i.charactersRemainingContainerclass));s&&(s.innerText=this.templateData.charactersLeft+"")})}attachRatingEvents(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.ratingInputclass,t=(s=this.mainContainer)==null?void 0:s.querySelectorAll("."+e);t&&t.forEach(i=>{i.addEventListener("click",r=>{const o=r.target.value;this.templateData.ratings.forEach(c=>{c.isSelected=c.index+""===o}),this.templateData.errors.rating=!1,this.renderMainTemplate(this.generateTemplateData())})})}attachOpenModalEvent(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.openModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",i=>{i.preventDefault(),this.toggleModal()})}toggleModal(){this.templateData.feedbackOpen?this.closeFeedbackModal():this.openFeedbackModal()}closeModalEvent(){var a,s;const e=(a=V.mainTemplate)==null?void 0:a.closeModalButtonClass,t=(s=this.mainContainer)==null?void 0:s.querySelector("."+e);t&&t.addEventListener("click",()=>{this.closeFeedbackModal()})}openFeedbackModal(){this.lastFocusedElementBeforeModal=document.activeElement,this.templateData.feedbackOpen=!0,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{const e=this.getModalElement();if(e){const t=this.getFocusableElements(e);t.length>0&&t[0].focus()}this.attachFocusTrap()},0),Q.setAccessibilityText("Feedback form opened",1e3)}closeFeedbackModal(){this.templateData.feedbackOpen=!1,this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null),this.renderMainTemplate(this.generateTemplateData()),this.lastFocusedElementBeforeModal&&(this.lastFocusedElementBeforeModal.focus(),this.lastFocusedElementBeforeModal=null),Q.setAccessibilityText("Feedback form closed",1e3)}showCheckmarkAnimation(){var o,c,h,d,p,g;const e=(o=V.mainTemplate)==null?void 0:o.submitButtonClass,t=(c=this.mainContainer)==null?void 0:c.querySelector("."+e);t&&(t.disabled=!0);const a=(h=V.mainTemplate)==null?void 0:h.checkmarkClass,s=(d=this.mainContainer)==null?void 0:d.querySelector("."+a);s&&s.classList.remove("hidden");const i=(p=V.mainTemplate)==null?void 0:p.submitButtonTextClass,r=(g=this.mainContainer)==null?void 0:g.querySelector("."+i);r&&r.classList.add("visibility"),setTimeout(()=>{s&&s.classList.add("hidden"),r&&r.classList.remove("visibility"),t&&(t.disabled=!1)},2e3)}destroy(){this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null)}}class kn{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"answerContainer",null);l(this,"showMoreVisible",!1);l(this,"renderFeedbackWidget",!1);l(this,"clicked",!1);l(this,"renderedWithShowMore",!1);var t;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.renderFeedbackWidget=((t=this.config.feedbackwidget)==null?void 0:t.renderFeedbackWidget)||!1,this.config.showMoreAfterWordCount&&(this.dataLayer.answerWidgetShowMoreLimit=this.config.showMoreAfterWordCount),typeof document<"u"&&(this.answerContainer=document==null?void 0:document.getElementById(this.containerId)),this.initializeSubscriptions(),this.dataLayer.setIsAnswerWidgetCreated(!0)}initializeSubscriptions(){this.dataLayer.$answer.subscribe(()=>{this.clicked?this.showMoreVisible=!1:this.showMoreVisible=this.dataLayer.parsedData.shouldShowAnswerLoadMore,this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerLoading.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerError.subscribe(e=>{e&&setTimeout(()=>{this.renderMainTemplate(this.generateTemplateData())},100)}),this.dataLayer.$searchObject.subscribe(()=>{this.clicked=!1,this.renderedWithShowMore=!1,this.showMoreVisible=!1}),this.dataLayer.$paginationData.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answer.subscribe(e=>{e&&setTimeout(()=>{this.initializeWidget()},600)}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.dataLayer.$answer.getValue()&&setTimeout(()=>{this.initializeWidget()},600)})}searchstaxFeedbackTextAreaOverride(){return"Question: "+(this.dataLayer.searchObject.query==="undefined"?"":this.dataLayer.searchObject.query)+" Answer: "+this.dataLayer.parsedData.getAnswerData}initializeWidget(){var e,t,a,s,i;this.renderFeedbackWidget&&document.getElementById("feedbackWidgetContainer")&&!this.dataLayer.answerLoading&&new xn({analyticsKey:this.dataLayer.parsedData.trackingData.trackApiKey,containerId:"feedbackWidgetContainer",lightweight:!0,model:this.dataLayer.parsedData.trackingData.model,language:this.dataLayer.parsedData.trackingData.language,emailOverride:(e=this.config.feedbackwidget)==null?void 0:e.emailOverride,feedbackTextAreaOverride:((t=this.config.feedbackwidget)==null?void 0:t.searchstaxFeedbackTextAreaOverride)??this.searchstaxFeedbackTextAreaOverride.bind(this),thumbsUpValue:((a=this.config.feedbackwidget)==null?void 0:a.thumbsUpValue)??10,thumbsDownValue:((s=this.config.feedbackwidget)==null?void 0:s.thumbsDownValue)??0,lightweightTemplateOverride:(i=this.config.feedbackwidget)==null?void 0:i.lightweightTemplateOverride})}showMore(e){e.preventDefault(),this.clicked=!0,this.showMoreVisible=!1,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{this.initializeWidget()},600)}attachClickEventToShowMore(){const e=document.querySelector(".searchstax-answer-load-more-button");e&&e.addEventListener("click",this.showMore.bind(this))}trackLinkClick(e){e.preventDefault(),e.stopPropagation();const a=e.target.getAttribute("href");ce.trackAnswerLinkClick({href:a,answer:this.dataLayer.parsedData.getAnswerData,...this.dataLayer.parsedData.trackingData}).then(()=>{window.open(a,"_blank")}).catch(()=>{window.open(a,"_blank")})}attachLinkTracking(){document.querySelectorAll(".searchstax-answer-link").forEach(t=>{t.getAttribute("listener")!=="true"&&(t.setAttribute("listener","true"),t.addEventListener("click",this.trackLinkClick.bind(this)))})}renderMainTemplate(e){var a,s,i;const t=((i=(s=(a=this.config)==null?void 0:a.templates)==null?void 0:s.main)==null?void 0:i.template)||M.answer.main.template;this.dataLayer.renderingEngine===D.mustache?(!this.renderedWithShowMore||!e.answerLoading||this.clicked)&&(e.showMoreButtonVisible&&(this.renderedWithShowMore=!0),this.answerContainer.innerHTML=v.render(t,e),setTimeout(()=>{this.attachClickEventToShowMore(),this.attachLinkTracking()},100)):setTimeout(()=>{this.attachLinkTracking()},500)}generateTemplateData(){const e={...this.dataLayer.parsedData.data,showMoreButtonVisible:this.showMoreVisible};return this.dataLayer.setAnswerFullData(e),e}}class ls{constructor(e){l(this,"dataLayer");l(this,"config");l(this,"containerId");l(this,"currentSelectValue","");l(this,"locationInput");l(this,"radiusInput");l(this,"locationDecode");l(this,"locationDecodeCoordinatesToAddress");var t,a;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.locationDecode=(t=e.config.hooks)==null?void 0:t.locationDecode,this.locationDecodeCoordinatesToAddress=(a=e.config.hooks)==null?void 0:a.locationDecodeCoordinatesToAddress,this.dataLayer.locationEnabled&&this.dataLayer.$inputTemplateRendered.subscribeUntil(()=>{this.renderMainTemplate(),this.attachSubscriptions()},!0,500)}renderMainTemplate(){var e,t,a,s,i,r,o,c;if(typeof document<"u"){const h=document==null?void 0:document.getElementById(this.containerId);if(!h)throw new Error("Search input container not found");const d=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||M.location.mainTemplate.template,p={...this.dataLayer.parsedData.data};if(this.dataLayer.setLocationWidgetTemplateData(p),this.dataLayer.renderingEngine===D.mustache){const g=v.render(d,p);h.innerHTML=g;const y=((s=(a=this.config.templates)==null?void 0:a.mainTemplate)==null?void 0:s.locationInputId)||M.location.mainTemplate.locationInputId,L=document==null?void 0:document.querySelector(`#${y}`);if(L)this.locationInput=L,L.addEventListener("blur",this.blurEvent.bind(this)),L.addEventListener("focus",this.focusEvent.bind(this));else throw new Error("Input not found");const f=((r=(i=this.config.templates)==null?void 0:i.mainTemplate)==null?void 0:r.radiusInputId)||M.location.mainTemplate.radiusInputId,w=document==null?void 0:document.querySelector(`#${f}`);w instanceof HTMLSelectElement&&(this.radiusInput=w,w.addEventListener("change",this.radiusSelectChangeEvent.bind(this)));const S=((c=(o=this.config.templates)==null?void 0:o.mainTemplate)==null?void 0:c.currentLocationActionButtonId)||M.location.mainTemplate.currentLocationActionButtonId,A=document==null?void 0:document.querySelector(`#${S}`);A&&A.addEventListener("click",this.getCurrentLocation.bind(this))}}}setCurrentLocationFields(e){this.dataLayer.setLocationCoordinatesDecoded(e),this.dataLayer.setSearchLocation(this.dataLayer.searchLocationCoordinatesDecoded),this.dataLayer.renderingEngine===D.mustache&&this.locationInput&&(this.locationInput.value=this.dataLayer.searchLocationCoordinatesDecoded)}getCurrentLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(e=>{const t=e.coords.latitude.toString(),a=e.coords.longitude.toString(),s=Math.floor(parseFloat(t)*100)/100,i=Math.floor(parseFloat(a)*100)/100;this.dataLayer.setSearchLat(s+""),this.dataLayer.setSearchLong(i+"");const r=this.locationDecodeCoordinatesToAddress;r?r(s+"",i+"").then(o=>{this.setCurrentLocationFields(o.address||"Current Location")}).catch(()=>{this.setCurrentLocationFields("Current Location")}):this.setCurrentLocationFields("Current Location")},()=>{console.error("Unable to retrieve your location")}):console.error("Geolocation is not supported by this browser.")}setRadiusValue(e){this.dataLayer.setSearchRadius(e)}radiusSelectChangeEvent(e){this.currentSelectValue=e.target.value,this.setRadiusValue(this.currentSelectValue)}attachSubscriptions(){this.dataLayer.$searchObject.subscribe(e=>{this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(e.location.address??"")),this.radiusInput&&e.location.radius&&(this.radiusInput.value=e.location.radius||"")})}cleanSuggestionTerm(e){return q.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}triggerGeocoder(e){const t=this.locationDecode;this.dataLayer.setLocationDecodingLoading(!0),e&&this.dataLayer.searchLocation!==e&&e!==this.dataLayer.searchLocationCoordinatesDecoded?t(e).then(a=>{this.dataLayer.setSearchLocation(a.address||""),this.dataLayer.setSearchLat(a.lat||""),this.dataLayer.setSearchLong(a.lon||""),this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(a.address||"")),this.dataLayer.renderingEngine===D.mustache&&a.error&&this.locationInput&&this.locationInput.classList.add("searchstax-input-location-error"),a.error?this.dataLayer.setLocationError(!0):this.dataLayer.setLocationError(!1),this.dataLayer.setLocationDecodingLoading(!1)}).catch(()=>{this.dataLayer.setLocationDecodingLoading(!1)}):e===""&&(this.dataLayer.setSearchLocation(void 0),this.dataLayer.setSearchLat(void 0),this.dataLayer.setSearchLong(void 0),this.dataLayer.setLocationDecodingLoading(!1))}focusEvent(e){e.target.classList.remove("searchstax-input-location-error"),this.dataLayer.setLocationError(!1)}blurEvent(e){const a=e.target.value;this.triggerGeocoder(a)}}class En{constructor(e=D.mustache){l(this,"routerEnabled",!1);l(this,"cachedQuery","");l(this,"routerHelper");l(this,"searchHelper");l(this,"searchResultsConfig");l(this,"searchPaginationConfig");l(this,"searchFeedbackConfig");l(this,"searchSortingConfig");l(this,"searchFacetsConfig");l(this,"relatedSearchesConfig");l(this,"externalPromotionsConfig");l(this,"searchInputWidget");l(this,"searchLocationWidget");l(this,"searchResultsWidget");l(this,"searchFacetsWidget");l(this,"searchPaginationWidget");l(this,"searchFeedbackWidget");l(this,"searchSortingWidget");l(this,"relatedSearchesWidget");l(this,"externalPromotionsWidget");l(this,"answerWidget");l(this,"locationObserver",null);l(this,"dataLayer");l(this,"firstRequest",!0);l(this,"previousQuery","");l(this,"eventSource",null);l(this,"renderEngine",D.mustache);e&&(this.renderEngine=e)}setRenderingEngine(e=D.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)}),setTimeout(()=>{this.dataLayer.$searchObject.subscribe(a=>{var s,i,r,o,c,h;a.query!==this.previousQuery&&this.dataLayer.setAnswerData(""),a.query!==""&&a.query!==void 0&&a.query!=="undefined"?(this.search(a),a.query!==this.previousQuery&&this.startSSE(a.query)):(s=this.dataLayer.searchLocationConfig)!=null&&s.locationSearchEnabled&&!((i=this.dataLayer.searchLocationConfig)!=null&&i.locationValuesOverride)?this.getMetadata(a):(o=(r=this.dataLayer.searchLocationConfig)==null?void 0:r.locationValuesOverride)!=null&&o.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((h=(c=this.dataLayer.searchLocationConfig)==null?void 0:c.locationValuesOverride)==null?void 0:h.locationFilterDefaultValue),this.previousQuery=a.query})},10),this.dataLayer.$searchResults.subscribe(a=>{a&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}startSSE(e){var t,a;this.eventSource&&((t=this.eventSource)==null||t.close(),this.dataLayer.setAnswerData("")),this.dataLayer.turnAIAnswerGenerationOn===!0&&this.dataLayer.questionURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&(this.eventSource=(a=this.searchHelper)==null?void 0:a.startSSE(e,this.parseAnswerResultsResponse.bind(this)))}attachAnalyticsScript(e){ce.attachAnalyticsScript(e)}initialize(e){var t,a;if(this.dataLayer=new _i("searchstax_session_id",e.sessionId),this.renderEngine&&this.dataLayer.setRenderingEngine(this.renderEngine),this.handleHooks(),e.questionURL&&(this.dataLayer.questionURL=e.questionURL),e.analyticsBaseUrl&&typeof window<"u"&&(window.analyticsBaseUrl=e.analyticsBaseUrl,window._msq=e._msq||[],this.attachAnalyticsScript(e.analyticsSrc)),e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),e.language&&this.dataLayer.setLanguage(e.language),e.model&&this.dataLayer.setModel(e.model),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new Hi({...e,sessionId:this.dataLayer.sessionId},this.dataLayer),this.dataLayer.searchHelper=this.searchHelper),((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 es(e.router?e.router:{enabled:!0});const s=this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"");this.dataLayer.searchObject.itemsPerPage?s.itemsPerPage=this.dataLayer.searchObject.itemsPerPage:s.itemsPerPage&&this.dataLayer.setItemsPerPage(s.itemsPerPage),s.model&&this.dataLayer.setModel(s.model),s.location&&(s.location.address&&this.dataLayer.setSearchLocation(s.location.address),s.location.lat&&this.dataLayer.setSearchLat(s.location.lat),s.location.lon&&this.dataLayer.setSearchLong(s.location.lon),s.location.radius&&this.dataLayer.setSearchRadius(s.location.radius)),this.dataLayer.setSearchObject(s),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject((window==null?void 0:window.location.href)??"",this.dataLayer.searchObject.itemsPerPage))})}else this.routerHelper=new es({})}getMetadata(e){this.searchHelper&&(e.query==="undefined"||e.query===void 0)&&this.dataLayer.setSearchObject({...e,query:"*"})}search(e){if(this.searchHelper){const t=this.dataLayer.forceNotCorrect;this.searchHelper.url&&(this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1),this.getRelatedSearches()}}getRelatedSearches(){var e;this.searchHelper&&this.relatedSearchesConfig&&((e=this.relatedSearchesConfig)!=null&&e.relatedSearchesURL)&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var i,r;const a=(((i=e.response)==null?void 0:i.docs)??[]).map((o,c)=>({...o,position:c+1})),s=[];for(const o of a)s.push({relatedSearch:o.related_search,position:o.position});this.dataLayer.setSearchRelatedSearches(a),this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&s.length&&ce.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:s,totalRelatredSearches:((r=this.dataLayer.searchRelatedSearches)==null?void 0:r.length)??0})}handleRouter(){if(this.routerEnabled){const e={...this.dataLayer.searchObject};this.dataLayer.isInfiniteScroll&&delete e.page,this.routerHelper.updateUrl(e)}}parseSearchResultsResponseMetadata(e){var s,i,r,o;const t=tt.extractSearchResultsMetadata(e),a=((i=(s=this.dataLayer.searchLocationConfig)==null?void 0:s.locationValuesOverride)==null?void 0:i.locationFilterDefaultValue)??((o=(r=t.location)==null?void 0:r.filter)==null?void 0:o.defaultValue);!this.dataLayer.searchRadius&&a&&this.dataLayer.setSearchRadius(a),this.dataLayer.setSearchResultsMetadata(t)}parseSearchResultsResponse(e){var s,i;this.handleRouter(),this.dataLayer.setItemsPerPage(parseInt(e.responseHeader.params.rows)),this.dataLayer.setModel(e.responseHeader.params.model);let t=tt.combineResultsWithMetadata(e),a=tt.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??[]),this.parseSearchResultsResponseMetadata(e),this.dataLayer.setSearchResults(t)}parseAnswerResultsResponse(e){this.handleRouter(),e!==Ie.question&&e!==Ie.notQuestion&&(this.dataLayer.setAnswerLoading(!0),this.dataLayer.setAnswerData(this.dataLayer.getAnswerData+e))}cacheFacets(e){var t,a;e?(t=this.searchHelper)==null||t.cacheFacets(!0).then(()=>{}):(a=this.searchHelper)==null||a.cacheFacets().then(()=>{})}parseSuggestSuggestResponse(e){var a,s;let t=e;(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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.$locationEnabled.subscribeUntilHasValue(()=>{this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new bn({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer})},200)}addSearchLocationWidget(e,t){var a,s;this.dataLayer.searchLocationConfig||(t.locationSearchEnabled?(this.dataLayer.setLocationEnabled(!0),this.dataLayer.setSearchLocationConfig(t),t.locationValuesOverride?(this.searchLocationWidget=new ls({containerId:e,config:t,dataLayer:this.dataLayer}),(a=t==null?void 0:t.locationValuesOverride)!=null&&a.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((s=t==null?void 0:t.locationValuesOverride)==null?void 0:s.locationFilterDefaultValue)):this.dataLayer.$searchResultsMetadata.subscribeUntilHasValue(()=>{this.searchLocationWidget=new ls({containerId:e,config:t,dataLayer:this.dataLayer})},0)):this.dataLayer.setLocationEnabled(!1))}addAnswerWidget(e,t){this.dataLayer.turnAIAnswerGenerationOn=!0,this.startSSE(this.dataLayer.searchObject.query),this.dataLayer.setAnswerData(""),this.answerWidget=new kn({containerId:e,config:t,dataLayer:this.dataLayer})}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new Sn({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 wn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Cn({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)})}addSearchSortingWidget(e,t){this.searchSortingConfig=t,this.searchSortingWidget=new Tn({containerId:e,config:t,dataLayer:this.dataLayer})}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig=t,this.relatedSearchesWidget=new Mn({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0)}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig=t,this.externalPromotionsWidget=new Ln({containerId:e,config:t,dataLayer:this.dataLayer})}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new yn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){const a={...this.dataLayer.searchObject};a.query=q.removeXSSRiskyTags(e),a.page=1,a.facets=[],a.location={...a.location},this.locationObserver&&this.dataLayer.$locationDecodingLoading.unsubscribe(this.locationObserver),this.locationObserver=this.dataLayer.$locationDecodingLoading.subscribeUntil(()=>{var i,r;a.location.address=this.dataLayer.searchLocation,a.location.radius=this.dataLayer.searchRadius,a.location.lat=this.dataLayer.searchLat,a.location.lon=this.dataLayer.searchLong,this.dataLayer.forceNotCorrect=!!t;let s=(i=this.routerHelper)==null?void 0:i.searchObjectToParams(a);s&&(s=(r=this.routerHelper)==null?void 0:r.extractParamsThatDoNotStartWithRouteName(s)),s&&(a.additionalProps=Object.keys(s).map(o=>s?{key:o,value:s[o]}:{key:"",value:""})),this.dataLayer.setSearchObject(a),this.dataLayer.lastSearchValue=a.query},!1)}executeSuggest(e){var a,s;let t={term:e,queryParams:[]};(s=(a=this.dataLayer.searchInputConfig)==null?void 0:a.hooks)!=null&&s.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){var t;this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&!this.dataLayer.cookiesDisabled&&ce.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e,totalRelatredSearches:((t=this.dataLayer.searchRelatedSearches)==null?void 0:t.length)??0})}executeLinkClick(e){var a,s;let t=tt.findResultByUniqueId(e,this.dataLayer.searchResults??[]);t&&((s=(a=this.searchResultsConfig)==null?void 0:a.hooks)!=null&&s.afterLinkClick&&(t=this.searchResultsConfig.hooks.afterLinkClick(t)),t&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackClick({result:t,...this.dataLayer.parsedData.trackingData}).then(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}).catch(()=>{typeof window<"u"&&(window.location.href=(t==null?void 0:t.url)??"")}))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}setCookiesDisabled(e){this.dataLayer.setCookiesDisabled(e)}changeResultTemplate(e){var t,a,s;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(a=this.searchResultsConfig)==null?void 0:a.templates,...e}:e,(s=this.searchResultsWidget)==null||s.changeTemplate())}}Te.Searchstax=En,Object.defineProperty(Te,Symbol.toStringTag,{value:"Module"})})(this["@searchstaxInc/searchstudioUxJs"]=this["@searchstaxInc/searchstudioUxJs"]||{});
@@ -431,4 +431,4 @@ Please report this to https://github.com/markedjs/marked.`,n){const s="<p>An err
431
431
 
432
432
  </div>
433
433
  </div>
434
- `,thumbsUpButtonClass:"searchstax-lightweight-widget-thumbs-up",thumbsDownButtonClass:"searchstax-lightweight-widget-thumbs-down"}};class v{}l(v,"answer",wn),l(v,"externalPromotions",Mn),l(v,"facets",vn),l(v,"pagination",Cn),l(v,"relatedSearches",bn),l(v,"searchFeedback",xn),l(v,"searchInput",kn),l(v,"location",Sn),l(v,"searchResults",Tn),l(v,"sorting",An),l(v,"feedback",H);class En{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"externalPromotionsContainerId"),l(this,"searchExternalPromotionsMainContainer",null);var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.externalPromotionsContainerId=((s=(t=this.config.templates)==null?void 0:t.mainTemplate)==null?void 0:s.externalPromotionsContainerId)||v.externalPromotions.mainTemplate.externalPromotionsContainerId,typeof document<"u"&&(this.searchExternalPromotionsMainContainer=document?.getElementById(this.containerId)),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions};return this.dataLayer.setExternalPromotionsData(e),e}addExternalSearch(e){var t,s,a,i;const o=typeof document<"u"?document?.getElementById(this.externalPromotionsContainerId):null;if(o){const r=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.externalPromotion)==null?void 0:a.template)||((i=v.externalPromotions.externalPromotion)==null?void 0:i.template);if(typeof document<"u"){const c=document?.createElement("div");c.classList.add("searchstax-external-promotion"),c.addEventListener("click",u=>{this.trackClick(e,u)}),c.innerHTML=A.render(r,e),o.appendChild(c)}}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window?.open(e.url,"_blank")}renderMainTemplate(e){var t,s,a,i;const o=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.mainTemplate)==null?void 0:a.template)||((i=v.externalPromotions.mainTemplate)==null?void 0:i.template);if(this.dataLayer.renderingEngine===$.mustache){this.searchExternalPromotionsMainContainer.innerHTML=A.render(o,e);const r=typeof document<"u"?document?.getElementById(this.externalPromotionsContainerId):null;r&&(r.innerHTML="");for(const c of e.externalPromotions)this.addExternalSearch(c)}}}class q{static addAccessibilityNotificationContainerToBody(){if(!document.getElementById("searchAccessibilityContainer")){const e=document.createElement("div");e.setAttribute("aria-live","polite"),e.setAttribute("id","searchAccessibilityContainer"),document.body.appendChild(e)}}static setAccessibilityText(e,t,s){this.addAccessibilityNotificationContainerToBody();const a=s??"searchAccessibility",i=document.getElementById(a);i&&i.remove();const o=document.createElement("span");o.setAttribute("id",a),o.innerHTML=e;const r=document.getElementById("searchAccessibilityContainer");r&&setTimeout(()=>{r.appendChild(o)},t??100)}}class Dn{constructor(e,t){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"routerHelper"),l(this,"cachedPhrase",""),l(this,"cachedANDFacets",""),l(this,"isCached",!1),l(this,"overlayOpened",!1),l(this,"facetPaginationStep"),l(this,"facetPaginationStepMobile"),l(this,"searchFacetsMainContainer",null),l(this,"searchFacetsMobileContainer",null),l(this,"searchFacetsDesktopContainer",null),l(this,"facetLimits",{}),l(this,"facetLimitsMobile",{}),l(this,"deactivatedFacets",{}),l(this,"focusedElement",null),l(this,"cachedData",null),l(this,"cacheFacets"),l(this,"onFacetSelect",(s,a,i,o,r)=>{if(s.stopPropagation(),!a.disabled){const c=i.querySelector("input");let u=o?c.checked:!c.checked;r!==void 0&&(u=!r),c.checked=u;const d=this.dataLayer.searchObject;let p=[...d.facets];const g=this.extractFacetValue(a);u?p.find(f=>ie.deepEqual(f,g)?f:!1)||(this.config.facetingType==="tabs"&&(p=p.filter(f=>f.name!==g.name)),p.push(g)):p=p.filter(f=>!ie.deepEqual(f,g)),setTimeout(()=>{this.dataLayer.setSearchObject({...d,facets:p,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,typeof document<"u"&&(this.searchFacetsMainContainer=document?.getElementById(this.containerId)),this.needCache&&t(this.config.facetingType==="tabs"),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.$searchFacetsCachedTabs.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.config.facetingType==="tabs")),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query||this.cachedANDFacets!==this.dataLayer.parsedData.cachedANDFacets?(this.cachedANDFacets=this.dataLayer.parsedData.cachedANDFacets,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 s=t?this.facetPaginationStepMobile:this.facetPaginationStep,a=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(i=>{a[i.name]||(a[i.name]=s)}),e.map(i=>({...i,values:i.values.slice(0,a[i.name]),showingAllFacets:i.values.length<=a[i.name],hasMoreFacets:i.values.length>s}))}generateTemplateData(e){if(this.generateSelectedFacetsData(),this.dataLayer.searchFacets){let t=this.dataLayer.searchFacets;this.needCache&&this.dataLayer.searchFacetsCached&&(t=this.dataLayer.searchFacetsCached,this.config.facetingType==="tabs"&&this.dataLayer.searchFacetsCachedTabs&&(t=this.dataLayer.searchFacetsCachedTabs),this.needDisabling&&(t=t.map(a=>{var i;const o=(i=this.dataLayer.searchFacets)==null?void 0:i.find(r=>r.name===a.name);return o?{...a,values:a.values.map(r=>{const c=o.values.find(u=>r.type==="range"?!1:r.type==="checkbox"?u.value===r.value:!1);return{...r,disabled:!c,isMobile:e}})}:{...a,values:a.values.map(r=>({...r,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(a=>{var i;return(i=this.config.specificFacets)==null?void 0:i.includes(a.name)}));const s={facets:this.applyFacetLimits(t,e),...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(s),s}else{const t={facets:[],...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(t),t}}createFacetItem(e,t,s){var a,i,o,r,c,u,d,p,g,f,y,m,M,C,T,j;if(typeof document<"u"){const b=document?.createElement("div");b.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||b.classList.add("active");const E=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.facetItemContainerTemplate)==null?void 0:o.template)||((r=v.facets.facetItemContainerTemplate)==null?void 0:r.template);b.innerHTML=A.render(E,e),t.appendChild(b);const O=b.querySelector("."+(((d=(u=(c=this.config)==null?void 0:c.templates)==null?void 0:u.facetItemContainerTemplate)==null?void 0:d.facetListTitleContainerClass)||((p=v.facets.facetItemContainerTemplate)==null?void 0:p.facetListTitleContainerClass)));O?.addEventListener("click",()=>{b.classList.toggle("active");const P=b.classList.contains("active"),he=O.querySelector(".searchstax-facet-title");he&&he.setAttribute("aria-expanded",String(P))}),(m=O?.querySelector("."+((y=(f=(g=this.config)==null?void 0:g.templates)==null?void 0:f.facetItemContainerTemplate)==null?void 0:y.facetListTitleContainerInner)))==null||m.addEventListener("keydown",P=>{if(P.code==="Enter"||P.code==="Space"){P.preventDefault(),b.classList.toggle("active");const he=b.classList.contains("active"),ue=O.querySelector(".searchstax-facet-title");ue&&ue.setAttribute("aria-expanded",String(he))}});const _=b.querySelector("."+(((T=(C=(M=this.config)==null?void 0:M.templates)==null?void 0:C.facetItemContainerTemplate)==null?void 0:T.facetListContainerClass)||((j=v.facets.facetItemContainerTemplate)==null?void 0:j.facetListContainerClass)));_&&(e.values.forEach(P=>{this.createFacetListItem(P,_,e.name)}),e.hasMoreFacets&&this.createHasMoreComponent(e,_,s))}}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(s=>ie.deepEqual(s,this.extractFacetValue(e))))}createFacetListItem(e,t,s){var a,i,o,r,c,u,d,p,g,f,y,m;if(typeof document<"u"){const M=document?.createElement("div");M.classList.add("searchstax-facet-value-container"),e.disabled&&M.classList.add("searchstax-facet-value-disabled");const C=this.isChecked(e),T=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.facetItemTemplate)==null?void 0:o.template)||((r=v.facets.facetItemTemplate)==null?void 0:r.template);M.innerHTML=A.render(T,{...e,isChecked:C});let j=(c=v.facets.facetItemTemplate)==null?void 0:c.checkTriggerClasses;j=((p=(d=(u=this.config)==null?void 0:u.templates)==null?void 0:d.facetItemTemplate)==null?void 0:p.checkTriggerClasses)||j,j.forEach(E=>{const O=M.querySelector("."+E);O?.addEventListener("click",_=>{this.onFacetSelect(_,e,M)})});const b=M.querySelector("."+(((y=(f=(g=this.config)==null?void 0:g.templates)==null?void 0:f.facetItemTemplate)==null?void 0:y.inputCheckboxClass)||((m=v.facets.facetItemTemplate)==null?void 0:m.inputCheckboxClass)));b?.addEventListener("click",E=>{this.onFacetSelect(E,e,M,!0)}),b&&b?.setAttribute("data-test-value",`${encodeURIComponent(s)}:&quot;${encodeURIComponent(e.value)}&quot;`),t.appendChild(M)}}createHasMoreComponent(e,t,s){var a,i,o,r,c,u,d,p,g,f;if(typeof document<"u"){const y=document?.createElement("div");y.classList.add("searchstax-facet-show-more-container");const m=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.showMoreButtonContainerTemplate)==null?void 0:o.template)||((r=v.facets.showMoreButtonContainerTemplate)==null?void 0:r.template);y.innerHTML=A.render(m,{...e,focusId:`moreLess${(u=(c=e?.values)==null?void 0:c[0])==null?void 0:u.value}`});const M=y.querySelector("."+(((g=(p=(d=this.config)==null?void 0:d.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:g.showMoreButtonClass)||((f=v.facets.showMoreButtonContainerTemplate)==null?void 0:f.showMoreButtonClass)));M&&(this.attachOnclickToShowMore(e,M,s),t&&t.appendChild(M))}}attachOnclickToShowMore(e,t,s){t.addEventListener("click",a=>{this.onShowMoreLessClick(a,e,s)}),t.addEventListener("keydown",a=>{a.code==="Space"&&a.preventDefault()}),t.addEventListener("keyup",a=>{(a.code==="Space"||a.code==="Enter")&&(a.preventDefault(),this.onShowMoreLessClick(a,e,s))})}onShowMoreLessClick(e,t,s){e.preventDefault();const a=s?this.facetPaginationStepMobile:this.facetPaginationStep,i=s?this.facetLimits:this.facetLimitsMobile;i[t.name]===void 0?i[t.name]=a*2:i[t.name]<=t.values.length?(q.setAccessibilityText(`More Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=i[t.name]+a):(q.setAccessibilityText(`Less Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=a),this.generateTemplateData(s),this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var s,a,i,o,r,c,u,d,p,g,f;if(e&&(!ie.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const y=((i=(a=(s=this.config)==null?void 0:s.templates)==null?void 0:a.mainTemplateDesktop)==null?void 0:i.template)||((o=v.facets.mainTemplateDesktop)==null?void 0:o.template);if(this.dataLayer.renderingEngine===$.mustache&&this.searchFacetsMainContainer){const m=document.activeElement;m instanceof HTMLInputElement&&m.type==="checkbox"||m!=null&&m.classList.contains("searchstax-facet-show-more-button")||m!=null&&m.classList.contains("searchstax-facet-show-less-button")?this.focusedElement=m:this.focusedElement=null,this.searchFacetsMainContainer.innerHTML=A.render(y,{...e});const M=(d=this.searchFacetsMainContainer)==null?void 0:d.querySelector("."+(((u=(c=(r=this.config)==null?void 0:r.templates)==null?void 0:c.mainTemplateDesktop)==null?void 0:u.facetsContainerClass)||v.facets.mainTemplateDesktop.facetsContainerClass));if(M){M.innerHTML="";for(const C of e.facets)this.createFacetItem(C,M);if(this.searchFacetsMainContainer){const C=this.searchFacetsMainContainer.querySelector("."+(((f=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplateDesktop)==null?void 0:f.selectedFacetsContainerClass)||v.facets.mainTemplateDesktop.selectedFacetsContainerClass));C&&(this.createSelectedFacetsComponents(C),this.createClearFacetsComponents(C))}if(this.focusedElement){if(this.focusedElement.classList.contains("searchstax-facet-show-more-button")||this.focusedElement.classList.contains("searchstax-facet-show-less-button")){const j=this.focusedElement.getAttribute("data-focus"),b=this.searchFacetsMainContainer.querySelector(`[data-focus="${j}"]`);b instanceof HTMLElement&&b.focus(),this.focusedElement=null;return}const C=this.focusedElement.getAttribute("data-test-value"),T=this.searchFacetsMainContainer.querySelector(`[data-test-value="${C}"]`);T instanceof HTMLInputElement&&T.focus(),this.focusedElement=null}}}setTimeout(()=>{document.querySelectorAll(".searchstax-facet-title").forEach(m=>{m.setAttribute("aria-expanded",String(!0)),m.setAttribute("tabindex","0"),m.setAttribute("role","button")})},100),this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const s of t){const a=decodeURIComponent(s.name),i=decodeURIComponent(s.value);if(this.dataLayer.searchFacets){const o=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,r=o?.find(c=>c.name===a);if(r){const c=r.values.find(u=>u.type==="range"?!1:u.type==="checkbox"?`"${u.value}"`==`"${i}"`:!1);c&&e.push(c)}}}this.dataLayer.setSelectedFacetsTemplateData(e)}createSelectedFacetsComponents(e){var t;this.generateSelectedFacetsData(),(t=this.dataLayer.selectedFacetsTemplateData)==null||t.forEach(s=>{this.createSelectedFacetsComponent(e,s)})}createClearFacetsComponents(e){var t,s,a,i,o,r,c,u;if(typeof document<"u"){const d=this.dataLayer.searchObject,p=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.clearFacetsTemplate)==null?void 0:a.template)||((i=v.facets.clearFacetsTemplate)==null?void 0:i.template),g=document?.createElement("div");g.innerHTML=A.render(p,{shouldShow:d.facets.length>0});const f=g.querySelector("."+(((c=(r=(o=this.config)==null?void 0:o.templates)==null?void 0:r.clearFacetsTemplate)==null?void 0:c.containerClass)||((u=v.facets.clearFacetsTemplate)==null?void 0:u.containerClass)));f&&(f.addEventListener("click",()=>{this.removeSelectedFacets()}),f.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.removeSelectedFacets()}),e.appendChild(f))}}createSelectedFacetsComponent(e,t){var s,a,i,o,r,c,u,d;if(typeof document<"u"){const p=((i=(a=(s=this.config)==null?void 0:s.templates)==null?void 0:a.selectedFacetsTemplate)==null?void 0:i.template)||((o=v.facets.selectedFacetsTemplate)==null?void 0:o.template),g=document?.createElement("div");g.innerHTML=A.render(p,t);const f=g.querySelector("."+(((u=(c=(r=this.config)==null?void 0:r.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:u.containerClass)||((d=v.facets.selectedFacetsTemplate)==null?void 0:d.containerClass)));f&&(f.addEventListener("click",()=>{this.unselectFacet(t)}),f.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.unselectFacet(t)}),e.appendChild(f))}}unselectFacet(e){const t=this.dataLayer.searchObject;let s=[...t.facets];e.type==="checkbox"&&(s=s.filter(a=>JSON.stringify(a)!==JSON.stringify(this.extractFacetValue(e)))),setTimeout(()=>{this.dataLayer.setSearchObject({...t,facets:s}),this.generateSelectedFacetsData()},0)}removeSelectedFacets(){const e=this.dataLayer.searchObject;this.dataLayer.setSearchObject({...e,facets:[]})}createFilterByComponent(e){var t,s,a,i,o,r,c,u;if(typeof document<"u"){const d=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.filterByTemplate)==null?void 0:a.template)||((i=v.facets.filterByTemplate)==null?void 0:i.template),p=document?.createElement("div");p.innerHTML=A.render(d,{});const g=p.querySelector("."+(((c=(r=(o=this.config)==null?void 0:o.templates)==null?void 0:r.filterByTemplate)==null?void 0:c.containerClass)||((u=v.facets.filterByTemplate)==null?void 0:u.containerClass)));g&&(e.prepend(g),g.addEventListener("click",this.openOverlay.bind(this)),g.addEventListener("keyup",f=>{(f.code==="Space"||f.code==="Enter")&&this.openOverlay()}))}}openOverlay(){var e;q.setAccessibilityText("Facet overlay opened. Tab to select facets."),this.overlayOpened=!0,this.searchFacetsMainContainer&&(typeof document<"u"&&document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;q.setAccessibilityText("Facet overlay closed"),this.overlayOpened=!1,this.searchFacetsMainContainer&&(typeof document<"u"&&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,s,a,i,o,r,c,u,d,p,g,f,y,m,M,C,T,j,b;if(e&&typeof document<"u"){const E=document?.createElement("div");E.classList.add("searchstax-facets-container-mobile");const O=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.mainTemplateMobile)==null?void 0:a.template)||((i=v.facets.mainTemplateMobile)==null?void 0:i.template);if(this.dataLayer.renderingEngine===$.mustache){if(E.innerHTML=A.render(O,{...e,overlayOpened:this.overlayOpened}),(o=this.searchFacetsMainContainer)==null||o.appendChild(E),(c=(r=this.config)==null?void 0:r.templates)!=null&&c.mainTemplateMobile)for(const ue of((p=(d=(u=this.config)==null?void 0:u.templates)==null?void 0:d.mainTemplateMobile)==null?void 0:p.closeOverlayTriggerClasses)||[]){const F=E.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}else for(const ue of v.facets.mainTemplateMobile.closeOverlayTriggerClasses){const F=E.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}const _=E.querySelector("."+(((y=(f=(g=this.config)==null?void 0:g.templates)==null?void 0:f.mainTemplateMobile)==null?void 0:y.filterByContainerClass)||v.facets.mainTemplateMobile.filterByContainerClass));_&&this.createFilterByComponent(_);const P=E.querySelector("."+(((C=(M=(m=this.config)==null?void 0:m.templates)==null?void 0:M.mainTemplateMobile)==null?void 0:C.selectedFacetsContainerClass)||v.facets.mainTemplateMobile.selectedFacetsContainerClass));P&&(this.createSelectedFacetsComponents(P),this.createClearFacetsComponents(P));const he=E.querySelector("."+(((b=(j=(T=this.config)==null?void 0:T.templates)==null?void 0:j.mainTemplateMobile)==null?void 0:b.facetsContainerClass)||v.facets.mainTemplateMobile.facetsContainerClass));if(he){he.innerHTML="";for(const ue of e.facets)this.createFacetItem(ue,he,!0)}}}}}class In{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"previousButtonClass"),l(this,"nextButtonClass"),l(this,"loadMoreButtonClass"),l(this,"routerHelper"),l(this,"searchPaginationMainContainer",null);var t,s,a,i,o,r,c,u,d;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.mainTemplate)==null?void 0:a.previousButtonClass)??v.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((r=(o=(i=this.config)==null?void 0:i.templates)==null?void 0:o.mainTemplate)==null?void 0:r.nextButtonClass)??v.pagination.mainTemplate.nextButtonClass,this.loadMoreButtonClass=((d=(u=(c=this.config)==null?void 0:c.templates)==null?void 0:u.infiniteScrollTemplate)==null?void 0:d.loadMoreButtonClass)??v.pagination.infiniteScrollTemplate.loadMoreButtonClass,typeof document<"u"&&(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(){return this.dataLayer.parsedData.data.isLastPage}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var e,t,s,a;const i={...this.dataLayer.parsedData.data,previousPageLink:(t=this.routerHelper)==null?void 0:t.searchObjectToUrl({...this.dataLayer.searchObject,page:((e=this.dataLayer.searchObject)==null?void 0:e.page)-1}),nextPageLink:(a=this.routerHelper)==null?void 0:a.searchObjectToUrl({...this.dataLayer.searchObject,page:((s=this.dataLayer.searchObject)==null?void 0:s.page)+1})};return this.dataLayer.setPaginationData(i),i}goToPage(e,t){const s=this.dataLayer.searchObject;s&&(s.page=e,this.dataLayer.setSearchObject(s)),t||window==null||window.scrollTo(0,0),document.body.tabIndex=-1,document.body.focus()}nextPage(e){var t;e?.preventDefault(),e?.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1,this.dataLayer.isInfiniteScroll)}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),s=this.searchPaginationMainContainer.querySelector("."+this.loadMoreButtonClass);e&&(e.addEventListener("click",this.previousPage.bind(this)),e.addEventListener("keydown",a=>{(a.code==="Space"||a.code==="Enter")&&this.previousPage(a)})),t&&(t.addEventListener("click",this.nextPage.bind(this)),t.addEventListener("keydown",a=>{(a.code==="Space"||a.code==="Enter")&&this.nextPage(a)})),s&&(s.addEventListener("click",this.nextPage.bind(this)),s.addEventListener("keydown",a=>{(a.code==="Space"||a.code==="Enter")&&this.nextPage(a)}))}}renderMainTemplate(e){var t,s,a,i,o,r,c,u,d,p;this.searchPaginationMainContainer&&((t=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||t.removeEventListener("click",this.previousPage),(s=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||s.removeEventListener("click",this.nextPage));let g=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.mainTemplate)==null?void 0:o.template)||((r=v.pagination.mainTemplate)==null?void 0:r.template);this.dataLayer.isInfiniteScroll&&(g=((d=(u=(c=this.config)==null?void 0:c.templates)==null?void 0:u.infiniteScrollTemplate)==null?void 0:d.template)||((p=v.pagination.infiniteScrollTemplate)==null?void 0:p.template)),this.dataLayer.renderingEngine===$.mustache&&(this.searchPaginationMainContainer.innerHTML=A.render(g,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class jn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"relatedSearchesContainerClass"),l(this,"searchRelatedSearchesMainContainer",null),l(this,"track");var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.relatedSearchesContainerClass=((s=(t=this.config.templates)==null?void 0:t.main)==null?void 0:s.relatedSearchesContainerClass)||v.relatedSearches.main.relatedSearchesContainerClass,typeof document<"u"&&(this.searchRelatedSearchesMainContainer=document?.getElementById(this.containerId)),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setRelatedSearchesData(e),e}addRelatedSearchComponent(e,t){var s,a,i,o,r;if(typeof document<"u"){const c=document?.createElement("div"),u=((i=(a=(s=this.config)==null?void 0:s.templates)==null?void 0:a.relatedSearch)==null?void 0:i.template)||v.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===$.mustache){c.innerHTML=A.render(u,e);const d=c.querySelector("."+(((r=(o=this.config.templates)==null?void 0:o.relatedSearch)==null?void 0:r.relatedSearchContainerClass)||v.relatedSearches.relatedSearch.relatedSearchContainerClass));d&&(t.appendChild(d),d.addEventListener("click",()=>{this.executeSearch(e)}),d.addEventListener("keyup",p=>{(p.code==="Space"||p.code==="Enter")&&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 t,s,a,i;const o=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.relatedSearches.main.template;if(this.dataLayer.renderingEngine===$.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=A.render(o,e);const r=(i=this.searchRelatedSearchesMainContainer)==null?void 0:i.querySelector(`.${this.relatedSearchesContainerClass}`);if(r)for(const c of e.relatedSearches)this.addRelatedSearchComponent(c,r)}}}class Rn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"searchFeedbackMainContainer",null),l(this,"searchTrigger"),this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,typeof document<"u"&&(this.searchFeedbackMainContainer=document?.getElementById(this.containerId)),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchFeedbackData(e),e}onOriginalQueryClick(e){var t;e.stopPropagation(),e.preventDefault();const s=(t=e.target)==null?void 0:t.innerHTML;this.searchTrigger(s,!0)}attachClick(){var e,t,s,a,i;const o=(i=this.searchFeedbackMainContainer)==null?void 0:i.querySelector("."+(((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.main)==null?void 0:s.originalQueryClass)||((a=v.searchFeedback.main)==null?void 0:a.originalQueryClass)));o&&o.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var t,s,a;const i=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.searchFeedback.main.template;this.dataLayer.renderingEngine===$.mustache&&(this.searchFeedbackMainContainer.innerHTML=A.render(i,e),setTimeout(()=>{this.attachClick()},0))}}class Nn{constructor(e){l(this,"searchHelper"),l(this,"dataLayer"),l(this,"config"),l(this,"suggestAfterMinChars"),l(this,"containerId"),l(this,"currentInputValue",""),l(this,"autosuggestResults"),l(this,"searchInput"),l(this,"actionButton"),l(this,"autosuggestContainer"),l(this,"buttonState","search"),l(this,"selectedAutosuggestItem",-1),l(this,"suggestTrigger"),l(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.suggestAfterMinChars===void 0&&this.getSuggestAfterValue(),this.dataLayer.$locationEnabled.subscribeUntilHasValue(()=>{this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())},200)}renderMainTemplate(){var e,t,s,a;if(typeof document<"u"){const i=document?.getElementById(this.containerId);if(!i)throw new Error("Search input container not found");const o=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||v.searchInput.mainTemplate.template,r={...this.dataLayer.parsedData.data,locationEnabled:!!this.dataLayer.locationEnabled};if(this.dataLayer.setInputWidgetTemplateData(r),this.dataLayer.renderingEngine===$.mustache){const d=A.render(o,r);i.innerHTML=d,this.dataLayer.setInputTemplateRendered(!0)}const c=((a=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:a.searchInputId)||v.searchInput.mainTemplate.searchInputId,u=document?.querySelector(`#${c}`);if(u)this.searchInput=u,u.addEventListener("keyup",this.inputKeyupEvent.bind(this)),u.addEventListener("blur",this.hideAutosuggest.bind(this)),u.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===$.mustache&&typeof document<"u"&&(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))}getSuggestAfterValue(){this.dataLayer.searchHelper&&this.dataLayer.searchHelper.suggest("*",e=>{this.suggestAfterMinChars=e.metadata.minPrefixChars},[])}actionButtonInit(){typeof document<"u"&&(this.actionButton=document?.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??"")}))}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(){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-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon"),this.actionButton.setAttribute("aria-label","search");break}}selectPreviousAutosuggestItem(e){this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem===0?(this.selectedAutosuggestItem=-1,e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length)),q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem===this.autosuggestResults.suggestions.length-1?(this.selectedAutosuggestItem=-1,q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){if(typeof document<"u"){const e=document?.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const s=e[t];t===this.selectedAutosuggestItem?(s.classList.add("active"),q.setAccessibilityText(`Selected suggestion: ${s.innerText}`)):s.classList.remove("active")}}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest(e.target):t==="ArrowUp"?this.selectPreviousAutosuggestItem(e.target):t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){this.suggestAfterMinChars&&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(e){setTimeout(()=>{this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection(),e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length)),q.setAccessibilityText("No Suggestion selected")},200)}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var t,s,a;const i=document?.createElement("div");i.classList.add("searchstax-autosuggest-item"),i.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),i.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const o=((s=(t=this.config.templates)==null?void 0:t.autosuggestItemTemplate)==null?void 0:s.template)||((a=v.searchInput.autosuggestItemTemplate)==null?void 0:a.template);return i.innerHTML=A.render(o,e),i}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 s=e.suggest[t];for(const a in s)if(Object.prototype.hasOwnProperty.call(s,a)){const i=s[a];i.numFound?q.setAccessibilityText("Suggestions are available. Use up and down arrows to navigate while focusing input. Use Escape key to escape out of the suggestions",2e3):q.setAccessibilityText("",0),this.autosuggestResults=i,this.dataLayer.setAutosuggestResults(i),i.numFound>0?i.suggestions.forEach(o=>{this.autosuggestContainer&&typeof document<"u"&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(o))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class On{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"linkClickCallback"),l(this,"searchCallback"),l(this,"containerId"),l(this,"searchResultsMainContainer"),l(this,"searchResultsContainer"),l(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.dataLayer.setIsInfiniteScroll(e.config.renderMethod==="infiniteScroll"),this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchObject.subscribe(()=>{q.setAccessibilityText("Searching...")}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var e,t,s,a,i;const o=((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.noSearchResultTemplate)==null?void 0:s.template)||((a=v.searchResults.noSearchResultTemplate)==null?void 0:a.template),r=((i=this.dataLayer.searchResultsMetadata)==null?void 0:i.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===$.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=A.render(o,{spellingSuggestion:r,...this.dataLayer.parsedData.data,searchCallback:this.searchCallback.bind(this)})),r&&this.searchResultsContainer){const c=this.searchResultsContainer.querySelector("a");c&&c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.searchCallback(r)})}}renderResults(e){var t,s,a,i,o;if(this.dataLayer.renderingEngine===$.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)q.setAccessibilityText("Search has no results"),this.renderNoResultsTemplate();else{q.setAccessibilityText(`Showing ${this.dataLayer.parsedData.startResultIndex} through ${this.dataLayer.parsedData.endResultIndex} results from ${this.dataLayer.parsedData.totalResults}. Press tab to navigate through results`);const r=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.searchResultTemplate)==null?void 0:a.template)||((i=v.searchResults.searchResultTemplate)==null?void 0:i.template),c=e.map(u=>A.render(r,u));((o=this.config)==null?void 0:o.renderMethod)==="infiniteScroll"&&this.dataLayer.searchObject.page>1?this.searchResultsContainer.innerHTML+=c.join(""):this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{}),e.removeEventListener("keydown",()=>{})})}get uniqueIdAttribute(){var e,t,s,a;return((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:s.searchResultUniqueIdAttribute)||((a=v.searchResults.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const s=e.getAttribute(this.uniqueIdAttribute)??"";s&&this.linkClickCallback(s)}),e.addEventListener("keydown",t=>{if(t.code==="Space"||t.code==="Enter"){const s=e.getAttribute(this.uniqueIdAttribute)??"";s&&this.linkClickCallback(s)}})})}renderMainTemplate(){var e,t,s,a;const i=((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.mainTemplate)==null?void 0:s.template)||((a=v.searchResults.mainTemplate)==null?void 0:a.template);this.dataLayer.renderingEngine===$.mustache&&(this.searchResultsMainContainer.innerHTML=A.render(i,{}),setTimeout(()=>{var o,r,c,u,d,p,g;const f=(c=(r=(o=this.config)==null?void 0:o.templates)==null?void 0:r.mainTemplate)!=null&&c.searchResultsContainerId?(p=(d=(u=this.config)==null?void 0:u.templates)==null?void 0:d.mainTemplate)==null?void 0:p.searchResultsContainerId:(g=v.searchResults.mainTemplate)==null?void 0:g.searchResultsContainerId,y=document?.getElementById(f);if(y)this.searchResultsContainer=y;else throw new Error(`Search Results Container with id ${f} not found`)},0))}}class Pn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"selectId"),l(this,"searchSortingMainContainer",null);var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.selectId=((s=(t=this.config.templates)==null?void 0:t.main)==null?void 0:s.selectId)||v.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(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchSortingData(e),e}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 t,s,a;const i=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.sorting.main.template;if(this.dataLayer.renderingEngine===$.mustache){this.searchSortingMainContainer.innerHTML=A.render(i,e),this.markOptionSelected();const o=document?.getElementById(this.selectId);o&&o.addEventListener("change",r=>{this.setOrderQuery(r.target.value)})}}}class Fn{constructor(e){l(this,"analyticsKey"),l(this,"containerId"),l(this,"mainContainer"),l(this,"isLightweight"),l(this,"emailOverride"),l(this,"feedbackTextAreaOverride"),l(this,"mainTemplateOverride"),l(this,"lightweightTemplateOverride"),l(this,"focusedElement",null),l(this,"focusTrapListener",null),l(this,"lastFocusedElementBeforeModal",null),l(this,"templateData",{feedbackOpen:!1,ratings:[{index:1,isSelected:!1},{index:2,isSelected:!1},{index:3,isSelected:!1},{index:4,isSelected:!1},{index:5,isSelected:!1},{index:6,isSelected:!1},{index:7,isSelected:!1},{index:8,isSelected:!1},{index:9,isSelected:!1},{index:10,isSelected:!1}],emailInput:"",feedbackTextArea:"",charactersLeft:2e3,maxLength:2e3,errors:{rating:!1,email:!1},submitted:!1,thumbsUpActive:!1,thumbsDownActive:!1}),l(this,"thumbsUpValue",10),l(this,"thumbsDownValue",1),l(this,"ratedQuestion",""),l(this,"language",""),l(this,"model",""),l(this,"analyticsSrc",""),this.analyticsKey=e.analyticsKey,this.containerId=e.containerId??"sf-feedback",this.isLightweight=e.lightweight??!1,this.isLightweight&&this.templateData.ratings.unshift({index:0,isSelected:!1}),this.thumbsUpValue=e.thumbsUpValue??10,this.thumbsDownValue=e.thumbsDownValue??1,this.emailOverride=e.emailOverride,this.feedbackTextAreaOverride=e.feedbackTextAreaOverride,this.mainTemplateOverride=e.mainTemplateOverride,this.lightweightTemplateOverride=e.lightweightTemplateOverride,this.mainContainer=document.getElementById(this.containerId),this.language=e.language??"",this.model=e.model??"",this.analyticsSrc=e.analyticsSrc??"",this.init()}init(){ce.attachAnalyticsScript(this.analyticsSrc),this.renderMainTemplate(this.generateTemplateData())}generateTemplateData(){return this.templateData}renderMainTemplate(e){var t,s;const a=document.activeElement;(a instanceof HTMLInputElement||a instanceof HTMLButtonElement||a instanceof HTMLTextAreaElement||a instanceof HTMLAnchorElement)&&(a.type==="radio"||a.type==="button"||a.type==="textarea"||a instanceof HTMLAnchorElement)?this.focusedElement=a:this.focusedElement=null,this.mainContainer;let i=(t=H?.mainTemplate)==null?void 0:t.template;if(this.mainTemplateOverride&&(i=this.mainTemplateOverride),this.isLightweight&&(i=(s=H.lightweightTemplate)==null?void 0:s.template,this.lightweightTemplateOverride&&(i=this.lightweightTemplateOverride)),this.mainContainer.innerHTML=A.render(i,e),this.focusedElement&&this.mainContainer){const o=this.focusedElement.type==="radio"?this.focusedElement.getAttribute("id"):this.focusedElement.getAttribute("class"),r=this.focusedElement.type==="radio"?"id":"class",c=this.mainContainer.querySelector(`[${r}="${o}"]`);(c instanceof HTMLInputElement||c instanceof HTMLButtonElement||c instanceof HTMLTextAreaElement||c instanceof HTMLAnchorElement)&&c.focus(),this.focusedElement=null}this.attachEvents()}attachEvents(){this.isLightweight?this.attachLightweightEvents():(this.attachOpenModalEvent(),this.closeModalEvent(),this.attachRatingEvents(),this.attachTextAreaEvents(),this.attachEmailInputEvents(),this.attachSubmitButtonEvents())}attachFocusTrap(){this.focusTrapListener&&document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=e=>{if(!this.templateData.feedbackOpen)return;const t=this.getModalElement();if(!t)return;const s=this.getFocusableElements(t);if(s.length===0)return;const a=s[0],i=s[s.length-1];e.key==="Tab"&&(e.shiftKey?(document.activeElement===a||!t.contains(document.activeElement))&&(e.preventDefault(),i?.focus()):(document.activeElement===i||!t.contains(document.activeElement))&&(e.preventDefault(),a?.focus())),e.key==="Escape"&&(e.preventDefault(),this.closeFeedbackModal())},document.addEventListener("keydown",this.focusTrapListener)}getFocusableElements(e){const t=["button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t))}getModalElement(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.modalContainerClass;return((t=this.mainContainer)==null?void 0:t.querySelector(`.${s}`))||null}attachLightweightEvents(){var e,t,s,a;const i=(e=H.lightweightTemplate)==null?void 0:e.thumbsUpButtonClass,o=(t=H.lightweightTemplate)==null?void 0:t.thumbsDownButtonClass,r=(s=this.mainContainer)==null?void 0:s.querySelector("."+i),c=(a=this.mainContainer)==null?void 0:a.querySelector("."+o);r&&r.addEventListener("click",()=>{const u=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[this.templateData.ratings.length-1].isSelected&&this.ratedQuestion===u||(this.templateData.thumbsUpActive=!0,this.templateData.thumbsDownActive=!1,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsUpValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=u,this.submit())}),c&&c.addEventListener("click",()=>{const u=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[0].isSelected&&this.ratedQuestion===u||(this.templateData.thumbsUpActive=!1,this.templateData.thumbsDownActive=!0,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsDownValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=u,this.submit())})}attachSubmitButtonEvents(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.submitButtonClass,a=(t=this.mainContainer)==null?void 0:t.querySelector("."+s);a&&a.addEventListener("click",()=>{this.checkIfValid()})}checkIfValid(){var e,t;const s=(t=this.mainContainer)==null?void 0:t.querySelector("#"+((e=H.mainTemplate)==null?void 0:e.emailInputId));this.validateEmail(s.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,q.setAccessibilityText("Please enter a valid email address.")),this.templateData.ratings.some(a=>a.isSelected)?this.templateData.errors.rating=!1:(this.templateData.errors.rating=!0,q.setAccessibilityText("Please Rate your experience.")),this.templateData.errors.rating||this.templateData.errors.email?this.renderMainTemplate(this.generateTemplateData()):this.submit()}submit(){var e,t,s;this.templateData.submitted=!0;const a=(e=this.templateData.ratings.find(i=>i.isSelected))==null?void 0:e.index;a!==void 0&&(ce.trackFeedback({trackApiKey:this.analyticsKey,email:this.emailOverride&&this.isLightweight?this.emailOverride():this.templateData.emailInput,rating:a,feedback:this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea,model:this.model?this.model:void 0,language:this.language?this.language:void 0}),this.showCheckmarkAnimation(),q.setAccessibilityText("Feedback has been sent.",1e3),(s=this.mainContainer)!=null&&s.querySelector("."+((t=H.mainTemplate)==null?void 0:t.checkmarkClass))?setTimeout(()=>{this.closeFeedbackModal(),this.renderMainTemplate(this.generateTemplateData())},2e3):(setTimeout(()=>{this.closeFeedbackModal()},500),this.renderMainTemplate(this.generateTemplateData())))}validateEmail(e){return e===""?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}attachEmailInputEvents(){var e,t;const s=(t=this.mainContainer)==null?void 0:t.querySelector("#"+((e=H.mainTemplate)==null?void 0:e.emailInputId));s&&(s.addEventListener("input",()=>{this.templateData.emailInput=s.value}),s.addEventListener("blur",()=>{setTimeout(()=>{this.validateEmail(s.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,q.setAccessibilityText("Please enter a valid email address.")),this.renderMainTemplate(this.generateTemplateData())},300)}))}attachTextAreaEvents(){var e,t;const s=(t=this.mainContainer)==null?void 0:t.querySelector("#"+((e=H.mainTemplate)==null?void 0:e.feedbackTextAreaId));s&&s.addEventListener("input",()=>{var a,i;this.templateData.feedbackTextArea=s.value,this.templateData.charactersLeft=this.templateData.maxLength-s.value.length;const o=(i=this.mainContainer)==null?void 0:i.querySelector("."+((a=H.mainTemplate)==null?void 0:a.charactersRemainingContainerclass));o&&(o.innerText=this.templateData.charactersLeft+"")})}attachRatingEvents(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.ratingInputclass,a=(t=this.mainContainer)==null?void 0:t.querySelectorAll("."+s);a&&a.forEach(i=>{i.addEventListener("click",o=>{const r=o.target.value;this.templateData.ratings.forEach(c=>{c.isSelected=c.index+""===r}),this.templateData.errors.rating=!1,this.renderMainTemplate(this.generateTemplateData())})})}attachOpenModalEvent(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.openModalButtonClass,a=(t=this.mainContainer)==null?void 0:t.querySelector("."+s);a&&a.addEventListener("click",i=>{i.preventDefault(),this.toggleModal()})}toggleModal(){this.templateData.feedbackOpen?this.closeFeedbackModal():this.openFeedbackModal()}closeModalEvent(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.closeModalButtonClass,a=(t=this.mainContainer)==null?void 0:t.querySelector("."+s);a&&a.addEventListener("click",()=>{this.closeFeedbackModal()})}openFeedbackModal(){this.lastFocusedElementBeforeModal=document.activeElement,this.templateData.feedbackOpen=!0,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{const e=this.getModalElement();if(e){const t=this.getFocusableElements(e);t.length>0&&t[0].focus()}this.attachFocusTrap()},0),q.setAccessibilityText("Feedback form opened",1e3)}closeFeedbackModal(){this.templateData.feedbackOpen=!1,this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null),this.renderMainTemplate(this.generateTemplateData()),this.lastFocusedElementBeforeModal&&(this.lastFocusedElementBeforeModal.focus(),this.lastFocusedElementBeforeModal=null),q.setAccessibilityText("Feedback form closed",1e3)}showCheckmarkAnimation(){var e,t,s,a,i,o;const r=(e=H.mainTemplate)==null?void 0:e.submitButtonClass,c=(t=this.mainContainer)==null?void 0:t.querySelector("."+r);c&&(c.disabled=!0);const u=(s=H.mainTemplate)==null?void 0:s.checkmarkClass,d=(a=this.mainContainer)==null?void 0:a.querySelector("."+u);d&&d.classList.remove("hidden");const p=(i=H.mainTemplate)==null?void 0:i.submitButtonTextClass,g=(o=this.mainContainer)==null?void 0:o.querySelector("."+p);g&&g.classList.add("visibility"),setTimeout(()=>{d&&d.classList.add("hidden"),g&&g.classList.remove("visibility"),c&&(c.disabled=!1)},2e3)}destroy(){this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null)}}class zn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"answerContainer",null),l(this,"showMoreVisible",!1),l(this,"renderFeedbackWidget",!1),l(this,"clicked",!1),l(this,"renderedWithShowMore",!1);var t;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.renderFeedbackWidget=((t=this.config.feedbackwidget)==null?void 0:t.renderFeedbackWidget)||!1,this.config.showMoreAfterWordCount&&(this.dataLayer.answerWidgetShowMoreLimit=this.config.showMoreAfterWordCount),typeof document<"u"&&(this.answerContainer=document?.getElementById(this.containerId)),this.initializeSubscriptions(),this.dataLayer.setIsAnswerWidgetCreated(!0)}initializeSubscriptions(){this.dataLayer.$answer.subscribe(()=>{this.clicked?this.showMoreVisible=!1:this.showMoreVisible=this.dataLayer.parsedData.shouldShowAnswerLoadMore,this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerLoading.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerError.subscribe(e=>{e&&setTimeout(()=>{this.renderMainTemplate(this.generateTemplateData())},100)}),this.dataLayer.$searchObject.subscribe(()=>{this.clicked=!1,this.renderedWithShowMore=!1,this.showMoreVisible=!1}),this.dataLayer.$paginationData.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answer.subscribe(e=>{e&&setTimeout(()=>{this.initializeWidget()},600)}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.dataLayer.$answer.getValue()&&setTimeout(()=>{this.initializeWidget()},600)})}searchstaxFeedbackTextAreaOverride(){return"Question: "+(this.dataLayer.searchObject.query==="undefined"?"":this.dataLayer.searchObject.query)+" Answer: "+this.dataLayer.parsedData.getAnswerData}initializeWidget(){var e,t,s,a,i;this.renderFeedbackWidget&&document.getElementById("feedbackWidgetContainer")&&!this.dataLayer.answerLoading&&new Fn({analyticsKey:this.dataLayer.parsedData.trackingData.trackApiKey,containerId:"feedbackWidgetContainer",lightweight:!0,model:this.dataLayer.parsedData.trackingData.model,language:this.dataLayer.parsedData.trackingData.language,emailOverride:(e=this.config.feedbackwidget)==null?void 0:e.emailOverride,feedbackTextAreaOverride:((t=this.config.feedbackwidget)==null?void 0:t.searchstaxFeedbackTextAreaOverride)??this.searchstaxFeedbackTextAreaOverride.bind(this),thumbsUpValue:((s=this.config.feedbackwidget)==null?void 0:s.thumbsUpValue)??10,thumbsDownValue:((a=this.config.feedbackwidget)==null?void 0:a.thumbsDownValue)??0,lightweightTemplateOverride:(i=this.config.feedbackwidget)==null?void 0:i.lightweightTemplateOverride})}showMore(e){e.preventDefault(),this.clicked=!0,this.showMoreVisible=!1,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{this.initializeWidget()},600)}attachClickEventToShowMore(){const e=document.querySelector(".searchstax-answer-load-more-button");e&&e.addEventListener("click",this.showMore.bind(this))}trackLinkClick(e){e.preventDefault(),e.stopPropagation();const t=e.target.getAttribute("href");ce.trackAnswerLinkClick({href:t,answer:this.dataLayer.parsedData.getAnswerData,...this.dataLayer.parsedData.trackingData}).then(()=>{window.open(t,"_blank")}).catch(()=>{window.open(t,"_blank")})}attachLinkTracking(){document.querySelectorAll(".searchstax-answer-link").forEach(e=>{e.getAttribute("listener")!=="true"&&(e.setAttribute("listener","true"),e.addEventListener("click",this.trackLinkClick.bind(this)))})}renderMainTemplate(e){var t,s,a;const i=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.answer.main.template;this.dataLayer.renderingEngine===$.mustache?(!this.renderedWithShowMore||!e.answerLoading||this.clicked)&&(e.showMoreButtonVisible&&(this.renderedWithShowMore=!0),this.answerContainer.innerHTML=A.render(i,e),setTimeout(()=>{this.attachClickEventToShowMore(),this.attachLinkTracking()},100)):setTimeout(()=>{this.attachLinkTracking()},500)}generateTemplateData(){const e={...this.dataLayer.parsedData.data,showMoreButtonVisible:this.showMoreVisible};return this.dataLayer.setAnswerFullData(e),e}}class Es{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"currentSelectValue",""),l(this,"locationInput"),l(this,"radiusInput"),l(this,"locationDecode"),l(this,"locationDecodeCoordinatesToAddress");var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.locationDecode=(t=e.config.hooks)==null?void 0:t.locationDecode,this.locationDecodeCoordinatesToAddress=(s=e.config.hooks)==null?void 0:s.locationDecodeCoordinatesToAddress,this.dataLayer.locationEnabled&&this.dataLayer.$inputTemplateRendered.subscribeUntil(()=>{this.renderMainTemplate(),this.attachSubscriptions()},!0,500)}renderMainTemplate(){var e,t,s,a,i,o,r,c;if(typeof document<"u"){const u=document?.getElementById(this.containerId);if(!u)throw new Error("Search input container not found");const d=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||v.location.mainTemplate.template,p={...this.dataLayer.parsedData.data};if(this.dataLayer.setLocationWidgetTemplateData(p),this.dataLayer.renderingEngine===$.mustache){const g=A.render(d,p);u.innerHTML=g;const f=((a=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:a.locationInputId)||v.location.mainTemplate.locationInputId,y=document?.querySelector(`#${f}`);if(y)this.locationInput=y,y.addEventListener("blur",this.blurEvent.bind(this)),y.addEventListener("focus",this.focusEvent.bind(this));else throw new Error("Input not found");const m=((o=(i=this.config.templates)==null?void 0:i.mainTemplate)==null?void 0:o.radiusInputId)||v.location.mainTemplate.radiusInputId,M=document?.querySelector(`#${m}`);M instanceof HTMLSelectElement&&(this.radiusInput=M,M.addEventListener("change",this.radiusSelectChangeEvent.bind(this)));const C=((c=(r=this.config.templates)==null?void 0:r.mainTemplate)==null?void 0:c.currentLocationActionButtonId)||v.location.mainTemplate.currentLocationActionButtonId,T=document?.querySelector(`#${C}`);T&&T.addEventListener("click",this.getCurrentLocation.bind(this))}}}setCurrentLocationFields(e){this.dataLayer.setLocationCoordinatesDecoded(e),this.dataLayer.setSearchLocation(this.dataLayer.searchLocationCoordinatesDecoded),this.dataLayer.renderingEngine===$.mustache&&this.locationInput&&(this.locationInput.value=this.dataLayer.searchLocationCoordinatesDecoded)}getCurrentLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(e=>{const t=e.coords.latitude.toString(),s=e.coords.longitude.toString(),a=Math.floor(parseFloat(t)*100)/100,i=Math.floor(parseFloat(s)*100)/100;this.dataLayer.setSearchLat(a+""),this.dataLayer.setSearchLong(i+"");const o=this.locationDecodeCoordinatesToAddress;o?o(a+"",i+"").then(r=>{this.setCurrentLocationFields(r.address||"Current Location")}).catch(()=>{this.setCurrentLocationFields("Current Location")}):this.setCurrentLocationFields("Current Location")},()=>{console.error("Unable to retrieve your location")}):console.error("Geolocation is not supported by this browser.")}setRadiusValue(e){this.dataLayer.setSearchRadius(e)}radiusSelectChangeEvent(e){this.currentSelectValue=e.target.value,this.setRadiusValue(this.currentSelectValue)}attachSubscriptions(){this.dataLayer.$searchObject.subscribe(e=>{this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(e.location.address??"")),this.radiusInput&&e.location.radius&&(this.radiusInput.value=e.location.radius||"")})}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}triggerGeocoder(e){const t=this.locationDecode;this.dataLayer.setLocationDecodingLoading(!0),e&&this.dataLayer.searchLocation!==e&&e!==this.dataLayer.searchLocationCoordinatesDecoded?t(e).then(s=>{this.dataLayer.setSearchLocation(s.address||""),this.dataLayer.setSearchLat(s.lat||""),this.dataLayer.setSearchLong(s.lon||""),this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(s.address||"")),this.dataLayer.renderingEngine===$.mustache&&s.error&&this.locationInput&&this.locationInput.classList.add("searchstax-input-location-error"),s.error?this.dataLayer.setLocationError(!0):this.dataLayer.setLocationError(!1),this.dataLayer.setLocationDecodingLoading(!1)}).catch(()=>{this.dataLayer.setLocationDecodingLoading(!1)}):e===""&&(this.dataLayer.setSearchLocation(void 0),this.dataLayer.setSearchLat(void 0),this.dataLayer.setSearchLong(void 0),this.dataLayer.setLocationDecodingLoading(!1))}focusEvent(e){e.target.classList.remove("searchstax-input-location-error"),this.dataLayer.setLocationError(!1)}blurEvent(e){const t=e.target.value;this.triggerGeocoder(t)}}class $n{constructor(e=$.mustache){l(this,"routerEnabled",!1),l(this,"cachedQuery",""),l(this,"routerHelper"),l(this,"searchHelper"),l(this,"searchResultsConfig"),l(this,"searchPaginationConfig"),l(this,"searchFeedbackConfig"),l(this,"searchSortingConfig"),l(this,"searchFacetsConfig"),l(this,"relatedSearchesConfig"),l(this,"externalPromotionsConfig"),l(this,"searchInputWidget"),l(this,"searchLocationWidget"),l(this,"searchResultsWidget"),l(this,"searchFacetsWidget"),l(this,"searchPaginationWidget"),l(this,"searchFeedbackWidget"),l(this,"searchSortingWidget"),l(this,"relatedSearchesWidget"),l(this,"externalPromotionsWidget"),l(this,"answerWidget"),l(this,"locationObserver",null),l(this,"dataLayer"),l(this,"firstRequest",!0),l(this,"previousQuery",""),l(this,"eventSource",null),l(this,"renderEngine",$.mustache),e&&(this.renderEngine=e)}setRenderingEngine(e=$.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(s=>{this.dataLayer.searchstaxConfig.hooks.afterSearch(s)}),setTimeout(()=>{this.dataLayer.$searchObject.subscribe(s=>{var a,i,o,r,c,u;s.query!==this.previousQuery&&this.dataLayer.setAnswerData(""),s.query!==""&&s.query!==void 0&&s.query!=="undefined"?(this.search(s),s.query!==this.previousQuery&&this.startSSE(s.query)):(a=this.dataLayer.searchLocationConfig)!=null&&a.locationSearchEnabled&&!((i=this.dataLayer.searchLocationConfig)!=null&&i.locationValuesOverride)?this.getMetadata(s):(r=(o=this.dataLayer.searchLocationConfig)==null?void 0:o.locationValuesOverride)!=null&&r.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((u=(c=this.dataLayer.searchLocationConfig)==null?void 0:c.locationValuesOverride)==null?void 0:u.locationFilterDefaultValue),this.previousQuery=s.query})},10),this.dataLayer.$searchResults.subscribe(s=>{s&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}startSSE(e){var t,s;this.eventSource&&((t=this.eventSource)==null||t.close(),this.dataLayer.setAnswerData("")),this.dataLayer.turnAIAnswerGenerationOn===!0&&this.dataLayer.questionURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&(this.eventSource=(s=this.searchHelper)==null?void 0:s.startSSE(e,this.parseAnswerResultsResponse.bind(this)))}attachAnalyticsScript(e){ce.attachAnalyticsScript(e)}initialize(e){var t,s;if(this.dataLayer=new Ji("searchstax_session_id",e.sessionId),this.renderEngine&&this.dataLayer.setRenderingEngine(this.renderEngine),this.handleHooks(),e.questionURL&&(this.dataLayer.questionURL=e.questionURL),e.analyticsBaseUrl&&typeof window<"u"&&(window.analyticsBaseUrl=e.analyticsBaseUrl,window._msq=e._msq||[],this.attachAnalyticsScript(e.analyticsSrc)),e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),e.language&&this.dataLayer.setLanguage(e.language),e.model&&this.dataLayer.setModel(e.model),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new tn({...e,sessionId:this.dataLayer.sessionId},this.dataLayer),this.dataLayer.searchHelper=this.searchHelper),((t=e.router)==null?void 0:t.enabled)===void 0||((s=e.router)==null?void 0:s.enabled)===!0){this.routerEnabled=!0,this.routerHelper=new vs(e.router?e.router:{enabled:!0});const a=this.routerHelper.urlToSearchObject(window?.location.href??"");this.dataLayer.searchObject.itemsPerPage?a.itemsPerPage=this.dataLayer.searchObject.itemsPerPage:a.itemsPerPage&&this.dataLayer.setItemsPerPage(a.itemsPerPage),a.model&&this.dataLayer.setModel(a.model),a.location&&(a.location.address&&this.dataLayer.setSearchLocation(a.location.address),a.location.lat&&this.dataLayer.setSearchLat(a.location.lat),a.location.lon&&this.dataLayer.setSearchLong(a.location.lon),a.location.radius&&this.dataLayer.setSearchRadius(a.location.radius)),this.dataLayer.setSearchObject(a),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window?.location.href??"",this.dataLayer.searchObject.itemsPerPage))})}else this.routerHelper=new vs({})}getMetadata(e){this.searchHelper&&(e.query==="undefined"||e.query===void 0)&&this.dataLayer.setSearchObject({...e,query:"*"})}search(e){if(this.searchHelper){const t=this.dataLayer.forceNotCorrect;this.searchHelper.url&&(this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1),this.getRelatedSearches()}}getRelatedSearches(){var e;this.searchHelper&&this.relatedSearchesConfig&&(e=this.relatedSearchesConfig)!=null&&e.relatedSearchesURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var t,s;const a=(((t=e.response)==null?void 0:t.docs)??[]).map((o,r)=>({...o,position:r+1})),i=[];for(const o of a)i.push({relatedSearch:o.related_search,position:o.position});this.dataLayer.setSearchRelatedSearches(a),this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&i.length&&ce.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:i,totalRelatredSearches:((s=this.dataLayer.searchRelatedSearches)==null?void 0:s.length)??0})}handleRouter(){if(this.routerEnabled){const e={...this.dataLayer.searchObject};this.dataLayer.isInfiniteScroll&&delete e.page,this.routerHelper.updateUrl(e)}}parseSearchResultsResponseMetadata(e){var t,s,a,i;const o=tt.extractSearchResultsMetadata(e),r=((s=(t=this.dataLayer.searchLocationConfig)==null?void 0:t.locationValuesOverride)==null?void 0:s.locationFilterDefaultValue)??((i=(a=o.location)==null?void 0:a.filter)==null?void 0:i.defaultValue);!this.dataLayer.searchRadius&&r&&this.dataLayer.setSearchRadius(r),this.dataLayer.setSearchResultsMetadata(o)}parseSearchResultsResponse(e){var t,s;this.handleRouter(),this.dataLayer.setItemsPerPage(parseInt(e.responseHeader.params.rows)),this.dataLayer.setModel(e.responseHeader.params.model);let a=tt.combineResultsWithMetadata(e),i=tt.extractFacets(e);this.dataLayer.setSearchFacets(i),(s=(t=this.dataLayer.searchstaxConfig)==null?void 0:t.hooks)!=null&&s.afterSearch&&(a=this.dataLayer.searchstaxConfig.hooks.afterSearch(a)),this.dataLayer.setSearchExternalPromotions(e.externalLinks??[]),this.parseSearchResultsResponseMetadata(e),this.dataLayer.setSearchResults(a)}parseAnswerResultsResponse(e){this.handleRouter(),e!==Oe.question&&e!==Oe.notQuestion&&(this.dataLayer.setAnswerLoading(!0),this.dataLayer.setAnswerData(this.dataLayer.getAnswerData+e))}cacheFacets(e){var t,s;e?(t=this.searchHelper)==null||t.cacheFacets(!0).then(()=>{}):(s=this.searchHelper)==null||s.cacheFacets().then(()=>{})}parseSuggestSuggestResponse(e){var t,s;let a=e;(s=(t=this.dataLayer.searchInputConfig)==null?void 0:t.hooks)!=null&&s.afterAutosuggest&&(a=this.dataLayer.searchInputConfig.hooks.afterAutosuggest(e)),this.dataLayer.setSearchAutosuggest(a)}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.$locationEnabled.subscribeUntilHasValue(()=>{this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Nn({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer})},200)}addSearchLocationWidget(e,t){var s,a;this.dataLayer.searchLocationConfig||(t.locationSearchEnabled?(this.dataLayer.setLocationEnabled(!0),this.dataLayer.setSearchLocationConfig(t),t.locationValuesOverride?(this.searchLocationWidget=new Es({containerId:e,config:t,dataLayer:this.dataLayer}),(s=t?.locationValuesOverride)!=null&&s.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((a=t?.locationValuesOverride)==null?void 0:a.locationFilterDefaultValue)):this.dataLayer.$searchResultsMetadata.subscribeUntilHasValue(()=>{this.searchLocationWidget=new Es({containerId:e,config:t,dataLayer:this.dataLayer})},0)):this.dataLayer.setLocationEnabled(!1))}addAnswerWidget(e,t){this.dataLayer.turnAIAnswerGenerationOn=!0,this.startSSE(this.dataLayer.searchObject.query),this.dataLayer.setAnswerData(""),this.answerWidget=new zn({containerId:e,config:t,dataLayer:this.dataLayer})}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new On({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 In({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Rn({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)})}addSearchSortingWidget(e,t){this.searchSortingConfig=t,this.searchSortingWidget=new Pn({containerId:e,config:t,dataLayer:this.dataLayer})}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig=t,this.relatedSearchesWidget=new jn({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0)}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig=t,this.externalPromotionsWidget=new En({containerId:e,config:t,dataLayer:this.dataLayer})}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new Dn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){const s={...this.dataLayer.searchObject};s.query=Y.removeXSSRiskyTags(e),s.page=1,s.facets=[],s.location={...s.location},this.locationObserver&&this.dataLayer.$locationDecodingLoading.unsubscribe(this.locationObserver),this.locationObserver=this.dataLayer.$locationDecodingLoading.subscribeUntil(()=>{var a,i;s.location.address=this.dataLayer.searchLocation,s.location.radius=this.dataLayer.searchRadius,s.location.lat=this.dataLayer.searchLat,s.location.lon=this.dataLayer.searchLong,this.dataLayer.forceNotCorrect=!!t;let o=(a=this.routerHelper)==null?void 0:a.searchObjectToParams(s);o&&(o=(i=this.routerHelper)==null?void 0:i.extractParamsThatDoNotStartWithRouteName(o)),o&&(s.additionalProps=Object.keys(o).map(r=>o?{key:r,value:o[r]}:{key:"",value:""})),this.dataLayer.setSearchObject(s),this.dataLayer.lastSearchValue=s.query},!1)}executeSuggest(e){var t,s;let a={term:e,queryParams:[]};(s=(t=this.dataLayer.searchInputConfig)==null?void 0:t.hooks)!=null&&s.beforeAutosuggest&&(a=this.dataLayer.searchInputConfig.hooks.beforeAutosuggest(a)),a&&a.term!==void 0&&a.queryParams!==void 0&&this.suggest(a.term,a.queryParams)}trackRelatedSearchClick(e){var t;this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&!this.dataLayer.cookiesDisabled&&ce.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e,totalRelatredSearches:((t=this.dataLayer.searchRelatedSearches)==null?void 0:t.length)??0})}executeLinkClick(e){var t,s;let a=tt.findResultByUniqueId(e,this.dataLayer.searchResults??[]);a&&((s=(t=this.searchResultsConfig)==null?void 0:t.hooks)!=null&&s.afterLinkClick&&(a=this.searchResultsConfig.hooks.afterLinkClick(a)),a&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackClick({result:a,...this.dataLayer.parsedData.trackingData}).then(()=>{typeof window<"u"&&(window.location.href=a?.url??"")}).catch(()=>{typeof window<"u"&&(window.location.href=a?.url??"")}))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}setCookiesDisabled(e){this.dataLayer.setCookiesDisabled(e)}changeResultTemplate(e){var t,s,a;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(s=this.searchResultsConfig)==null?void 0:s.templates,...e}:e,(a=this.searchResultsWidget)==null||a.changeTemplate())}}export{$n as Searchstax};
434
+ `,thumbsUpButtonClass:"searchstax-lightweight-widget-thumbs-up",thumbsDownButtonClass:"searchstax-lightweight-widget-thumbs-down"}};class v{}l(v,"answer",wn),l(v,"externalPromotions",Mn),l(v,"facets",vn),l(v,"pagination",Cn),l(v,"relatedSearches",bn),l(v,"searchFeedback",xn),l(v,"searchInput",kn),l(v,"location",Sn),l(v,"searchResults",Tn),l(v,"sorting",An),l(v,"feedback",H);class En{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"externalPromotionsContainerId"),l(this,"searchExternalPromotionsMainContainer",null);var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.externalPromotionsContainerId=((s=(t=this.config.templates)==null?void 0:t.mainTemplate)==null?void 0:s.externalPromotionsContainerId)||v.externalPromotions.mainTemplate.externalPromotionsContainerId,typeof document<"u"&&(this.searchExternalPromotionsMainContainer=document?.getElementById(this.containerId)),this.initializeSubscriptions(),this.renderMainTemplate(this.generateTemplateData())}initializeSubscriptions(){this.dataLayer.$searchExternalPromotions.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data,externalPromotions:this.dataLayer.parsedData.externalPromotions};return this.dataLayer.setExternalPromotionsData(e),e}addExternalSearch(e){var t,s,a,i;const o=typeof document<"u"?document?.getElementById(this.externalPromotionsContainerId):null;if(o){const r=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.externalPromotion)==null?void 0:a.template)||((i=v.externalPromotions.externalPromotion)==null?void 0:i.template);if(typeof document<"u"){const c=document?.createElement("div");c.classList.add("searchstax-external-promotion"),c.addEventListener("click",u=>{this.trackClick(e,u)}),c.innerHTML=A.render(r,e),o.appendChild(c)}}}trackClick(e,t){t.stopPropagation(),t.preventDefault(),window?.open(e.url,"_blank")}renderMainTemplate(e){var t,s,a,i;const o=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.mainTemplate)==null?void 0:a.template)||((i=v.externalPromotions.mainTemplate)==null?void 0:i.template);if(this.dataLayer.renderingEngine===$.mustache){this.searchExternalPromotionsMainContainer.innerHTML=A.render(o,e);const r=typeof document<"u"?document?.getElementById(this.externalPromotionsContainerId):null;r&&(r.innerHTML="");for(const c of e.externalPromotions)this.addExternalSearch(c)}}}class q{static addAccessibilityNotificationContainerToBody(){if(!document.getElementById("searchAccessibilityContainer")){const e=document.createElement("div");e.setAttribute("aria-live","polite"),e.setAttribute("id","searchAccessibilityContainer"),document.body.appendChild(e)}}static setAccessibilityText(e,t,s){this.addAccessibilityNotificationContainerToBody();const a=s??"searchAccessibility",i=document.getElementById(a);i&&i.remove();const o=document.createElement("span");o.setAttribute("id",a),o.innerHTML=e;const r=document.getElementById("searchAccessibilityContainer");r&&setTimeout(()=>{r.appendChild(o)},t??100)}}class Dn{constructor(e,t){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"routerHelper"),l(this,"cachedPhrase",""),l(this,"cachedANDFacets",""),l(this,"isCached",!1),l(this,"overlayOpened",!1),l(this,"facetPaginationStep"),l(this,"facetPaginationStepMobile"),l(this,"searchFacetsMainContainer",null),l(this,"searchFacetsMobileContainer",null),l(this,"searchFacetsDesktopContainer",null),l(this,"facetLimits",{}),l(this,"facetLimitsMobile",{}),l(this,"deactivatedFacets",{}),l(this,"focusedElement",null),l(this,"cachedData",null),l(this,"cacheFacets"),l(this,"onFacetSelect",(s,a,i,o,r)=>{if(s.stopPropagation(),!a.disabled){const c=i.querySelector("input");let u=o?c.checked:!c.checked;r!==void 0&&(u=!r),c.checked=u;const d=this.dataLayer.searchObject;let p=[...d.facets];const g=this.extractFacetValue(a);u?p.find(f=>ie.deepEqual(f,g)?f:!1)||(this.config.facetingType==="tabs"&&(p=p.filter(f=>f.name!==g.name)),p.push(g)):p=p.filter(f=>!ie.deepEqual(f,g)),setTimeout(()=>{this.dataLayer.setSearchObject({...d,facets:p,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,typeof document<"u"&&(this.searchFacetsMainContainer=document?.getElementById(this.containerId)),this.needCache&&t(this.config.facetingType==="tabs"),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.$searchFacetsCachedTabs.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.config.facetingType==="tabs")),this.renderMainTemplate(this.generateTemplateData()))}),this.dataLayer.$searchObject.subscribe(e=>{this.cachedPhrase!==e.query||this.cachedANDFacets!==this.dataLayer.parsedData.cachedANDFacets?(this.cachedANDFacets=this.dataLayer.parsedData.cachedANDFacets,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 s=t?this.facetPaginationStepMobile:this.facetPaginationStep,a=t?this.facetLimits:this.facetLimitsMobile;return e.forEach(i=>{a[i.name]||(a[i.name]=s)}),e.map(i=>({...i,values:i.values.slice(0,a[i.name]),showingAllFacets:i.values.length<=a[i.name],hasMoreFacets:i.values.length>s}))}generateTemplateData(e){if(this.generateSelectedFacetsData(),this.dataLayer.searchFacets){let t=this.dataLayer.searchFacets;this.needCache&&this.dataLayer.searchFacetsCached&&(t=this.dataLayer.searchFacetsCached,this.config.facetingType==="tabs"&&this.dataLayer.searchFacetsCachedTabs&&(t=this.dataLayer.searchFacetsCachedTabs),this.needDisabling&&(t=t.map(a=>{var i;const o=(i=this.dataLayer.searchFacets)==null?void 0:i.find(r=>r.name===a.name);return o?{...a,values:a.values.map(r=>{const c=o.values.find(u=>r.type==="range"?!1:r.type==="checkbox"?u.value===r.value:!1);return{...r,disabled:!c,isMobile:e}})}:{...a,values:a.values.map(r=>({...r,disabled:!0})),isMobile:e}}))),this.config.specificFacets&&(t=t.filter(a=>{var i;return(i=this.config.specificFacets)==null?void 0:i.includes(a.name)}));const s={facets:this.applyFacetLimits(t,e),...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(s),s}else{const t={facets:[],...this.dataLayer.parsedData.data,isMobile:e};return this.dataLayer.setFacetsTemplateData(t),t}}createFacetItem(e,t,s){var a,i,o,r,c,u,d,p,g,f,y,m,M,C,T,j;if(typeof document<"u"){const b=document?.createElement("div");b.classList.add("searchstax-facet-container"),this.deactivatedFacets[e.name]||b.classList.add("active");const E=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.facetItemContainerTemplate)==null?void 0:o.template)||((r=v.facets.facetItemContainerTemplate)==null?void 0:r.template);b.innerHTML=A.render(E,e),t.appendChild(b);const O=b.querySelector("."+(((d=(u=(c=this.config)==null?void 0:c.templates)==null?void 0:u.facetItemContainerTemplate)==null?void 0:d.facetListTitleContainerClass)||((p=v.facets.facetItemContainerTemplate)==null?void 0:p.facetListTitleContainerClass)));O?.addEventListener("click",()=>{b.classList.toggle("active");const P=b.classList.contains("active"),he=O.querySelector(".searchstax-facet-title");he&&he.setAttribute("aria-expanded",String(P))}),(m=O?.querySelector("."+((y=(f=(g=this.config)==null?void 0:g.templates)==null?void 0:f.facetItemContainerTemplate)==null?void 0:y.facetListTitleContainerInner)))==null||m.addEventListener("keydown",P=>{if(P.code==="Enter"||P.code==="Space"){P.preventDefault(),b.classList.toggle("active");const he=b.classList.contains("active"),ue=O.querySelector(".searchstax-facet-title");ue&&ue.setAttribute("aria-expanded",String(he))}});const _=b.querySelector("."+(((T=(C=(M=this.config)==null?void 0:M.templates)==null?void 0:C.facetItemContainerTemplate)==null?void 0:T.facetListContainerClass)||((j=v.facets.facetItemContainerTemplate)==null?void 0:j.facetListContainerClass)));_&&(e.values.forEach(P=>{this.createFacetListItem(P,_,e.name)}),e.hasMoreFacets&&this.createHasMoreComponent(e,_,s))}}isChecked(e){var t;return!!((t=this.dataLayer.searchObject.facets)!=null&&t.find(s=>ie.deepEqual(s,this.extractFacetValue(e))))}createFacetListItem(e,t,s){var a,i,o,r,c,u,d,p,g,f,y,m;if(typeof document<"u"){const M=document?.createElement("div");M.classList.add("searchstax-facet-value-container"),e.disabled&&M.classList.add("searchstax-facet-value-disabled");const C=this.isChecked(e),T=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.facetItemTemplate)==null?void 0:o.template)||((r=v.facets.facetItemTemplate)==null?void 0:r.template);M.innerHTML=A.render(T,{...e,isChecked:C});let j=(c=v.facets.facetItemTemplate)==null?void 0:c.checkTriggerClasses;j=((p=(d=(u=this.config)==null?void 0:u.templates)==null?void 0:d.facetItemTemplate)==null?void 0:p.checkTriggerClasses)||j,j.forEach(E=>{const O=M.querySelector("."+E);O?.addEventListener("click",_=>{this.onFacetSelect(_,e,M)})});const b=M.querySelector("."+(((y=(f=(g=this.config)==null?void 0:g.templates)==null?void 0:f.facetItemTemplate)==null?void 0:y.inputCheckboxClass)||((m=v.facets.facetItemTemplate)==null?void 0:m.inputCheckboxClass)));b?.addEventListener("click",E=>{this.onFacetSelect(E,e,M,!0)}),b&&b?.setAttribute("data-test-value",`${encodeURIComponent(s)}:&quot;${encodeURIComponent(e.value)}&quot;`),t.appendChild(M)}}createHasMoreComponent(e,t,s){var a,i,o,r,c,u,d,p,g,f;if(typeof document<"u"){const y=document?.createElement("div");y.classList.add("searchstax-facet-show-more-container");const m=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.showMoreButtonContainerTemplate)==null?void 0:o.template)||((r=v.facets.showMoreButtonContainerTemplate)==null?void 0:r.template);y.innerHTML=A.render(m,{...e,focusId:`moreLess${(u=(c=e?.values)==null?void 0:c[0])==null?void 0:u.value}`});const M=y.querySelector("."+(((g=(p=(d=this.config)==null?void 0:d.templates)==null?void 0:p.showMoreButtonContainerTemplate)==null?void 0:g.showMoreButtonClass)||((f=v.facets.showMoreButtonContainerTemplate)==null?void 0:f.showMoreButtonClass)));M&&(this.attachOnclickToShowMore(e,M,s),t&&t.appendChild(M))}}attachOnclickToShowMore(e,t,s){t.addEventListener("click",a=>{this.onShowMoreLessClick(a,e,s)}),t.addEventListener("keydown",a=>{a.code==="Space"&&a.preventDefault()}),t.addEventListener("keyup",a=>{(a.code==="Space"||a.code==="Enter")&&(a.preventDefault(),this.onShowMoreLessClick(a,e,s))})}onShowMoreLessClick(e,t,s){e.preventDefault();const a=s?this.facetPaginationStepMobile:this.facetPaginationStep,i=s?this.facetLimits:this.facetLimitsMobile;i[t.name]===void 0?i[t.name]=a*2:i[t.name]<=t.values.length?(q.setAccessibilityText(`More Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=i[t.name]+a):(q.setAccessibilityText(`Less Facets shown for ${t.label}`,0,`moreLess${new Date().getTime()}`),i[t.name]=a),this.generateTemplateData(s),this.renderMainTemplate(this.generateTemplateData())}renderMainTemplate(e,t){var s,a,i,o,r,c,u,d,p,g,f;if(e&&(!ie.deepEqual(this.cachedData??{},e)||t)){this.cachedData=e;const y=((i=(a=(s=this.config)==null?void 0:s.templates)==null?void 0:a.mainTemplateDesktop)==null?void 0:i.template)||((o=v.facets.mainTemplateDesktop)==null?void 0:o.template);if(this.dataLayer.renderingEngine===$.mustache&&this.searchFacetsMainContainer){const m=document.activeElement;m instanceof HTMLInputElement&&m.type==="checkbox"||m!=null&&m.classList.contains("searchstax-facet-show-more-button")||m!=null&&m.classList.contains("searchstax-facet-show-less-button")?this.focusedElement=m:this.focusedElement=null,this.searchFacetsMainContainer.innerHTML=A.render(y,{...e});const M=(d=this.searchFacetsMainContainer)==null?void 0:d.querySelector("."+(((u=(c=(r=this.config)==null?void 0:r.templates)==null?void 0:c.mainTemplateDesktop)==null?void 0:u.facetsContainerClass)||v.facets.mainTemplateDesktop.facetsContainerClass));if(M){M.innerHTML="";for(const C of e.facets)this.createFacetItem(C,M);if(this.searchFacetsMainContainer){const C=this.searchFacetsMainContainer.querySelector("."+(((f=(g=(p=this.config)==null?void 0:p.templates)==null?void 0:g.mainTemplateDesktop)==null?void 0:f.selectedFacetsContainerClass)||v.facets.mainTemplateDesktop.selectedFacetsContainerClass));C&&(this.createSelectedFacetsComponents(C),this.createClearFacetsComponents(C))}if(this.focusedElement){if(this.focusedElement.classList.contains("searchstax-facet-show-more-button")||this.focusedElement.classList.contains("searchstax-facet-show-less-button")){const j=this.focusedElement.getAttribute("data-focus"),b=this.searchFacetsMainContainer.querySelector(`[data-focus="${j}"]`);b instanceof HTMLElement&&b.focus(),this.focusedElement=null;return}const C=this.focusedElement.getAttribute("data-test-value"),T=this.searchFacetsMainContainer.querySelector(`[data-test-value="${C}"]`);T instanceof HTMLInputElement&&T.focus(),this.focusedElement=null}}}setTimeout(()=>{document.querySelectorAll(".searchstax-facet-title").forEach(m=>{m.setAttribute("aria-expanded",String(!0)),m.setAttribute("tabindex","0"),m.setAttribute("role","button")})},100),this.renderMobileTemplate(this.generateTemplateData(!0))}else this.generateSelectedFacetsData()}generateSelectedFacetsData(){const e=[],t=this.dataLayer.searchObject.facets;for(const s of t){const a=decodeURIComponent(s.name),i=decodeURIComponent(s.value);if(this.dataLayer.searchFacets){const o=this.needCache?this.dataLayer.searchFacetsCached:this.dataLayer.searchFacets,r=o?.find(c=>c.name===a);if(r){const c=r.values.find(u=>u.type==="range"?!1:u.type==="checkbox"?`"${u.value}"`==`"${i}"`:!1);c&&e.push(c)}}}this.dataLayer.setSelectedFacetsTemplateData(e)}createSelectedFacetsComponents(e){var t;this.generateSelectedFacetsData(),(t=this.dataLayer.selectedFacetsTemplateData)==null||t.forEach(s=>{this.createSelectedFacetsComponent(e,s)})}createClearFacetsComponents(e){var t,s,a,i,o,r,c,u;if(typeof document<"u"){const d=this.dataLayer.searchObject,p=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.clearFacetsTemplate)==null?void 0:a.template)||((i=v.facets.clearFacetsTemplate)==null?void 0:i.template),g=document?.createElement("div");g.innerHTML=A.render(p,{shouldShow:d.facets.length>0});const f=g.querySelector("."+(((c=(r=(o=this.config)==null?void 0:o.templates)==null?void 0:r.clearFacetsTemplate)==null?void 0:c.containerClass)||((u=v.facets.clearFacetsTemplate)==null?void 0:u.containerClass)));f&&(f.addEventListener("click",()=>{this.removeSelectedFacets()}),f.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.removeSelectedFacets()}),e.appendChild(f))}}createSelectedFacetsComponent(e,t){var s,a,i,o,r,c,u,d;if(typeof document<"u"){const p=((i=(a=(s=this.config)==null?void 0:s.templates)==null?void 0:a.selectedFacetsTemplate)==null?void 0:i.template)||((o=v.facets.selectedFacetsTemplate)==null?void 0:o.template),g=document?.createElement("div");g.innerHTML=A.render(p,t);const f=g.querySelector("."+(((u=(c=(r=this.config)==null?void 0:r.templates)==null?void 0:c.selectedFacetsTemplate)==null?void 0:u.containerClass)||((d=v.facets.selectedFacetsTemplate)==null?void 0:d.containerClass)));f&&(f.addEventListener("click",()=>{this.unselectFacet(t)}),f.addEventListener("keyup",y=>{(y.code==="Space"||y.code==="Enter")&&this.unselectFacet(t)}),e.appendChild(f))}}unselectFacet(e){const t=this.dataLayer.searchObject;let s=[...t.facets];e.type==="checkbox"&&(s=s.filter(a=>JSON.stringify(a)!==JSON.stringify(this.extractFacetValue(e)))),setTimeout(()=>{this.dataLayer.setSearchObject({...t,facets:s}),this.generateSelectedFacetsData()},0)}removeSelectedFacets(){const e=this.dataLayer.searchObject;this.dataLayer.setSearchObject({...e,facets:[]})}createFilterByComponent(e){var t,s,a,i,o,r,c,u;if(typeof document<"u"){const d=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.filterByTemplate)==null?void 0:a.template)||((i=v.facets.filterByTemplate)==null?void 0:i.template),p=document?.createElement("div");p.innerHTML=A.render(d,{});const g=p.querySelector("."+(((c=(r=(o=this.config)==null?void 0:o.templates)==null?void 0:r.filterByTemplate)==null?void 0:c.containerClass)||((u=v.facets.filterByTemplate)==null?void 0:u.containerClass)));g&&(e.prepend(g),g.addEventListener("click",this.openOverlay.bind(this)),g.addEventListener("keyup",f=>{(f.code==="Space"||f.code==="Enter")&&this.openOverlay()}))}}openOverlay(){var e;q.setAccessibilityText("Facet overlay opened. Tab to select facets."),this.overlayOpened=!0,this.searchFacetsMainContainer&&(typeof document<"u"&&document.body.classList.toggle("searchstax-no-scroll"),(e=this.searchFacetsMainContainer.querySelector(".searchstax-facets-mobile-overlay"))==null||e.classList.add("searchstax-show"))}closeOverlay(){var e;q.setAccessibilityText("Facet overlay closed"),this.overlayOpened=!1,this.searchFacetsMainContainer&&(typeof document<"u"&&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,s,a,i,o,r,c,u,d,p,g,f,y,m,M,C,T,j,b;if(e&&typeof document<"u"){const E=document?.createElement("div");E.classList.add("searchstax-facets-container-mobile");const O=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.mainTemplateMobile)==null?void 0:a.template)||((i=v.facets.mainTemplateMobile)==null?void 0:i.template);if(this.dataLayer.renderingEngine===$.mustache){if(E.innerHTML=A.render(O,{...e,overlayOpened:this.overlayOpened}),(o=this.searchFacetsMainContainer)==null||o.appendChild(E),(c=(r=this.config)==null?void 0:r.templates)!=null&&c.mainTemplateMobile)for(const ue of((p=(d=(u=this.config)==null?void 0:u.templates)==null?void 0:d.mainTemplateMobile)==null?void 0:p.closeOverlayTriggerClasses)||[]){const F=E.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}else for(const ue of v.facets.mainTemplateMobile.closeOverlayTriggerClasses){const F=E.querySelector("."+ue);F&&(F.addEventListener("click",this.closeOverlay.bind(this)),F.addEventListener("keyup",me=>{(me.code==="Space"||me.code==="Enter")&&this.closeOverlay()}))}const _=E.querySelector("."+(((y=(f=(g=this.config)==null?void 0:g.templates)==null?void 0:f.mainTemplateMobile)==null?void 0:y.filterByContainerClass)||v.facets.mainTemplateMobile.filterByContainerClass));_&&this.createFilterByComponent(_);const P=E.querySelector("."+(((C=(M=(m=this.config)==null?void 0:m.templates)==null?void 0:M.mainTemplateMobile)==null?void 0:C.selectedFacetsContainerClass)||v.facets.mainTemplateMobile.selectedFacetsContainerClass));P&&(this.createSelectedFacetsComponents(P),this.createClearFacetsComponents(P));const he=E.querySelector("."+(((b=(j=(T=this.config)==null?void 0:T.templates)==null?void 0:j.mainTemplateMobile)==null?void 0:b.facetsContainerClass)||v.facets.mainTemplateMobile.facetsContainerClass));if(he){he.innerHTML="";for(const ue of e.facets)this.createFacetItem(ue,he,!0)}}}}}class In{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"previousButtonClass"),l(this,"nextButtonClass"),l(this,"loadMoreButtonClass"),l(this,"routerHelper"),l(this,"searchPaginationMainContainer",null);var t,s,a,i,o,r,c,u,d;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.routerHelper=e.routerHelper,this.previousButtonClass=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.mainTemplate)==null?void 0:a.previousButtonClass)??v.pagination.mainTemplate.previousButtonClass,this.nextButtonClass=((r=(o=(i=this.config)==null?void 0:i.templates)==null?void 0:o.mainTemplate)==null?void 0:r.nextButtonClass)??v.pagination.mainTemplate.nextButtonClass,this.loadMoreButtonClass=((d=(u=(c=this.config)==null?void 0:c.templates)==null?void 0:u.infiniteScrollTemplate)==null?void 0:d.loadMoreButtonClass)??v.pagination.infiniteScrollTemplate.loadMoreButtonClass,typeof document<"u"&&(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(){return this.dataLayer.parsedData.data.isLastPage}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){var e,t,s,a;const i={...this.dataLayer.parsedData.data,previousPageLink:(t=this.routerHelper)==null?void 0:t.searchObjectToUrl({...this.dataLayer.searchObject,page:((e=this.dataLayer.searchObject)==null?void 0:e.page)-1}),nextPageLink:(a=this.routerHelper)==null?void 0:a.searchObjectToUrl({...this.dataLayer.searchObject,page:((s=this.dataLayer.searchObject)==null?void 0:s.page)+1})};return this.dataLayer.setPaginationData(i),i}goToPage(e,t){const s=this.dataLayer.searchObject;s&&(s.page=e,this.dataLayer.setSearchObject(s)),t||window==null||window.scrollTo(0,0),document.body.tabIndex=-1,document.body.focus()}nextPage(e){var t;e?.preventDefault(),e?.stopPropagation(),this.isLastPage||this.goToPage(((t=this.dataLayer.searchObject)==null?void 0:t.page)+1,this.dataLayer.isInfiniteScroll)}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),s=this.searchPaginationMainContainer.querySelector("."+this.loadMoreButtonClass);e&&(e.addEventListener("click",this.previousPage.bind(this)),e.addEventListener("keydown",a=>{(a.code==="Space"||a.code==="Enter")&&this.previousPage(a)})),t&&(t.addEventListener("click",this.nextPage.bind(this)),t.addEventListener("keydown",a=>{(a.code==="Space"||a.code==="Enter")&&this.nextPage(a)})),s&&(s.addEventListener("click",this.nextPage.bind(this)),s.addEventListener("keydown",a=>{(a.code==="Space"||a.code==="Enter")&&this.nextPage(a)}))}}renderMainTemplate(e){var t,s,a,i,o,r,c,u,d,p;this.searchPaginationMainContainer&&((t=this.searchPaginationMainContainer.querySelector("."+this.previousButtonClass))==null||t.removeEventListener("click",this.previousPage),(s=this.searchPaginationMainContainer.querySelector("."+this.nextButtonClass))==null||s.removeEventListener("click",this.nextPage));let g=((o=(i=(a=this.config)==null?void 0:a.templates)==null?void 0:i.mainTemplate)==null?void 0:o.template)||((r=v.pagination.mainTemplate)==null?void 0:r.template);this.dataLayer.isInfiniteScroll&&(g=((d=(u=(c=this.config)==null?void 0:c.templates)==null?void 0:u.infiniteScrollTemplate)==null?void 0:d.template)||((p=v.pagination.infiniteScrollTemplate)==null?void 0:p.template)),this.dataLayer.renderingEngine===$.mustache&&(this.searchPaginationMainContainer.innerHTML=A.render(g,e),setTimeout(()=>{this.overridePaginationEvents()},0))}}class jn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"relatedSearchesContainerClass"),l(this,"searchRelatedSearchesMainContainer",null),l(this,"track");var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.relatedSearchesContainerClass=((s=(t=this.config.templates)==null?void 0:t.main)==null?void 0:s.relatedSearchesContainerClass)||v.relatedSearches.main.relatedSearchesContainerClass,typeof document<"u"&&(this.searchRelatedSearchesMainContainer=document?.getElementById(this.containerId)),this.track=e.trackRelatedSearchClick,this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchRelatedSearches.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setRelatedSearchesData(e),e}addRelatedSearchComponent(e,t){var s,a,i,o,r;if(typeof document<"u"){const c=document?.createElement("div"),u=((i=(a=(s=this.config)==null?void 0:s.templates)==null?void 0:a.relatedSearch)==null?void 0:i.template)||v.relatedSearches.relatedSearch.template;if(this.dataLayer.renderingEngine===$.mustache){c.innerHTML=A.render(u,e);const d=c.querySelector("."+(((r=(o=this.config.templates)==null?void 0:o.relatedSearch)==null?void 0:r.relatedSearchContainerClass)||v.relatedSearches.relatedSearch.relatedSearchContainerClass));d&&(t.appendChild(d),d.addEventListener("click",()=>{this.executeSearch(e)}),d.addEventListener("keyup",p=>{(p.code==="Space"||p.code==="Enter")&&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 t,s,a,i;const o=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.relatedSearches.main.template;if(this.dataLayer.renderingEngine===$.mustache&&this.searchRelatedSearchesMainContainer){this.searchRelatedSearchesMainContainer.innerHTML="",this.searchRelatedSearchesMainContainer.innerHTML=A.render(o,e);const r=(i=this.searchRelatedSearchesMainContainer)==null?void 0:i.querySelector(`.${this.relatedSearchesContainerClass}`);if(r)for(const c of e.relatedSearches)this.addRelatedSearchComponent(c,r)}}}class Rn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"searchFeedbackMainContainer",null),l(this,"searchTrigger"),this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.searchTrigger=e.searchTrigger,typeof document<"u"&&(this.searchFeedbackMainContainer=document?.getElementById(this.containerId)),this.initializeSubscriptions()}initializeSubscriptions(){this.dataLayer.$searchResults.subscribe(e=>{e&&this.renderMainTemplate(this.generateTemplateData())})}generateTemplateData(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchFeedbackData(e),e}onOriginalQueryClick(e){var t;e.stopPropagation(),e.preventDefault();const s=(t=e.target)==null?void 0:t.innerHTML;this.searchTrigger(s,!0)}attachClick(){var e,t,s,a,i;const o=(i=this.searchFeedbackMainContainer)==null?void 0:i.querySelector("."+(((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.main)==null?void 0:s.originalQueryClass)||((a=v.searchFeedback.main)==null?void 0:a.originalQueryClass)));o&&o.addEventListener("click",this.onOriginalQueryClick.bind(this))}renderMainTemplate(e){var t,s,a;const i=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.searchFeedback.main.template;this.dataLayer.renderingEngine===$.mustache&&(this.searchFeedbackMainContainer.innerHTML=A.render(i,e),setTimeout(()=>{this.attachClick()},0))}}class Nn{constructor(e){l(this,"searchHelper"),l(this,"dataLayer"),l(this,"config"),l(this,"suggestAfterMinChars"),l(this,"containerId"),l(this,"currentInputValue",""),l(this,"autosuggestResults"),l(this,"searchInput"),l(this,"actionButton"),l(this,"autosuggestContainer"),l(this,"buttonState","search"),l(this,"selectedAutosuggestItem",-1),l(this,"suggestTrigger"),l(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.suggestAfterMinChars===void 0&&this.getSuggestAfterValue(),this.dataLayer.$locationEnabled.subscribeUntilHasValue(()=>{this.renderMainTemplate(),this.actionButtonInit(),this.updateActionButtonState("search"),this.searchInput&&(this.createAutosuggestContainer(),this.attachSubscriptions())},200)}renderMainTemplate(){var e,t,s,a;if(typeof document<"u"){const i=document?.getElementById(this.containerId);if(!i)throw new Error("Search input container not found");const o=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||v.searchInput.mainTemplate.template,r={...this.dataLayer.parsedData.data,locationEnabled:!!this.dataLayer.locationEnabled};if(this.dataLayer.setInputWidgetTemplateData(r),this.dataLayer.renderingEngine===$.mustache){const d=A.render(o,r);i.innerHTML=d,this.dataLayer.setInputTemplateRendered(!0)}const c=((a=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:a.searchInputId)||v.searchInput.mainTemplate.searchInputId,u=document?.querySelector(`#${c}`);if(u)this.searchInput=u,u.addEventListener("keyup",this.inputKeyupEvent.bind(this)),u.addEventListener("blur",this.hideAutosuggest.bind(this)),u.addEventListener("paste",this.inputPasteEvent.bind(this));else throw new Error("Input not found")}}createAutosuggestContainer(){var e;this.dataLayer.renderingEngine===$.mustache&&typeof document<"u"&&(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))}getSuggestAfterValue(){this.dataLayer.searchHelper&&this.dataLayer.searchHelper.suggest("*",e=>{this.suggestAfterMinChars=e.metadata.minPrefixChars},[])}actionButtonInit(){typeof document<"u"&&(this.actionButton=document?.getElementById("searchstax-search-input-action-button"),this.actionButton&&this.actionButton.addEventListener("click",()=>{var e;this.executeSearch(((e=this.searchInput)==null?void 0:e.value)??"")}))}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(){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-icon"),e){case"loading":this.actionButton.classList.add("searchstax-spinner-icon");break;case"search":this.actionButton.classList.add("searchstax-search-icon"),this.actionButton.setAttribute("aria-label","search");break}}selectPreviousAutosuggestItem(e){var t;this.selectedAutosuggestItem>0?this.selectedAutosuggestItem--:this.selectedAutosuggestItem===0?(this.selectedAutosuggestItem=-1,e&&e!=null&&e.focus&&((t=e?.focus)==null||t.call(e),e.setSelectionRange(e.value.length,e.value.length)),q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=this.autosuggestResults.suggestions.length-1,this.markActiveAutosuggestItem()}selectNextAutosuggestItem(){this.selectedAutosuggestItem<this.autosuggestResults.suggestions.length-1?this.selectedAutosuggestItem++:this.selectedAutosuggestItem===this.autosuggestResults.suggestions.length-1?(this.selectedAutosuggestItem=-1,q.setAccessibilityText("No Suggestion selected")):this.selectedAutosuggestItem=0,this.markActiveAutosuggestItem()}resetAutosuggestSelection(){this.selectedAutosuggestItem=-1,this.markActiveAutosuggestItem()}markActiveAutosuggestItem(){if(typeof document<"u"){const e=document?.getElementsByClassName("searchstax-autosuggest-item");for(let t=0;t<e.length;t++){const s=e[t];t===this.selectedAutosuggestItem?(s.classList.add("active"),q.setAccessibilityText(`Selected suggestion: ${s.innerText}`)):s.classList.remove("active")}}}inputKeyupEvent(e){const t=e.key;this.currentInputValue=e.target.value,t==="Enter"?this.suggestionChosen():t==="Escape"?this.hideAutosuggest(e.target):t==="ArrowUp"?this.selectPreviousAutosuggestItem(e.target):t==="ArrowDown"?this.selectNextAutosuggestItem():this.autosuggestHandling(e),this.handleSearchTermChange()}autosuggestHandling(e){this.suggestAfterMinChars&&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(e){setTimeout(()=>{var t;this.dataLayer.setAutosuggestResults({numFound:0,suggestions:[]}),this.autosuggestContainer&&(this.autosuggestContainer.innerHTML="",this.autosuggestContainer.classList.add("hidden")),this.resetAutosuggestSelection(),e&&e!=null&&e.focus&&((t=e?.focus)==null||t.call(e),e.setSelectionRange(e.value.length,e.value.length)),q.setAccessibilityText("No Suggestion selected")},200)}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}autosuggestItemClicked(e){this.searchInput.value=this.cleanSuggestionTerm(e.term??""),this.executeSearch(this.cleanSuggestionTerm(e.term))}createAutosuggestItem(e){var t,s,a;const i=document?.createElement("div");i.classList.add("searchstax-autosuggest-item"),i.addEventListener("click",()=>{this.autosuggestItemClicked(e)}),i.addEventListener("mouseenter",()=>{this.onSuggestionEnter(e)});const o=((s=(t=this.config.templates)==null?void 0:t.autosuggestItemTemplate)==null?void 0:s.template)||((a=v.searchInput.autosuggestItemTemplate)==null?void 0:a.template);return i.innerHTML=A.render(o,e),i}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 s=e.suggest[t];for(const a in s)if(Object.prototype.hasOwnProperty.call(s,a)){const i=s[a];i.numFound?q.setAccessibilityText("Suggestions are available. Use up and down arrows to navigate while focusing input. Use Escape key to escape out of the suggestions",2e3):q.setAccessibilityText("",0),this.autosuggestResults=i,this.dataLayer.setAutosuggestResults(i),i.numFound>0?i.suggestions.forEach(o=>{this.autosuggestContainer&&typeof document<"u"&&this.autosuggestContainer.appendChild(this.createAutosuggestItem(o))}):this.autosuggestContainer&&this.autosuggestContainer.classList.add("hidden")}}}}class On{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"linkClickCallback"),l(this,"searchCallback"),l(this,"containerId"),l(this,"searchResultsMainContainer"),l(this,"searchResultsContainer"),l(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.dataLayer.setIsInfiniteScroll(e.config.renderMethod==="infiniteScroll"),this.initializeSubscriptions(),this.renderMainTemplate()}initializeSubscriptions(){this.dataLayer.$searchObject.subscribe(()=>{q.setAccessibilityText("Searching...")}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.searchResultsContainer&&this.renderResults(e)})}changeTemplate(){this.dataLayer.searchResults&&this.renderResults(this.dataLayer.searchResults)}renderNoResultsTemplate(){var e,t,s,a,i;const o=((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.noSearchResultTemplate)==null?void 0:s.template)||((a=v.searchResults.noSearchResultTemplate)==null?void 0:a.template),r=((i=this.dataLayer.searchResultsMetadata)==null?void 0:i.spellingSuggestion)??"";if(this.dataLayer.renderingEngine===$.mustache&&this.searchResultsContainer&&(this.searchResultsContainer.innerHTML=A.render(o,{spellingSuggestion:r,...this.dataLayer.parsedData.data,searchCallback:this.searchCallback.bind(this)})),r&&this.searchResultsContainer){const c=this.searchResultsContainer.querySelector("a");c&&c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.searchCallback(r)})}}renderResults(e){var t,s,a,i,o;if(this.dataLayer.renderingEngine===$.mustache&&this.searchResultsContainer)if(this.removeLinkClickEvents(),e.length===0)q.setAccessibilityText("Search has no results"),this.renderNoResultsTemplate();else{q.setAccessibilityText(`Showing ${this.dataLayer.parsedData.startResultIndex} through ${this.dataLayer.parsedData.endResultIndex} results from ${this.dataLayer.parsedData.totalResults}. Press tab to navigate through results`);const r=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.searchResultTemplate)==null?void 0:a.template)||((i=v.searchResults.searchResultTemplate)==null?void 0:i.template),c=e.map(u=>A.render(r,u));((o=this.config)==null?void 0:o.renderMethod)==="infiniteScroll"&&this.dataLayer.searchObject.page>1?this.searchResultsContainer.innerHTML+=c.join(""):this.searchResultsContainer.innerHTML=c.join(""),this.searchResultLinks=Array.from(this.searchResultsContainer.querySelectorAll(`[${this.uniqueIdAttribute}]`)),this.attachLinkClickEvents()}}removeLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.removeEventListener("click",()=>{}),e.removeEventListener("keydown",()=>{})})}get uniqueIdAttribute(){var e,t,s,a;return((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.searchResultTemplate)==null?void 0:s.searchResultUniqueIdAttribute)||((a=v.searchResults.searchResultTemplate)==null?void 0:a.searchResultUniqueIdAttribute)}attachLinkClickEvents(){this.searchResultLinks.forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const s=e.getAttribute(this.uniqueIdAttribute)??"";s&&this.linkClickCallback(s)}),e.addEventListener("keydown",t=>{if(t.code==="Space"||t.code==="Enter"){const s=e.getAttribute(this.uniqueIdAttribute)??"";s&&this.linkClickCallback(s)}})})}renderMainTemplate(){var e,t,s,a;const i=((s=(t=(e=this.config)==null?void 0:e.templates)==null?void 0:t.mainTemplate)==null?void 0:s.template)||((a=v.searchResults.mainTemplate)==null?void 0:a.template);this.dataLayer.renderingEngine===$.mustache&&(this.searchResultsMainContainer.innerHTML=A.render(i,{}),setTimeout(()=>{var o,r,c,u,d,p,g;const f=(c=(r=(o=this.config)==null?void 0:o.templates)==null?void 0:r.mainTemplate)!=null&&c.searchResultsContainerId?(p=(d=(u=this.config)==null?void 0:u.templates)==null?void 0:d.mainTemplate)==null?void 0:p.searchResultsContainerId:(g=v.searchResults.mainTemplate)==null?void 0:g.searchResultsContainerId,y=document?.getElementById(f);if(y)this.searchResultsContainer=y;else throw new Error(`Search Results Container with id ${f} not found`)},0))}}class Pn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"selectId"),l(this,"searchSortingMainContainer",null);var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.selectId=((s=(t=this.config.templates)==null?void 0:t.main)==null?void 0:s.selectId)||v.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(){const e={...this.dataLayer.parsedData.data};return this.dataLayer.setSearchSortingData(e),e}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 t,s,a;const i=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.sorting.main.template;if(this.dataLayer.renderingEngine===$.mustache){this.searchSortingMainContainer.innerHTML=A.render(i,e),this.markOptionSelected();const o=document?.getElementById(this.selectId);o&&o.addEventListener("change",r=>{this.setOrderQuery(r.target.value)})}}}class Fn{constructor(e){l(this,"analyticsKey"),l(this,"containerId"),l(this,"mainContainer"),l(this,"isLightweight"),l(this,"emailOverride"),l(this,"feedbackTextAreaOverride"),l(this,"mainTemplateOverride"),l(this,"lightweightTemplateOverride"),l(this,"focusedElement",null),l(this,"focusTrapListener",null),l(this,"lastFocusedElementBeforeModal",null),l(this,"templateData",{feedbackOpen:!1,ratings:[{index:1,isSelected:!1},{index:2,isSelected:!1},{index:3,isSelected:!1},{index:4,isSelected:!1},{index:5,isSelected:!1},{index:6,isSelected:!1},{index:7,isSelected:!1},{index:8,isSelected:!1},{index:9,isSelected:!1},{index:10,isSelected:!1}],emailInput:"",feedbackTextArea:"",charactersLeft:2e3,maxLength:2e3,errors:{rating:!1,email:!1},submitted:!1,thumbsUpActive:!1,thumbsDownActive:!1}),l(this,"thumbsUpValue",10),l(this,"thumbsDownValue",1),l(this,"ratedQuestion",""),l(this,"language",""),l(this,"model",""),l(this,"analyticsSrc",""),this.analyticsKey=e.analyticsKey,this.containerId=e.containerId??"sf-feedback",this.isLightweight=e.lightweight??!1,this.isLightweight&&this.templateData.ratings.unshift({index:0,isSelected:!1}),this.thumbsUpValue=e.thumbsUpValue??10,this.thumbsDownValue=e.thumbsDownValue??1,this.emailOverride=e.emailOverride,this.feedbackTextAreaOverride=e.feedbackTextAreaOverride,this.mainTemplateOverride=e.mainTemplateOverride,this.lightweightTemplateOverride=e.lightweightTemplateOverride,this.mainContainer=document.getElementById(this.containerId),this.language=e.language??"",this.model=e.model??"",this.analyticsSrc=e.analyticsSrc??"",this.init()}init(){ce.attachAnalyticsScript(this.analyticsSrc),this.renderMainTemplate(this.generateTemplateData())}generateTemplateData(){return this.templateData}renderMainTemplate(e){var t,s;const a=document.activeElement;(a instanceof HTMLInputElement||a instanceof HTMLButtonElement||a instanceof HTMLTextAreaElement||a instanceof HTMLAnchorElement)&&(a.type==="radio"||a.type==="button"||a.type==="textarea"||a instanceof HTMLAnchorElement)?this.focusedElement=a:this.focusedElement=null,this.mainContainer;let i=(t=H?.mainTemplate)==null?void 0:t.template;if(this.mainTemplateOverride&&(i=this.mainTemplateOverride),this.isLightweight&&(i=(s=H.lightweightTemplate)==null?void 0:s.template,this.lightweightTemplateOverride&&(i=this.lightweightTemplateOverride)),this.mainContainer.innerHTML=A.render(i,e),this.focusedElement&&this.mainContainer){const o=this.focusedElement.type==="radio"?this.focusedElement.getAttribute("id"):this.focusedElement.getAttribute("class"),r=this.focusedElement.type==="radio"?"id":"class",c=this.mainContainer.querySelector(`[${r}="${o}"]`);(c instanceof HTMLInputElement||c instanceof HTMLButtonElement||c instanceof HTMLTextAreaElement||c instanceof HTMLAnchorElement)&&c.focus(),this.focusedElement=null}this.attachEvents()}attachEvents(){this.isLightweight?this.attachLightweightEvents():(this.attachOpenModalEvent(),this.closeModalEvent(),this.attachRatingEvents(),this.attachTextAreaEvents(),this.attachEmailInputEvents(),this.attachSubmitButtonEvents())}attachFocusTrap(){this.focusTrapListener&&document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=e=>{if(!this.templateData.feedbackOpen)return;const t=this.getModalElement();if(!t)return;const s=this.getFocusableElements(t);if(s.length===0)return;const a=s[0],i=s[s.length-1];e.key==="Tab"&&(e.shiftKey?(document.activeElement===a||!t.contains(document.activeElement))&&(e.preventDefault(),i?.focus()):(document.activeElement===i||!t.contains(document.activeElement))&&(e.preventDefault(),a?.focus())),e.key==="Escape"&&(e.preventDefault(),this.closeFeedbackModal())},document.addEventListener("keydown",this.focusTrapListener)}getFocusableElements(e){const t=["button:not([disabled])","input:not([disabled])","textarea:not([disabled])","select:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t))}getModalElement(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.modalContainerClass;return((t=this.mainContainer)==null?void 0:t.querySelector(`.${s}`))||null}attachLightweightEvents(){var e,t,s,a;const i=(e=H.lightweightTemplate)==null?void 0:e.thumbsUpButtonClass,o=(t=H.lightweightTemplate)==null?void 0:t.thumbsDownButtonClass,r=(s=this.mainContainer)==null?void 0:s.querySelector("."+i),c=(a=this.mainContainer)==null?void 0:a.querySelector("."+o);r&&r.addEventListener("click",()=>{const u=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[this.templateData.ratings.length-1].isSelected&&this.ratedQuestion===u||(this.templateData.thumbsUpActive=!0,this.templateData.thumbsDownActive=!1,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsUpValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=u,this.submit())}),c&&c.addEventListener("click",()=>{const u=this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea;this.templateData.ratings[0].isSelected&&this.ratedQuestion===u||(this.templateData.thumbsUpActive=!1,this.templateData.thumbsDownActive=!0,this.templateData.ratings.forEach(d=>{d.isSelected=d.index===this.thumbsDownValue}),this.renderMainTemplate(this.generateTemplateData()),this.ratedQuestion=u,this.submit())})}attachSubmitButtonEvents(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.submitButtonClass,a=(t=this.mainContainer)==null?void 0:t.querySelector("."+s);a&&a.addEventListener("click",()=>{this.checkIfValid()})}checkIfValid(){var e,t;const s=(t=this.mainContainer)==null?void 0:t.querySelector("#"+((e=H.mainTemplate)==null?void 0:e.emailInputId));this.validateEmail(s.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,q.setAccessibilityText("Please enter a valid email address.")),this.templateData.ratings.some(a=>a.isSelected)?this.templateData.errors.rating=!1:(this.templateData.errors.rating=!0,q.setAccessibilityText("Please Rate your experience.")),this.templateData.errors.rating||this.templateData.errors.email?this.renderMainTemplate(this.generateTemplateData()):this.submit()}submit(){var e,t,s;this.templateData.submitted=!0;const a=(e=this.templateData.ratings.find(i=>i.isSelected))==null?void 0:e.index;a!==void 0&&(ce.trackFeedback({trackApiKey:this.analyticsKey,email:this.emailOverride&&this.isLightweight?this.emailOverride():this.templateData.emailInput,rating:a,feedback:this.feedbackTextAreaOverride&&this.isLightweight?this.feedbackTextAreaOverride():this.templateData.feedbackTextArea,model:this.model?this.model:void 0,language:this.language?this.language:void 0}),this.showCheckmarkAnimation(),q.setAccessibilityText("Feedback has been sent.",1e3),(s=this.mainContainer)!=null&&s.querySelector("."+((t=H.mainTemplate)==null?void 0:t.checkmarkClass))?setTimeout(()=>{this.closeFeedbackModal(),this.renderMainTemplate(this.generateTemplateData())},2e3):(setTimeout(()=>{this.closeFeedbackModal()},500),this.renderMainTemplate(this.generateTemplateData())))}validateEmail(e){return e===""?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}attachEmailInputEvents(){var e,t;const s=(t=this.mainContainer)==null?void 0:t.querySelector("#"+((e=H.mainTemplate)==null?void 0:e.emailInputId));s&&(s.addEventListener("input",()=>{this.templateData.emailInput=s.value}),s.addEventListener("blur",()=>{setTimeout(()=>{this.validateEmail(s.value)?this.templateData.errors.email=!1:(this.templateData.errors.email=!0,q.setAccessibilityText("Please enter a valid email address.")),this.renderMainTemplate(this.generateTemplateData())},300)}))}attachTextAreaEvents(){var e,t;const s=(t=this.mainContainer)==null?void 0:t.querySelector("#"+((e=H.mainTemplate)==null?void 0:e.feedbackTextAreaId));s&&s.addEventListener("input",()=>{var a,i;this.templateData.feedbackTextArea=s.value,this.templateData.charactersLeft=this.templateData.maxLength-s.value.length;const o=(i=this.mainContainer)==null?void 0:i.querySelector("."+((a=H.mainTemplate)==null?void 0:a.charactersRemainingContainerclass));o&&(o.innerText=this.templateData.charactersLeft+"")})}attachRatingEvents(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.ratingInputclass,a=(t=this.mainContainer)==null?void 0:t.querySelectorAll("."+s);a&&a.forEach(i=>{i.addEventListener("click",o=>{const r=o.target.value;this.templateData.ratings.forEach(c=>{c.isSelected=c.index+""===r}),this.templateData.errors.rating=!1,this.renderMainTemplate(this.generateTemplateData())})})}attachOpenModalEvent(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.openModalButtonClass,a=(t=this.mainContainer)==null?void 0:t.querySelector("."+s);a&&a.addEventListener("click",i=>{i.preventDefault(),this.toggleModal()})}toggleModal(){this.templateData.feedbackOpen?this.closeFeedbackModal():this.openFeedbackModal()}closeModalEvent(){var e,t;const s=(e=H.mainTemplate)==null?void 0:e.closeModalButtonClass,a=(t=this.mainContainer)==null?void 0:t.querySelector("."+s);a&&a.addEventListener("click",()=>{this.closeFeedbackModal()})}openFeedbackModal(){this.lastFocusedElementBeforeModal=document.activeElement,this.templateData.feedbackOpen=!0,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{const e=this.getModalElement();if(e){const t=this.getFocusableElements(e);t.length>0&&t[0].focus()}this.attachFocusTrap()},0),q.setAccessibilityText("Feedback form opened",1e3)}closeFeedbackModal(){this.templateData.feedbackOpen=!1,this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null),this.renderMainTemplate(this.generateTemplateData()),this.lastFocusedElementBeforeModal&&(this.lastFocusedElementBeforeModal.focus(),this.lastFocusedElementBeforeModal=null),q.setAccessibilityText("Feedback form closed",1e3)}showCheckmarkAnimation(){var e,t,s,a,i,o;const r=(e=H.mainTemplate)==null?void 0:e.submitButtonClass,c=(t=this.mainContainer)==null?void 0:t.querySelector("."+r);c&&(c.disabled=!0);const u=(s=H.mainTemplate)==null?void 0:s.checkmarkClass,d=(a=this.mainContainer)==null?void 0:a.querySelector("."+u);d&&d.classList.remove("hidden");const p=(i=H.mainTemplate)==null?void 0:i.submitButtonTextClass,g=(o=this.mainContainer)==null?void 0:o.querySelector("."+p);g&&g.classList.add("visibility"),setTimeout(()=>{d&&d.classList.add("hidden"),g&&g.classList.remove("visibility"),c&&(c.disabled=!1)},2e3)}destroy(){this.focusTrapListener&&(document.removeEventListener("keydown",this.focusTrapListener),this.focusTrapListener=null)}}class zn{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"answerContainer",null),l(this,"showMoreVisible",!1),l(this,"renderFeedbackWidget",!1),l(this,"clicked",!1),l(this,"renderedWithShowMore",!1);var t;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.renderFeedbackWidget=((t=this.config.feedbackwidget)==null?void 0:t.renderFeedbackWidget)||!1,this.config.showMoreAfterWordCount&&(this.dataLayer.answerWidgetShowMoreLimit=this.config.showMoreAfterWordCount),typeof document<"u"&&(this.answerContainer=document?.getElementById(this.containerId)),this.initializeSubscriptions(),this.dataLayer.setIsAnswerWidgetCreated(!0)}initializeSubscriptions(){this.dataLayer.$answer.subscribe(()=>{this.clicked?this.showMoreVisible=!1:this.showMoreVisible=this.dataLayer.parsedData.shouldShowAnswerLoadMore,this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerLoading.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answerError.subscribe(e=>{e&&setTimeout(()=>{this.renderMainTemplate(this.generateTemplateData())},100)}),this.dataLayer.$searchObject.subscribe(()=>{this.clicked=!1,this.renderedWithShowMore=!1,this.showMoreVisible=!1}),this.dataLayer.$paginationData.subscribe(()=>{this.renderMainTemplate(this.generateTemplateData())}),this.dataLayer.$answer.subscribe(e=>{e&&setTimeout(()=>{this.initializeWidget()},600)}),this.dataLayer.$searchResults.subscribe(e=>{e&&this.dataLayer.$answer.getValue()&&setTimeout(()=>{this.initializeWidget()},600)})}searchstaxFeedbackTextAreaOverride(){return"Question: "+(this.dataLayer.searchObject.query==="undefined"?"":this.dataLayer.searchObject.query)+" Answer: "+this.dataLayer.parsedData.getAnswerData}initializeWidget(){var e,t,s,a,i;this.renderFeedbackWidget&&document.getElementById("feedbackWidgetContainer")&&!this.dataLayer.answerLoading&&new Fn({analyticsKey:this.dataLayer.parsedData.trackingData.trackApiKey,containerId:"feedbackWidgetContainer",lightweight:!0,model:this.dataLayer.parsedData.trackingData.model,language:this.dataLayer.parsedData.trackingData.language,emailOverride:(e=this.config.feedbackwidget)==null?void 0:e.emailOverride,feedbackTextAreaOverride:((t=this.config.feedbackwidget)==null?void 0:t.searchstaxFeedbackTextAreaOverride)??this.searchstaxFeedbackTextAreaOverride.bind(this),thumbsUpValue:((s=this.config.feedbackwidget)==null?void 0:s.thumbsUpValue)??10,thumbsDownValue:((a=this.config.feedbackwidget)==null?void 0:a.thumbsDownValue)??0,lightweightTemplateOverride:(i=this.config.feedbackwidget)==null?void 0:i.lightweightTemplateOverride})}showMore(e){e.preventDefault(),this.clicked=!0,this.showMoreVisible=!1,this.renderMainTemplate(this.generateTemplateData()),setTimeout(()=>{this.initializeWidget()},600)}attachClickEventToShowMore(){const e=document.querySelector(".searchstax-answer-load-more-button");e&&e.addEventListener("click",this.showMore.bind(this))}trackLinkClick(e){e.preventDefault(),e.stopPropagation();const t=e.target.getAttribute("href");ce.trackAnswerLinkClick({href:t,answer:this.dataLayer.parsedData.getAnswerData,...this.dataLayer.parsedData.trackingData}).then(()=>{window.open(t,"_blank")}).catch(()=>{window.open(t,"_blank")})}attachLinkTracking(){document.querySelectorAll(".searchstax-answer-link").forEach(e=>{e.getAttribute("listener")!=="true"&&(e.setAttribute("listener","true"),e.addEventListener("click",this.trackLinkClick.bind(this)))})}renderMainTemplate(e){var t,s,a;const i=((a=(s=(t=this.config)==null?void 0:t.templates)==null?void 0:s.main)==null?void 0:a.template)||v.answer.main.template;this.dataLayer.renderingEngine===$.mustache?(!this.renderedWithShowMore||!e.answerLoading||this.clicked)&&(e.showMoreButtonVisible&&(this.renderedWithShowMore=!0),this.answerContainer.innerHTML=A.render(i,e),setTimeout(()=>{this.attachClickEventToShowMore(),this.attachLinkTracking()},100)):setTimeout(()=>{this.attachLinkTracking()},500)}generateTemplateData(){const e={...this.dataLayer.parsedData.data,showMoreButtonVisible:this.showMoreVisible};return this.dataLayer.setAnswerFullData(e),e}}class Es{constructor(e){l(this,"dataLayer"),l(this,"config"),l(this,"containerId"),l(this,"currentSelectValue",""),l(this,"locationInput"),l(this,"radiusInput"),l(this,"locationDecode"),l(this,"locationDecodeCoordinatesToAddress");var t,s;this.dataLayer=e.dataLayer,this.config=e.config,this.containerId=e.containerId,this.locationDecode=(t=e.config.hooks)==null?void 0:t.locationDecode,this.locationDecodeCoordinatesToAddress=(s=e.config.hooks)==null?void 0:s.locationDecodeCoordinatesToAddress,this.dataLayer.locationEnabled&&this.dataLayer.$inputTemplateRendered.subscribeUntil(()=>{this.renderMainTemplate(),this.attachSubscriptions()},!0,500)}renderMainTemplate(){var e,t,s,a,i,o,r,c;if(typeof document<"u"){const u=document?.getElementById(this.containerId);if(!u)throw new Error("Search input container not found");const d=((t=(e=this.config.templates)==null?void 0:e.mainTemplate)==null?void 0:t.template)||v.location.mainTemplate.template,p={...this.dataLayer.parsedData.data};if(this.dataLayer.setLocationWidgetTemplateData(p),this.dataLayer.renderingEngine===$.mustache){const g=A.render(d,p);u.innerHTML=g;const f=((a=(s=this.config.templates)==null?void 0:s.mainTemplate)==null?void 0:a.locationInputId)||v.location.mainTemplate.locationInputId,y=document?.querySelector(`#${f}`);if(y)this.locationInput=y,y.addEventListener("blur",this.blurEvent.bind(this)),y.addEventListener("focus",this.focusEvent.bind(this));else throw new Error("Input not found");const m=((o=(i=this.config.templates)==null?void 0:i.mainTemplate)==null?void 0:o.radiusInputId)||v.location.mainTemplate.radiusInputId,M=document?.querySelector(`#${m}`);M instanceof HTMLSelectElement&&(this.radiusInput=M,M.addEventListener("change",this.radiusSelectChangeEvent.bind(this)));const C=((c=(r=this.config.templates)==null?void 0:r.mainTemplate)==null?void 0:c.currentLocationActionButtonId)||v.location.mainTemplate.currentLocationActionButtonId,T=document?.querySelector(`#${C}`);T&&T.addEventListener("click",this.getCurrentLocation.bind(this))}}}setCurrentLocationFields(e){this.dataLayer.setLocationCoordinatesDecoded(e),this.dataLayer.setSearchLocation(this.dataLayer.searchLocationCoordinatesDecoded),this.dataLayer.renderingEngine===$.mustache&&this.locationInput&&(this.locationInput.value=this.dataLayer.searchLocationCoordinatesDecoded)}getCurrentLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(e=>{const t=e.coords.latitude.toString(),s=e.coords.longitude.toString(),a=Math.floor(parseFloat(t)*100)/100,i=Math.floor(parseFloat(s)*100)/100;this.dataLayer.setSearchLat(a+""),this.dataLayer.setSearchLong(i+"");const o=this.locationDecodeCoordinatesToAddress;o?o(a+"",i+"").then(r=>{this.setCurrentLocationFields(r.address||"Current Location")}).catch(()=>{this.setCurrentLocationFields("Current Location")}):this.setCurrentLocationFields("Current Location")},()=>{console.error("Unable to retrieve your location")}):console.error("Geolocation is not supported by this browser.")}setRadiusValue(e){this.dataLayer.setSearchRadius(e)}radiusSelectChangeEvent(e){this.currentSelectValue=e.target.value,this.setRadiusValue(this.currentSelectValue)}attachSubscriptions(){this.dataLayer.$searchObject.subscribe(e=>{this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(e.location.address??"")),this.radiusInput&&e.location.radius&&(this.radiusInput.value=e.location.radius||"")})}cleanSuggestionTerm(e){return Y.removeXSSRiskyTags(e.replace(/(<([^>]+)>)/gi,"")).trim()}triggerGeocoder(e){const t=this.locationDecode;this.dataLayer.setLocationDecodingLoading(!0),e&&this.dataLayer.searchLocation!==e&&e!==this.dataLayer.searchLocationCoordinatesDecoded?t(e).then(s=>{this.dataLayer.setSearchLocation(s.address||""),this.dataLayer.setSearchLat(s.lat||""),this.dataLayer.setSearchLong(s.lon||""),this.locationInput&&(this.locationInput.value=this.cleanSuggestionTerm(s.address||"")),this.dataLayer.renderingEngine===$.mustache&&s.error&&this.locationInput&&this.locationInput.classList.add("searchstax-input-location-error"),s.error?this.dataLayer.setLocationError(!0):this.dataLayer.setLocationError(!1),this.dataLayer.setLocationDecodingLoading(!1)}).catch(()=>{this.dataLayer.setLocationDecodingLoading(!1)}):e===""&&(this.dataLayer.setSearchLocation(void 0),this.dataLayer.setSearchLat(void 0),this.dataLayer.setSearchLong(void 0),this.dataLayer.setLocationDecodingLoading(!1))}focusEvent(e){e.target.classList.remove("searchstax-input-location-error"),this.dataLayer.setLocationError(!1)}blurEvent(e){const t=e.target.value;this.triggerGeocoder(t)}}class $n{constructor(e=$.mustache){l(this,"routerEnabled",!1),l(this,"cachedQuery",""),l(this,"routerHelper"),l(this,"searchHelper"),l(this,"searchResultsConfig"),l(this,"searchPaginationConfig"),l(this,"searchFeedbackConfig"),l(this,"searchSortingConfig"),l(this,"searchFacetsConfig"),l(this,"relatedSearchesConfig"),l(this,"externalPromotionsConfig"),l(this,"searchInputWidget"),l(this,"searchLocationWidget"),l(this,"searchResultsWidget"),l(this,"searchFacetsWidget"),l(this,"searchPaginationWidget"),l(this,"searchFeedbackWidget"),l(this,"searchSortingWidget"),l(this,"relatedSearchesWidget"),l(this,"externalPromotionsWidget"),l(this,"answerWidget"),l(this,"locationObserver",null),l(this,"dataLayer"),l(this,"firstRequest",!0),l(this,"previousQuery",""),l(this,"eventSource",null),l(this,"renderEngine",$.mustache),e&&(this.renderEngine=e)}setRenderingEngine(e=$.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(s=>{this.dataLayer.searchstaxConfig.hooks.afterSearch(s)}),setTimeout(()=>{this.dataLayer.$searchObject.subscribe(s=>{var a,i,o,r,c,u;s.query!==this.previousQuery&&this.dataLayer.setAnswerData(""),s.query!==""&&s.query!==void 0&&s.query!=="undefined"?(this.search(s),s.query!==this.previousQuery&&this.startSSE(s.query)):(a=this.dataLayer.searchLocationConfig)!=null&&a.locationSearchEnabled&&!((i=this.dataLayer.searchLocationConfig)!=null&&i.locationValuesOverride)?this.getMetadata(s):(r=(o=this.dataLayer.searchLocationConfig)==null?void 0:o.locationValuesOverride)!=null&&r.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((u=(c=this.dataLayer.searchLocationConfig)==null?void 0:c.locationValuesOverride)==null?void 0:u.locationFilterDefaultValue),this.previousQuery=s.query})},10),this.dataLayer.$searchResults.subscribe(s=>{s&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackSearch({...this.dataLayer.parsedData.trackingData,impressions:this.dataLayer.searchResultsMetadata.impressions})})}startSSE(e){var t,s;this.eventSource&&((t=this.eventSource)==null||t.close(),this.dataLayer.setAnswerData("")),this.dataLayer.turnAIAnswerGenerationOn===!0&&this.dataLayer.questionURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&(this.eventSource=(s=this.searchHelper)==null?void 0:s.startSSE(e,this.parseAnswerResultsResponse.bind(this)))}attachAnalyticsScript(e){ce.attachAnalyticsScript(e)}initialize(e){var t,s;if(this.dataLayer=new Ji("searchstax_session_id",e.sessionId),this.renderEngine&&this.dataLayer.setRenderingEngine(this.renderEngine),this.handleHooks(),e.questionURL&&(this.dataLayer.questionURL=e.questionURL),e.analyticsBaseUrl&&typeof window<"u"&&(window.analyticsBaseUrl=e.analyticsBaseUrl,window._msq=e._msq||[],this.attachAnalyticsScript(e.analyticsSrc)),e.autoCorrect===!1&&(this.dataLayer.autoCorrect=!1),e.language&&this.dataLayer.setLanguage(e.language),e.model&&this.dataLayer.setModel(e.model),this.dataLayer.searchstaxConfig||(this.dataLayer.setSearchstaxConfig(e),this.searchHelper=new tn({...e,sessionId:this.dataLayer.sessionId},this.dataLayer),this.dataLayer.searchHelper=this.searchHelper),((t=e.router)==null?void 0:t.enabled)===void 0||((s=e.router)==null?void 0:s.enabled)===!0){this.routerEnabled=!0,this.routerHelper=new vs(e.router?e.router:{enabled:!0});const a=this.routerHelper.urlToSearchObject(window?.location.href??"");this.dataLayer.searchObject.itemsPerPage?a.itemsPerPage=this.dataLayer.searchObject.itemsPerPage:a.itemsPerPage&&this.dataLayer.setItemsPerPage(a.itemsPerPage),a.model&&this.dataLayer.setModel(a.model),a.location&&(a.location.address&&this.dataLayer.setSearchLocation(a.location.address),a.location.lat&&this.dataLayer.setSearchLat(a.location.lat),a.location.lon&&this.dataLayer.setSearchLong(a.location.lon),a.location.radius&&this.dataLayer.setSearchRadius(a.location.radius)),this.dataLayer.setSearchObject(a),addEventListener("popstate",()=>{this.routerHelper&&this.dataLayer.setSearchObject(this.routerHelper.urlToSearchObject(window?.location.href??"",this.dataLayer.searchObject.itemsPerPage))})}else this.routerHelper=new vs({})}getMetadata(e){this.searchHelper&&(e.query==="undefined"||e.query===void 0)&&this.dataLayer.setSearchObject({...e,query:"*"})}search(e){if(this.searchHelper){const t=this.dataLayer.forceNotCorrect;this.searchHelper.url&&(this.searchHelper.search(e,this.parseSearchResultsResponse.bind(this),this.firstRequest,t),this.firstRequest=!1),this.getRelatedSearches()}}getRelatedSearches(){var e;this.searchHelper&&this.relatedSearchesConfig&&(e=this.relatedSearchesConfig)!=null&&e.relatedSearchesURL&&this.dataLayer.searchObject.query!==void 0&&this.dataLayer.searchObject.query!=="undefined"&&this.searchHelper.getRelatedSearches(this.dataLayer.searchObject,this.relatedSearchesConfig.relatedSearchesURL,this.relatedSearchesConfig.relatedSearchesAPIKey,this.parseRelatedSearchesResponse.bind(this))}parseRelatedSearchesResponse(e){var t,s;const a=(((t=e.response)==null?void 0:t.docs)??[]).map((o,r)=>({...o,position:r+1})),i=[];for(const o of a)i.push({relatedSearch:o.related_search,position:o.position});this.dataLayer.setSearchRelatedSearches(a),this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&i.length&&ce.trackRelatedSearches({...this.dataLayer.parsedData.trackingData,impressions:i,totalRelatredSearches:((s=this.dataLayer.searchRelatedSearches)==null?void 0:s.length)??0})}handleRouter(){if(this.routerEnabled){const e={...this.dataLayer.searchObject};this.dataLayer.isInfiniteScroll&&delete e.page,this.routerHelper.updateUrl(e)}}parseSearchResultsResponseMetadata(e){var t,s,a,i;const o=tt.extractSearchResultsMetadata(e),r=((s=(t=this.dataLayer.searchLocationConfig)==null?void 0:t.locationValuesOverride)==null?void 0:s.locationFilterDefaultValue)??((i=(a=o.location)==null?void 0:a.filter)==null?void 0:i.defaultValue);!this.dataLayer.searchRadius&&r&&this.dataLayer.setSearchRadius(r),this.dataLayer.setSearchResultsMetadata(o)}parseSearchResultsResponse(e){var t,s;this.handleRouter(),this.dataLayer.setItemsPerPage(parseInt(e.responseHeader.params.rows)),this.dataLayer.setModel(e.responseHeader.params.model);let a=tt.combineResultsWithMetadata(e),i=tt.extractFacets(e);this.dataLayer.setSearchFacets(i),(s=(t=this.dataLayer.searchstaxConfig)==null?void 0:t.hooks)!=null&&s.afterSearch&&(a=this.dataLayer.searchstaxConfig.hooks.afterSearch(a)),this.dataLayer.setSearchExternalPromotions(e.externalLinks??[]),this.parseSearchResultsResponseMetadata(e),this.dataLayer.setSearchResults(a)}parseAnswerResultsResponse(e){this.handleRouter(),e!==Oe.question&&e!==Oe.notQuestion&&(this.dataLayer.setAnswerLoading(!0),this.dataLayer.setAnswerData(this.dataLayer.getAnswerData+e))}cacheFacets(e){var t,s;e?(t=this.searchHelper)==null||t.cacheFacets(!0).then(()=>{}):(s=this.searchHelper)==null||s.cacheFacets().then(()=>{})}parseSuggestSuggestResponse(e){var t,s;let a=e;(s=(t=this.dataLayer.searchInputConfig)==null?void 0:t.hooks)!=null&&s.afterAutosuggest&&(a=this.dataLayer.searchInputConfig.hooks.afterAutosuggest(e)),this.dataLayer.setSearchAutosuggest(a)}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.$locationEnabled.subscribeUntilHasValue(()=>{this.dataLayer.setSearchInputConfig(t),this.searchInputWidget=new Nn({containerId:e,config:t,searchTrigger:this.executeSearch.bind(this),suggestTrigger:this.executeSuggest.bind(this),dataLayer:this.dataLayer})},200)}addSearchLocationWidget(e,t){var s,a;this.dataLayer.searchLocationConfig||(t.locationSearchEnabled?(this.dataLayer.setLocationEnabled(!0),this.dataLayer.setSearchLocationConfig(t),t.locationValuesOverride?(this.searchLocationWidget=new Es({containerId:e,config:t,dataLayer:this.dataLayer}),(s=t?.locationValuesOverride)!=null&&s.locationFilterDefaultValue&&this.dataLayer.setSearchRadius((a=t?.locationValuesOverride)==null?void 0:a.locationFilterDefaultValue)):this.dataLayer.$searchResultsMetadata.subscribeUntilHasValue(()=>{this.searchLocationWidget=new Es({containerId:e,config:t,dataLayer:this.dataLayer})},0)):this.dataLayer.setLocationEnabled(!1))}addAnswerWidget(e,t){this.dataLayer.turnAIAnswerGenerationOn=!0,this.startSSE(this.dataLayer.searchObject.query),this.dataLayer.setAnswerData(""),this.answerWidget=new zn({containerId:e,config:t,dataLayer:this.dataLayer})}addSearchResultsWidget(e,t){this.searchResultsConfig||(this.searchResultsConfig=t,this.searchResultsWidget=new On({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 In({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper})}addSearchFeedbackWidget(e,t){this.searchFeedbackConfig=t,this.searchFeedbackWidget=new Rn({containerId:e,config:t,dataLayer:this.dataLayer,searchTrigger:this.executeSearch.bind(this)})}addSearchSortingWidget(e,t){this.searchSortingConfig=t,this.searchSortingWidget=new Pn({containerId:e,config:t,dataLayer:this.dataLayer})}addRelatedSearchesWidget(e,t){this.relatedSearchesConfig=t,this.relatedSearchesWidget=new jn({containerId:e,config:t,dataLayer:this.dataLayer,trackRelatedSearchClick:this.trackRelatedSearchClick.bind(this)}),setTimeout(()=>{this.getRelatedSearches()},0)}addExternalPromotionsWidget(e,t){this.externalPromotionsConfig=t,this.externalPromotionsWidget=new En({containerId:e,config:t,dataLayer:this.dataLayer})}addFacetsWidget(e,t){this.searchFacetsConfig=t,this.searchFacetsWidget=new Dn({containerId:e,config:t,dataLayer:this.dataLayer,routerHelper:this.routerHelper},this.cacheFacets.bind(this))}executeSearch(e,t){const s={...this.dataLayer.searchObject};s.query=Y.removeXSSRiskyTags(e),s.page=1,s.facets=[],s.location={...s.location},this.locationObserver&&this.dataLayer.$locationDecodingLoading.unsubscribe(this.locationObserver),this.locationObserver=this.dataLayer.$locationDecodingLoading.subscribeUntil(()=>{var a,i;s.location.address=this.dataLayer.searchLocation,s.location.radius=this.dataLayer.searchRadius,s.location.lat=this.dataLayer.searchLat,s.location.lon=this.dataLayer.searchLong,this.dataLayer.forceNotCorrect=!!t;let o=(a=this.routerHelper)==null?void 0:a.searchObjectToParams(s);o&&(o=(i=this.routerHelper)==null?void 0:i.extractParamsThatDoNotStartWithRouteName(o)),o&&(s.additionalProps=Object.keys(o).map(r=>o?{key:r,value:o[r]}:{key:"",value:""})),this.dataLayer.setSearchObject(s),this.dataLayer.lastSearchValue=s.query},!1)}executeSuggest(e){var t,s;let a={term:e,queryParams:[]};(s=(t=this.dataLayer.searchInputConfig)==null?void 0:t.hooks)!=null&&s.beforeAutosuggest&&(a=this.dataLayer.searchInputConfig.hooks.beforeAutosuggest(a)),a&&a.term!==void 0&&a.queryParams!==void 0&&this.suggest(a.term,a.queryParams)}trackRelatedSearchClick(e){var t;this.dataLayer.searchResultsMetadata&&this.dataLayer.searchRelatedSearches&&!this.dataLayer.cookiesDisabled&&ce.trackRelatedSearchClick({...this.dataLayer.parsedData.trackingData,relatedSearch:e,totalRelatredSearches:((t=this.dataLayer.searchRelatedSearches)==null?void 0:t.length)??0})}executeLinkClick(e){var t,s;let a=tt.findResultByUniqueId(e,this.dataLayer.searchResults??[]);a&&((s=(t=this.searchResultsConfig)==null?void 0:t.hooks)!=null&&s.afterLinkClick&&(a=this.searchResultsConfig.hooks.afterLinkClick(a)),a&&this.dataLayer.searchResultsMetadata&&!this.dataLayer.cookiesDisabled&&ce.trackClick({result:a,...this.dataLayer.parsedData.trackingData}).then(()=>{typeof window<"u"&&(window.location.href=a?.url??"")}).catch(()=>{typeof window<"u"&&(window.location.href=a?.url??"")}))}setPage(e){var t;(t=this.searchPaginationWidget)==null||t.goToPage(e)}setCookiesDisabled(e){this.dataLayer.setCookiesDisabled(e)}changeResultTemplate(e){var t,s,a;this.searchResultsConfig&&(this.searchResultsConfig.templates=(t=this.searchResultsConfig)!=null&&t.templates?{...(s=this.searchResultsConfig)==null?void 0:s.templates,...e}:e,(a=this.searchResultsWidget)==null||a.changeTemplate())}}export{$n as Searchstax};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@searchstax-inc/searchstudio-ux-js",
3
3
  "private": false,
4
- "version": "4.1.49",
4
+ "version": "4.1.54",
5
5
  "files": [
6
6
  "dist",
7
7
  "CHANGELOG.md"