import{c as n}from"./chunk-2G3AB74T.js";import{G as p}from"./chunk-E2GGCCQI.js";import{Ia as d,Na as S,a as l,b as u,bc as f,h as s,ub as m}from"./chunk-V6BPA3D7.js";var v=(()=>{class a{constructor(t){this.platformId=t,this._isInitialized=f(!1),this._isLoading=f(!1),this.isInitialized=this._isInitialized.asReadonly(),this.isLoading=this._isLoading.asReadonly(),p(this.platformId)&&this.initializeBatchSDK()}isBatchSDKAvailable(){return typeof batchSDK<"u"}getBatchSDK(){return this.isBatchSDKAvailable()?batchSDK:null}initializeBatchSDK(){return s(this,null,function*(){this._isLoading.set(!0);try{yield this.waitForSDKFromHTML();let{apiKey:t,dev:e,vapidPublicKey:i,authKey:r,subdomain:o}=n.getBatch(),c=this.getBrowserSpecificUIConfig(),h={apiKey:t,dev:!1,vapidPublicKey:i,ui:c,serviceWorker:{automaticallyRegister:!0,waitTimeout:10},defaultDataCollection:{geoip:!0}};o&&(h.subdomain=o),r&&(h.authKey=r),batchSDK("setup",h),this._isInitialized.set(!0)}catch(t){console.error("\u274C Failed to initialize Batch SDK:",t),console.error("\u{1F50D} Debug info:",{batchSDKExists:typeof batchSDK<"u",batchSDKType:typeof batchSDK,htmlScriptExists:!!document.querySelector('script[src*="batch.com/"]'),environment:u(l({},n.getBatch()),{apiKey:"***hidden***",authKey:"***hidden***"})})}finally{this._isLoading.set(!1)}})}waitForSDKFromHTML(){return s(this,null,function*(){return new Promise((t,e)=>{let i=0,r=100,o=()=>{if(i++,this.isBatchSDKAvailable())t();else if(i>=r){let c=document.querySelector('script[src*="batch.com/"]');e(c?new Error("Batch SDK script found in HTML but window.batchSDK is not available. Check for script loading errors in Network tab."):new Error('Batch SDK script not found in HTML. Please add <script src="https://via.batch.com" async crossorigin="anonymous"><\/script> to your index.html'))}else setTimeout(o,100)};o()})})}getBrowserSpecificUIConfig(){let t=navigator.userAgent;return t.indexOf("Firefox")!==-1||t.indexOf("Safari")!==-1&&t.indexOf("Chrome")===-1?{alert:{},banner:{autoShow:!1},button:{autoShow:!1}}:{native:{},banner:{autoShow:!1},button:{autoShow:!1}}}trackEvent(t,e){return s(this,null,function*(){yield this.waitForSDKFromHTML().then(()=>{batchSDK(i=>{i.trackEvent(t,l({},e))})}).catch(i=>{n.isProduction()?console.error("batchSDK is not defined"):console.error(i)})})}static{this.\u0275fac=function(e){return new(e||a)(S(m))}}static{this.\u0275prov=d({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();export{v as a};