PageSourceSearch

https://charlotte-stone.com/cdn/shop/t/296/assets/quick-add-modal.js?v=142877169547254849001786348195

js charlotte-stone.com collected 2026-10-02 17:42:12 UTC 5,842 bytes, 1 lines download raw bytes

1class QuickAddModal extends HTMLElement{connectedCallback(){this.init()}init(){(this.modal=this).modalInner=this.querySelector(".quick-add-modal__inner"),this.modalContent=this.querySelector(".quick-add-modal__content"),this.closeBtn=this.querySelector(".quick-add-modal__close"),this.attachEventListeners(),this.attachQuickAddListeners()}attachQuickAddListeners(){this._delegatedQuickAddAttached||(this._delegatedQuickAddAttached=!0,this._delegatedQuickAddHandler=e=>{var t=e.target.closest('.quick-add__submit[data-open-modal="true"]');t&&!this.contains(t)&&this.handleQuickAddClick(e)},document.addEventListener("click",this._delegatedQuickAddHandler))}async handleQuickAddClick(t){t.preventDefault();var t=t.target.closest(".quick-add__submit"),i=t.querySelector(".loading__spinner"),o=t.querySelector("span:first-child"),e=(this.currentButton=t,this.currentSpinner=i,this.currentButtonText=o,i&&i.classList.remove("hidden"),o&&o.classList.add("hidden"),t.disabled=!0,t.dataset.handle);try{var r=await(await fetch("/products/"+e)).text(),s=window.matchMedia("(max-width: 768px)").matches,a=(new DOMParser).parseFromString(r,"text/html").querySelector("product-info").parentElement;if(a.querySelectorAll(".bis-modal, .bis-waitlist-modal, [data-bis-submit]").forEach(e=>{e.setAttribute("hidden","")}),s){var d=a.querySelectorAll("swiper-slide");for(let e=1;e<d.length;e++)d[e].remove()}this.openModal(a.innerHTML)}catch(e){console.error("Error fetching product:",e),i&&i.classList.add("hidden"),o&&o.classList.remove("hidden"),t.disabled=!1}}parkPageKlaviyoReviewsMount(){var e=[...document.querySelectorAll("#klaviyo-reviews-all")].filter(e=>!this.contains(e));this._pageKlaviyoMount=e[0],this._pageKlaviyoMount&&(this._pageKlaviyoMount.id="klaviyo-reviews-all-page")}restorePageKlaviyoReviewsMount(){this._pageKlaviyoMount&&(this._pageKlaviyoMount.id="klaviyo-reviews-all",this._pageKlaviyoMount=null)}forceSelectSizeIfNeeded(){var e=this.modalContent.querySelector("product-info");e&&"true"===e.dataset.requireSizeChoice&&!this._selectSizeForced&&(e.querySelectorAll('[data-size-fieldset] input[type="radio"]').forEach(e=>{e.checked=!1,e.removeAttribute("checked")}),e.querySelectorAll('button[name="add"][bis="true"]').forEach(e=>e.removeAttribute("bis")),e.applySizeRequiredSubmitState?.(null),this._selectSizeForced=!0)}openModal(t){var e=window.matchMedia("(max-width: 768px)").matches;let i=t=>{t._modalObserver&&(t._modalObserver.disconnect(),t._modalObserver=null);var e,i=t.getAttribute("data-section"),i=i?this.modalInner.querySelector("#product-form-"+i):null;i&&((e=new IntersectionObserver(e=>{e.forEach(e=>{.99<=e.intersectionRatio?t.classList.remove("active"):t.classList.add("active")})},{root:this.modalInner,threshold:Array.from({length:21},(e,t)=>.05*t)})).observe(i),t._modalObserver=e)};if(e&&this._contentMutationObserver&&this._contentMutationObserver.disconnect(),this.parkPageKlaviyoReviewsMount(),this.modalContent.innerHTML=t,e){this._contentMutationObserver=new MutationObserver(()=>{var t=this.modalContent.querySelectorAll("swiper-slide");for(let e=1;e<t.length;e++)t[e].remove()}),this._contentMutationObserver.observe(this.modalContent,{childList:!0,subtree:!0});var o=this.modalContent.querySelectorAll("swiper-slide");for(let e=1;e<o.length;e++)o[e].remove()}this.setAttribute("open","true"),document.body.style.overflow="hidden",e&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.modalContent.querySelectorAll("floating-form").forEach(e=>{e.classList.remove("active"),i(e)})})});var t=this.modalContent.querySelector(".product__title"),r=t?.querySelector("h1"),t=(this.modalContent.querySelector(".price"),this.modalContent.querySelector(".product-media-gallery")?.querySelector("swiper-slide"),e&&((e=document.createElement("div")).classList.add("quick-add-modal__header"),(s=document.createElement("div")).classList.add("quick-add-modal__title-color"),t&&s.appendChild(t),e.appendChild(s),e.children.length)&&this.modalContent.insertBefore(e,this.modalContent.firstChild),this.modalContent.querySelector("product-info"));if(t){t.dataset.updateUrl="false";let e=t.dataset.url;r&&r.addEventListener("click",()=>{window.location=e});var s=document.createElement("a");s.classList.add("quick-add-modal__product-details","hide-desktop"),s.href=e,s.textContent="SHOP OTHER COLORS",(this.modalContent.querySelector(".quick-add-modal__content")||this.modalContent).appendChild(s)}window.KlaviyoReviewsRuntime?.reload?.()?.catch?.(()=>{}),this.currentSpinner&&this.currentSpinner.classList.add("hidden"),this.currentButtonText&&this.currentButtonText.classList.remove("hidden"),this.currentButton&&(this.currentButton.disabled=!1),this._selectSizeForced=!1,requestAnimationFrame(()=>this.forceSelectSizeIfNeeded()),this._observer?.disconnect(),this._observer=new MutationObserver(e=>{e.some(e=>[...e.addedNodes].some(e=>1===e.nodeType&&(e.matches?.("product-info")||e.querySelector?.("product-info"))))&&(this._selectSizeForced=!1,requestAnimationFrame(()=>this.forceSelectSizeIfNeeded()))}),this._observer.observe(this.modalContent,{childList:!0,subtree:!0})}hide(){this.modalContent.querySelectorAll("dusk-tabs").forEach(e
1=>{e.classList.contains("list-open")&&e.closeListSidebar()}),this.modalInner?.classList.remove("list-drawer-open"),this._observer?.disconnect(),this._observer=null,this._selectSizeForced=!1,this.removeAttribute("open"),document.body.style.overflow="auto",this.restorePageKlaviyoReviewsMount(),window.KlaviyoReviewsRuntime?.reload?.()?.catch?.(()=>{}),this.dispatchEvent(new CustomEvent("modalClosed",{bubbles:!0}))}attachEventListeners(){this.closeBtn.addEventListener("click",()=>this.hide()),this.addEventListener("click",e=>{e.target!==this&&e.target!==this.closeBtn&&!this.closeBtn.contains(e.target)||this.hide()})}}customElements.define("quick-add-modal",QuickAddModal);

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.