PageSourceSearch

https://speedo.com/cdn/shop/t/24/assets/cart-drawer2.js?v=170174372322162321421787223084

js speedo.com collected 2026-09-24 17:59:29 UTC 9,427 bytes, 1 lines download raw bytes

1var w=Object.defineProperty;var L=(o,t,e)=>t in o?w(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var g=(o,t,e)=>L(o,typeof t!="symbol"?t+"":t,e);import{d as E}from"./_debounce.DH6pRMXB.js";import{s as I,p as _}from"./_pubsub._CAGtZQ9.js";import{t as h,r as C}from"./_focus.PPcZROwu.js";import{f}from"./_fetch-config.ExtzPtay.js";import{o as v}from"./_keyUp.DLMcdHXI.js";import{O as q}from"./_constants.BwC9qmjn.js";class A extends HTMLElement{constructor(){super()}connectedCallback(){this.addEventListener("click",t=>this.handleRemove(t))}disconnectedCallback(){this.removeEventListener("click",t=>this.handleRemove(t))}handleRemove(t){t.preventDefault(),this.closest("cart-drawer-items").updateQuantity(this.dataset.index,0)}}customElements.get("cart-drawer-remove-button")||customElements.define("cart-drawer-remove-button",A);class T extends HTMLElement{constructor(){super()}connectedCallback(){this.addEventListener("keyup",t=>this.handleKeyup(t)),this.querySelector("#CartDrawer-Overlay").addEventListener("click",this.close.bind(this)),this.setHeaderCartIconAccessibility()}disconnectedCallback(){this.removeEventListener("keyup",t=>this.handleKeyup(t)),this.querySelector("#CartDrawer-Overlay").removeEventListener("click",this.close.bind(this)),this.setHeaderCartIconAccessibility(!1)}handleKeyup(t){t.code==="Escape"&&this.close()}setHeaderCartIconAccessibility(t=!0){const e=document.querySelector("#cart-icon-bubble");e&&(e.setAttribute("role","button"),e.setAttribute("aria-haspopup","dialog"),t?(e.addEventListener("click",r=>{r.preventDefault(),this.open(e)}),e.addEventListener("keydown",r=>{r.code.toUpperCase()==="SPACE"&&(r.preventDefault(),this.open(e))})):(e.removeEventListener("click",r=>{r.preventDefault(),this.open(e)}),e.removeEventListener("keydown",r=>{r.code.toUpperCase()==="SPACE"&&(r.preventDefault(),this.open(e))})))}open(t){t&&this.setActiveElement(t);const e=this.querySelector('[id^="Details-"] summary');e&&!e.hasAttribute("role")&&this.setSummaryAccessibility(e),setTimeout(()=>{this.classList.add("animate","active")}),this.addEventListener("transitionend",()=>{const r=this.classList.contains("is-empty")?this.querySelector(".drawer__inner-empty"):document.getElementById("CartDrawer"),s=this.querySelector(".drawer__inner")||this.querySelector(".drawer__close");h(r,s)},{once:!0}),document.body.classList.add("overflow-hidden")}close(){this.classList.remove("active"),C(this.activeElement),document.body.classList.remove("overflow-hidden")}setSummaryAccessibility(t){t.setAttribute("role","button"),t.setAttribute("aria-expanded","false"),t.nextElementSibling.getAttribute("id")&&t.setAttribute("aria-controls",t.nextElementSibling.id),t.addEventListener("click",e=>{e.currentTarget.setAttribute("aria-expanded",!e.currentTarget.closest("details").hasAttribute("open"))}),t.parentElement.addEventListener("keyup",v)}renderContents(t){this.querySelector(".drawer__inner").classList.contains("is-empty")&&this.querySelector(".drawer__inner").classList.remove("is-empty"),this.productId=t.id,this.getSectionsToRender().forEach(e=>{const r=e.selector?document.querySelector(e.selector):document.getElementById(e.id);r&&(r.innerHTML=this.getSectionInnerHTML(t.sections[e.id],e.selector))}),requestAnimationFrame(()=>{this.querySelector("#CartDrawer-Overlay").addEventListener("click",this.close.bind(this)),this.open()})}getSectionInnerHTML(t,e=".shopify-section"){return new DOMParser().parseFromString(t,"text/html").querySelector(e).innerHTML}getSectionsToRender(){return[{id:"cart-drawer",selector:"#CartDrawer"},{id:"cart-icon-bubble"}]}getSectionDOM(t,e=".shopify-section"){return new DOMParser().parseFromString(t,"text/html").querySelector(e)}setActiveElement(t){this.activeElement=t}}customElements.get("cart-drawer")||customElements.define("cart-drawer",T);class D extends HTMLElement{constructor(){super();g(this,"cartUpdateUnsubscriber");this.lineItemStatusElement=document.getElementById("shopping-cart-line-item-status")||document.getElementById("CartDrawer-LineItemStatus"),this.debouncedOnChange=E(e=>{this.onChange(e)},300)}connectedCallback(){this.cartUpdateUnsubscriber=I("cart-update",e=>{e.source!=="cart-items"&&this.onCartUpdate()}),this.addEventListener("change",this.debouncedOnChange.bind(this))}disconnectedCallback(){this.cartUpdateUnsubscriber&&this.cartUpdateUnsubscriber(),this.removeEventListener("change",this.debouncedOnChange.bind(this))}resetQuantityInput(e){const r=this.querySelector(`#Drawer-quantity-${e}`);r.value=r.getAttribute("value"),this.isEnterPressed=!1}setValidity(e,r,s){e.target.setCustomValidity(s),e.target.reportValidity(),this.resetQuantityInput(r),e.target.select()}validateQuantity(e){const r=parseInt(e.target.value),s=e.target.dataset.index;let n="";switch(!0){case r<e.target.dataset.min:n=window.quickOrderListStrings.min_error.replace("[min]",e.target.dataset.min);break;case r>parseInt(e.target.max):n=window.quickOrderListStrings.max_error.replace("[max]",e.target.max);break;case r%parseInt(e.target.step)!==0:n=window.quickOrderListStrings.step_error.replace("[step]",e.target.step);break}n?this.setValidity(e,s,n):(e.target.setCustomValidity(""),e.target.reportValidity(),this.updateQuantity(s,r,document.activeElement.getAttribute("name"),e.target.dataset.quantityVariantId))}onChange(e){this.validateQuantity(e)}onCartUpdate(){this.tagName==="CART-DRAWER-ITEMS"?fetch(`${routes.cart_url}?section_id=cart-drawer`).then(e=>e.text()).then(e=>{const r=new DOMParser().parseFromString(e,"text/html"),s=["cart-drawer-items",".cart-drawer__footer"];for(const n of s){const c=document.querySelector(n),a=r.querySelector(n);c&&a&&c.replaceWith(a)}}).catch(e=>{console.error(e)}):fetch(`${routes.cart_url}`).then(e=>e.text()).then(e=>{const r=new DOMParser().parseFromString(e,"text/html"),s=r.querySelector("cart-items");this.innerHTML=s.innerHTML;const n=document.querySelector("#cart-items__footer .totals"),c=r.querySelector("#cart-items__footer");
1n&&c&&(n.innerHTML=c.querySelector("#cart-items__footer .totals").innerHTML)}).catch(e=>{console.error(e)})}getSectionsToRender(){return[{id:"CartDrawer",section:"cart-drawer",selector:".drawer__inner"},{id:"cart-icon-bubble",section:"cart-icon-bubble",selector:".shopify-section"}]}updateQuantity(e,r,s,n){this.toggleLoading(e,!0);const c=JSON.stringify({line:e,quantity:r,sections:this.getSectionsToRender().map(a=>a.section),sections_url:window.location.pathname});fetch(`${routes.cart_change_url}`,{...f(),body:c}).then(a=>a.text()).then(a=>{const i=JSON.parse(a),d=document.getElementById(`Quantity-${e}`)||document.getElementById(`Drawer-quantity-${e}`),b=document.querySelectorAll(".cart-item");if(i.errors){d.value=d.getAttribute("value"),this.updateLiveRegions(e,i.errors);return}this.classList.toggle("is-empty",i.item_count===0);const l=this.closest("cart-drawer");l&&l.classList.toggle("is-empty",i.item_count===0),this.getSectionsToRender().forEach(u=>{const S=document.getElementById(u.id).querySelector(u.selector)||document.getElementById(u.id);S.innerHTML=this.getSectionInnerHTML(i.sections[u.section],u.selector)});const y=i.items[e-1]?i.items[e-1].quantity:void 0;let p="";b.length===i.items.length&&y!==parseInt(d.value)&&(typeof y>"u"?p=window.cartStrings.error:p=window.cartStrings.quantityError.replace("[quantity]",y)),this.updateLiveRegions(e,p);const m=document.getElementById(`CartItem-${e}`)||document.getElementById(`CartDrawer-Item-${e}`);m&&m.querySelector(`[name="${s}"]`)?l?h(l,m.querySelector(`[name="${s}"]`)):m.querySelector(`[name="${s}"]`).focus():i.item_count===0&&l?h(l.querySelector(".drawer__inner-empty"),l.querySelector("a")):document.querySelector(".cart-item")&&l&&h(l,document.querySelector(".cart-item__name")),_("cart-update",{source:"cart-items",cartData:i,variantId:n})}).catch(a=>{console.log(a),this.querySelectorAll(".loading__spinner").forEach(d=>d.classList.add("hidden"));const i=document.getElementById("cart-errors")||document.getElementById("CartDrawer-CartErrors");i&&(i.textContent=window.cartStrings.error)}).finally(()=>{this.toggleLoading(e,!1)})}updateLiveRegions(e,r){const s=document.getElementById(`Line-item-error-${e}`)||document.getElementById(`CartDrawer-LineItemError-${e}`);s&&(s.querySelector(".cart-item__error-text").textContent=r),this.lineItemStatusElement.setAttribute("aria-hidden",!0);const n=document.getElementById("cart-live-region-text")||document.getElementById("CartDrawer-LiveRegionText");n.setAttribute("aria-hidden",!1),setTimeout(()=>{n.setAttribute("aria-hidden",!0)},1e3)}getSectionInnerHTML(e,r){return new DOMParser().parseFromString(e,"text/html").querySelector(r).innerHTML}toggleLoading(e,r){(document.getElementById("cart-items__list")||document.getElementById("CartDrawer-CartItems")).classList.toggle("cart__items--disabled",r);const n=this.querySelectorAll(`#CartItem-${e} .loading__spinner`),c=this.querySelectorAll(`#CartDrawer-Item-${e} .loading__spinner`);[...n,...c].forEach(a=>a.classList.toggle("hidden",!r)),r&&(document.activeElement.blur(),this.lineItemStatusElement.setAttribute("aria-hidden",!1))}}customElements.get("cart-drawer-items")||customElements.define("cart-drawer-items",D);customElements.get("cart-note")||customElements.define("cart-note",class extends HTMLElement{constructor(){super(),this.addEventListener("input",E(t=>{const e=JSON.stringify({note:t.target.value});fetch(`${routes.cart_update_url}`,{...f(),body:e})},q))}});

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.