1window.theme=window.theme||{},theme.PredictiveSearch=(function(){var DEBOUNCE_MS=300,SECTION_ID="predictive-search",cachedResults={},instances=[],documentEventsBound=!1,selectors={container:"[data-predictive-search]",input:"[data-predictive-search-input]",results:"[data-predictive-search-results]",clear:"[data-predictive-search-clear]",status:".predictive-search-status",searchDrawer:"#SearchDrawer",siteHeader:".site-header"},classes={hidden:"hide",open:"predictive-search--open"};function init(){$(selectors.container).each(function(){initContainer($(this))}),documentEventsBound||(bindDocumentEvents(),documentEventsBound=!0)}function initContainer($container){var $input=$container.find(selectors.input),$results=$container.find(selectors.results),$clear=$container.find(selectors.clear),$form=$input.closest("form"),$status=$container.find(selectors.status),state={$container:$container,$input:$input,$results:$results,$clear:$clear,$form:$form,$status:$status,debounceTimer:null,abortController:new AbortController,searchTerm:"",isOpen:!1,resultsMaxHeight:!1,loadingText:$container.attr("data-loading-text")||theme.stringsPredictiveSearch&&theme.stringsPredictiveSearch.loading||"Loading"};instances.push(state),$input.on("input",debounce(function(){onChange(state)},DEBOUNCE_MS)),$clear.on("click",function(evt){evt.preventDefault(),$input.val("").trigger("focus"),toggleClearButton(state),state.searchTerm="",state.abortController.abort(),state.abortController=new AbortController,closeResults(state,!0)}),$input.on("focus",function(){onFocus(state)}),$container.on("focusout",function(){onFocusOut(state)}),$input.on("keydown",function(evt){onKeydown(state,evt)}),$input.on("keyup",function(evt){onKeyup(state,evt)}),$form.on("submit",function(evt){onFormSubmit(state,evt)}),$results.on("click","a",function(){closeResults(state)})}function debounce(fn,wait){var timeout;return function(){var context=this,args=arguments;clearTimeout(timeout),timeout=setTimeout(function(){fn.apply(context,args)},wait)}}function getQuery(state){return state.$input.val().trim()}function getQueryKey(searchTerm){return searchTerm.replace(/ /g,"-").toLowerCase()}function getPredictiveSearchUrl(){return theme.routes&&theme.routes.predictive_search_url?theme.routes.predictive_search_url:"/search/suggest"}function onChange(state){toggleClearButton(state);var newSearchTerm=getQuery(state);if((!state.searchTerm||!newSearchTerm.startsWith(state.searchTerm))&&state.$results.find(".predictive-search__list").remove(),updateSearchForTerm(state,state.searchTerm,newSearchTerm),state.searchTerm=newSearchTerm,!state.searchTerm.length){closeResults(state,!0);return}getSearchResults(state,state.searchTerm)}function onFocus(state){var currentSearchTerm=getQuery(state);currentSearchTerm.length&&(state.searchTerm!==currentSearchTerm?onChange(state):state.$container.attr("data-results")==="true"?openResults(state):getSearchResults(state,state.searchTerm))}function onFocusOut(state){setTimeout(function(){state.$container[0].contains(document.activeElement)||closeResults(state)})}function onKeydown(state,evt){(evt.key==="ArrowUp"||evt.key==="ArrowDown")&&evt.preventDefault(),evt.key==="Escape"&&closeResults(state)}function onKeyup(state,evt){switch(getQuery(state).length||closeResults(state,!0),evt.key){case"ArrowUp":switchOption(state,"up");break;case"ArrowDown":switchOption(state,"down");break;case"Enter":selectOption(state);break;default:break}}function onFormSubmit(state,evt){(!getQuery(state).length||state.$results.find('[aria-selected="true"] a').length)&&evt.preventDefault()}function updateSearchForTerm(state,previousTerm,newTerm){var $searchForText=state.$results.find("[data-predictive-search-search-for-text]");if(!(!$searchForText.length||!previousTerm)){var currentButtonText=$searchForText.text(),matches=currentButtonText.match(new RegExp(escapeRegExp(previousTerm),"g"));matches&&matches.length>1||$searchForText.text(currentButtonText.replace(previousTerm,newTerm))}}function escapeRegExp(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function switchOption(state,direction){if(state.$container.hasClass(classe
1s.open)){var moveUp=direction==="up",$selected=state.$results.find('[aria-selected="true"]'),$allVisible=state.$results.find('li[role="option"], button[role="option"]').filter(function(){return this.offsetParent!==null});if($allVisible.length&&!(moveUp&&!$selected.length)){var selectedIndex=$allVisible.index($selected),activeIndex=0;if(!moveUp&&$selected.length?activeIndex=selectedIndex===$allVisible.length-1?0:selectedIndex+1:moveUp&&(activeIndex=selectedIndex===0?$allVisible.length-1:selectedIndex-1),activeIndex!==selectedIndex){$selected.attr("aria-selected","false");var $active=$allVisible.eq(activeIndex);$active.attr("aria-selected","true"),state.$input.attr("aria-activedescendant",$active.attr("id")||"")}}}}function selectOption(state){var $selected=state.$results.find('[aria-selected="true"] a, button[aria-selected="true"]');$selected.length&&$selected[0].click()}function getSearchResults(state,searchTerm){var queryKey=getQueryKey(searchTerm);if(setLiveRegionLoadingState(state),cachedResults[queryKey]){renderSearchResults(state,cachedResults[queryKey]);return}state.abortController.abort(),state.abortController=new AbortController;var url=getPredictiveSearchUrl()+"?q="+encodeURIComponent(searchTerm)+"§ion_id="+SECTION_ID;fetch(url,{signal:state.abortController.signal}).then(function(response){if(!response.ok)throw closeResults(state),new Error(response.status);return response.text()}).then(function(text){var parsed=new DOMParser().parseFromString(text,"text/html"),section=parsed.querySelector("#shopify-section-"+SECTION_ID);if(!section){closeResults(state);return}var resultsMarkup=section.innerHTML;cachedResults[queryKey]=resultsMarkup,renderSearchResults(state,resultsMarkup)}).catch(function(error){error&&error.name==="AbortError"||closeResults(state)})}function setLiveRegionLoadingState(state){state.$status.length&&(state.$status.attr("aria-hidden","false").text(state.loadingText),state.$container.attr("data-loading","true"))}function setLiveRegionText(state,statusText){state.$status.length&&(state.$status.attr("aria-hidden","false").text(statusText),setTimeout(function(){state.$status.attr("aria-hidden","true")},1e3))}
1function renderSearchResults(state,resultsMarkup){if(!resultsMarkup.trim()){closeResults(state);return}state.$results.html(resultsMarkup),state.$container.attr("data-results","true"),state.$container.removeAttr("data-loading");var $liveRegion=state.$results.find("[data-predictive-search-live-region-count-value]");$liveRegion.length&&setLiveRegionText(state,$liveRegion.text()),openResults(state)}function getResultsMaxHeight(state){if(state.$container.closest(selectors.searchDrawer).length)return window.innerHeight-state.$container[0].getBoundingClientRect().bottom-16;var $header=$(selectors.siteHeader),headerBottom=$header.length?$header[0].getBoundingClientRect().bottom:0;return window.innerHeight-headerBottom}function openResults(state){var isDrawer=state.$container.closest(selectors.searchDrawer).length;isDrawer||(state.resultsMaxHeight=state.resultsMaxHeight||getResultsMaxHeight(state),state.$results.css("max-height",state.resultsMaxHeight+"px")),state.$results.removeClass(classes.hidden),state.$container.addClass(classe
1s.open),state.isOpen=!0,state.$container.closest(selectors.searchDrawer).length&&$(selectors.searchDrawer).addClass(classes.open),state.$input.attr("aria-expanded","true")}function closeResults(state,clearSearchTerm){clearSearchTerm&&(state.$input.val(""),state.$container.removeAttr("data-results"),state.searchTerm="",toggleClearButton(state)),state.$results.find('[aria-selected="true"]').attr("aria-selected","false"),state.$input.attr("aria-activedescendant",""),state.$container.removeAttr("data-loading"),state.$results.addClass(classes.hidden).empty(),state.$container.removeClass(classes.open),state.isOpen=!1,state.resultsMaxHeight=!1,state.$results.removeAttr("style"),state.$container.closest(selectors.searchDrawer).length&&$(selectors.searchDrawer).removeClass(classes.open),state.$input.attr("aria-expanded","false")}function toggleClearButton(state){state.$input.val().trim().length>0?state.$clear.removeClass(classes.hidden):state.$clear.addClass(classes.hidden)}function bindDocumentEvents(){if(window.MutationObserver&&$(selectors.searchDrawer).length){var observer=new MutationObserver(function(){document.body.classList.contains("js-drawer-open-top")||instances.forEach(function(state){state.$container.closest(selectors.searchDrawer).length&&closeResults(state)})});observer.observe(document.body,{attributes:!0,attributeFilter:["class"]})}}return{init:init}})(),$(function(){theme.PredictiveSearch.init()}); 2//# sourceMappingURL=/cdn/shop/t/109/assets/predictive-search.js.map?v=32620700305346438601784892730
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.