import{E as o}from"./events.js";import{e as l}from"./emitEvent.js";const d=(n="#5C5F62")=>` `;class s extends HTMLElement{constructor(){super(),this.onKeyDown=t=>{if(t.code==="Enter"||t.code==="NumpadEnter"||t.code==="Space")t.preventDefault(),t.target.dispatchEvent(new Event("click"));else if(t.code==="Escape")t.preventDefault(),this.close();else if(t.code==="Tab"){const e=this.querySelector('[data-bb-selector="modal-close-x"'),i=this.querySelector('[data-bb-selector="done"]');t.shiftKey?document.activeElement===e&&(i.focus(),t.preventDefault()):document.activeElement===i&&(e.focus(),t.preventDefault())}},this.oldFocus=void 0,this.bbVersion=this.dataset.version,this.accordion=this.dataset.accordion,this.displayAsAccordion=this.accordion==="true",this.modalTitle=window.eight.bundleBuilder.storefront.cartEngine.getTranslation("Your bundle summary",this.dataset.title),this.totalTranslation=window.eight.bundleBuilder.storefront.cartEngine.getTranslation("Total: {{ total }}"),this.doneLabel=window.eight.bundleBuilder.storefront.cartEngine.getTranslation("Done"),this.bundleItems=window.eight.bundleBuilder.storefront.cartEngine.bundles,this.totalPrice=window.eight.bundleBuilder.storefront.cartEngine.bundlesTotalPrice}connectedCallback(){document.addEventListener(o["OPEN:MODAL"],()=>this.open()),document.addEventListener(o["CLOSE:MODAL"],()=>this.close()),document.addEventListener(o["UPDATE:MODAL"],t=>this.updateModal(t))}renderLineItems(){let t="";return this.bundleItems.forEach(e=>{t=` ${t} `}),t}updateModal(t){const e="withAnimation"in(t.detail||{})?t.detail.withAnimation:!0;this.bbVersion=this.dataset.version,this.accordion=this.dataset.accordion,this.displayAsAccordion=this.accordion==="true",this.bundleItems=window.eight.bundleBuilder.storefront.cartEngine.bundles,this.totalPrice=window.eight.bundleBuilder.storefront.cartEngine.bundlesTotalPrice,this.getAttribute("data-bb-animate")==="open"&&this.renderCriticalContent(e)}totalLabel(){return this.totalTranslation.replace(/{{\s*total\s*}}/,this.compileCost())}renderCriticalContent(t=!0){const e=this.querySelector('[data-bb-selector="modal-content"]');e.style.minHeight=`${e.offsetHeight}px`,e.style.opacity=t?"0":"1";const i=()=>{e.innerHTML=`${this.renderLineItems()}`;const a=this.querySelector('[data-bb-selector="modal-total"]');a.innerHTML=this.totalLabel(),t&&setTimeout(()=>{e.style.opacity="1"},350)};setTimeout(()=>i(),200)}open(){this.bundleItems||(this.bundleItems=window.eight.bundleBuilder.storefront.cartEngine.bundles),this.totalPrice||(this.totalPrice=window.eight.bundleBuilder.storefront.cartEngine.bundlesTotalPrice),this.setAttribute("data-bb-animate","open"),this.innerHTML=`

${this.modalTitle}

${d()}
${this.renderLineItems()}
${this.totalLabel()}
${this.doneLabel}
`;const t=this.querySelector('[data-bb-selector="done"]');t&&(this.oldFocus=document.activeElement,t.focus());const e=this.querySelectorAll("[data-bb-close-modal]");e.length>0&&e.forEach(i=>{i.addEventListener("click",()=>{l(o["CLOSE:MODAL"])})}),this.addEventListener("keydown",this.onKeyDown)}close(){var t;this.removeEventListener("keydown",this.onKeyDown),this.setAttribute("data-bb-animate","close"),this.oldFocus&&((t=this.oldFocus)==null||t.focus()),setTimeout(()=>{this.innerHTML=""},600)}compileCost(){return window.eight.bundleBuilder.storefront.cartEngine.formatMoney(this.totalPrice)}}window.customElements.define("bundle-builder-item-modal",s);