PageSourceSearch

https://laboratoires-phytoceutic.com/cdn/shop/t/86/assets/mm-cart.js?v=114701293535303902021787905850

js laboratoires-phytoceutic.com collected 2026-10-05 06:47:57 UTC 10,363 bytes, 2 lines download raw bytes

1function mmInitSplide(){const splideElem=document.querySelector(".mm-dc-slider");splideElem&&new Splide(splideElem,{type:"splide",arrows:!0,pagination:!1,autoplay:!1,interval:4e3,rewind:!0,gap:4,perPage:2,padding:{left:20}}).mount()}document.addEventListener("DOMContentLoaded",()=>{mmInitSplide()},{once:!0});function debounce(func,duration){let timeout;return function(...args){const effect=()=>(timeout=null,func.apply(this,args));clearTimeout(timeout),timeout=setTimeout(effect,duration)}}function mmCartSectionElement(){return document.getElementById("shopify-section-mm-cart")}function mmCartProductsContainerElement(){const s=mmCartSectionElement();return s?s.querySelector(".mm-dc-products-container"):null}function mmCartItem(productVariantId){const c=mmCartProductsContainerElement();return c?c.querySelector(`[data-cart-item-id="${productVariantId}"]`):null}function mmCartItemQuantityEl(productVariantId){const itemEl=mmCartItem(productVariantId);return itemEl?itemEl.querySelector("[data-item-quantity]"):null}function mmGetCartItemQuantity(productVariantId){const quantityEl=mmCartItemQuantityEl(productVariantId);return quantityEl?Number.parseInt(quantityEl.dataset.itemQuantity):0}function mmSetCartItemQuantity(productVariantId,newQuantity){if(newQuantity>=0){const quantityEl=mmCartItemQuantityEl(productVariantId);quantityEl&&(quantityEl.dataset.itemQuantity=newQuantity,quantityEl.innerText=newQuantity)}}function mmCartSectionHTMLFrom(data){return data&&data.sections?data.sections["mm-cart"]:null}function mmCartHTMLFromData(data){const el=document.createElement("DIV"),html=mmCartSectionHTMLFrom(data);return el.innerHTML=html||"",el}function mmFetchCartSectionHTML(){return fetch(window.Shopify.routes.root+"?sections=mm-cart",{headers:{"X-Requested-With":"XMLHttpRequest"}}).then(r=>r.json()).then(j=>j["mm-cart"]).catch(()=>null)}function extractItemsFromCartHTML(data){return mmCartHTMLFromData(data).querySelector(".mm-dc-products-container")}function insertCartProductsFromResponse(data){const itemsContainer=extractItemsFromCartHTML(data),target=mmCartProductsContainerElement();return itemsContainer&&target&&(target.innerHTML=itemsContainer.innerHTML),data}function extractTotalPriceFromCartHTML(data){return mmCartHTMLFromData(data).querySelector("[data-cart-total-price]")}function insertInsertTotalPriceFromResponse(data){const newTotalPriceEl=extractTotalPriceFromCartHTML(data),section=mmCartSectionElement();if(!newTotalPriceEl||!section)return data;const currentTotalPriceEl=section.querySelector("[data-cart-total-price]"),currentTotalPriceEl2=section.querySelector("[data-cart-total-price-2]");return currentTotalPriceEl&&(currentTotalPriceEl.innerHTML=newTotalPriceEl.innerHTML),currentTotalPriceEl2&&(currentTotalPriceEl2.innerHTML=newTotalPriceEl.innerHTML),data}function mmSetCartLoading(isLoading){const el=document.querySelector(".mm-dc-products");el&&el.classList.toggle("mm-inactive",!!isLoading)}function mmUpdateCartExtras(data){try{const section=mmCartSectionElement();if(!section)return;const freeItemsProgress=section.querySelector(".mm-dc-free-item-progress--inner"),seuil1El=document.getElementById("mmCartProgressBarValue"),livraisonEl=document.getElementById("mmCartDeliveryValue");if(freeItemsProgress&&seuil1El){const seuil2El=document.getElementById("mmCartProgressBarValue_2");var pallier_1=seuil1El.value,pallier_2=seuil2El!=null?seuil2El.value:null,newWidth;data.total_price<pallier_1?newWidth=data.total_price/seuil1El.value*100*.4:pallier_2!=null&&data.total_price+data.total_discount<pallier_2?newWidth=(data.total_price-seuil1El.value)/(seuil2El.value-seuil1El.value)*40+40:newWidth=data.total_price/seuil1El.value*100,freeItemsProgress.style.width=`${newWidth}%`}if(livraisonEl){const succes=document.querySelector(".mm-dc-free-delivery-text_succes"),notYet=document.querySelector(".mm-dc-free-delivery-text_not_yet");data.total_price>=livraisonEl.value?(succes&&(succes.style.display="flex"),notYet&&(notYet.style.display="none")):(succes&&(succes.style.display="none"),notYet&&(notYet.style.display="flex"));const montantRestant=document.querySelector(".mm-dc-free-delivery-text_not_yet span");montantRestant&&(montantRestant.innerText=((livraisonEl.value-data.total_price)/100).toFixed(2))}mmAddOrRemoveFreeProducts(data)}catch(e){console.warn("[panier] mise \xE0 jour secondaire ignor\xE9e :",e)}}function mmEnsureCartTotals(data){return data&&data.total_price!=null?Promise.resolve(data):fetch(window.Shopify.routes.root+"cart.js").then(r=>r.json()).then(cart=>(data=data||{},data.total_price=cart.total_price,data.total_discount=cart.total_discount,data.item_count==null&&(data.item_count=cart.item_count),data)).catch(()=>data)}function mmAPIRequest(method,path,body){return mmSetCartLoading(!0),fetch(window.Shopify.routes.root+path,{method,headers:{"Content-Type":"application/json"},body:JSON.stringify(body)}).then(response=>response.json()).then(mmEnsureCartTotals).then(data=>(mmSetCartLoading(!1),mmUpdateCartExtras(data),data.item_count!=null&&updateCartCount(data.item_count),data)).then(data=>{if(data.status&&data.status>400)throw data;return data}).catch(error=>{throw mmSetCartLoading(!1),error})}function mmGetCart(){mmAPIRequest("GET","cart.js").then(console.log)}function mmOpenCart(){document.querySelector(".mm-drawer-cart-filter").classList.add("mm-dc-is-open"),document.querySelector("html").classList.add("stop-scrolling")}function mmCloseCart(){document.querySelector(".mm-drawer-cart-filter").classList.remove("mm-dc-is-open"),document.querySelector("html").classList.remove("stop-scrolling")}function mmApplyCartSectionHTML(html){if(!html)return!1;const newCartEl=document.createElement("DIV");newCartEl.innerHTML=html;const section=mmCartSectionElement();if(!section)return!1;const innerCart=section.querySelector(".mm-drawer-cart-filter"),newInner=newCartEl.querySelector(".mm-drawer-cart-filter");if(!innerCart||!newInner)return!1;innerCart.innerHTML=newInner.innerHTML;const countEl=newCartEl.querySelector("[data-cart-count]");return countEl&&updateCartCount(countEl.dataset.cartCount),mmInitSplide(),!0}function refreshCartFromData(data){const html=mmCartSectionHTMLFrom(data);return mmApplyCartSectionHTML(html)?data:mmFetchCartSectionHTML().then(fallbackHTML=>(mmApplyCartSectionHTML(fallbackHTML),data))}function mmHandleCartError(error){return console.error("[panier]",error),mmFetchCartSectionHTML().then(html=>{if(!mmApplyCartSectionHTML(html)){const container=mmCartProductsContainerElement();if(container&&!container.querySelector(".mm-dc-cart-error")){const msg=document.createElement("div");msg.className="mm-dc-cart-error",msg.innerText="Oups, il y a eu une erreur, essayez de recharger la page !",container.prepend(msg)}}mmOpenCart()})}function mmAddProductToCart(productId,{quantity=1,openCart=!0},button){var data={quantity,id:productId};try{if(button){var form=button.closest("form"),sellingPlan=form?form.querySelector('[name="selling_plan"]'):null;sellingPlan&&sellingPlan.value&&(data.selling_plan=sellingPlan.value)}}catch(e){console.warn("[panier] selling_plan ignor\xE9 :",e)}return mmAPIRequest("POST","cart/add.js",{items:[data],sections:"mm-cart"}).then(refreshCartFromData).then(()=>{openCart&&setTimeout(mmOpenCart)}).catch(mmHandleCartError)}function addComplementaryProductsToCart(productId,complementaryProductId){return mmAPIRequest("POST","cart/add.js",{items:[{quantity:1,id:productId},{quantity:1,id:complementaryProductId}],sections:"mm-cart"}).then(refreshCartFromData).then(()=>{setTimeout(mmOpenCart)}).catch(mmHandleCartError)}function mmIncreaseProductQuantity(productVariantId){const newQuantity=mmGetCartItemQuantity(productVariantId)+1;mmSetCartItemQuantity(productVariantId,newQuantity),mmDebouncedPushNewQuantity(productVariantId)}function mmDecreaseProductQuantity(productVariantId){const newQuantity=mmGetCartItemQuantity(productVariantId)-1;mmSetCartItemQuantity(productVariantId,newQuantity),mmDebouncedPushNewQuantity(productVariantId)}function mmPushNewQuantity(productVariantId){const quantity=mmGetCartItemQuantity(productVariantId);return mmAPIRequest("POST","cart/change.js",{id:productVariantId.toString(),quantity,sections:"mm-cart"}).then(data=>mmCartSectionHTMLFrom(data)?(insertCartProductsFromResponse(data),insertInsertTotalPriceFromResponse(data),mmAddOrRemoveFreeProducts(data),data):refreshCartFromData(data)).catch(mmHandleCartError)}const mmDebouncedPushNewQuantity=debounce(function(productVariantId){mmPushNewQuantity(productVariantId)},300);function mmRemoveProductQuantity(productVariantId){const quantity=mmGetCartItemQuantity(productVariantId);mmSetCartItemQuantity(productVariantId,0),mmDebouncedPushNewQuantity(productVariantId)}function mmAddOrRemoveFreeProducts(data){if(mmCartSectionHTMLFrom(data)){const freeProductEls=mmCartHTMLFromData(data).querySelector("[data-free-products]");if(!freeProductEls)return data;let freeProductCounts=0;const productsParams=Array.from(freeProductEls.children).reduce((param,freeProductEl)=>{const productId=freeProductEl.dataset.productId,isFree=freeProductEl.dataset.freeProduct=="true";let isRefused=!1;isFree&&sessionStorage.getItem("productId")=="true"&&(isRefused=!0);const itemEl=mmCartItem(productId);return isFree&&!isRefused&&(freeProductCounts+=1),itemEl&&isFree||(itemEl&&!isFree?param[productId]=0:!itemEl&&isFree&&!isRefused&&(param[productId]=1)),param},{});Object.keys(productsParams).length>0&&mmAPIRequest("POST","cart/update.js",{updates:productsParams,sections:"mm-cart"}).then(insertCartProductsFromResponse).then(insertInsertTotalPriceFromResponse)}return data}function mmToggleFreeProduct(value){sessionStorage.setItem("productId",value)}function mmProgressBar(){}function updateCartCount(value){var count=Number.parseInt(value,10);Number.isNaN(count)&&(count=0),document.querySelectorAll(".cart-count-bubble span:not(.visually-hidden), [data-cart-count-display]").forEach(function(el){el.innerText=count}),document.querySelectorAll("[data-cart-count]").forEach(function(el){el.dataset.cartCount=count}),document.querySelectorAll(".cart-count-bubble, [data-cart-count-wrapper]").forEach(function(el){el.classList.toggle("mm-cart-empty",count===0)}),document.dispatchEvent(new CustomEvent("mm:cart:count-updated",{detail:{count}}))}
2//# sourceMappingURL=/cdn/shop/t/86/assets/mm-cart.js.map?v=114701293535303902021787905850

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.