1(function(){var STORAGE_KEY="remmotorcycle_wishlist",renderToken=0,observerStarted=!1,instantClickBound=!1,domSyncQueued=!1;function getRootUrl(){var root=window.PXUTheme&&window.PXUTheme.routes&&window.PXUTheme.routes.root_url;return!root||root==="/"?"":root.replace(/\/$/,"")}function buildUrl(path){return path?/^https?:\/\//.test(path)?path:getRootUrl()+(path.charAt(0)==="/"?path:"/"+path):getRootUrl()||"/"}function getTranslations(){var t=window.PXUTheme&&window.PXUTheme.translation||{},wishlist=t.wishlist||{};return{add:wishlist.add||"Ajouter aux favoris",remove:wishlist.remove||"Retirer des favoris",title:wishlist.title||"Favoris",addToCart:wishlist.add_to_cart||t.add_to_cart||"Ajouter au panier",addedToCart:wishlist.added_to_cart||"Ajoute au panier",soldOut:wishlist.sold_out||t.sold_out_text||"Epuise",unavailable:wishlist.unavailable||t.unavailable_text||"Indisponible",selectOption:wishlist.select_option||"Choisir une option",viewProduct:wishlist.view_product||"Voir le produit",addFailed:wishlist.add_failed||"Impossible d ajouter au panier",empty:wishlist.empty||"Aucun produit en favoris pour le moment.",continueShopping:wishlist.continue_shopping||"Continuer mes achats"}}function escapeHtml(value){return String(value==null?"":value).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function normalizeImageUrl(url){return url?url.indexOf("//")===0?window.location.protocol+url:url:""}function getHandleFromProductUrl(url){if(!url)return null;try{var parsed=new URL(url,window.location.origin),match=parsed.pathname.match(/\/products\/([^/?#]+)/);return match&&match[1]?decodeURIComponent(match[1]):null}catch(error){return null}}function readWishlist(){try{var raw=window.localStorage.getItem(STORAGE_KEY),parsed=raw?JSON.parse(raw):[];return Array.isArray(parsed)?parsed:[]}catch(error){return[]}}function writeWishlist(items){try{window.localStorage.setItem(STORAGE_KEY,JSON.stringify(items))}catch(error){return}}function normalizeItem(item){return{handle:item.handle,productId:item.productId||null,variantId:item.variantId?Number(item.variantId):null,addedAt:item.addedAt||new Date().toISOString(),title:item.title||"",url:item.url||buildUrl("/products/"+item.handle),image:normalizeImageUrl(item.image||""),price:typeof item.price=="number"?item.price:Number(item.price||0)}}function getWishlistItems(){return readWishlist().filter(function(item){return item&&item.handle}).map(normalizeItem).sort(function(a,b){return new Date(b.addedAt).getTime()-new Date(a.addedAt).getTime()})}function findWishlistItem(handle){return getWishlistItems().find(function(item){return item.handle===handle})}function hasWishlistItem(handle){return!!findWishlistItem(handle)}function saveWishlistItem(item){var items=getWishlistItems().filter(function(entry){return entry.handle!==item.handle});items.unshift(normalizeItem(item)),writeWishlist(items),dispatchWishlistUpdated()}function removeWishlistItem(handle){var items=getWishlistItems().filter(function(item){return item.handle!==handle});writeWishlist(items),dispatchWishlistUpdated()}function updateSavedVariant(handle,variantId){var items=getWishlistItems(),changed=!1;items=items.map(function(item){return item.handle!==handle||(changed=!0,item.variantId=Number(variantId)||null),item}),changed&&writeWishlist(items)}function dispatchWishlistUpdated(){document.dispatchEvent(new CustomEvent("wishlist:updated",{detail:{items:getWishlistItems()}}))}function syncCount(){var count=getWishlistItems().length;document.querySelectorAll("[data-wishlist-count]").forEach(function(element){element.textContent=count})}function syncButton(button){var handle=button&&button.dataset?button.dataset.productHandle:null;if(handle){var active=hasWishlistItem(handle),addLabel=button.dataset.addLabel||getTranslations().add,removeLabel=button.dataset.removeLabel||getTranslations().remove,label=active?removeLabel:addLabel,labelTarget=button.querySelector("[data-wishlist-button-label]");button.classList.toggle("is-active",active),button.setAttribute("aria-pressed",active?"true":"false"),button.setAttribute("title",label),labelTarget&&(labelTarget.textContent=label)}}function syncButtons(root){(root||document).querySelectorAll("[data-wishlist-toggle]").forEach(syncButton),syncCount()}function buildButtonPayload(button){var existing=findWishlistItem(button.dataset.productHandle);return{handle:button.dataset.productHandle,productId:button.dataset.productId?Number(button.dataset.productId):null,variantId:button.dataset.variantId?Number(button.dataset.variantId):null,addedAt:existing?existing.addedAt:new Date().toISOString(),title:button.dataset.productTitle||"",url:button.dataset.productUrl||buildUrl("/products/"+button.dataset.productHandle),image:button.dataset.productImage||"",price:button.dataset.productPrice?Number(button.dataset.productPrice):0}}function formatMoney(cents){var amount=Number(cents||0),format=document.body&&document.body.dataset?document.body.dataset.moneyFormat:null;if(window.Shopify&&typeof window.Shopify.formatMoney=="function"&&format)try{return window.Shopify.formatMoney(amount,format)}catch(error){}var currency=window.PXUTheme&&window.PXUTheme.currency&&(window.PXUTheme.currency.iso_code||window.PXUTheme.currency.shop_currency)||(document.body&&document.body.dataset?document.body.dataset.shopCurrency:null)||"EUR";try{return new Intl.NumberFormat(document.documentElement.lang||void 0,{style:"currency",currency:currency}).format(amount/100)}catch(error){return(amount/100).toFixed(2)}}function resolveSelectedVariant(savedItem,product){var variants=Array.isArray(product.variants)?product.variants:[];return variants.find(function(variant){return Number(variant.id)===Number(savedItem.variantId)})||variants.find(function(variant){return variant.available})||variants[0]||null}function hydrateProduct(savedItem){return fetch(buildUrl("/products/"+savedItem.handle+".js")).then(function(response){if(!response.ok)throw new Error("Product lookup failed");return response.json()}).then(function(product){var selectedVariant=resolveSelectedVariant(savedItem,product),variants=Array.isArray(product.variants)?product.variants:[];return{handle:product.handle,title:product.title||savedItem.title,url:savedItem.url||buildUrl("/products/"+product.handle),image:normalizeImageUrl(product.featured_image||savedItem.image||""),productAvailable:!!product.available,selectedVariant:selectedVariant,variants:variants,showVariantSelector:variants.length>1||variants[0]&&variants[0].title!=="Default Title"}}).catch(function(){return{handle:savedItem.handle,title:savedItem.title||savedItem.handle,url:savedItem.url||buildUrl("/products/"+savedItem.handle),image:normalizeImageUrl(savedItem.image||""),productAvailable:!1,selectedVariant:savedItem.variantId?{id:savedItem.variantId,title:"Default Title",available:!1,price:savedItem.price||0}:null,variants:[],showVariantSelector:!1}})}function renderVariantOptions(card){return card.variants.map(function(variant){var selected=card.selectedVariant&&Number(card.selectedVariant.id)===Number(variant.id);return'<option value="'+escapeHtml(variant.id)+'" data-available="'+String(!!variant.available)+'" data-price="'+escapeHtml(variant.price||0)+'"'+(selected?' selected="selected"':"")+">"+escapeHtml(variant.title||getTranslations().selectOption)+"</option>"}).join("")}function renderWishlistCard(card){var t=getTranslations(),selectedVariant=card.selectedVariant||{},isAvailable=!!(card.productAvailable&&selectedVariant.available!==!1&&selectedVariant.id),addButtonLabel=isAvailable?t.addToCart:t.soldOut,image=card.image?'<img class="wishlist-card__image" src="'+escapeHtml(card.image)+'" alt="'+escapeHtml(card.title)+'" loading="lazy">':"",select=card.showVariantSelector?'<label class="wishlist-card__select-label" for="wishlist-variant-'+escapeHtml(card.handle)+'">'+escapeHtml(t.selectOption)+'</label><div class="select"><select id="wishlist-variant-'+escapeHtml(card.handle)+'" data-wishlist-variant-select>'+renderVariantOptions(card)+"</select></div>":"";return'<article class="wishlist-card" data-wishlist-item data-product-handle="'+escapeHtml(card.handle)+'"><button class="wishlist-card__remove" type="button" data-wishlist-remove aria-label="'+escapeHtml(t.remove)+'" title="'+escapeHtml(t.remove)+'"><svg viewBox="0 0 24 24" focusable="false" role="presentation"><path d="M4 7h16M9 7V4h6v3m-7 0 1 12h6l1-12M10 11v5M14 11v5"></path></svg></button><a class="wishlist-card__image-link" href="'+escapeHtml(card.url)+'">'+image+'</a><div class="wishlist-card__body"><a class="wishlist-card__title" href="'+escapeHtml(card.url)+'">'+escapeHtml(card.title)+'</a><div class="wishlist-card__price" data-wishlist-price>'+escapeHtml(formatMoney(selectedVariant.price||0))+"</div>"+select+'<div class="wishlist-card__actions"><form class="wishlist-card__cart-form" action="'+escapeHtml(buildUrl("/cart/add"))+'" method="post" accept-charset="UTF-8" enctype="multipart/form-data"><input type="hidden" name="id" value="'+escapeHtml(selectedVariant.id||"")+'" data-wishlist-variant-id-input><input type="hidden" name="quantity" value="1"><button class="wishlist-card__add add_to_cart global-button global-button--primary ajax-submit'+(isAvailable?"":" disabled")+'" type="button" name="add" data-label="'+escapeHtml(t.addToCart)+'"'+(isAvailable?"":' disabled="disabled"')+'><span class="text">'+escapeHtml(addButtonLabel)+'</span><svg x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" class="checkmark"><path fill="none" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" d="M9,17l3.9,3.9c0.1,0.1,0.2,0.1,0.3,0L23,11"></path></svg></button></form><a class="wishlist-card__secondary" href="'+escapeHtml(card.url)+'">'+escapeHtml(t.viewProduct)+"</a></div></div></article>"}function updateWishlistCardFromSelect(select){var card=select.closest("[data-wishlist-item]");if(card){var option=select.options[select.selectedIndex],addButton=card.querySelector(".wishlist-card__add.add_to_cart"),addButtonLabel=addButton?addButton.querySelector(".text"):null,priceTarget=card.querySelector("[data-wishlist-price]"),variantInput=card.querySelector("[data-wishlist-variant-id-input]"),available=option&&option.dataset.available==="true",variantId=option?option.value:"",price=option?Number(option.dataset.price||0):0,t=getTranslations();variantInput&&(variantInput.value=variantId),addButton&&(addButton.disabled=!available,addButton.classList.toggle("disabled",!available)),addButtonLabel&&(addButtonLabel.textContent=available?t.addToCart:t.soldOut),priceTarget&&(priceTarget.textContent=formatMoney(price)),updateSavedVariant(card.dataset.productHandle,variantId)}}
1function renderWishlistPage(){var page=document.querySelector("[data-wishlist-page]");if(page){var grid=page.querySelector("[data-wishlist-grid]"),emptyState=page.querySelector("[data-wishlist-empty]"),items=getWishlistItems(),currentToken=++renderToken,t=getTranslations();if(!(!grid||!emptyState)){if(!items.length){emptyState.hidden=!1,emptyState.textContent=t.empty,grid.innerHTML="";return}emptyState.hidden=!0,grid.innerHTML="",Promise.all(items.map(hydrateProduct)).then(function(cards){currentToken===renderToken&&(grid.innerHTML=cards.map(renderWishlistCard).join(""))})}}}function getSmartFilterCardPayload(card){if(!card)return null;var link=card.querySelector(".spf-product-card__title a, .spf-product-card__image-wrapper");if(!link)return null;var linkHref=link.getAttribute("href")||"",handle=getHandleFromProductUrl(linkHref);if(!handle)return null;var variantSelect=card.querySelector(".spf-product__variants"),selectedOption=variantSelect?variantSelect.options[variantSelect.selectedIndex]:null,variantId=selectedOption&&selectedOption.value?Number(selectedOption.value):null,titleNode=card.querySelector(".spf-product-card__title a"),title=titleNode?titleNode.textContent.trim():"",imageNode=card.querySelector(".spf-product-card__image-main, .spf-product-card__image"),image=imageNode?normalizeImageUrl(imageNode.getAttribute("data-src")||imageNode.getAttribute("src")||""):"",price=selectedOption&&selectedOption.dataset?Number(selectedOption.dataset.price||0):0;return{handle:handle,productId:"",variantId:variantId||"",url:buildUrl("/products/"+handle),title:title,image:image,price:price}}function createWishlistButtonElement(payload){var t=getTranslations(),button=document.createElement("button");return button.type="button",button.className="wishlist-button wishlist-button--card wishlist-button--spf",button.dataset.wishlistToggle="",button.dataset.productHandle=payload.handle,button.dataset.productId=payload.productId||"",button.dataset.variantId=payload.variantId||"",button.dataset.productUrl=payload.url||"",button.dataset.productTitle=payload.title||"",button.dataset.productImage=payload.image||"",button.dataset.productPrice=String(payload.price||0),button.dataset.addLabel=t.add,button.dataset.removeLabel=t.remove,button.setAttribute("aria-pressed","false"),button.setAttribute("title",t.add),button.innerHTML='<span class="visually-hidden" data-wishlist-button-label>'+escapeHtml(t.add)+'</span><span class="wishlist-button__icon" aria-hidden="true"><svg viewBox="0 0 24 24" focusable="false" role="presentation"><path d="M12 21.35 10.55 20C5.4 15.24 2 12.09 2 8.25 2 5.22 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09A6.03 6.03 0 0 1 16.5 3C19.58 3 22 5.22 22 8.25c0 3.84-3.4 6.99-8.55 11.76L12 21.35Z"></path></svg></span>',button}function syncSmartFilterCardButton(card){var button=card?card.querySelector(".wishlist-button--spf[data-wishlist-toggle]"):null;if(button){var payload=getSmartFilterCardPayload(card);payload&&(button.dataset.productHandle=payload.handle,button.dataset.variantId=payload.variantId||"",button.dataset.productUrl=payload.url,button.dataset.productTitle=payload.title,button.dataset.productImage=payload.image,button.dataset.productPrice=String(payload.price||0))}}function syncProductPageWishlistButton(root){(root||document).querySelectorAll("[data-wishlist-product-page][data-wishlist-toggle]").forEach(function(button){var productMain=button.closest(".product-main"),variantSelect=productMain?productMain.querySelector("[data-product-form] [data-variants]"):null,option=variantSelect?variantSelect.options[variantSelect.selectedIndex]:null,variantId=option&&option.value?option.value:"",variantImage=option&&option.dataset&&option.dataset.image||"";variantId&&(button.dataset.variantId=variantId,variantImage&&(button.dataset.productImage=normalizeImageUrl(variantImage)),hasWishlistItem(button.dataset.productHandle)&&updateSavedVariant(button.dataset.productHandle,variantId))})}function decorateSmartFilterCards(root){(root||document).querySelectorAll(".spf-product-card").forEach(function(card){var inner=card.querySelector(".spf-product-card__inner"),existingButton=card.querySelector(".wishlist-button--spf[data-wishlist-toggle]");if(inner){if(existingButton){syncSmartFilterCardButton(card);return}var payload=getSmartFilterCardPayload(card);if(payload){var button=createWishlistButtonElement(payload);inner.appendChild(button),syncButton(button)}}})}function handleDocumentClick(event){var toggle=event.target.closest("[data-wishlist-toggle]");if(toggle){event.preventDefault(),event.stopPropagation(),hasWishlistItem(toggle.dataset.productHandle)?removeWishlistItem(toggle.dataset.productHandle):saveWishlistItem(buildButtonPayload(toggle));return}var removeButton=event.target.closest("[data-wishlist-remove]");if(removeButton){event.preventDefault();var card=removeButton.closest("[data-wishlist-item]");card&&removeWishlistItem(card.dataset.productHandle);return}}function handleDocumentChange(event){var select=event.target.closest("[data-wishlist-variant-select]");if(select){updateWishlistCardFromSelect(select);return}var spfVariantSelect=event.target.closest(".spf-product__variants");if(spfVariantSelect){var card=spfVariantSelect.closest(".spf-product-card");card&&(syncSmartFilterCardButton(card),syncButtons(card));return}var productVariantSelect=event.target.closest("[data-product-form] [data-variants]");if(productVariantSelect){var productMain=productVariantSelect.closest(".product-main");syncProductPageWishlistButton(productMain||document),syncButtons(productMain||document)}}function queueDomSync(){domSyncQueued||(domSyncQueued=!0,window.requestAnimationFrame(function(){domSyncQueued=!1,decorateSmartFilterCards(),syncProductPageWishlistButton(),syncButtons(),renderWishlistPage()}))}function observeDom(){if(!(observerStarted||!document.body)){observerStarted=!0;var observer=new MutationObserver(function(mutations){var shouldSync=mutations.some(function(mutation){return Array.prototype.some.call(mutation.addedNodes,function(node){return node instanceof HTMLElement?node.matches("[data-wishlist-toggle], .spf-product-card, [data-wishlist-page]")||node.querySelector("[data-wishlist-toggle], .spf-product-card, [data-wishlist-page]"):!1})});shouldSync&&queueDomSync()});observer.observe(document.body,{childList:!0,subtree:!0})}}function bindInstantClick(){instantClickBound||!window.InstantClick||typeof window.InstantClick.on!="function"||(instantClickBound=!0,window.InstantClick.on("change",function(){decorateSmartFilterCards(),syncProductPageWishlistButton(),syncButtons(),renderWishlistPage()}))}function initWishlist(){decorateSmartFilterCards(),syncProductPageWishlistButton(),syncButtons(),renderWishlistPage(),observeDom(),bindInstantClick()}document.addEventListener("click",handleDocumentClick),document.addEventListener("change",handleDocumentChange),document.addEventListener("wishlist:updated",initWishlist),document.addEventListener("shopify:section:load",initWishlist),window.addEventListener("storage",function(event){event.key===STORAGE_KEY&&initWishlist()}),window.addEventListener("pageshow",initWishlist),window.addEventListener("load",bindInstantClick),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",initWishlist):initWishlist()})(); 2//# sourceMappingURL=/cdn/shop/t/89/assets/wishlist.js.map?v=69553847942204951661776943918
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.