1var a=Object.defineProperty;var c=(i,t,s)=>t in i?a(i,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[t]=s;var n=(i,t)=>a(i,"name",{value:t,configurable:!0});var o=(i,t,s)=>c(i,typeof t!="symbol"?t+"":t,s);import{c as u,d as h,b as d,e as m}from"./site-CYdTkHhN.js";const e=class e{constructor(t,s={}){this.$element=t,this.options={minMouseY:20,disableBelow:640,storageDays:30,minMouseTravel:200,...s},this.id=this.$element.id||`exit-intent-${Date.now()}`,this.isOpen=!1,this._lastMouseX=null,this._lastMouseY=null,this._accumulatedTravel=0,this.$container=this.$element.querySelector(`[${e.Attributes.CONTAINER}]`),this.$content=this.$element.querySelector(`[${e.Attributes.CONTENT}]`),this.$overlay=this.$element.querySelector(`[${e.Attributes.OVERLAY}]`),this.focusTrap=u(this.$container,{allowOutsideClick:!0,preventScroll:!0}),e._instances.set(this.id,this),this.init()}static setDismissed(t){const s=Date.now()+t*24*60*60*1e3;localStorage.setItem(e.STORAGE_KEY,JSON.stringify({dismissed:!0,expiresAt:s}))}static isDismissed(){const t=localStorage.getItem(e.STORAGE_KEY);if(!t)return!1;try{const s=JSON.parse(t);return s.expiresAt&&Date.now()>s.expiresAt?(localStorage.removeItem(e.STORAGE_KEY),!1):s.dismissed===!0}catch{return!1}}static isLoggedIn(){return document.cookie.split(";").some(t=>t.trim().startsWith("hl="))}init(){window.innerWidth<this.options.disableBelow||e.isDismissed()||e.isLoggedIn()||(document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("keydown",this.onKeyDown),this.$element.addEventListener("click",this.onClick),window.resetExitIntentModal||(window.resetExitIntentModal=e.reset))}onMouseMove=n(t=>{if(this._lastMouseX!==null&&this._lastMouseY!==null){const s=Math.abs(t.clientX-this._lastMouseX),l=Math.abs(t.clientY-this._lastMouseY);this._accumulatedTravel+=s+l}this._lastMouseX=t.clientX,this._lastMouseY=t.clientY,this._accumulatedTravel>=this.options.minMouseTravel&&t.clientY<=this.options.minMouseY&&(this.open(),document.removeEventListener("mousemove",this.onMouseMove))},"onMouseMove");onClick=n(t=>{t.target.hasAttribute(e.Attributes.CLOSE_TRIGGER)&&this.dismiss(),t.target.hasAttribute(e.Attributes.OVERLAY)&&this.dismiss()},"onClick");onKeyDown=n(t=>{t.key==="Escape"&&this.isOpen&&this.dismiss()},"onKeyDown");open(){if(this.isOpen)return;window._satellite&&typeof _satellite.track=="function"?_satellite.track("exit_intent_trial_modal_impression"):console.warn("[ExitIntentModal] _satellite.track is not available for tracking modal impression"),this.$element.classList.remove("hidden"),this.$element.removeAttribute("inert"),this.$element.setAttribute("aria-modal","true"),h(this.$content,{reserveScrollBarGap:!0}),this.focusTrap.activate();const t=this.$element.querySelector("#signupEmail");t&&t.focus({preventScroll:!0}),this.isOpen=!0}close(){this.isOpen&&(this.focusTrap.deactivate(),d(),m(this.$content),this.$element.setAttribute("inert",""),this.$element.classList.add("hidden"),this.isOpen=!1)}dismiss(){this.close(),e.setDismissed(this.options.storageDays)}};n(e,"ExitIntentModal"),o(e,"Attributes",{OPEN_TRIGGER:"data-exit-intent-trigger",CLOSE_TRIGGER:"data-exit-intent-close",OVERLAY:"data-exit-intent-overlay",CONTAINER:"data-exit-intent-container",CONTENT:"data-exit-intent-content"}),o(e,"STORAGE_KEY","exitIntentDismissed"),o(e,"_instances",new Map);let r=e;export{r 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.