PageSourceSearch

https://sharksrugby.co.za/cdn/shop/t/45/assets/cart-drawer.js?v=83827299576787538731790929885

js sharksrugby.co.za collected 2026-10-02 11:10:17 UTC 6,390 bytes, 2 lines download raw bytes

1(function(){"use strict";document.addEventListener("DOMContentLoaded",function(){var overlay=document.querySelector(".js-cart-overlay"),drawer=document.querySelector(".js-cart-drawer");if(!drawer||!overlay)return;var root=window.Shopify&&window.Shopify.routes&&window.Shopify.routes.root?window.Shopify.routes.root:"/",cartChangeUrl=root+"cart/change.js",cartAddUrl=window.routes&&window.routes.cart_add_url?window.routes.cart_add_url:root+"cart/add.js",cartUpdating=!1;function openDrawer(){drawer.classList.add("is-open"),overlay.classList.add("is-open"),overlay.setAttribute("aria-hidden","false"),drawer.setAttribute("aria-hidden","false"),document.body.style.overflow="hidden",window.dlEcommerce&&window.dlEcommerce.viewCart()}function closeDrawer(){drawer.classList.remove("is-open"),overlay.classList.remove("is-open"),overlay.setAttribute("aria-hidden","true"),drawer.setAttribute("aria-hidden","true"),document.body.style.overflow=""}document.addEventListener("click",function(e){var opener=e.target.closest(".js-cart-open");opener&&(e.preventDefault(),openDrawer())}),overlay.addEventListener("click",closeDrawer),document.addEventListener("keydown",function(e){e.key==="Escape"&&drawer.classList.contains("is-open")&&closeDrawer()});function getShippingBarWidth(){var fill=drawer.querySelector(".cart-drawer_shipping-fill");return!fill||fill.dataset.width==null?null:parseInt(fill.dataset.width,10)}function animateShippingBars(fromWidth){var start=fromWidth!=null?fromWidth:0;drawer.querySelectorAll(".cart-drawer_shipping-fill").forEach(function(fill){var target=fill.dataset.width;target==null||target===""||(target=parseInt(target,10),fill.style.width=start+"%",requestAnimationFrame(function(){requestAnimationFrame(function(){fill.style.width=target+"%"})}))})}function syncHeaderCount(count){var n=parseInt(count,10)||0;document.querySelectorAll("[data-cart-count]").forEach(function(el){el.classList.contains("js-cart-drawer")||(el.textContent=n,el.hidden=n<1)})}function updateDrawerFromSectionHtml(html){if(!html)return!1;var doc=new DOMParser().parseFromString(html,"text/html"),newDrawer=doc.querySelector(".js-cart-drawer");if(!newDrawer||!drawer.parentNode)return!1;var prevWidth=getShippingBarWidth(),count=newDrawer.getAttribute("data-cart-count");return drawer.innerHTML=newDrawer.innerHTML,count!=null&&(drawer.setAttribute("data-cart-count",count),syncHeaderCount(count)),animateShippingBars(prevWidth),!0}var refreshPending=!1;window.refreshCartDrawer=function(){if(refreshPending)return Promise.resolve();refreshPending=!0;var apiId=drawer.dataset.sectionApiId||"cart-drawer",url=root+"?sections="+apiId+"&_="+Date.now();return fetch(url,{credentials:"same-origin",cache:"no-store",headers:{"X-Requested-With":"XMLHttpRequest"}}).then(function(r){return r.json()}).then(function(data){var html=data&&data.sections&&(data.sections[apiId]||data.sections["cart-drawer"]);updateDrawerFromSectionHtml(html)}).catch(function(){}).finally(function(){refreshPending=!1})},drawer.addEventListener("click",function(e){var closeEl=e.target.closest(".js-cart-close");if(closeEl){var href=closeEl.tagName==="A"?closeEl.getAttribute("href"):null;(!href||href.charAt(0)==="#")&&e.preventDefault(),closeDrawer();return}var qtyBtn=e.target.closest(".js-cart-qty-change");if(qtyBtn){if(e.preventDefault(),cartUpdating)return;var wrap=qtyBtn.closest(".cart-drawer_item"),numEl=wrap&&wrap.querySelector(".js-cart-qty-num");if(!numEl)return;var line=parseInt(qtyBtn.dataset.line,10),change=parseInt(qtyBtn.dataset.change,10),qty=(parseInt(numEl.textContent,10)||1)+change;qty<1&&(qty=1);var qtyWrap=qtyBtn.closest(".cart-drawer_qty"),qtyMax=qtyWrap?parseInt(qtyWrap.dataset.qtyMax,10):0;if(qtyMax>0&&qty>qtyMax)return;numEl.textContent=qty,changeLine(line,qty);return}var removeBtn=e.target.closest(".js-cart-remove");if(removeBtn){if(e.preventDefault(),cartUpdating)return;var rline=parseInt(removeBtn.dataset.line,10);if(isNaN(rline))return;var row=removeBtn.closest(".cart-drawer_item");removeBtn.disabled=!0,row&&(row.style.opacity="0.5"),changeLine(rline,0)}});function changeLine(line,quantity){cartUpdating=!0;var apiId=drawer.dataset.sectionApiId||"cart-drawer";fetch(cartChangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},credentials:"same-origin",body:JSON.stringify({line:line,quantity:quantity,sections:apiId})}).then(function(r){return r.json()}).then(function(data){var html=data.sections&&(data.sections[apiId]||data.sections["cart-drawer"]);if(!updateDrawerFromSectionHtml(html))return window.refreshCartDrawer()}).catch(function(){window.refreshCartDrawer()}).finally(function(){cartUpdating=!1})}if(drawer.addEventListener("submit",function(e){var form=e.target.closest(".
1js-cart-upsell-form");if(form){e.preventDefault();var btn=form.querySelector(".cart-drawer_extras-add");btn&&(btn.classList.add("is-loading"),btn.disabled=!0);var body=new FormData(form);body.append("sections",drawer.dataset.sectionApiId||"cart-drawer"),fetch(cartAddUrl,{method:"POST",headers:{Accept:"application/json"},credentials:"same-origin",body:body}).then(function(r){return r.json()}).then(function(data){if(!(data&&data.status)){var html=data.sections&&(data.sections["cart-drawer"]||data.sections[drawer.dataset.sectionApiId]);if(!updateDrawerFromSectionHtml(html))return window.refreshCartDrawer()}}).catch(function(){window.refreshCartDrawer()}).finally(function(){btn&&(btn.classList.remove("is-loading"),btn.disabled=!1)})}}),window.openCartDrawer=openDrawer,window.closeCartDrawer=closeDrawer,window.animateCartDrawerShippingBars=animateShippingBars,window.renderCartDrawerHTML=updateDrawerFromSectionHtml,window.refreshAndOpenCartDrawer=function(){return window.refreshCartDrawer().then(openDrawer)},typeof subscribe=="function"&&typeof PUB_SUB_EVENTS!="undefined"&&PUB_SUB_EVENTS.cartUpdate&&subscribe(PUB_SUB_EVENTS.cartUpdate,function(payload){payload&&payload.source==="cart-drawer"||window.refreshCartDrawer().then(openDrawer)}),window.location.search.indexOf("cart=open")!==-1){var params=new URLSearchParams(window.location.search);params.delete("cart");var query=params.toString();window.history.replaceState({},"",window.location.pathname+(query?"?"+query:"")+window.location.hash),openDrawer()}animateShippingBars()})})();
2//# sourceMappingURL=/cdn/shop/t/45/assets/cart-drawer.js.map?v=83827299576787538731790929885

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.