PageSourceSearch

https://www.skinnydiplondon.com/cdn/shop/t/914/assets/wishlist-modal.js?v=96252378133319300171788783201

js skinnydiplondon.com collected 2026-09-24 08:43:33 UTC 4,846 bytes, 2 lines download raw bytes

1import{addItemToList,createList}from"./bao-swym.js";class WishlistModal extends window.BAO.CustomElement(){connectedCallback(){super.connectedCallback()}setupListeners(){super.setupListeners(),this.handleClose=this.handleClose.bind(this),this.handleAddToWishlist=this.handleAddToWishlist.bind(this),this.handleCreateNewList=this.handleCreateNewList.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.listeners.add(document,"keydown",this.handleKeyDown),this.els.close.elements.forEach(el=>{this.listeners.add(el,"click",this.handleClose)}),this.listeners.add(this.els.addToWishlistButton.element,"click",this.handleAddToWishlist),this.listeners.add(this.els.createNewListButton.element,"click",this.handleCreateNewList),document.addEventListener("swym-item-added",data=>{this.handleClose()})}get isOpen(){return this.getAttribute("aria-hidden")==="false"}show(){this.activeTrigger=document.activeElement,document.body.classList.toggle("util-SiteOverflowed",!0),this.setAttribute("aria-hidden","false"),this.focusFirstElement()}handleClose(){this.setAttribute("aria-hidden","true"),document.body.classList.toggle("util-SiteOverflowed",!1),this.resetForm(),this.returnFocus()}focusFirstElement(){setTimeout(()=>{const focusTarget=this.querySelector('button[data-wishlist-modal-el="
1close"]')||this.getFocusableElements()[0];focusTarget&&focusTarget.focus()},500)}returnFocus(){this.activeTrigger&&(this.activeTrigger.focus(),this.activeTrigger=null)}handleKeyDown(event){if(this.isOpen){if(event.key==="Escape"){this.handleClose();return}event.key==="Tab"&&this.trapFocus(event)}}trapFocus(event){const focusableEls=this.getFocusableElements();if(!focusableEls.length)return;const firstFocusableEl=focusableEls[0],lastFocusableEl=focusableEls[focusableEls.length-1];if(!this.contains(document.activeElement)){event.preventDefault(),firstFocusableEl.focus();return}event.shiftKey&&document.activeElement===firstFocusableEl?(event.preventDefault(),lastFocusableEl.focus()):!event.shiftKey&&document.activeElement===lastFocusableEl&&(event.preventDefault(),firstFocusableEl.focus())}getFocusableElements(){return Array.from(this.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="email"]:not([disabled]), input[type="tel"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])')).filter(el=>!el.closest("[hidden]")&&el.getClientRects().length>0)}resetForm(){this.els.createNewListButton.element.classList.toggle("is-active",!1),this.els.wishlistSelect.element.classList.toggle("is-hidden",!1),this.els.addToWishlistButton.element.classList.toggle("is-hidden",!1),this.els.newListName.element.classList.toggle("is-hidden",!0),this.els.newListNameLabel.element.classList.toggle("is-hidden",!0),this.els.wishlistSelectLabel.element.classList.toggle("is-hidden",!1)}handleCreateNewList(){const productDetails=JSON.parse(this.els.details.element.innerHTML);if(this.els.createNewListButton.element.classList.contains("is-active")){this.els.createNewListButton.element.classList.toggle("is-hidden",!0);const variantId=this.querySelector("variant-selector").dataset.variantId,productId=this.dataset.product,product={epi:variantId,empi:productId,du:window.location.href},newListName=this.els.newListName.element.value,details={wishlistName:newListName,productImage:productDetails.featured_image,productTitle:productDetails.title};window.SwymCallbacks||(window.SwymCallbacks=[]),window.SwymCallbacks.push(()=>createList(newListName,product,details))}else this.els.createNewListButton.element.classList.toggle("is-active",!0),this.els.wishlistSelect.element.classList.toggle("is-hidden",!0),this.els.addToWishlistButton.element.classList.toggle("is-hidden",!0),this.els.newListName.element.classList.toggle("is-hidden",!1),this.els.newListNameLabel.element.classList.toggle("is-hidden",!1),this.els.wishlistSelectLabel.element.classList.toggle("is-hidden",!0)}handleAddToWishlist(){const productDetails=JSON.parse(this.els.details.element.innerHTML),variantSelect=this.querySelector("variant-selector"),wishlistSelect=this.querySelector("wishlist-select"),{variantId}=variantSelect.dataset,{lid,wishlistName}=wishlistSelect.dataset,{product:productId}=this.dataset,product={epi:variantId,empi:productId,du:`${window.location.origin}/products/${productDetails.handle}?variant=${variantId}`},details={wishlistName,productImage:productDetails.featured_image,productTitle:productDetails.title};window.SwymCallbacks||(window.SwymCallbacks=[]),window.SwymCallbacks.push(()=>addItemToList(lid,product,details))}}customElements.get("wishlist-modal")||customElements.define("wishlist-modal",WishlistModal);
2//# sourceMappingURL=/cdn/shop/t/914/assets/wishlist-modal.js.map?v=96252378133319300171788783201

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.