https://www.hameraypublishing.com/cdn/shop/t/3/assets/search-core.js?v=67616449755213306551779429574
1(function(){"use strict";var S3_PRODUCTS_URL="https://hameray-files.s3.amazonaws.com/products.json",S3_COLLECTIONS_URL="https://hameray-files.s3.amazonaws.com/collections.json",S3_PAGES_URL="https://hameray-files.s3.amazonaws.com/pages.json",S3_SYNONYMS_URL="https://hameray-files.s3.amazonaws.com/collection_synonyms.json",MAX_PRODUCTS=10,MAX_PRODUCTS_EXPANDED=50,MAX_COLLECTIONS=5,MAX_COLLECTIONS_EXPANDED=20,MAX_PAGES=5,MAX_PAGES_EXPANDED=20,CACHE_KEY="customSearchData",CACHE_TTL=36e5,fuseProducts=null,fuseCollections=null,fusePages=null,rawProducts=[],rawCollections=[],rawPages=[],collectionsByTitle={},productsByHandle={},collectionSynonyms={},dataLoaded=!1,dataLoading=!1,dataLoadFailed=!1,pendingCallbacks=[];function loadData(callback){if(dataLoaded)return callback();if(pendingCallbacks.push(callback),dataLoading)return;dataLoading=!0;try{var cached=localStorage.getItem(CACHE_KEY);if(cached){var parsed=JSON.parse(cached);if(parsed.timestamp&&Date.now()-parsed.timestamp<CACHE_TTL){initFuse(parsed.products,parsed.collections,parsed.pages||[]),collectionSynonyms=parsed.synonyms||{},dataLoaded=!0,dataLoading=!1,flushCallbacks();return}}}catch(e){}var productsReady=!1,collectionsReady=!1,pagesReady=!1,synonymsReady=!1,products=[],collections=[],pages=[],synonyms={};function checkDone(){if(!(!productsReady||!collectionsReady||!pagesReady||!synonymsReady)){if(products.length>0&&collections.length>0&&pages.length>0)try{localStorage.setItem(CACHE_KEY,JSON.stringify({timestamp:Date.now(),products:products,collections:collections,pages:pages,synonyms:synonyms}))}catch(e){}dataLoadFailed=products.length===0||collections.length===0,collectionSynonyms=synonyms,initFuse(products,collections,pages),dataLoaded=!0,dataLoading=!1,flushCallbacks()}}fetch(S3_PRODUCTS_URL).then(function(r){if(!r.ok)throw new Error("HTTP "+r.status);return r.json()}).then(function(data){products=data,productsReady=!0,checkDone()}).catch(function(){products=[],productsReady=!0,checkDone()}),fetch(S3_COLLECTIONS_URL).then(function(r){if(!r.ok)throw new Error("HTTP "+r.status);return r.json()}).then(function(data){collections=data,collectionsReady=!0,checkDone()}).catch(function(){collections=[],collectionsReady=!0,checkDone()}),fetch(S3_PAGES_URL).then(function(r){if(!r.ok)throw new Error("HTTP "+r.status);return r.json()}).then(function(data){pages=data,pagesReady=!0,checkDone()}).catch(function(){pages=[],pagesReady=!0,checkDone()}),fetch(S3_SYNONYMS_URL).then(function(r){if(!r.ok)throw new Error("HTTP "+r.status);return r.json()}).then(function(data){synonyms=data||{},synonymsReady=!0,checkDone()}).catch(function(){synonyms={},synonymsReady=!0,checkDone()})}setTimeout(function(){loadData(function(){})},100);function flushCallbacks(){var cbs=pendingCallbacks.slice();pendingCallbacks=[];for(var i=0;i<cbs.length;i++)cbs[i]()}function stripDiacritics(str){return str.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function normalizeTitle(str){return stripDiacritics(str).replace(/&/g,"and").replace(/\+/g,"and").replace(/['''`]/g,"")}function addNormalizedFields(items){items.forEach(function(item){item._titleNorm=normalizeTitle(item.title||"")})}function initFuse(products,collections,pages){rawProducts=products,rawCollections=collections,rawPages=pages,addNormalizedFields(products),addNormalizedFields(collections),addNormalizedFields(pages),collectionsByTitle={},collections.forEach(function(c){var key=normalizeTitle(c.title||"").toLowerCase().trim();collectionsByTitle[key]=c}),productsByHandle={},products.forEach(function(p){productsByHandle[p.handle]=p}),fuseProducts=new Fuse(products,{keys:[{name:"title",weight:.5},{name:"_titleNorm",weight:.5},{name:"product_type",weight:.2},{name:"tags",weight:.1},{name:"codes",weight:.8},{name:"description",weight:.15},{name:"language_pair",weight:.3},{name:"paired_text",weight:.3}],threshold:.2,includeMatches:!0,includeScore:!0,minMatchCharLength:2,ignoreLocation:!0}),fuseCollections=new Fuse(collections,{keys:[{name:"title",weight:.6},{name:"_titleNorm",weight:.6},{name:"language_pair",weight:.2},{name:"description",weight:.05}],threshold:.15,includeMatches:!0,includeScore:!0,minMatchCharLength:2,ignoreLocation:!0}
1),fusePages=new Fuse(pages,{keys:["title","_titleNorm","page_type","tags"],threshold:.2,includeMatches:!0,includeScore:!0,minMatchCharLength:2,ignoreLocation:!0})}var SYNONYMS={first:"1st","1st":"first",second:"2nd","2nd":"second",third:"3rd","3rd":"third",fourth:"4th","4th":"fourth",fifth:"5th","5th":"fifth",sixth:"6th","6th":"sixth",seventh:"7th","7th":"seventh",eighth:"8th","8th":"eighth",kindergarten:"k",k:"kindergarten",nonfiction:"non-fiction","non-fiction":"nonfiction","read-aloud":"read aloud",readaloud:"read-aloud",informational:"nonfiction",fiction:"narrative",narrative:"fiction","&":"and",and:"&","+":"and",gr:"grade",grl:"guided reading level",lvl:"level",lv:"level",bio:"biography",info:"informational",lang:"language",esp:"spanish",span:"spanish",eng:"english",lit:"literature",elem:"elementary",lib:"library",sel:"social emotional learning",ell:"english learners",pk:"pre-k","pre-k":"prek",prek:"pre-k"};function getSynonymQuery(query){var normalized=query.replace(/&/g," & ").replace(/\+/g," + ").replace(/\s+/g," ").trim(),words=normalized.split(/\s+/),hasSynonym=!1,replaced=words.map(function(w){var lower=w.toLowerCase(),syn=SYNONYMS[lower];return syn?(hasSynonym=!0,syn):w});return hasSynonym?replaced.join(" "):null}function mergeResults(primary,secondary,limit){var seen={},merged=[];return primary.forEach(function(r){seen[r.item.handle]||(seen[r.item.handle]=!0,merged.push(r))}),secondary.forEach(function(r){seen[r.item.handle]||(seen[r.item.handle]=!0,merged.push(r))}),merged.slice(0,limit)}function sortWithTitleBoost(results,query){var rawWords=stripDiacritics(query).replace(/&/g,"and").replace(/\+/g,"and").toLowerCase().trim().split(/\s+/),processed=preprocessQuery(rawWords),phrases=processed.filter(function(w){return w.indexOf(" ")!==-1}),words=processed.filter(function(w){return w.indexOf(" ")===-1&&w.length>=2});if(words.length===0&&phrases.length===0)return results;var wordRegexes=words.map(function(w){return new RegExp("\\b"+escapeRegex(w),"i")}),phraseRegexes=phrases.map(function(p){return new RegExp("\\b"+escapeRegex(p)+"\\b","i")}),fullQueryNorm=words.concat(phrases).join(" ");return results.forEach(function(r){for(var title=stripDiacritics(r.item.title||"").toLowerCase(),allWordBoundary=!0,allPartial=!0,i=0;i<words.length;i++)wordRegexes[i].test(title)||(allWordBoundary=!1),title.indexOf(words[i])===-1&&(allPartial=!1);for(var j=0;j<phraseRegexes.length;j++)phraseRegexes[j].test(title)||(allWordBoundary=!1,allPartial=!1);if(allWordBoundary)r._boost=0;else if(allPartial)r._boost=1;else{var tags=(r.item.tags||[]).join(" ").toLowerCase(),tagsMatch=tags.indexOf(fullQueryNorm)!==-1;r._boost=tagsMatch?1.5:2}}),results.sort(function(a,b){if(a._boost!==b._boost)return a._boost-b._boost;var scoreDiff=(a.score||0)-(b.score||0);return Math.abs(scoreDiff)>.01?scoreDiff:(a.item.title||"").localeCompare(b.item.title||"")}),results}var STOP_WORDS={the:1,and:1,for:1,with:1,from:1,that:1,this:1,are:1,was:1,our:1,all:1,can:1,has:1,not:1,but:1,its:1,in:1,on:1,of:1,to:1,at:1,by:1,is:1,it:1,or:1,an:1,my:1,do:1,no:1,so:1,up:1,if:1,about:1,del:1,las:1,los:1,por:1,una:1,con:1,en:1,el:1,la:1,de:1,que:1,un:1,es:1};function preprocessQuery(words){for(var merged=[],i=0;i<words.length;i++)words[i].toLowerCase()==="level"&&i+1<words.length&&words[i+1].length===1&&/^[a-zA-Z]$/.test(words[i+1])?(merged.push(words[i]+" "+words[i+1]),i++):words[i].length===1&&i+1<words.length&&words[i+1].length===1?(merged.push(words[i]+words[i+1]),i++):merged.push(words[i]);return merged}function isDescriptionOnlySubstring(item,word){var prefixRegex=new RegExp("\\b"+escapeRegex(word.toLowerCase()),"i"),title=normalizeTitle(item.title||""),tags=(item.tags||[]).join(" "),codes=item.codes||"",langPair=item.language_pair||"",pairedText=item.paired_text||"",productType=item.product_type||"",pageType=item.page_type||"";if(prefixRegex.test(title)||prefixRegex.test(tags)||prefixRegex.test(codes)||prefixRegex.test(langPair)||prefixRegex.test(pairedText)||prefixRegex.test(productType)||prefixRegex.test(pageType))return!1;var desc=item.description||"",wholeWordRegex=new RegExp("\\b"+escapeRegex(word.toLowerCase())+"\\b","i");return!wholeWordRegex.test(desc)}function searchFuse(fuse,query,limit){var rawWords=query.replace(/&/g,"and").replace(/\+/g,"and").replace(/['''`]/g,"").trim().split(/\s+/),allWords=preprocessQuery(rawWords),shortWords=allWords.filter(function(w){return w.length<2}),longWords=allWords.filter(function(w){return w.length>=2}
1),phraseFilters=longWords.filter(function(w){return w.indexOf(" ")!==-1}),singleWords=longWords.filter(function(w){return w.indexOf(" ")===-1}),keyWords=singleWords.filter(function(w){return!STOP_WORDS[w.toLowerCase()]}),filterWords=singleWords.filter(function(w){return STOP_WORDS[w.toLowerCase()]}),results;keyWords.length===0&&phraseFilters.length>0&&phraseFilters.forEach(function(p){var parts=p.split(/\s+/);parts.forEach(function(part){part.length>=2&&!STOP_WORDS[part.toLowerCase()]&&keyWords.indexOf(part)===-1&&keyWords.push(part)})}),keyWords.length===0&&singleWords.length>0&&(keyWords=[singleWords.reduce(function(a,b){return a.length>=b.length?a:b})]);var extraFilterWords=[];if(keyWords.length>2){var sorted=keyWords.slice().sort(function(a,b){return b.length-a.length}),fuseKeyWords=sorted.slice(0,2);extraFilterWords=keyWords.filter(function(w){return fuseKeyWords.indexOf(w)===-1}),keyWords=fuseKeyWords}if(keyWords.length===0)return[];if(keyWords.length===1&&filterWords.length===0&&shortWords.length===0)return results=fuse.search(keyWords[0],{limit:limit*3}),results=results.filter(function(r){return!isDescriptionOnlySubstring(r.item,keyWords[0])}),results=sortWithTitleBoost(results,query),results.slice(0,limit);for(var resultSets=keyWords.map(function(word){return fuse.search(word)}),handleMaps=resultSets.map(function(set){var map={};return set.forEach(function(r){map[r.item.handle]=r.score}),map}),smallestIdx=0,si=1;si<resultSets.length;si++)resultSets[si].length<resultSets[smallestIdx].length&&(smallestIdx=si);var combined=resultSets[smallestIdx].filter(function(r){for(var handle=r.item.handle,mi=0;mi<handleMaps.length;mi++)if(mi!==smallestIdx&&!(handle in handleMaps[mi]))return!1;return!0});combined=combined.filter(function(r){return!keyWords.some(function(w){return isDescriptionOnlySubstring(r.item,w)})});var requiredFilterWords=extraFilterWords.concat(shortWords),allPostFilters=requiredFilterWords.length>0||phraseFilters.length>0;if(allPostFilters){var postRegexes=requiredFilterWords.map(function(w){return w.length<=1?new RegExp("\\b"+escapeRegex(w.toLowerCase())+"\\b","i"):new RegExp("\\b"+escapeRegex(w.toLowerCase()),"i")}),phraseRegexes=phraseFilters.map(function(p){return new RegExp("\\b"+escapeRegex(p.toLowerCase())+"\\b","i")});combined=combined.filter(function(r){var title=normalizeTitle(r.item.title||"").toLowerCase(),tags=(r.item.tags||[]).join(" ").toLowerCase(),desc=(r.item.description||"").toLowerCase(),langPair=(r.item.language_pair||"").toLowerCase(),pairedText=(r.item.paired_text||"").toLowerCase(),searchable=title+" "+tags+" "+desc+" "+langPair+" "+pairedText,wordsMatch=postRegexes.every(function(regex){return regex.test(searchable)}),phrasesMatch=phraseRegexes.every(function(regex){return regex.test(searchable)});return wordsMatch&&phrasesMatch})}return combined=combined.map(function(r){var totalScore=0;return handleMaps.forEach(function(map){totalScore+=map[r.item.handle]||0}),{item:r.item,score:totalScore,matches:r.matches}}),combined=sortWithTitleBoost(combined,query),combined.slice(0,limit)}function exactPhraseSearch(items,phrase,limit){for(var lower=stripDiacritics(phrase).toLowerCase(),results=[],i=0;i<items.length;i++){var item=items[i],title=stripDiacritics(item.title||"").toLowerCase(),productType=stripDiacritics(item.product_type||"").toLowerCase(),tags=stripDiacritics((item.tags||[]).join(" ")).toLowerCase(),codes=(item.codes||[]).join(" ").toLowerCase(),desc=stripDiacritics(item.description||"").toLowerCase(),langPair=stripDiacritics(item.language_pair||"").toLowerCase(),pairedText=stripDiacritics(item.paired_text||"").toLowerCase();
1if(title.indexOf(lower)!==-1||productType.indexOf(lower)!==-1||tags.indexOf(lower)!==-1||codes.indexOf(lower)!==-1||desc.indexOf(lower)!==-1||langPair.indexOf(lower)!==-1||pairedText.indexOf(lower)!==-1){var score;title.indexOf(lower)!==-1?score=title.indexOf(lower)/title.length*.1:productType.indexOf(lower)!==-1||codes.indexOf(lower)!==-1?score=.5:langPair.indexOf(lower)!==-1||pairedText.indexOf(lower)!==-1?score=.8:desc.indexOf(lower)!==-1?score=.9:score=1,results.push({item:item,score:score,matches:[]})}}return results.sort(function(a,b){return a.score-b.score}),results.slice(0,limit)}function codeSearch(items,query,limit){for(var q=query.toUpperCase().replace(/[-\s]/g,""),results=[],i=0;i<items.length&&results.length<limit;i++)for(var codes=items[i].codes||[],j=0;j<codes.length;j++){var code=codes[j].toUpperCase().replace(/[-\s]/g,"");if(code.indexOf(q)===0||q.indexOf(code)===0){results.push({item:items[i],score:0,matches:[]});break}}return results}function looksLikeCode(query){var q=query.trim();return/^[A-Za-z]\d{2,}/.test(q)||/^\d{3,}[-\d]*$/.test(q)}function normalizeQuotes(query){return query.replace(/[\u201C\u201D\u201E\u201F\u2033\u2036\u00AB\u00BB\u0022\u02BA\u02DD\u02EE\u02F6\u05F4\uFF02]/g,'"')}function hasQuotedWords(query){var q=normalizeQuotes(query),count=(q.match(/"/g)||[]).length;return count>=2&&/"[^"]+"/.test(q)}function parseQuotedQuery(query){var q=normalizeQuotes(query),exactPhrases=[],remaining=q.replace(/"([^"]+)"/g,function(match,phrase){return exactPhrases.push(phrase),""}).trim(),fuzzyWords=remaining?remaining.split(/\s+/).filter(function(w){return w.length>=2}):[];return{exactPhrases:exactPhrases,fuzzyWords:fuzzyWords}}function mixedSearch(items,fuse,parsed,limit){for(var results=[],i=0;i<items.length;i++){var title=stripDiacritics(items[i].title||"").toLowerCase(),allMatch=parsed.exactPhrases.every(function(phrase){return new RegExp("\\b"+escapeRegex(stripDiacritics(phrase).toLowerCase())+"\\b","i").test(title)});allMatch&&results.push({item:items[i],score:0,matches:[]})}if(parsed.fuzzyWords.length>0){var fuseResultSets=parsed.fuzzyWords.map(function(word){var fuseResults=fuse.search(word),handleSet={};return fuseResults.forEach(function(r){handleSet[r.item.handle]=r.score}),handleSet});results=results.filter(function(r){return fuseResultSets.every(function(set){return r.item.handle in set})}),results.forEach(function(r){var total=0;fuseResultSets.forEach(function(set){total+=set[r.item.handle]||0}),r.score=total})}return results.sort(function(a,b){return a.score-b.score}),results.slice(0,limit)}function getSeriesCollections(productResults,limit){var seen={},seriesCounts={},totalProducts=productResults.length;productResults.forEach(function(r){var tags=r.item.tags||[];if(tags.length!==0){var seriesField=tags[0],seriesNames=seriesField.split(",").map(function(s){return s.trim()});seriesNames.forEach(function(name){var key=normalizeTitle(name).toLowerCase().trim();seriesCounts[key]||(seriesCounts[key]={name:name,count:0}),seriesCounts[key].count++})}});var results=[];return Object.keys(seriesCounts).forEach(function(key){var coll=collectionsByTitle[key];if(!(!coll||seen[coll.handle])){var ratio=totalProducts>0?seriesCounts[key].count/totalProducts:0;if(!(ratio<.1)){seen[coll.handle]=!0;var score=.9-seriesCounts[key].count/100;results.push({item:coll,score:score,matches:[]})}}}),results.sort(function(a,b){return a.score-b.score}),results.slice(0,limit)}function resolveBooklist(collections,query){var queryNorm=normalizeTitle(query.replace(/^"|"$/g,"")).toLowerCase().trim();if(!queryNorm||queryNorm.length<2)return null;var bestMatch=null,bestScore=3;if(collectionSynonyms&&collectionSynonyms[queryNorm]){var synTitle=collectionSynonyms[queryNorm],synKey=normalizeTitle(synTitle).toLowerCase().trim(),synColl=collectionsByTitle[synKey];if(!synColl){for(var keys=Object.keys(collectionsByTitle),s=0;s<keys.length;s++)if(keys[s].indexOf(synKey)===0||synKey.indexOf(keys[s])===0){synColl=collectionsByTitle[keys[s]];break}}synColl&&synColl.booklist&&synColl.booklist.length>0&&(bestMatch=synColl,bestScore=0)}if(!bestMatch)for(var i=0;i<collections.length;i++){var coll=collections[i].item||collections[i],collNorm=normalizeTitle(coll.title||"").toLowerCase().trim(),handleNorm=(coll.handle||"").replace(/-/g," ").toLowerCase().trim(),score=3;if(collNorm===queryNorm||handleNorm===queryNorm)score=0;else{var shorter=Math.min(queryNorm.length,collNorm.length),longer=Math.max(queryNorm.length,collNorm.length),shorterH=Math.min(queryNorm.length,handleNorm.length),longerH=Math.max(queryNorm.length,handleNorm.length);(shorter/longer>=.7&&(collNorm.indexOf(queryNorm)===0||queryNorm.indexOf(collNorm)===0)||shorterH/longerH>=.7&&(handleNorm.indexOf(queryNorm)===0||queryNorm.indexOf(handleNorm)===0))&&(score=1)}score<bestScore&&(bestScore=score,bestMatch=coll)}if(bestMatch&&bestScore<=1&&bestMatch.booklist&&bestMatch.booklist.length>0){for(var mainProducts=[],seen={},j=0;j<bestMatch.booklist.length;j++){var product=productsByHandle[bestMatch.booklist[j]];product&&!seen[product.handle]&&(seen[product.handle]=!0,mainProducts.push({item:product,score:0,matches:[]}))}var lpProducts=[],lpTitle=bestMatch.language_pair||"";if(lpTitle){var lpKey=normalizeTitle(lpTitle).toLowerCase().trim(),lpColl=collectionsByTitle[lpKey];if(lpColl&&lpColl.booklist&&lpColl.booklist.length>0)for(var k=0;k<lpColl.booklist.length;k++){var lpProduct=productsByHandle[lpColl.booklist[k]];lpProduct&&!seen[lpProduct.handle]&&(seen[lpProduct.handle]=!0,lpProducts.push({item:lpProduct,score:0,matches:[]}))}}if(mainProducts.length>0||lpProducts.length>0){var booklistProducts;if(lpTitle&&lpProducts.length>0){var lpNorm=normalizeTitle(lpTitle).toLowerCase().trim(),mainNorm=normalizeTitle(bestMatch.title||"").toLowerCase().trim(),lpHandleNorm=(lpColl&&lpColl.handle||"").replace(/-/g," ").toLowerCase().trim(),queryMatchesMain=queryNorm===mainNorm||mainNorm.indexOf(queryNorm)===0||queryNorm.indexOf(mainNorm)===0,queryMatchesLPBetter=!queryMatchesMain&&(queryNorm===lpNorm||queryNorm===lpHandleNorm||(queryNorm.indexOf(lpNorm)===0||lpNorm.indexOf(queryNorm)===0)&&Math.abs(queryNorm.length-lpNorm.length)<Math.abs(queryNorm.length-mainNorm.length));queryMatchesLPBetter?booklistProducts=lpProducts.concat(mainProducts):booklistProducts=mainProducts.concat(lpProducts)}else booklistProducts=mainProducts.concat(lpProducts);return{products:booklistProducts,collection:bestMatch}}}return null}
1function search(query,limits){var maxProducts=limits&&limits.products||MAX_PRODUCTS_EXPANDED,maxCollections=limits&&limits.collections||MAX_COLLECTIONS_EXPANDED,maxPages=limits&&limits.pages||MAX_PAGES_EXPANDED;if(!fuseProducts||!fuseCollections)return{products:[],collections:[],pages:[]};if(hasQuotedWords(query)){var parsed=parseQuotedQuery(query);if(parsed.fuzzyWords.length===0&&parsed.exactPhrases.length===1){var epProducts=exactPhraseSearch(rawProducts,parsed.exactPhrases[0],maxProducts),epCollections=exactPhraseSearch(rawCollections,parsed.exactPhrases[0],maxCollections);return epCollections=mergeResults(epCollections,getSeriesCollections(epProducts,maxCollections),maxCollections),{products:epProducts,collections:epCollections,pages:exactPhraseSearch(rawPages,parsed.exactPhrases[0],maxPages)}}var mProducts=mixedSearch(rawProducts,fuseProducts,parsed,maxProducts),mCollections=mixedSearch(rawCollections,fuseCollections,parsed,maxCollections);return mCollections=mergeResults(mCollections,getSeriesCollections(mProducts,maxCollections),maxCollections),{products:mProducts,collections:mCollections,pages:mixedSearch(rawPages,fusePages,parsed,maxPages)}}if(looksLikeCode(query)){var codeResults=codeSearch(rawProducts,query,maxProducts);if(codeResults.length>0)return{products:codeResults,collections:getSeriesCollections(codeResults,maxCollections),pages:[]}}var synQuery=getSynonymQuery(query),products=searchFuse(fuseProducts,query,maxProducts),collections=searchFuse(fuseCollections,query,maxCollections),pages=fusePages?searchFuse(fusePages,query,maxPages):[];synQuery&&(products=mergeResults(products,searchFuse(fuseProducts,synQuery,maxProducts),maxProducts),collections=mergeResults(collections,searchFuse(fuseCollections,synQuery,maxCollections),maxCollections),pages=mergeResults(pages,fusePages?searchFuse(fusePages,synQuery,maxPages):[],maxPages));var seriesCollections=getSeriesCollections(products,maxCollections);seriesCollections.length>0&&(collections=mergeResults(collections,seriesCollections,maxCollections));var booklistResult=resolveBooklist(collections,query);if(!booklistResult&&synQuery&&(booklistResult=resolveBooklist(collections,synQuery)),booklistResult){products=booklistResult.products,products._matchedCollection=booklistResult.collection;var queryLower=normalizeTitle(query).toLowerCase().trim(),queryWords=queryLower.split(/\s+/).filter(function(w){return w.length>=2}),matchedHandle=booklistResult.collection.handle,titleMatchedCollections=collections.filter(function(r){var title=normalizeTitle(r.item.title||"").toLowerCase();return queryWords.every(function(w){return title.indexOf(w)!==-1})}),lpTitle=booklistResult.collection.language_pair||"";if(lpTitle){var lpKey=normalizeTitle(lpTitle).toLowerCase().trim(),lpColl=collectionsByTitle[lpKey];if(lpColl){var alreadyIncluded=titleMatchedCollections.some(function(r){return r.item.handle===lpColl.handle});alreadyIncluded||titleMatchedCollections.push({item:lpColl,score:.5,matches:[]})}}var matchedInList=titleMatchedCollections.some(function(r){return r.item.handle===matchedHandle});matchedInList||titleMatchedCollections.unshift({item:booklistResult.collection,score:0,matches:[]});var lpHandle=lpColl&&lpColl.handle||"",matchedFirst=titleMatchedCollections.filter(function(r){return r.item.handle===matchedHandle}),matchedLP=lpHandle?titleMatchedCollections.filter(function(r){return r.item.handle===lpHandle}):[],matchedRest=titleMatchedCollections.filter(function(r){return r.item.handle!==matchedHandle&&r.item.handle!==lpHandle});collections=matchedFirst.concat(matchedLP,matchedRest)}var seriesCounts={};return products.forEach(function(r){var tags=(r.item||r).tags||[];tags.length!==0&&tags[0].split(",").map(function(s){return s.trim()}).forEach(function(name){var key=normalizeTitle(name).toLowerCase().trim();seriesCounts[key]=(seriesCounts[key]||0)+1})}),collections.sort(function(a,b){var aLP=a.item.language_pair||"",bLP=b.item.language_pair||"";if(normalizeTitle(aLP).toLowerCase().trim()!==normalizeTitle(b.item.title||"").toLowerCase().trim()||normalizeTitle(bLP).toLowerCase().trim()!==normalizeTitle(a.item.title||"").toLowerCase().trim())return 0;var aKey=normalizeTitle(a.item.title||"").toLowerCase().trim(),bKey=normalizeTitle(b.item.title||"").toLowerCase().trim(),aCount=seriesCounts[aKey]||0,bCount=seriesCounts[bKey]||0;return bCount-aCount}),{products:products,collections:collections,pages:pages}}function highlightText(text,query){if(!query||!text)return escapeHtml(text||"");var q=query.replace(/^"|"$/g,""),words=q.trim().split(/\s+/).filter(function(w){return w.length>=2});if(words.length===0)return escapeHtml(text);var pattern=words.map(escapeRegex).join("|"),regex=new RegExp("("+pattern+")","gi"),result="",lastIndex=0,match;regex.lastIndex=0;for(var str=text;(match=regex.exec(str))!==null;)result+=escapeHtml(str.substring(lastIndex,match.index)),result+='<span class="aa-highlight">'+escapeHtml(match[1])+"</span>",lastIndex=regex.lastIndex;return result+=escapeHtml(str.substring(lastIndex)),result}function escapeHtml(str){var div=document.createElement("div");return div.appendChild(document.createTextNode(str)),div.innerHTML}function escapeRegex(str){return str.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function formatPrice(price){return price==null?"":"$"+Number(price).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g,",")}function formatPriceRange(item){return item.price_min!=null&&item.price_max!=null&&item.price_min!==item.price_max?formatPrice(item.price_min)+" - "+formatPrice(item.price_max):formatPrice(item.price)}window.HameraySearch={loadData:loadData,search:search,highlightText:highlightText,escapeHtml:escapeHtml,escapeRegex:escapeRegex,formatPrice:formatPrice,formatPriceRange:formatPriceRange,normalizeQuotes:normalizeQuotes,MAX_PRODUCTS:MAX_PRODUCTS,MAX_PRODUCTS_EXPANDED:MAX_PRODUCTS_EXPANDED,MAX_COLLECTIONS:MAX_COLLECTIONS,MAX_COLLECTIONS_EXPANDED:MAX_COLLECTIONS_EXPANDED,MAX_PAGES:MAX_PAGES,MAX_PAGES_EXPANDED:MAX_PAGES_EXPANDED,didLoadFail:function(){return dataLoadFailed}}})(); 2//# sourceMappingURL=/cdn/shop/t/3/assets/search-core.js.map?v=67616449755213306551779429574
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.