PageSourceSearch

https://lojahusqvarna.pt/src/cache/min/2/src/plugins/algolia-finder/js/algolia-search.js?ver=1790870405

js lojahusqvarna.pt collected 2026-10-04 13:28:27 UTC 10,033 bytes, 30 lines download raw bytes

1document.addEventListener("DOMContentLoaded",function(){const searchClient=algoliasearch(api_data.id,api_data.key);if(document.getElementById("searchbox-principal")){const containerResultsHome=document.querySelector("#results-principal");const containerResultsPagination=document.querySelector("#results-pagination",);const filtros=document.querySelector(".cpts");const totalResults=document.querySelector("#total-results");const searchHome=instantsearch({indexName:api_data.index_name,searchClient,insights:!0,searchFunction(helper){if(helper.state.query.trim()===""){containerResultsHome.style.display="none";containerResultsPagination.style.display="none";filtros.style.display="none";totalResults.style.display="none";return}else{containerResultsHome.style.display="";containerResultsPagination.style.display="";filtros.style.display="";totalResults.style.display="";helper.search()}},});searchHome.addWidgets([instantsearch.widgets.searchBox({container:"#searchbox-principal",placeholder:"O que está à procura?",showReset:!0,showSubmit:!0,wrapInput:!1,}),instantsearch.widgets.configure({clickAnalytics:!0,}),instantsearch.widgets.hits({container:"#results-principal",templates:{empty:"Não foram encontrados resultados",item(result){const objectID=result.objectID||"";const queryID=result.__queryID||"";const position=result.__position||"";if(result.postType==="product"){let html=`<a href="${result.url}" class="ficha-producto-algolia-buscador col-12 col-lg-4" data-id="${result.objectID}" data-object-id="${objectID}" data-query-id="${queryID}" data-position="${position}">`;html+=`<div class="card-product-category d-flex flex-column text-decoration-none bg-white h-100 position-relative">`;if(result.product_data&&result.product_data.sale_price){html+=`<div class="oferta-label"><p class="fw-bold ff-husqvarna">PROMOÇÃO</p></div>`}
2html+=`<div class="image-container">`;if(result.image){html+=`<img width="300" height="300" src="${result.image}" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt="${result.title}" loading="lazy" decoding="async" />`}else{html+=`<img src="/src/themes/picostrap5-child-base/img/husqvarna_icono_azul.svg" alt="Loja Husqvarna" class="d-block m-auto p-14">`}
3html+=`</div>`;html+=`<div class="ficha-body d-flex flex-column align-content-start">`;html+=`<p class="mb-4 subcategory">${result.categories[0]}</p>`;html+=`<p class="sku small text-muted mb-4">Ref. ${result.product_data.sku}</p>`;html+=`<h2 class="product-name text-body fw-bold ff-husqvarna fs-24">${result.title}</h2>`;if(result.caracteristica&&typeof result.caracteristica==="object"){let features=Object.entries(result.caracteristica);const defaultFeatures=[{key:"Devolução",value:"garantida"},{key:"Garantia",value:"Husqvarna"},{key:"Portes grátis",value:"a partir de 49€"},];while(features.length<3){const featureToAdd=defaultFeatures.shift();features.push([featureToAdd.key,featureToAdd.value,!0])}
4html+=`<div class="product-features mt-2">`;for(const feature of features){let key,value,isDefault;if(Array.isArray(feature)){[key,value,isDefault]=feature.length===3?feature:[...feature,!1]}
5html+=`<p class="text-light-gray small">${key} <br><strong>${value}</strong></p>`}
6html+=`</div>`}
7html+=`<button class="fav-heart" data-product-id="${result.objectID}" data-product-type="simple" data-sku="${result.product_data.sku || ""}" data-name="${result.title || ""}" data-category="${result.categories && result.categories[0] ? result.categories[0] : ""}" data-price="${result.product_data.sale_price || result.product_data.price || 0}"></button>`;html+=`<div class="producto-precio d-flex justify-content-between">`;html+=`<div class="d-flex flex-column justify-content-end">`;function formatPrice(value){if(isNaN(value)||value===null||value===undefined){return"0,00"}
8const number=parseFloat(value).toFixed(2);const parts=number.split(".");parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,".");return parts.join(",")}
9if(result.product_data&&result.product_data.on_sale){const formattedPrice=formatPrice(result.product_data.sale_price||0,);const formattedSalePrice=formatPrice(result.product_data.regular_price||0,);const desdeLabel=result.product_data.is_variable?"Desde ":"";html+=`<div class="price text-primary fw-bold"><p class="mb-0">
9${desdeLabel}${formattedPrice}€</p></div>`;html+=`<div class="pre-price d-flex"><p class="text-light-gray small pe-4 mb-0">Antes </p><del class="text-primary pr-2 text-light-gray small">${formattedSalePrice}€</del></div>`}else{const formattedPrice=formatPrice(result.product_data.price||0,);const desdeLabel=result.product_data.is_variable?"Desde ":"";html+=`<div class="regular-price text-body pr-2 fw-bold"><p class="mb-0">${desdeLabel}${formattedPrice}€</p></div>`}
10html+=`</div>`;const isAutomower=Array.isArray(result.categories)&&result.categories.includes("Robôs Automower®");html+=`<div class="d-flex align-items-center gap-2 card-btn-group">`;if(result.product_data.stock_status==="instock"&&!isAutomower){html+=`<button class="card-button btn btn-cart p-10 text-center boton-add-cart-ficha position-relative" data-quantity="1" data-product_id="${result.objectID}">
11                  <img src="/src/themes/picostrap5-child-base/img/cart-shopping.svg" width="32" height="32" alt="Adicionar ao carrinho">
12                  <div class="cart">
13                    <svg viewBox="0 0 36 26">
14                      <polyline points="1 2.5 6 2.5 10 18.5 25.5 18.5 28.5 7.5 7.5 7.5"></polyline>
15                      <polyline points="15 13.5 17 15.5 22 10.5"></polyline>
16                    </svg>
17                  </div>
18                </button>`}
19html+=`<button onclick="window.location='${result.url}'" class="card-button btn btn-husqvarna-green p-14 rounded-15 text-white spacing font-weight-regular fs-125 text-center" style="position: static;" data-product_id="${result.objectID}">
20                <img src="/src/themes/picostrap5-child-base/img/angle_right_icon.svg" style="filter: invert(1);" alt="Ver detalhe">
21              </button>`;html+=`</div>`;html+=`</div></div></div></a>`;return html}
22return""},},}),instantsearch.widgets.stats({container:"#total-results",templates:{text:`{{nbHits}} resultados encontrados`,},}),instantsearch.widgets.pagination({container:"#results-pagination",scrollTo:document.querySelector("#results-principal"),}),]);searchHome.start();searchHome.on("render",()=>{const emptySearch=document.querySelector(".ais-Hits--empty");const paginator=document.querySelector("#results-pagination");paginator.style.visibility=emptySearch?"hidden":"visible"});let isModalOpen=!1;const inputSearch=document.querySelector("#modal-search");const inputSearchSecondary=document.querySelector("#modal-search-secondary",);const inputSearchTertiary=document.querySelector("#modal-search-tertiary",);const finderModal=document.querySelector(".alg-modal-finder.navbar-collapse",);const close=document.querySelector(".alg-modal-finder button.close-modal",);const overlay=document.querySelector(".algolia-overlay");const body=document.querySelector("body");const inputFinder=document.querySelector("#searchbox-principal .ais-SearchBox-input",);const findIcon=document.querySelectorAll(".finder");const searchLinks=document.querySelectorAll(".header-lupa");overlay.addEventListener("click",function(event){const modal=document.getElementById("offcanvasBuscador");if(modal&&jQuery(modal).hasClass("show")){if(isModalOpen){closeCustomAlgoliaModal(event,this,inputFinder)}}});searchLinks.forEach((link)=>{link.addEventListener("click",function(e){openCustomAlgoliaModal(e,this,inputFinder)})});function openCustomAlgoliaModal(e,elem,inputFinder){e.stopPropagation();finderModal.classList.toggle("show");overlay.classList.toggle("show");body.classList.toggle("ocultar-scroll");inputFinder.focus();isModalOpen=!0}
23function closeCustomAlgoliaModal(e,elem,inputFinder){finderModal.classList.toggle("show");overlay.classList.toggle("show");body.classList.toggle("ocultar-scroll");isModalOpen=!1}
24if(inputSearch){inputSearch.addEventListener("click",(e)=>{openCustomAlgoliaModal(e,this,inputFinder)})}
25if(inputSearchSecondary){inputSearchSecondary.addEventListener("click",(e)=>{openCustomAlgoliaModal(e,this,inputFinder)})}
26if(inputSearchTertiary){inputSearchTertiary.addEventListener("click",(e)=>{openCustomAlgoliaModal(e,this,inputFinder)})}
27if(close){close.addEventListener("click",(e)=>{closeCustomAlgoliaModal(e,this,inputFinder)})}
28if(findIcon.length){findIcon.forEach(function(item){item.addEventListener("click",(e)=>{e.stopPropagation();finderModal.classList.toggle("show");overlay.classList.toggle("show");body.classList.toggle("ocultar-scroll");
28inputFinder.focus();isModalOpen=!0})})}
29algoliaEvents={lastHit:!1,searchTimer:!1,startSearchTimer:function(valueSearch){algoliaEvents.searchTimer=setTimeout(function(){algoliaEvents.search_result_function(valueSearch);algoliaEvents.searchTimer=!1},1000)},restartSearchTimer:function(valueSearch){clearTimeout(algoliaEvents.searchTimer);algoliaEvents.startSearchTimer(valueSearch)},search_result_function:function(search_term){if(!search_term){return!0}
30var searched={event:"custom_event",event_name:"search",search_term:search_term,modulo:"cuerpo",nombre_formacion:undefined,id_formacion:undefined,categoria_formacion:undefined,tipo_formacion:undefined,titulo_contenido:undefined,categoria_contenido:undefined,autor_contenido:undefined,nombre_formulario:undefined,tipo_formulario:undefined,presentacion_formulario:undefined,subtipo_formulario:undefined,nivel_formulario:undefined,posicion_formulario:undefined,seccion_formulario:undefined,lead_id:undefined,user_email:undefined,user_phone:undefined,ecommerce:undefined,};dataLayerGA4.push(searched)},};window.addEventListener("algoliaLiveSearch",function(evt){var elementContainer=document.querySelector(evt.detail);var valueSearch=elementContainer.querySelector(".ais-SearchBox-input",).value;if(!algoliaEvents.searchTimer){algoliaEvents.startSearchTimer(valueSearch)}else{algoliaEvents.restartSearchTimer(valueSearch)}},!1,)}})

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.