1(()=>{var t={845:t=>{self,t.exports=(()=>{"use strict";var t={};return((t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isArmadaLoaded=void 0,e.isArmadaLoaded=t=>{var e,i;const s=!0===(null===(i=null===(e=window.eight)||void 0===e?void 0:e.armada)||void 0===i?void 0:i.loaded);if(!t)return s;s?t():document.addEventListener("ARMADA:LOADED",t)},e.default=e.isArmadaLoaded})(0,t),t})()}},e={};function i(s){var n=e[s];if(void 0!==n)return n.exports;var a=e[s]={exports:{}};return t[s](a,a.exports,i),a.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=i(845);class e extends HTMLElement{constructor(){if(super(),this.buttonWrap=this.querySelector('[data-name="product-submit-wrapper"]'),this.cartTypePage=document.querySelector("body").getAttribute("data-armada-cart-type-page"),this.cartPageUrl=document.querySelector("body").getAttribute("data-cart-url"),!this.buttonWrap||!this.getAttribute("product"))return;this.hasDropdowns=!1,this.visibleDropdowns=!1;["init","handleFormButtonClick","handleOptionChange","handleVariantChange","handleAddToCartIconClick","showHideBlock","atcSuccess","atcError"].forEach((t=>{this[t]=this[t].bind(this)}))}static get observedAttributes(){return["open"]}attributeChangedCallback(t,e,i){e&&i&&e!==i&&"open"===t&&("true"===i?(this.insertDropdowns(),this.showHide.classList.remove("hidden")):this.showHide.classList.add("hidden"))}connectedCallback(){(0,t.isArmadaLoaded)(this.init),document.addEventListener("ARMADA:TRANSLATION:SYNC",this.init)}init(){if(this.currentVariant=window.eight.productEngine.firstAvailableVariant(this.product),this.templateContent=this.querySelector(`template#quick-add-${this.sectionId}-${this.product.id}
1`).content,this.templateOptionsWrap=this.templateContent.querySelector('[data-name="quick-add-options"]'),this.loadingButtonHtml=this.templateContent.querySelector("[data-button-loading]").outerHTML,this.loadingIconHtml=this.templateContent.querySelector("[data-icon-loading]").outerHTML,this.addToCartIconButtonHtml=this.templateContent.querySelector('[data-name="quick-add-add-to-cart-icon"]').innerHTML,this._buttonAttributes=this.templateContent.querySelector('[data-name="product-submit"]')?this.templateContent.querySelector('[data-name="product-submit"]').attributes:"",this._classList=this.templateContent.querySelector('[data-name="product-submit"]')?this.templateContent.querySelector('[data-name="product-submit"]').classList:"",this.buttonWrap=this.querySelector('[data-name="product-submit-wrapper"]'),this._buttonAttributes)for(const t of this._buttonAttributes)this._buttonAttributeText=`${t.name}="${t.value}"`;this.buttonWrap.innerHTML=this.getButton(),this.button=this.querySelector('[data-name^="button-"]'),this.setListeners(),window.eight.armada.elementRegistry.register({key:"quick-add",assetPath:"/assets/components-quick-add.js"})}handleVariantChange(t){const{productId:e,variant:i,scopeId:s}=t.detail;if(this.product.id!=e)return;if(this.scopeId!=s)return;this.insertDropdowns(!0),this.currentVariant=i,this.currentVariant.options.forEach(((t,e)=>{this.selects[e].value=t,this.triggerChange(this.selects[e])}))}setListeners(){this.button&&this.button.addEventListener("click",this.handleFormButtonClick),this.showHideTrigger&&this.showHideTrigger.addEventListener("click",this.showHideBlock),this.addToCartIcon&&this.addToCartIcon.addEventListener("click",this.handleAddToCartIconClick),this.setVariantChangeListener()}setVariantChangeListener(){document.addEventListener(`${window.eight.constants.events["ARMADA:VARIANT:CHANGE"]}`,this.handleVariantChange)}loadingButton(){return`\n <div>\n ${this.loadingButtonHtml}\n <span class="sr-only">${window.eight.translationEngine.strings.adding}</span>\n </div>\n `}buttonHtml(t="add"){if(!t)return"";const{addToCart:e,choose:i,soldOut:s,added:n,unavailable:a,isSoldOut:r,chooseVariant:o}=window.eight.translationEngine.strings,d={add:e,choose:i,"sold-out":s,added:n,unavailable:a};if(!d[t])return"";return`\n <button\n type="button"\n data-name="button-${t}"\n aria-label="${{add:e,choose:o,"sold-out":`'${this.currentVariant.title}' ${r}`,added:`${n} '${this.currentVariant.title}'`,unavailable:a}[t]}"\n class="${this._classList}"\n ${this._buttonAttributeText}\n ${"add"!==t&&"choose"!==t?"disabled":""}\n >\n <span class="pointer-events-none" data-armada-button-text>${d[t]}</span>\n </button>\n `}getButton(){return this.currentVariant?this.currentVariant.available?window.eight.productEngine.hasVariants(this.product)&&!this.allOptionsChosen?this.buttonHtml("choose"):this.buttonHtml("add"):this.buttonHtml("sold-out"):this.buttonHtml("unavailable")}showDropdowns(){this.selectsWrap.classList.remove("hidden"),this.visibleDropdowns=!0;const t=this.getButton();this.setButton(t),this.setVariantChangeListener()}hideDropdowns(){this.selectsWrap.classList.add("hidden"),this.visibleDropdowns=!1}insertDropdowns(t=!1){if(this.hasDropdowns)return;(this.showHide?this.showHide:this).insertBefore(this.templateOptionsWrap,this.querySelector('[data-name="basic-product-form"]')),this.selects.forEach(((t,e)=>{t.addEventListener("change",this.handleOptionChange),0===e&&t.focus()})),t?this.selectsWrap?.classList.add("hidden"):(this.selectsWrap?.classList.remove("hidden"),this.visibleDropdowns=!0),this.hasDropdowns=!0}disableButton(){this.button.disabled=!0,this.button.classList.add("opacity-20")}addToCart(){const t={items:[{id:this.currentVariant.id,quantity:1}]};window.eight.cartEngine.addToCart(t,"items",this.atcSuccess,this.atcError)}handleFormButtonClick(t){if(!("name"in t.target.dataset)||t.target.disabled)return;if("choose"===t.target.dataset.name.replace("button-",""))this.hasDropdowns?this.visibleDropdowns||this.showDropdowns():this.insertDropdowns();else{const t=this.loadingButton();this.setButton(t,!1),this.addToCart()}}showHideBlock(){const t="true"===this.getAttribute("open");this.setAttribute("open",!t);const e=this.querySelector('[data-name="show-label"]'),i=this.querySelector('[data-name="hide-label"]');e?.classList.toggle("hidden"),i?.classList.toggle("hidden")}handleOptionChange(t){if(!this.allOptionsChosen||!this.visibleDropdowns)return;const e=this.currentVariant.title;this.currentVariant=window.eight.productEngine.findVariant(this.product,this.selectValIndexes);const i=this.getButton();this.setButton(i),this.currentVariant&&window.eight.eventsEngine&&this.currentVariant.title!==e&&window.eight.eventsEngine.namedEvents.changeVariant(this.product.id,this.currentVariant.id,this.currentVariant,this.scopeId)}triggerChange(t){const e=new Event("change");t.dispatchEvent(e)}
1atcSuccess(){const t=this.buttonHtml("added");this.setButton(t,!1),this.cartTypePage&&(window.location=this.cartPageUrl),this.resetButtonAfterAdd()}atcError(t){console.warn("Quick add error",t),this.resetButtonAfterAdd()}resetButtonAfterAdd(){const t=this.getButton();setTimeout((()=>{this.setButton(t),this.addToCartIcon&&this.setIcon(this.addToCartIcon,this.addToCartIconButtonHtml)}),window.eight.product.addedTimeout)}setButton(t,e=!0){this.buttonWrap.innerHTML=t,this.button=this.querySelector('[data-name^="button-"]'),this.button&&(this.currentVariant.available&&e?this.button.addEventListener("click",this.handleFormButtonClick):this.button.classList.add("opacity-20"))}setIcon(t,e){t.innerHTML=e}handleAddToCartIconClick(){this.setIcon(this.addToCartIcon,this.loadingIconHtml),this.addToCart()}get quickAddIconsWrapper(){const t=this.product.id;return!!document.querySelector(`[data-name="quick-add-icons-${t}-${this.scopeId}"]`)&&document.querySelector(`[data-name="quick-add-icons-${t}-${this.scopeId}"]`)}get addToCartIcon(){if(this.quickAddIconsWrapper)return!!this.quickAddIconsWrapper.querySelector('[data-name="quick-add-add-to-cart-icon"]')&&this.quickAddIconsWrapper.querySelector('[data-name="quick-add-add-to-cart-icon"]')}get showHideTrigger(){if(this.quickAddIconsWrapper)return!!this.quickAddIconsWrapper.querySelector('[data-name="quick-add-show-hide-trigger"]')&&this.quickAddIconsWrapper.querySelector('[data-name="quick-add-show-hide-trigger"]')}get showHide(){return!!this.querySelector('[data-name="quick-add-show-hide"]')&&this.querySelector('[data-name="quick-add-show-hide"]')}get selectsWrap(){return!!this.querySelector('[data-name="quick-add-options"]')&&this.querySelector('[data-name="quick-add-options"]')}get selects(){return!!this.querySelector('[data-name="quick-add-options"] select')&&this.querySelectorAll('[data-name="quick-add-options"] select')}get scopeId(){const t=this.getAttribute("scope-id");return"string"==typeof t?t:""}get sectionId(){return this.getAttribute("section-id")?this.getAttribute("section-id"):"1"}get product(){return window.eight.safeJSONParse(this.getAttribute("product"))}get selectVals(){return!!this.selects&&Array.from(this.selects).map((t=>t.value))}get selectValIndexes(){if(!this.selects)return!1;let t=[];return Array.from(this.selects).forEach((e=>{const i=!0===e.options[0].disabled?e.selectedIndex-1:e.selectedIndex;t.push(i)})),t}get allOptionsChosen(){return!!this.selectVals&&!this.selectVals.some((t=>""===t))}}window.customElements.define("quick-add",e)})()})();
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.