1import{w as o}from"./main.ClpykpKB.min.js";import{Modal as n}from"./modal.EeojFuWR.min.js";import"./focus-trap.esm.CPw4bcQR.min.js";class i extends HTMLElement{constructor(){super(),this.elements={modal:this.querySelector("site-modal"),banner:document.querySelector("[data-employee-discount-banner]")},customElements.get("site-modal")||customElements.define("site-modal",n),this.state={isEmployee:document.documentElement.hasAttribute("data-employee"),termsAccepted:null},this.init()}async init(){const t=(await o("Shopify")).country.toUpperCase();await this.checkCartState(t),this.state.isEmployee&&(await this.checkTermsAcceptance(t),this.setupEventListeners(),this.handleInitialDisplay())}async checkCartState(e){var t,s;try{if(e==="US"||e==="CA"){const r=await fetch(`${window.routes.cart_url}.js`),{attributes:a}=await r.json();a!=null&&a.employee_terms_accepted&&!((t=window.customer)!=null&&t.loggedIn)&&!((s=window.customer)!=null&&s.isEmployee)&&await this.clearCartAttributes()}}catch(r){console.error("Error checking cart state:",r)}}async checkTermsAcceptance(e){try{if(e==="US"||e==="CA"){const t=await fetch(`${window.routes.cart_url}.js`),{attributes:s}=await t.json();this.state.termsAccepted=s==null?void 0:s.employee_terms_accepted}else this.state.termsAccepted="true"}catch(t){console.error("Error checking terms acceptance:",t)}}setupEventListeners(){var e,t;(e=this.querySelector("[data-terms-accept]"))==null||e.addEventListener("click",()=>this.handleTerms(!0)),(t=this.querySelector("[data-terms-reject]"))==null||t.addEventListener("click",()=>this.handleTerms(!1))}handleInitialDisplay(){if(!this.state.termsAccepted&&this.state.isEmployee){this.showTermsModal();return}if(this.state.termsAccepted==="true"&&this.state.isEmployee){this.showBanner();return}}async handleTerms(e){await this.updateTerms(e),this.closeModal(),e?this.showBanner():this.hideBanner()}async updateTerms(e){try{await fetch(window.routes.cart_update_url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{employee_terms_accepted:String(e)}})}),this.state.termsAccepted=String(e)}catch(t){console.error("Error updating terms:",t)}}showTermsModal(){var e,t;(e=this.elements.modal)==null||e.setAttribute("data-force-open",""),(t=this.elements.modal)==null||t.open()}closeModal(){var e,t;(e=this.elements.modal)==null||e.removeAttribute("data-force-open"),(t=this.elements.modal)==null||t.close()}showBanner(){this.elements.banner&&(this.elements.banner.style.display="flex")}hideBanner(){this.elements.banner&&(this.elements.banner.style.display="none")}async clearCartAttributes(){try{await fetch(window.routes.cart_update_url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{employee_terms_accepted:null}})})}catch(e){console.error("Error clearing cart attributes:",e)}}}const d=()=>{customElements.get("employee-discount")||customElements.define("employee-discount",i)};export{d as default};
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.