https://www.ambertiles.com.au/cdn/shop/t/132/assets/wishlist-lists…?v=128866152416791940471789519972
1import{G as a}from"./global-events.CQo4HGo3.min.js";import{S as l}from"./swym-wishlist.C-6RhujL.min.js";const r={LIST_CONTAINER:'[data-selector="lists"]',FORM:'[data-selector="create-form"]',INPUT:"#wishlist-list-name",SUBMIT:'[data-selector="create-button"]',WISHLIST_EMPTY:'[data-selector="wishlist-empty"]'},n=new l;class o extends HTMLElement{constructor(){super(...arguments),this.initialized=!1,this.handleInput=()=>{this.updateSubmitState()},this.handleSubmit=async t=>{t.preventDefault();const e=this.input.value.trim();if(e){if(this.isDuplicateListName(e)){this.input.focus(),alert("Wishlist name already exists.");return}try{const i=await n.createList(e),s=this.listContainer.querySelector(r.WISHLIST_EMPTY);s&&s.remove(),this.listContainer.insertAdjacentHTML("beforeend",this.renderList(i)),this.input.value="",this.updateSubmitState()}catch(i){console.error(i)}}}}async connectedCallback(){this.cacheElements(),CHROMA.wishlist.fetched?await this.initializeOnce():window.addEventListener(a.wishlist.ready,()=>{this.initializeOnce()},{once:!0})}async initializeOnce(){this.initialized||(this.initialized=!0,this.bindEvents(),await this.loadLists())}cacheElements(){const t=this.querySelector(r.LIST_CONTAINER),e=this.querySelector(r.FORM),i=this.querySelector(r.INPUT),s=this.querySelector(r.SUBMIT);if(!t||!e||!i||!s)throw new Error("WishlistListsManager: Missing required elements.");this.listContainer=t,this.form=e,this.input=i,this.submitButton=s}bindEvents(){this.form.addEventListener("submit",this.handleSubmit),this.input.addEventListener("input",this.handleInput),this.updateSubmitState()}updateSubmitState(){this.submitButton.toggleAttribute("disabled",this.input.value.trim().length===0)}isDuplicateListName(t){const e=t.trim().toLowerCase();return(CHROMA.wishlist.lists??[]).some(i=>i.lname.trim().toLowerCase()===e)}async loadLists(){try{const t=await n.fetchLists();this.renderLists(t)}catch(t){console.error(t),this.renderEmpty()}}renderLists(t){if(!t.length){this.renderEmpty();return}this.listContainer.innerHTML=t.map(e=>this.renderList(e)).join("")}renderList(t){return` 2 <div class="flex items-center gap-6 border-b border-divider-primary py-6"> 3 <div class="size-10 overflow-hidden bg-background-light"> 4 <img 5 src="${t.listcontents?.find(s=>s.iu&&s.iu.trim()!=="")?.iu??CHROMA.shopify.defaultImage}" 6 class="size-full object-cover" 7 loading="lazy" 8 > 9 </div> 10 <div class="flex-1"> 11 <p class="body-large-strong capitalize"> 12 ${t.lname} 13 </p> 14 </div> 15 </div> 16 `}renderEmpty(){this.listContainer.innerHTML=` 17 <p data-selector="wishlist-empty" class="py-10 text-center body-medium text-secondary"> 18 No wishlist found. 19 </p> 20 `}}customElements.define("wishlist-lists-manager",o);
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.