1import{V as t}from"./hr-chunk-VariantPicker-C7wgtdUs.js";import{s as i,a as e}from"./hr-chunk-cartAdd-U_8Fm07r.js";const o=".collection-product-card__form",s="[data-collection-product-card-json]",n=".collection-product-card__option-input",r=".collection-product-card__select",d="[data-cpc-status]",a=".collection-product-card__size--submit",c="[data-cpc-waitlist]",l="[data-cpc-waitlist-panel]",h=".collection-product-card__waitlist-inner",p="[data-cpc-waitlist-close]",u="[data-cpc-waitlist-mount]",w="[data-cpc-waitlist-name]",v='input[type="email"]',m="[data-cpc-dropdown]",g="[data-cpc-dropdown-trigger]",f="[data-cpc-dropdown-value]",y='[role="listbox"]',b="[data-cpc-dropdown-option]",k=".collection-product-card__dropdown-option-label",D="cpc:waitlist-open",L=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"];class S{constructor(t){this.root=t,this.form=t.querySelector(o),this.status=t.querySelector(d),this.pending=!1,this.statusTimer=null,this.suppressClick=!1,this.form&&(this.bindWaitlist(),this.product=this.readProduct(),this.product&&(this.onClick=this.onClick.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onKeyup=this.onKeyup.bind(this),this.onChange=this.onChange.bind(this),this.onSubmit=this.onSubmit.bind(this),this.bind()))}readProduct(){const t=this.form.querySelector(s);if(!t)return null;try{return JSON.parse(t.textContent)}catch(i){return console.error("[CollectionProductCard] bad product JSON",i),null}}bind(){this.form.addEventListener("click",this.onClick),this.form.addEventListener("keydown",this.onKeydown),this.form.addEventListener("keyup",this.onKeyup),this.form.addEventListener("change",this.onChange),this.form.addEventListener("submit",this.onSubmit),this.root.hasAttribute("data-cpc-default-variant")||(this.ensureCheckedOptions(),this.picker=new t(this.form,this.product,{syncUrl:!1,readInbou
1ndVariant:!1,listenForExternalSelect:!1,eventTarget:this.form}),this.form.querySelector(r)||this.picker.init(),this.bindDropdown())}ensureCheckedOptions(){const t=Array.from(this.form.querySelectorAll(n));if(!t.length)return;const i=new Map;t.forEach(t=>{i.has(t.name)||i.set(t.name,[]),i.get(t.name).push(t)}),i.forEach(t=>{t.some(t=>t.checked)||(t[0].checked=!0)})}bindDropdown(){this.dropdown=this.form.querySelector(m),this.dropdown&&(this.dropdownSelect=this.dropdown.querySelector(r),this.dropdownTrigger=this.dropdown.querySelector(g),this.dropdownValue=this.dropdown.querySelector(f),this.dropdownList=this.dropdown.querySelector(y),this.dropdownOptions=Array.from(this.dropdown.querySelectorAll(b)),this.dropdownSelect&&this.dropdownTrigger&&this.dropdownValue&&this.dropdownList?(this.dropdownPlaceholder=this.dropdownValue.textContent,this.dropdownActive=-1,this.onDropdownClick=this.onDropdownClick.bind(this),this.onDropdownKeydown=this.onDropdownKeydown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this),this.dropdown.addEventListener("click",this.onDropdownClick),this.dropdown.addEventListener("keydown",this.onDropdownKeydown),document.addEventListener("pointerdown",this.onDocumentPointerDown)):this.dropdown=null)}get dropdownOpen(){return"true"===this.dropdownTrigger.getAttribute("aria-expanded")}onDropdownClick(t){if(t.target.closest(g))return void this.toggleDropdown(!this.dropdownOpen);const i=t.target.closest(b);i&&this.chooseDropdownOption(this.dropdownOptions.indexOf(i))}onDropdownKeydown(t){const{key:i}=t;if("Escape"===i)return void(this.dropdownOpen&&(t.preventDefault(),this.toggleDropdown(!1)));if("Tab"===i)return void this.toggleDropdown(!1);if(!this.dropdownOpen)return void("ArrowDown"!==i&&"ArrowUp"!==i&&"Enter"!==i&&" "!==i||(t.preventDefault(),this.toggleDropdown(!0,{activate:!0})));if("Enter"===i||" "===i)return t.preventDefault(),-1===this.dropdownActive?void this.toggleDropdown(!1):void this.chooseDropdownOption(this.dropdownActive);const e=this.dropdownOptions.length-1;let o=this.dropdownActive;if("ArrowDown"===i)o=this.dropdownActive<e?this.dropdownActive+1:0;else if("ArrowUp"===i)o=this.dropdownActive>0?this.dropdownActive-1:e;else if("Home"===i)o=0;else{if("End"!==i)return;o=e}t.preventDefault(),this.setDropdownActive(o)}onDocumentPointerDown(t){this.dropdownOpen&&!this.dropdown.contains(t.target)&&this.toggleDropdown(!1,{restoreFocus:!1})}toggleDropdown(t,{activate:i=!1,restoreFocus:e=!0}={}){const o=this.dropdown.contains(document.activeElement);if(this.dropdownTrigger.setAttribute("aria-expanded",t?"true":"false"),this.dropdownList.hidden=!t,this.dropdown.classList.toggle("is-open",t),this.root.classList.toggle("is-dropdown-open",t),!t)return this.setDropdownActive(-1),void(e?this.dropdownTrigger.focus():o&&this.dropdownTrigger.focus({preventScroll:!0}));const s=this.dropdownOptions.findIndex(t=>t.dataset.value===this.dropdownSelect.value);this.dropdownList.focus(),s>-1?this.setDropdownActive(s):this.setDropdownActive(i?0:-1)}setDropdownActive(t){this.dropdownActive=t,this.dropdownOptions.forEach((i,e)=>{i.classList.toggle("is-active",e===t)});const i=this.dropdownOptions[t];i?(this.dropdownList.setAttribute("aria-activedescendant",i.id),"function"==typeof i.scrollIntoView&&i.scrollIntoView({block:"nearest"})):this.dropdownList.removeAttribute("aria-activedescendant")}chooseDropdownOption(t){const i=this.dropdownOptions[t];i&&("true"!==i.getAttribute("aria-disabled")?(this.dropdownSelect.value=i.dataset.value,this.toggleDropdown(!1),this.syncDropdown(),this.dropdownSelect.dispatchEvent(new Event("change",{bubbles:!0}))):i.hasAttribute("data-cpc-waitlist")&&(this.toggleDropdown(!1),this.openWaitlist(i)))}syncDropdown(){if(!this.dropdown)return;const{value:t}=this.dropdownSelect,i=this.dropdownOptions.find(i=>i.dataset.value===t),e=i&&i.querySelector(k);this.dropdownValue.textContent=e?e.textContent.trim():this.dropdownPlaceholder,this.dropdownTrigger.classList.toggle("is-placeholder",!i),this.dropdownOptions.forEach(t=>{t.setAttribute("aria-selected",t===i?"true":"false")})}onClick(t){const i=t.target.closest(n);i&&(this.suppressClick?this.suppressClick=!1:this.submit(this.cellFor(i)))}onKeydown(t){const i=t.target.closest(n);i&&(L.includes(t.key)?this.suppressClick=!0:"Enter"===t.key&&(t.preventDefault(),this.submit(this.cellFor(i))))}onKeyup(){this.suppressClick=!1}bindWaitlist(){this.panel=this.root.querySelector(l),this.panel&&(this.waitlistMount=this.panel.querySelector(u),this.waitlistMount?(this.waitlistName=this.panel.querySelector(w),this.waitlistTrigger=null,this.onWaitlistClick=this.onWaitlistClick.bind(this),this.onWaitlistKeydown=this.onWaitlistKeydown.bind(this),this.onOtherWaitlistOpen=this.onOtherWaitlistOpen.bind(this),this.root.addEventListener("click",this.onWaitlistClick),this.root.addEventListener("keydown",this.onWaitlistKeydown),document.addEventListener(
1D,this.onOtherWaitlistOpen)):this.panel=null)}onWaitlistClick(t){if(t.target.closest(p))return t.preventDefault(),void this.closeWaitlist();if(t.target.closest(l)&&!t.target.closest(h))return void this.closeWaitlist();const i=t.target.closest(c);i&&"function"==typeof window.waitlistForm&&(t.preventDefault(),this.openWaitlist(i))}onWaitlistKeydown(t){"Escape"!==t.key||this.panel.hidden||this.closeWaitlist()}onOtherWaitlistOpen(t){t.detail&&t.detail.card!==this.root&&this.hideWaitlist()}openWaitlist(t){if("function"!=typeof window.waitlistForm)return;if(this.waitlistTrigger===t&&!this.panel.hidden)return;const i=t.dataset.cpcWaitlistVariant,e=this.variantById(i),o=e&&e.options&&e.options.length>1?e.options.join(" / "):t.dataset.cpcWaitlistValue||"";this.waitlistTrigger=t,this.waitlistName&&(this.waitlistName.textContent=o),this.panel.hidden=!1,this.root.classList.add("is-waitlist-open");const s={el:this.waitlistMount,variantId:i,variantName:o,variant:e,waitlist:!e||!!e.waitlist},n=this.panel.dataset.cpcWaitlistList;n&&(s.listId=n),window.waitlistForm(s);const r=this.waitlistMount.querySelector(".waitlist > p");r&&r.remove(),this.watchWaitlistSuccess(),"function"==typeof window.GAevent&&window.GAevent("Collection","Sold Out - Waitlist","Open"),document.dispatchEvent(new CustomEvent(D,{detail:{card:this.root}}));const d=this.waitlistMount.querySelector(v);d&&d.focus()}watchWaitlistSuccess(){this.stopWatchingWaitlist(),this.waitlistObserver=new MutationObserver(()=>{const t=!this.waitlistMount.querySelector(".waitlist-form");this.panel.classList.toggle("is-waitlist-success",t)}),this.waitlistObserver.observe(this.waitlistMount,{childList:!0,subtree:!0})}stopWatchingWaitlist(){this.waitlistObserver&&(this.waitlistObserver.disconnect(),this.waitlistObserver=null),this.panel.classList.remove("is-waitlist-success")}closeWaitlist(){const t=this.waitlistTrigger;this.hideWaitlist(),t&&t.focus()}hideWaitlist(){this.stopWatchingWaitlist(),this.panel.hidden=!0,this.root.classList.remove("is-waitlist-open"),this.waitlistTrigger=null,this.waitlistMount&&(this.waitlistMount.innerHTML="")}onChange(t){const i=t.target.closest(r);i&&this.picker&&this.picker.currentVariant&&this.submit(i)}onSubmit(t){t.preventDefault(),t.stopImmediatePropagation(),this.submit(this.form.querySelector(a))}cellFor(t){return t.nextElementSibling}variantById(t){return t&&this.product&&Array.isArray(this.product.variants)&&this.product.variants.find(i=>String(i.id)===String(t))||null}setStatus(t,i=""){this.status&&(window.clearTimeout(this.statusTimer),this.status.textContent=t,this.status.classList.toggle("is-success","success"===i),this.status.classList.toggle("is-error","error"===i),t&&(this.statusTimer=window.setTimeout(()=>{this.status.textContent="",this.status.classList.remove("is-success","is-error")},4e3)))}resetSelect(t){t&&t.matches(r)&&(t.selectedIndex=0,this.syncDropdown())}async submit(t){if(this.pending)return void this.setStatus(this.root.dataset.cpcBusyLabel||"");if(this.picker){const t=this.picker.currentVariant;if(!t)return void this.setStatus(this.root.dataset.cpcErrorLabel||"Could not add to bag","error");this.picker.update(t)}const{id:o,quantity:s}=i(this.form);if(o&&!Number.isNaN(o)){this.pending=!0;try{this.root.classList.add("is-pending"),t&&t.setAttribute("aria-busy","true"),this.setStatus("");const i=await e([{id:o,quantity:s}],{silent:!0});if(i&&Array.isArray(i.items)&&i.items.length)this.setStatus(this.root.dataset.cpcAddedLabel||"Added to bag","success"),this.resetSelect(t),"function"==typeof window.GAevent&&window.GAevent("Collection","Add To Cart","Submit");else{const t=i&&(i.description||i.message);this.setStatus(t||this.root.dataset.cpcErrorLabel||"Could not add to bag","error")}}catch(n){console.error("[CollectionProductCard] add failed",n),this.setStatus(this.root.dataset.cpcErrorLabel||"Could not add to bag","error")}finally{this.pending=!1,this.root.classList.remove("is-pending"),t&&t.removeAttribute("aria-busy")}}else console.error("[CollectionProductCard] could not resolve variant id",this.form)}destroy(){window.clearTimeout(this.statusTimer),this.panel&&(this.stopWatchingWaitlist(),this.root.removeEventListener("click",this.onWaitlistClick),this.root.removeEventListener("keydown",this.onWaitlistKeydown),document.removeEventListener(
1D,this.onOtherWaitlistOpen)),this.form&&(this.form.removeEventListener("click",this.onClick),this.form.removeEventListener("keydown",this.onKeydown),this.form.removeEventListener("keyup",this.onKeyup),this.form.removeEventListener("change",this.onChange),this.form.removeEventListener("submit",this.onSubmit),this.dropdown&&(this.dropdown.removeEventListener("click",this.onDropdownClick),this.dropdown.removeEventListener("keydown",this.onDropdownKeydown),document.removeEventListener("pointerdown",this.onDocumentPointerDown)),this.picker&&this.picker.destroy())}}const C="[data-collection-product-card]";function A(){document.querySelectorAll(C).forEach(t=>{t.dataset.cpcReady||(t.dataset.cpcReady="true",t.collectionProductCard=new S(t))})}var E;E=A,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",E,{once:!0}):E(),document.addEventListener("shopify:section:load",A),document.addEventListener("shopify:section:unload",function(t){t.target.querySelectorAll(C).forEach(t=>{t.collectionProductCard&&(t.collectionProductCard.destroy(),delete t.collectionProductCard),delete t.dataset.cpcReady})});//# sourceMappingURL=hr-collection-product-card-D_47naBT.js.map
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.