import{Segment}from"@dna/analytics";import{client}from"@dna/constructor";import{RespondToViewport,WithProfiler}from"@dna/mixins";import styles from"@dna/styles";import{t}from"@dna/utils";import{LitElement,css,html,nothing,repeat}from"@lit";import{Task}from"@lit/task";const cacheKey="cached_best_sellers_search_suggestions";class DNASearchTerms extends WithProfiler(RespondToViewport(LitElement)){static properties={autocompleteTerms:{type:Array},hideTitle:{type:Boolean},showAutocompleteTerms:{type:Boolean},podId:{type:String},resultId:{type:String}};constructor(){super(),this.autocompleteTerms=[],this.hideTitle=!1,this.searchQuery="",this.showAutocompleteTerms=!1,this.podId="best_sellers_search_suggestions",this.resultId=""}connectedCallback(){super.connectedCallback(),document.addEventListener("dna:search:autocomplete",this._handleSearchAutocomplete)}disconnectedCallback(){document.removeEventListener("dna:search:autocomplete",this._handleSearchAutocomplete)}get searchTerms(){return this.autocompleteTerms&&this.autocompleteTerms.length>0?(this.hideTitle=!0,this.showAutocompleteTerms=!0,this.autocompleteTerms):(this.showAutocompleteTerms=!1,this._termsTask.value?.searchTerms)}_termsTask=new Task(this,{task:async()=>{try{const cachedData=sessionStorage.getItem(cacheKey);if(cachedData){const parsedData=JSON.parse(cachedData);return this.resultId=parsedData.resultId,parsedData}const response2=await client.getRecommendationTerms(this.podId,{numResults:4,section:"Search Suggestions"});return this.resultId=response2.resultId,sessionStorage.setItem(cacheKey,JSON.stringify(response2)),response2}catch(err){throw console.error("Error fetching results:",err),new Error(response)}},args:()=>[]});_handleSearchAutocomplete=event=>{this.autocompleteTerms=event.detail?.searchTerms||[],this.searchQuery=event.detail?.query};_getSearchUrl=term=>{const searchInputValue=encodeURIComponent(term);return`${window.location.origin}${Shopify.routes.root}search/?q=${searchInputValue}`};_trackSearchTermClicked=term=>{Segment.protect(()=>{Segment.track(Segment.CONSTANTS.EVENTS.SEARCH_SUGGESTED_TERM_CLICKED,{query:this.searchQuery,search_suggested_term_text:term})})};_renderHeader(){return this.autocompleteTerms&&this.autocompleteTerms.length>0&&this.isMobile?nothing:this.autocompleteTerms&&this.autocompleteTerms.length>0?html`