1import{autocomplete,getAlgoliaResults,createQuerySuggestionsPlugin,algoliasearch}from"./vendor/algolia-autocomplete.esm.js";const DEFAULT_HITS_PER_SECTION=2,URL_HOST_REGEX=/https:\/\/[a-z0-9\-\.]+\/+((nl|de|fr|be_nl|be_fr)\/){0,1}/;function getCookie(e){const t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):""}function rewriteUrl(e,t){return(e||"").replace(URL_HOST_REGEX,t)}function transformHit(e,t){const a=t.baseUrl.replace(/\/$/,"")+"/";if(e.url=rewriteUrl(e.url,a),Array.isArray(e.categories)&&(e.categories=e.categories.join(", ")),e._highlightResult?.categories_without_path&&Array.isArray(e.categories_without_path)&&(e.categories_without_path=e._highlightResult.categories_without_path.map(e=>e.value).join(", ")),Array.isArray(e._highlightResult?.name)&&(e._highlightResult.name=e._highlightResult.name[0]),Array.isArray(e.price)&&(e.price=e.price[0]),e.__autocomplete_queryID&&t.ccAnalytics?.enabled&&"disabled"!==t.ccAnalytics.conversionAnalyticsMode){const t=new URLSearchParams({queryID:e.__autocomplete_queryID,objectID:e.objectID,indexName:e.__autocomplete_indexName}).toString();e.urlForInsights=e.url.includes("?")?`${e.url}${t}`:`${e.url}?${t}`}return e}function filterMinChars(e,t,a){return(e||"").length>=a?t:[]}function debouncePromise(e,t){let a;return function(...o){return a&&clearTimeout(a),new Promise(n=>{a=setTimeout(()=>n(e(...o)),t)})}}function appendHelpSection(e){const t=document.getElementById("wwl-algolia-help-section"),a=e?.querySelector?.(".aa-PanelLayout");if(!t||!a||a.querySelector(".helpsection"))return;const o=document.createElement("div");o.className="helpsection",o.appendChild(t.content.cloneNode(!0)),a.appendChild(o)}function renderNoResults(e,t,a){if(!a.showSuggestionsOnNoResultsPage)return e`<p>${a.translations.noResults}</p>`;const o=(a.popularQueries||[]).slice(0,Math.min(4,a.popularQueries.length));return e`<div class="no-results"> 2 <div>${a.translations.noProducts} "${t}"</div> 3 <div class="popular-searches"> 4 ${o.length?e`<div>${a.translations.popularQueries}</div>`:""} 5 ${o.map((t,o)=>e`${o>0?", ":""}<a href="${a.baseUrl}/catalogsearch/result/?q=${encodeURIComponent(t)}">${t}</a>`)} 6 </div> 7 ${a.translations.or} <a href="${a.baseUrl}/catalogsearch/result/?q=__empty__">${a.translations.seeAll}</a> 8 </div>`}function productItemTemplate({item:e,components:t,html:a},o){const n=transformHit(e,o);return a`<a class="algoliasearch-autocomplete-hit" 9 href="${null!=n.__autocomplete_queryID?n.urlForInsights:n.url}" 10 data-objectId="${n.objectID}" 11 data-position="${n.position}" 12 data-index="${n.__autocomplete_indexName}" 13 data-queryId="${n.__autocomplete_queryID}"> 14 <div class="thumb"><img src="${n.thumbnail_url||""}" alt="${n.name||""}"/></div> 15 <div class="info"> 16 ${t.Highlight({hit:n,attribute:"name"})} 17 </div> 18 </a>`}function categoryItemTemplate({item:e,components:t,html:a},o){const n=o.baseUrl.replace(/\/$/,"")+"/";return e.url=rewriteUrl(e.url,n),a`<a class="algoliasearch-autocomplete-hit" 19 href="${e.url}" 20 data-objectId="${e.objectID}" 21 data-position="${e.position}" 22 data-index="${e.__autocomplete_indexName}" 23 data-queryId="${e.__autocomplete_queryID}"> 24 ${t.Highlight({hit:e,attribute:"name"})} 25 </a>`}function pageItemTemplate({item:e,components:t,html:a},o){const n=o.baseUrl.replace(/\/$/,"")+"/";return e.url=rewriteUrl(e.url,n),a`<a class="algoliasearch-autocomplete-hit" 26 href="${e.url}" 27 data-objectId="${e.objectID}" 28 data-position="${e.position}" 29 data-index="${e.__autocomplete_indexName}" 30 data-queryId="${e.__autocomplete_queryID}"> 31 <div class="info-without-thumb"> 32 ${t.Highlight({hit:e,attribute:"name"})} 33 <div class="details"> 34 ${t.Highlight({hit:e,attribute:"content"})} 35 </div> 36 </div> 37 <div class="algolia-clearfix"></div> 38 </a>`}function buildSource(e,t,a){let o={hitsPerPage:e.hitsPerPage||2,analyticsTags:"autocomplete",clickAnalytics:!0,distinct:!0};const n={sourceId:e.name,options:o,getItemUrl:({item:e})=>a.autocomplete.isNavigatorEnabled?e.url:void 0,indexName:`${a.indexName}_${e.name}`};return"products"===e.name?(o.facets=["categories.level0"],o.numericFilters="visibility_search=1",o.ruleContexts=["magento_filters",""],n.templates={noResults:({html:e,state:t})=>renderNoResults(e,t.query,a),header:({html:t})=>t`<div class="category">${e.label}</div>`,item(e){const t=document.querySelector(".aa-Panel");
38return t&&(t.classList.toggle("productColumn2",!!a._suggestionSection),t.classList.toggle("productColumn1",!a._suggestionSection)),productItemTemplate(e,a)}},n.transformResponse=({results:e,hits:t})=>{const a=e[0];return t.map(e=>e.map((e,t)=>({...e,nbHits:a.nbHits,allCategories:a.facets?.["categories.level0"],query:a.query,position:t+1})))}):"categories"===e.name?(!1===a.showCatsNotIncludedInNavigation&&(o.numericFilters="include_in_menu=1"),n.templates={header:({html:t})=>t`<div class="category">${e.label}</div>`,item:e=>categoryItemTemplate(e,a)},n.transformResponse=({results:e,hits:t})=>{const a=e[0];return t.map(e=>e.map((e,t)=>({...e,query:a.query,position:t+1})))}):"pages"===e.name?n.templates={header:({html:t})=>t`<div class="category">${e.label}</div>`,item:e=>pageItemTemplate(e,a)}:(n.indexName=`${a.indexName}_section_${e.name}`,n.templates={header:({html:t})=>t`<div class="category">${e.label||e.name}</div>`,item({item:t,components:o,html:n}){const i=a.baseUrl.replace(/\/$/,"")+"/";return t.url=rewriteUrl(t.url,i),n`<a class="aa-ItemLink" 39 href="${a.resultPageUrl}?q=${encodeURIComponent(t.query)}&${e.name}=${encodeURIComponent(t.value)}" 40 data-objectId="${t.objectID}" 41 data-position="${t.position}" 42 data-index="${t.__autocomplete_indexName}" 43 data-queryId="${t.__autocomplete_queryID}"> 44 ${o.Highlight({hit:t,attribute:"value"})} 45 </a>`}}),n}function scheduleInsights(e){if(!e.ccAnalytics?.enabled)return;let t=!1;const a=()=>{t||(t=!0,document.addEventListener("click",t=>{const a=t.target.closest(".algoliasearch-autocomplete-hit");if(!a||a.dataset.clicked)return;(!e.cookieConfiguration?.cookieRestrictionModeEnabled||!!getCookie(e.cookieConfiguration.consentCookieName))&&(a.dataset.clicked="true")},{passive:!0}))},o=e=>{e.target?.classList?.contains("aa-Input")&&e.target.value&&(a(),document.removeEventListener("input",o,!0))};"requestIdleCallback"in window?requestIdleCallback(a,{timeout:4e3}):setTimeout(a,2e3),document.addEventListener("input",o,!0)}function applyPersonalizedPlaceholder(e){const t=window.customerFirstName;if("string"!=typeof t||!t.trim()||screen.width<=768)return;const a=((e.translations.placeholder||"").includes("%1")?e.translations.placeholder.replace("%1",t):void 0)||e.translations.placeholder,o=document.querySelector("#search_mini_form input");a&&o&&(o.setAttribute("placeholder",a),e.translations.placeholder=a)}function mountAutocomplete(){const e=window.algoliaConfig;if(!e?.autocomplete?.enabled)return;const t=document.querySelector(e.autocomplete.selector||".algolia-search-input");if(!t)return;const a=document.getElementById("search-before"),o=(a?.value||"").toString(),n=e.autocomplete.minimumCharacters||0,i=e.autocomplete.debounceMilliseconds||0,r=algoliasearch(e.applicationId,e.apiKey);r.addAlgoliaAgent?.(`Magento2 integration (${e.extensionVersion})`);const s=[...e.autocomplete.sections||[]];e.autocomplete.nbOfCategoriesSuggestions>0&&s.unshift({hitsPerPage:e.autocomplete.nbOfCategoriesSuggestions,label:e.translations.categories,name:"categories"}),e.autocomplete.nbOfProductsSuggestions>0&&s.unshift({hitsPerPage:e.autocomplete.nbOfProductsSuggestions,label:e.translations.products,name:"products"});let l=s.map(t=>buildSource(t,r,e)).reverse();const c=[];e.autocomplete.nbOfQueriesSuggestions>0&&(e._suggestionSection=!0,c.push(createQuerySuggestionsPlugin({searchClient:r,indexName:`${e.indexName}_suggestions`,getSearchParams:()=>({hitsPerPage:e.autocomplete.nbOfQueriesSuggestions,clickAnalytics:!0}),transformSource:({source:t})=>({...t,getItemUrl:({item:t})=>e.autocomplete.isNavigatorEnabled?`${e.resultPageUrl}?q=${t.query}`:void 0,templates:{...t.templates,header:({html:t})=>t`<p>${e.translations.suggestions}</p>`}})})));const u=l.map(e=>({sourceId:e.sourceId,getItems:({query:t})=>getAlgoliaResults({searchClient:r,queries:[{query:t,indexName:e.indexName,params:e.options}],...e.transformResponse&&{transformResponse:e.transformResponse}}),templates:{noResults:()=>"No results",header:()=>e.sourceId,item:({item:e})=>e.objectID||"",...e.templates||{}},...e.getItemUrl&&{getItemUrl:e.getItemUrl}})),d=debouncePromise(e=>Promise.resolve(e),i);autocomplete({enterKeyHint:"search",container:t,panelContainer:"#algolia-autocomplete-container",placeholder:e.translations.placeholder,debug:e.autocomplete.isDebugEnabled||screen.width<768,detachedMediaQuery:"none",plugins:c,initialState:{query:o},onSubmit({state:t}){const a=(t?.query||"").toString().trim();a&&(window.location.href=`${e.resultPageUrl}?q=${encodeURIComponent(a)}`)},getSources:({query:e})=>filterMinChars(e,d(u),n),shouldPanelOpen:({state:e})=>(e.query||"").length>=n,render({children:e,render:t},a){t(e,a),appendHelpSection(a)}}),a?.remove();
45const m=document.querySelector(".algolia-search-input input, .aa-Input");m?.value&&m.focus(),m?.addEventListener("input",()=>{const e=document.getElementById("algolia-autocomplete-container");e&&(e.style.display=""===m.value?"none":"")}),applyPersonalizedPlaceholder(e),window.addEventListener("wwl:private-data:loaded",()=>applyPersonalizedPlaceholder(e)),scheduleInsights(e)}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",mountAutocomplete,{once:!0}):mountAutocomplete();
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.