class FlashSaleEmailCollector extends HTMLElement{constructor(){super(),this.render(),this.init(),this.checkTimerStatus()}render(){const heading=this.getAttribute("heading")||"Previous flash sale has ended",subtitle=this.getAttribute("subtitle")||"Don't miss the next one. Leave your email address and we will send you a reminder when the next sale is on.",buttonText=this.getAttribute("button-text")||"Notify Me",successMessage=this.getAttribute("success-message")||"Thank you! We'll notify you when the next flash sale begins.",backgroundColor=this.getAttribute("background-color")||"#f5f5f5",textColor=this.getAttribute("text-color")||"#333",buttonBgColor=this.getAttribute("button-bg-color")||"#000",buttonTextColor=this.getAttribute("button-text-color")||"#fff";this.innerHTML=this.getInlineTemplate(heading,subtitle,buttonText,successMessage,backgroundColor,textColor,buttonBgColor,buttonTextColor)}getInlineTemplate(heading,subtitle,buttonText,successMessage,backgroundColor,textColor,buttonBgColor,buttonTextColor){const uniqueId=this.generateId(),emailId=`flash-sale-email-${uniqueId}`,errorId=`flash-sale-error-${uniqueId}`,successId=`flash-sale-success-${uniqueId}`,submitDescId=`flash-sale-submit-desc-${uniqueId}`,formId=`flash-sale-form-${uniqueId}`;return`
${this.getStyles()}
`}generateId(){return Math.random().toString(36).substr(2,9)}getStyles(){return`
`}init(){this.form=this.querySelector("form"),this.emailInput=this.querySelector('input[type="email"]'),this.submitBtn=this.querySelector("[data-submit]"),this.errorMsg=this.querySelector("[data-error]"),this.successMsg=this.querySelector("[data-success]"),this.buttonText=this.submitBtn?.querySelector(".button-text"),this.loadingText=this.submitBtn?.querySelector(".loading-text"),!(!this.form||!this.emailInput)&&(document.body.addEventListener("focusin",function(event){event.target.matches("input.flash-sale-input")&&_ltk.Signup.New("FlashSaleSignup","input.flash-sale-input",_ltk.Signup.TYPE.CLICK,".flash-sale-form-group button","email")}),this.form.addEventListener("submit",this.handleSubmit.bind(this)),this.emailInput.addEventListener("input",this.handleInput.bind(this)),this.emailInput.addEventListener("blur",this.handleBlur.bind(this)),this.emailInput.addEventListener("keydown",this.handleKeydown.bind(this)))}handleInput(){this.emailInput.getAttribute("aria-invalid")==="true"&&(this.hideError(),this.emailInput.setAttribute("aria-invalid","false"))}handleBlur(){const email=this.emailInput.value.trim();email&&!this.validateEmail(email)&&(this.showError("Please enter a valid email address"),this.emailInput.setAttribute("aria-invalid","true"))}handleKeydown(event){event.key==="Enter"&&!this.submitBtn.disabled&&(event.preventDefault(),this.submitBtn.click())}async handleSubmit(event){event.preventDefault();const email=this.emailInput.value.trim(),isValid=this.validateEmail(email);if(this.hideError(),!isValid){this.showError("Please enter a valid email address"),this.emailInput.setAttribute("aria-invalid","true"),this.emailInput.focus();return}this.emailInput.setAttribute("aria-invalid","false"),this.showLoading();try{await this.submitToListrak(email)?(this.showSuccess(),this.trackEvent("flash_sale_email_collected")):(this.showError("Something went wrong. Please try again."),this.emailInput.focus())}catch(error){console.error("Flash sale email collection error:",error),this.showError("Something went wrong. Please try again."),this.emailInput.focus()}this.hideLoading()}validateEmail(email){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)}async submitToListrak(email){if(!window._ltk)return console.warn("Listrak not loaded"),!1;try{return window._ltk&&window._ltk.Alerts?(window._ltk.Alerts.AddAlert(email,"FLASH_SALE","FLASH_SALE_NOTIFICATION"),window._ltk.Alerts.Submit(),!0):window._ltk&&window._ltk.Subscriber&&(window._ltk.Subscriber.Email=email,window._ltk.Subscriber.List="FLASH_SALE",window._ltk.Subscriber.Settings={SourceUID:"flash_sale_email_collector"},window._ltk.Subscriber.Submit)?(window._ltk.Subscriber.Submit(),!0):window._ltk&&window._ltk.Signup&&(window._ltk.Signup.Email=email,window._ltk.Signup.List="FLASH_SALE",window._ltk.Signup.SourceUID="flash_sale_email_collector",window._ltk.Signup.Submit)?(window._ltk.Signup.Submit(),!0):(console.warn("Listrak API not available"),!1)}catch(error){return console.error("Listrak submission error:",error),!1}}showError(message){this.errorMsg&&(this.errorMsg.textContent=message,this.errorMsg.classList.remove("hidden"),this.errorMsg.setAttribute("role","alert"),this.errorMsg.setAttribute("aria-live","assertive"))}hideError(){this.errorMsg&&(this.errorMsg.classList.add("hidden"),this.errorMsg.removeAttribute("role"),this.errorMsg.removeAttribute("aria-live"))}showSuccess(){this.successMsg&&(this.successMsg.classList.remove("hidden"),this.successMsg.setAttribute("role","status"),this.successMsg.setAttribute("aria-live","polite")),this.form&&(this.form.classList.add("hidden"),this.form.setAttribute("aria-hidden","true"))}showLoading(){this.submitBtn&&(this.submitBtn.disabled=!0,this.submitBtn.classList.add("loading"),this.submitBtn.setAttribute("aria-label","Submitting your email..."))}hideLoading(){if(this.submitBtn){this.submitBtn.disabled=!1,this.submitBtn.classList.remove("loading");const buttonText=this.getAttribute("button-text")||"Notify Me";this.submitBtn.setAttribute("aria-label",`${buttonText} - Submit your email to be notified about future flash sales`)}}reset(){this.hideError(),this.hideLoading(),this.emailInput&&(this.emailInput.value="",this.emailInput.setAttribute("aria-invalid","false")),this.form&&(this.form.classList.remove("hidden"),this.form.removeAttribute("aria-hidden")),this.successMsg&&(this.successMsg.classList.add("hidden"),this.successMsg.removeAttribute("role"),this.successMsg.removeAttribute("aria-live"))}trackEvent(eventName){window._theme&&_theme.track&&_theme.track.trackData({event:eventName})}checkTimerStatus(){const timers=document.querySelectorAll("countdown-timer");let hasActiveTimer=!1;timers.forEach(timer=>{const location=timer.getAttribute("data-location"),startDate=timer.getAttribute("data-start-date"),startTime=timer.getAttribute("data-start-time"),endDate=timer.getAttribute("data-end-date"),endTime=timer.getAttribute("data-end-time");if(location==="collection"&&startDate&&startTime&&endDate&&endTime){const startDateTime=_theme.Helpers.parseESTDate(startDate,startTime).getTime(),endDateTime=_theme.Helpers.parseESTDate(endDate,endTime).getTime(),currentTime=_theme.Helpers.getCurrentESTTime();hasActiveTimer=currentTime>=startDateTime&¤tTime<=endDateTime}});const inline=this.querySelector(".flash-sale-inline");hasActiveTimer?(inline?.classList.remove("show"),inline?.setAttribute("aria-hidden","true")):(inline?.classList.add("show"),inline?.removeAttribute("aria-hidden")),setTimeout(()=>{this.checkTimerStatus()},3e4)}static showAllCollectors(){document.querySelectorAll("flash-sale-email-collector").forEach(collector=>{const inline=collector.querySelector(".flash-sale-inline");inline?.classList.add("show"),inline?.removeAttribute("aria-hidden")})}static hideAllCollectors(){document.querySelectorAll("flash-sale-email-collector").forEach(collector=>{const inline=collector.querySelector(".flash-sale-inline");inline?.classList.remove("show"),inline?.setAttribute("aria-hidden","true")})}}customElements.define("flash-sale-email-collector",FlashSaleEmailCollector),window.FlashSaleEmailCollector=FlashSaleEmailCollector;
//# sourceMappingURL=/cdn/shop/t/731/assets/flash-sale-email-collector.js.map?v=75101246463134179351763025192