1import{t as m,r as p,c as g}from"./focus-trap.BjQt658G.js";import{l as h}from"./recaptcha-loader.client.DiIeb5QY.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"15cd164079cbf20a10132d4615f9ae3955fe5370"};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="79f02888-e884-4a1e-8db6-135411433f9a",e._sentryDebugIdIdentifier="sentry-dbid-79f02888-e884-4a1e-8db6-135411433f9a")}catch{}})();const w="website_url",d="6Ldri0ssAAAAAJS11qON5fxc2r9YKw4_ZfgBqJyR";async function S(){try{return await h(d),window.grecaptcha?await window.grecaptcha.execute(d,{action:"newsletter_subscribe"}):""}catch{return""}}function E(){return Array.from(document.querySelectorAll("[data-newsletter-form]"))}function i(e,t,s){const n=e.querySelector(".is-success, .subscribe-modal__message.success"),r=e.querySelector(".is-error, .subscribe-modal__message.error");if(t==="success"){n?.classList.remove("uk-hidden","hidden"),r?.classList.add("uk-hidden","hidden"),n&&s&&(n.textContent=s);return}r?.classList.remove("uk-hidden","hidden"),n?.classList.add("uk-hidden","hidden"),r&&s&&(r.textContent=s)}function u(e,t){const s=e.querySelector('[type="submit"], .subscribe-modal__submit');s&&(s.toggleAttribute("disabled",t),s.classList.toggle("subscribe-modal__submit-loading",t))}async function _(e){const t=e.querySelector('input[name="email"]'),s=e.dataset.location??"blog",n=t?.value.trim()??"",r=e.querySelector(`input[name="${w}"]`)?.value;u(e,!0);try{const f=await S(),c=await fetch("/api/newsletter/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:n,location:s,website_url:r??"",recaptcha_token:f})}),y=await c.json();if(!c.ok){i(e,"error",y.error??"Subscription failed.");return}i(e,"success","You've been subscribed successfully!"),e.reset()}catch{i(e,"error","Subscription failed. Please try again.")}finally{u(e,!1)}}function L(){E().forEach(e=>{e.dataset.newsletterBound!=="1"&&(e.dataset.newsletterBound="1",e.addEventListener("submit",t=>{t.preventDefault(),_(e)}))})}function o(){return document.getElementById("subscribe-modal")}let a=null;function v(){const e=o();e&&(a=g(),e.classList.add("is-open"),e.setAttribute("aria-hidden","false"),document.body.classList.add("subscribe-modal-open"),e.querySelector('input[name="email"]')?.focus())}function l(){const e=o();e&&(e.classList.remove("is-open"),e.setAttribute("aria-hidden","true"),document.body.classList.remove("subscribe-modal-open"),p(a),a=null)}function A(){document.querySelectorAll("[data-subscribe-open]").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),v()})}),document.querySelectorAll("[data-subscribe-close]").forEach(e=>{e.addEventListener("click",()=>l())}),document.addEventListener("keydown",e=>{const t=o();if(t?.classList.contains("is-open")){if(e.key==="Escape"){l();return}m(t,e)}})}function b(){L(),A()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",b,{once:!0}):b();
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.