PageSourceSearch

https://www.fabiennechapot.com/cdn/shop/t/329/assets/cart-drawer.js?v=119587845946771783891790847623

js fabiennechapot.com collected 2026-10-04 04:20:06 UTC 21,171 bytes, 2 lines download raw bytes

1function input_box(){document.addEventListener("keydown",function(e){e.target.matches(".cd-discount-input")&&e.key==="Enter"&&e.preventDefault()}),document.addEventListener("keyup",function(e){if(e.target.matches(".cd-discount-input")){var wrap=e.target.closest(".cd-discount-input-wrap");if(wrap&&(e.target.value!==""?wrap.classList.add("active-input"):wrap.classList.remove("active-input")),e.key==="Enter"){e.preventDefault();var applyBtn=e.target.closest(".cd-discount-form").querySelector(".cd-discount-apply");applyBtn&&!applyBtn.disabled&&applyBtn.click()}}}),document.addEventListener("focus",function(e){if(e.target.matches(".cd-discount-input")){var wrap=e.target.closest(".cd-discount-input-wrap");wrap&&wrap.classList.add("active-focus")}},!0),document.addEventListener("blur",function(e){if(e.target.matches(".cd-discount-input")){var wrap=e.target.closest(".cd-discount-input-wrap");if(wrap){var form=e.target.closest(".cd-discount-form"),msg=form&&form.querySelector(".cd-discount-message"),btn=form&&form.querySelector(".cd-discount-apply"),isLoading=btn&&btn.classList.contains("loading"),hasError=msg&&msg.classList.contains("error"),hasText=e.target.value!=="";!isLoading&&!hasError&&!hasText&&wrap.classList.remove("active-focus")}}},!0),document.querySelectorAll(".menu-burdger,.close-menu")&&document.querySelectorAll(".menu-burdger,.close-menu").forEach(function(menuBurger){menuBurger.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),document.body.classList.toggle("open-menu"),document.body.classList.remove("open-drawer","open-search","open-sort","open-filter")})})}function showCartError(el,message){el&&(el.textContent=message||window.cartStrings&&window.cartStrings.error||"",setTimeout(function(){el.textContent=""},3e3))}function cartVariant(){document.querySelectorAll(".ci_plus a").forEach(function(plus){plus.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var input=plus.closest(".ci_qtybox").querySelector(".cart_qty");input.value=parseInt(input.value)+1;var new_line=this.getAttribute("data-line-item"),new_qty=this.closest(".ci_qtybox").querySelector(".cart_qty").value;updateItem(new_line,new_qty)})}),document.querySelectorAll(".ci_minus a").forEach(function(minus){minus.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var centerQtyInput=minus.closest(".ci_qtybox").querySelector(".cart_qty"),currentQty=parseInt(centerQtyInput.value);if(currentQty>0){centerQtyInput.value=currentQty-1;var newLine=this.getAttribute("data-line-item"),newQty=this.closest(".ci_qtybox").querySelector(".cart_qty").value;updateItem(newLine,newQty)}})}),document.querySelectorAll(".inactive .cd_variant").forEach(function(cdVariantAdd){cdVariantAdd.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),cdVariantAdd.closest(".cd_variant_cls").classList.remove("active");let cart_error=cdVariantAdd.closest(".item-row").querySelector(".cierror"),currentid=cdVariantAdd.closest(".item-row").querySelector(".item-remove").getAttribute("data-line"),changevar_id=cdVariantAdd.getAttribute("data-id"),item_current_qty=cdVariantAdd.closest(".item-row").querySelector(".cart_qty").value,newItem={id:changevar_id,quantity:item_current_qty},itemProperties=cdVariantAdd.closest(".item-row").dataset.properties;if(itemProperties)try{let parsedProperties=JSON.parse(itemProperties);parsedProperties&&!Array.isArray(parsedProperties)&&Object.keys(parsedProperties).length&&(newItem.properties=parsedProperties)}catch(err){console.error("Unable to carry over line item properties",err)}fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:[newItem]})}).then(response=>response.json()).then(data=>{if(!data||data.status){showCartError(cart_error,data&&data.description);return}setTimeout(function(e2){updateItem(currentid,0)},500),setTimeout(function(){checkMultipleSizesAndTriggerPopup()},1200)}).catch(error=>{console.error("error",error),showCartError(cart_error)})})}),document.querySelectorAll(".cd_variant_cls")&&document.querySelectorAll(".cd_variant_cls").forEach(variantBox=>{let btn=variantBox.querySelector(".cd_variantbtn");btn&&btn.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),document.querySelectorAll(".item-row").forEach(variantBoxRm=>{variantBoxRm.querySelector(".cd_variant_cls").classList.remove("active")}),variantBox.classList.add("active");let dropdown=variantBox.querySelector(".cd__variant_list"),scrollParent=document.querySelector(".cd-left");dropdown&&scrollParent&&setTimeout(()=>{let dropdownBottom=dropdown.getBoundingClientRect().bottom,parentBottom=scrollParent.getBoundingClientRect().bottom;if(dropdownBottom>parentBottom){let scrollAmount=dropdownBottom-parentBottom+24;scrollParent.scrollBy({top:scrollAmount,behavior:"smooth"})}},310)})}),document.querySelectorAll(".cd-varinat-close,.variant-overlay-box")&&document.querySelectorAll(".cd-varinat-close,.variant-overlay-box").forEach(variantBoxClose=>{variantBoxClose.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),variantBoxClose.closest(".cart-sidebar").querySelector(".cd_variant_cls.active").classList.remove("active")})}),document.querySelectorAll(".gift-product li .ellipse-icon")&&document.querySelectorAll(".gift-product li .ellipse-icon").forEach(ellipse=>{ellipse.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),document.querySelectorAll(".gift-product li").forEach(ellipserm=>{ellipserm.querySelector(".gp-left").classList.remove("active-tooltip")}),ellipse.closest(".gp-left").classList.add("active-tooltip")})}),document.querySelectorAll(".gift-product li .tooltip p a")&&document.querySelectorAll(".gift-product li .tooltip p a").forEach(ellipse_close=>{ellipse_close.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),ellipse_close.closest(".gp-left").classList.remove("active-tooltip")})}),document.body.addEventListener("click",function(){document.querySelectorAll(".gift-product li .tooltip").forEach(function(tooltip){tooltip.closest(".gp-left").classList.remove("active-tooltip")})}),announcebar({container:".product-usps",duration:3e3}),quickAddButton(),document.querySelectorAll(".quick_view_button").forEach(quickBtn=>{quickBtn.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation();let url=quickBtn.getAttribute("data-url"),modal=quickBtn.getAttribute("data-modal");fetch(url).then(response=>response.text()).then(response=>{const source=new DOMParser().parseFromString(response,"text/html").getElementById("section-quick-buy");document.body.classList.add("open-quick-buy"),document.getElementById(modal).getElementsByClassName("quick-buy-popup")[0].innerHTML=source.innerHTML,addToCart()}).catch(e2=>{console.error(e2)})})}),document.querySelectorAll(".item-list .item-row").forEach(cItem=>{const id=cItem.dataset.id;document.querySelectorAll(".gift-product input").forEach(input=>{input.value===id&&(input.checked=!0,togglePriceVisibility(input,!0))})}),document.querySelectorAll(".gift-product input").forEach(input=>{input.addEventListener("change",function(e){input.checked?(addItemNew(input.value),togglePriceVisibility(input,!0)):(updateItem(input.value,0),togglePriceVisibility(input,!1))})});function addItemNew(line){fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:[{id:line,quantity:1}]})}).then(response=>response.json()).then(()=>{document.location.href.indexOf("/cart")>-1?window.location.href="/cart":typeof load_cart=="function"?(load_cart(),checkMultipleSizesAndTriggerPopup(),setTimeout(function(e){document.querySelector("body").classList.add("open-drawer")},500)):window.location.href="/cart"}).catch(error=>{console.error("Error:",error)})}}function fetchCurrentDiscountCodes(){return fetch("/cart.js",{method:"GET"}).then(function(r){return r.json()}).then(function(data){var codes=[];return data.cart_level_discount_applications&&data.cart_level_discount_applications.forEach(function(d){d.t
1ype==="discount_code"&&codes.push(d.title)}),data.items&&data.items.forEach(function(item){item.line_level_discount_allocations&&item.line_level_discount_allocations.length&&item.line_level_discount_allocations.forEach(function(d){d.discount_application&&d.discount_application.type==="discount_code"&&codes.push(d.discount_application.title)})}),codes.filter(function(v,i,a){return a.indexOf(v)===i})})}function setDiscountLoading(loading){var btn=document.querySelector(".cd-discount-apply");btn&&(loading?(btn.disabled=!0,btn.classList.add("loading")):(btn.disabled=!1,btn.classList.remove("loading")))}function applyDiscountCode(code){fetchCurrentDiscountCodes().then(function(codes){var msgEl=document.querySelector(".cd-discount-message");if(codes.map(function(c){return c.toLowerCase()}).indexOf(code.toLowerCase())!==-1){msgEl&&(msgEl.textContent="Discount code already applied.",msgEl.className="cd-discount-message error"),setDiscountLoading(!1);return}codes.push(code),fetch("/checkout?discount="+codes.map(encodeURIComponent).join(","),{method:"GET"}).finally(function(){fetch("/cart.js",{method:"GET"}).then(function(r){return r.json()}).then(function(data){var applied=[];data.cart_level_discount_applications&&data.cart_level_discount_applications.forEach(function(d){d.type==="discount_code"&&applied.push(d.title)}),data.items&&data.items.forEach(function(item){item.line_level_discount_allocations&&item.line_level_discount_allocations.forEach(function(d){d.discount_application&&d.discount_application.type==="discount_code"&&applied.push(d.discount_application.title)})});var freshMsg=document.querySelector(".cd-discount-message"),freshInput=document.querySelector(".cd-discount-input");applied.map(function(c){return c.toLowerCase()}).indexOf(code.toLowerCase())===-1?(freshMsg&&(freshMsg.textContent="Enter a valid discount code or gift card.",freshMsg.className="cd-discount-message error"),setDiscountLoading(!1)):(freshInput&&(freshInput.value=""),typeof load_cart=="function"&&load_cart())})})})}function removeDiscountCode(code){var badge=document.querySelector('.cd-discount-badge[data-code="'+code+'"]')||document.querySelector('.cd-discount-remove[data-code="'+code+'"]');badge&&(badge.style.opacity="0.4"),fetchCurrentDiscountCodes().then(function(codes){var remaining=codes.filter(function(c){return c.toLowerCase()!==code.toLowerCase()});fetch("/checkout?discount="+remaining.map(encodeURIComponent).join(","),{method:"GET"}).finally(function(){typeof load_cart=="function"&&load_cart()})})}document.addEventListener("click",function(e){var discountToggle=e.target.closest(".add_discount");if(discountToggle){e.preventDefault();var wrapper=discountToggle.closest(".cd-discount-wrapper");if(wrapper){wrapper.classList.add("active-discount");var inp=wrapper.querySelector(".cd-discount-input");inp&&inp.focus()}return}var applyBtn=e.target.closest(".cd-discount-apply");if(applyBtn){e.preventDefault();var form=applyBtn.closest(".cd-discount-form"),input=form.querySelector(".cd-discount-input"),msgEl=form.querySelector(".cd-discount-message"),code=input.value.trim();if(msgEl&&(msgEl.textContent="",msgEl.className="cd-discount-message"),!code){msgEl&&(msgEl.textContent="Enter a valid discount code or gift card.",msgEl.className="cd-discount-message error");return}setDiscountLoading(!0),applyDiscountCode(code);return}var removeBtn=e.target.closest(".cd-discount-remove");if(removeBtn){e.preventDefault(),removeDiscountCode(removeBtn.dataset.code);return}});function getPriceElementForInput(input){const listItem=input.closest("li");return listItem?listItem.querySelector(".gp-rgt"):null}function togglePriceVisibility(input,show){const priceElement=getPriceElementForInput(input);priceElement?priceElement.style.display=show?"block":"none":console.warn("Price element not found for input")}var cartDrawerRequested=!1;function load_cart(){var isPageLoadRender=!cartDrawerRequested;cartDrawerRequested=!0,fetch(window.Shopify.routes.root+"?section_id=cart-drawer&_="+Date.now()).then(response=>response.text()).then(responseText=>{const cartid="cart-drawer",html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.querySelector(".cart-sidebar"),source=html.getElementById(cartid);source&&destination&&(destination.innerHTML=source.innerHTML),checkGiftPopup(isPageLoadRender),document.querySelectorAll(".item-remove").forEach(function(cartRemove){var data_line=cartRemove.dataset.line;cartRemove.addEventListener("click",evt=>updateItem(data_line,0))}),document.querySelectorAll(".header-cart").forEach(function(cartButton){cartButton.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),document.querySelector("body").classList.toggle("open-drawer"),document.querySelector("body").classList.remove("open-menu","open-search","open-sort","open-filter"),input_box()})});function overlay(){document.querySelectorAll(".overlay-box,.cart-drawer-close").forEach(function(cartButton){cartButton.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),document.querySelectorAll(".wpp-meta-ul").forEach(ul=>ul.remove()),document.querySelector("body").classList.contains("open-quick-buy")&&document.querySelector("body").classList.contains("open-drawer")?document.querySelector("body").classList.remove("open-quick-buy","open-menu","open-search","open-sort","open-filter","open-mobile-search","filter-sticky","active-wishli-pro","open-size-chart"):document.querySelector("body").classList.remove("open-quick-buy","open-drawer","open-menu","open-search","open-sort","open-filter","open-mobile-search","filter-sticky","active-wishli-pro","open-size-chart"),document.querySelector("localization-form").classList.remove("active")})})}function singleCartDrawerClose(){const cartDrawerCloseButtons=document.querySelectorAll(".cart-drawer-close");cartDrawerCloseButtons.length>0&&cartDrawerCloseButtons.forEach(cartDrawerClose=>{cartDrawerClose.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),document.querySelector("body").classList.remove("open-quick-buy","open-drawer","open-menu","open-search","open-sort","open-filter","open-mobile-search","filter-sticky","active-wishli-pro","open-size-chart");const localizationForm=document.querySelector("localization-form");localizationForm&&localizationForm.classList.remove("active")})})}window.innerWidth<=991?(document.querySelector(".section-contradirectional-slider")==null&&overlay(),singleCartDrawerClose(),document.querySelectorAll(".menu-burdger,.close-menu")&&document.querySelectorAll(".menu-burdger,.close-menu").forEach(function(menuBurger){menuBurger.addEventListener("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),document.body.classList.toggle("open-menu"),document.body.classList.remove("open-drawer","open-search","open-sort","open-filter","active-wishli-pro")})}
1)):overlay(),cartVariant(),fetch("/cart.js").then(resp=>resp.json()).then(function(data){var cart_count=data.item_count;document.querySelector(".cartlist").setAttribute("data-count",cart_count),document.querySelectorAll(".cart-count").forEach(function(el){el.textContent="("+cart_count+")"})}).catch(function(error){console.log(error)})})}load_cart();function updateItem(data_line,data_qty){return fetch("/cart/change.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:data_line,quantity:data_qty})}).then(response=>response.json()).then(data2=>{document.location.href.indexOf("/cart")>-1?window.location.href="/cart":typeof load_cart=="function"?(load_cart(),checkMultipleSizesAndTriggerPopup(),setTimeout(function(e){document.querySelector("body").classList.add("open-drawer")},500)):window.location.href="/cart"}).catch(error=>{console.error("Error:",error)})}document.addEventListener("input",function(){var cartSidebar=document.querySelector(".cart-sidebar"),discountInput=document.querySelector(".cd-discount-input");!cartSidebar||!discountInput||(discountInput.value.trim()!==""?cartSidebar.classList.add("has-active-discount"):cartSidebar.classList.remove("has-active-discount"))}),document.addEventListener("DOMContentLoaded",function(){var cartSidebar=document.querySelector(".cart-sidebar"),discountBadges=document.querySelector(".cd-discount-badges");cartSidebar&&discountBadges&&cartSidebar.classList.add("has-active-discount")});var queuedCartPopups=[];function openCartPopup(id){var overlay=document.getElementById(id);if(!(!overlay||overlay.classList.contains("is-open"))){if(document.querySelector(".ms-popup-overlay.is-open")){queuedCartPopups.indexOf(id)===-1&&queuedCartPopups.push(id);return}overlay.classList.add("is-open"),overlay.setAttribute("aria-hidden","false"),document.body.style.overflow="hidden"}}function closeCartPopup(overlay){if(overlay.classList.contains("is-open")){overlay.classList.remove("is-open"),overlay.setAttribute("aria-hidden","true"),document.body.style.overflow="";var nextId=queuedCartPopups.shift();nextId&&setTimeout(function(){openCartPopup(nextId)},300)}}document.addEventListener("click",function(e){var overlay=e.target.closest(".ms-popup-overlay");overlay&&(e.target.closest(".ms-popup__close")||e.target===overlay)&&closeCartPopup(overlay)}),document.addEventListener("keydown",function(e){if(e.key==="Escape"){var overlay=document.querySelector(".ms-popup-overlay.is-open");overlay&&closeCartPopup(overlay)}});let giftPopupTriggerQty=null;function checkGiftPopup(isPageLoadRender){var state=document.querySelector(".cart-sidebar [data-gift-popup-state]"),overlay=document.getElementById("giftPopupOverlay");if(!(!state||!overlay)){var qty=parseInt(state.dataset.triggerQty,10)||0,previousQty=giftPopupTriggerQty!==null?giftPopupTriggerQty:isPageLoadRender?qty:0;giftPopupTriggerQty=qty,!(qty<=previousQty||state.dataset.live!=="true")&&giftPopupAllowed(overlay)&&(rememberGiftPopupShown(overlay),setTimeout(function(){openCartPopup("giftPopupOverlay")},550))}}function giftPopupAllowed(overlay){var id=overlay.dataset.promotionId;try{if(overlay.dataset.stopAfterClick==="true"&&localStorage.getItem("giftPopupClicked:"+id))return!1;switch(overlay.dataset.frequency){case"add":return!0;case"promotion":return!localStorage.getItem("giftPopupShown:"+id);case"days":var shownAt=parseInt(localStorage.getItem("giftPopupShown:"+id),10)||0,days=parseInt(overlay.dataset.frequencyDays,10)||1;return Date.now()-shownAt>=days*864e5;default:return!sessionStorage.getItem("giftPopupShown:"+id)}}catch{return!0}}function rememberGiftPopupShown(overlay){var key="giftPopupShown:"+overlay.dataset.promotionId,frequency=overlay.dataset.frequency;try{frequency==="days"||frequency==="promotion"?localStorage.setItem(key,String(Date.now())):frequency!=="add"&&sessionStorage.setItem(key,"1")}catch{}}document.addEventListener("click",function(e){if(e.target.closest(".gift-popup__cta")){var overlay=document.getElementById("giftPopupOverlay");if(!(!overlay||overlay.dataset.stopAfterClick!=="true"))try{localStorage.setItem("giftPopupClicked:"+overlay.dataset.promotionId,String(Date.now()))}catch{}}});let multipleSizesPopupShown=!1;function checkMultipleSizesAndTriggerPopup(){document.getElementById("multipleSizesOverlay")&&(multipleSizesPopupShown||sessionStorage.getItem("multipleSizesPopupShown")==="true"||fetch("/cart.js").then(response=>response.json()).then(cartData=>{const productGroups={};
1cartData.items.forEach(item=>{productGroups[item.product_id]||(productGroups[item.product_id]={variants:[],handle:item.handle}),productGroups[item.product_id].variants.push(item.variant_id)});let triggeredProductId=null,triggeredHandle=null;Object.entries(productGroups).some(([pid,group])=>new Set(group.variants).size>=2?(triggeredProductId=pid,triggeredHandle=group.handle,!0):!1),triggeredProductId&&(multipleSizesPopupShown=!0,sessionStorage.setItem("multipleSizesPopupShown","true"),setTimeout(function(){openCartPopup("multipleSizesOverlay")},550),triggeredHandle&&fetch("/products/"+triggeredHandle+".js").then(r=>r.json()).then(product=>{const sizeOptionIdx=product.options.findIndex(function(o){return(o.name||o).toLowerCase()==="size"}),optionKey=sizeOptionIdx>=0?["option1","option2","option3"][sizeOptionIdx]:"option1",product_stock={};if(product.variants.forEach(function(v){var sizeVal=v[optionKey];sizeVal&&(product_stock[sizeVal]=v.inventory_quantity!=null?v.inventory_quantity:0)}),window.easySizeProductData={product_id:triggeredProductId,product_stock},window._easySizeLoaded&&typeof window.initEasySizePopup=="function")window.initEasySizePopup();else if(typeof window.initEasySizePopup=="function")var _esPollCount=0,_esPoll=setInterval(function(){_esPollCount++,window._easySizeLoaded?(clearInterval(_esPoll),window.initEasySizePopup()):_esPollCount>=50&&clearInterval(_esPoll)},200)}).catch(error=>{console.error("Error fetching product data for EasySize:",error)}))}).catch(error=>{console.error("Error checking cart for multiple sizes:",error)}))}
2//# sourceMappingURL=/cdn/shop/t/329/assets/cart-drawer.js.map?v=119587845946771783891790847623

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.