PageSourceSearch

https://gingerbreadusa.com/cdn/shop/t/21/assets/cart-drawer.js?v=160665800527820250051732193123

js gingerbreadusa.com collected 2026-09-26 15:30:16 UTC 3,739 bytes, 2 lines download raw bytes

1import{config}from"@archetype-themes/scripts/config";import CartForm from"@archetype-themes/scripts/modules/cart-form";import{lockMobileScrolling,unlockMobileScrolling}from"@archetype-themes/scripts/helpers/a11y";import{prepareTransition,sizeDrawer}from"@archetype-themes/scripts/helpers/utils";import{EVENTS,subscribe,publish}from"@archetype-themes/utils/pubsub";export default class HeaderCart{constructor(){this.selectors={cartTrigger:"#HeaderCartTrigger",cart:"#HeaderCart",closeBtn:".js-close-header-cart",noteBtn:".add-note"},this.classes={hidden:"hide"},this.config={cartOpen:!1,namespace:".cart-header"},this.wrapper=document.querySelector(this.selectors.cart),this.wrapper&&(this.trigger=document.querySelector(this.selectors.cartTrigger),this.noteBtn=this.wrapper.querySelector(this.selectors.noteBtn),this.form=this.wrapper.querySelector("form"),this.cartType=this.form.dataset.cartType,this.abortController=new AbortController,this._handleKeyUp=this._handleKeyUp.bind(this),this._handleClickOutside=this._handleClickOutside.bind(this),document.addEventListener("MobileNav:open",this.close.bind(this),{signal:this.abortController.signal}),document.addEventListener("modalOpen",this.close.bind(this),{signal:this.abortController.signal}),this.init())}disconnectedCallback(){this.productAddedUnsubscriber?.(),this.abortController.abort()}init(){this.cartForm=new CartForm(this.form),this.cartForm.buildCart(),this.trigger.addEventListener("click",this.open.bind(this),{signal:this.abortController.signal}),document.querySelectorAll(this.selectors.closeBtn).forEach(btn=>{btn.addEventListener("click",()=>{this.close()},{signal:this.abortController.signal})}),this.noteBtn&&this.noteBtn.addEventListener("click",()=>{this.noteBtn.classList.toggle("is-active"),this.wrapper.querySelector(".cart__note").classList.toggle("hide")},{signal:this.abortController.signal}),this.productAddedUnsubscriber=subscribe(EVENTS.ajaxProductAdded,this.handleCartChange.bind(this)),document.addEventListener("cart:open",this.open.bind(this),{signal:this.abortController.signal}),document.addEventListener("cart:close",this.close.bind(this),{signal:this.abortController.signal})}async handleCartChange(evt){await this.cartForm.buildCart(),this.config.cartOpen||this.open(),this.cartForm.cartItemsUpdated&&(this.cartForm.cartItemsUpdated=!1)}open(evt){this.cartType==="dropdown"&&(evt&&evt.preventDefault(),sizeDrawer(),prepareTransition(this.wrapper,()=>{this.wrapper.classList.add("is-active"),this.wrapper.scrollTop=0}),document.documentElement.classList.add("cart-open"),!config.bpSmall&&config.overlayHeader&&lockMobileScrolling(),window.addEventListener("keyup",this._handleKeyUp,{signal:this.abortController.signal}),publish(EVENTS.headerOverlayRemoveClass),document.dispatchEvent(new CustomEvent("CartDrawer:open")),document.dispatchEvent(new CustomEvent("drawerOpen")),setTimeout(()=>{window.addEventListener("click",this._handleClickOutside,{signal:this.abortController.signal})},0),this.config.cartOpen=!0)}close(evt){this.cartType==="dropdown"&&(evt&&evt.target.closest&&evt.target.closest(".site-header__cart")||this.config.cartOpen&&(evt&&evt.type==="MobileNav:open"?this.wrapper.classList.remove("is-active"):prepareTransition(this.wrapper,()=>{this.wrapper.classList.remove("is-active")}),window.removeEventListener("keyup",this._handleKeyUp),window.removeEventListener("click",this._handleClickOutside),!config.bpSmall&&config.overlayHeader&&unlockMobileScrolling(),document.documentElement.classList.remove("cart-open"),this.config.cartOpen=!1))}_handleKeyUp(evt){evt.keyCode===27&&this.close()}_handleClickOutside(evt){this.close(evt)}}
2//# sourceMappingURL=/cdn/shop/t/21/assets/cart-drawer.js.map?v=160665800527820250051732193123

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.