import{b as u}from"./chunk-3SH7XDCZ.js";import{G as b}from"./chunk-A2TWSRQ3.js";import{La as S,Qa as m,a as h,b as d,ec as f,l,xb as p}from"./chunk-WNE7PXNE.js";var I=(()=>{let i=class i{constructor(t){this.platformId=t,this._isInitialized=f(!1),this._isLoading=f(!1),this.isInitialized=this._isInitialized.asReadonly(),this.isLoading=this._isLoading.asReadonly(),b(this.platformId)&&this.initializeBatchSDK()}isBatchSDKAvailable(){return typeof batchSDK<"u"}getBatchSDK(){return this.isBatchSDKAvailable()?batchSDK:null}initializeBatchSDK(){return l(this,null,function*(){this._isLoading.set(!0);try{yield this.waitForSDKFromHTML();let{apiKey:t,dev:e,vapidPublicKey:a,authKey:r,subdomain:o}=u.getBatch(),s=this.getBrowserSpecificUIConfig(),c={apiKey:t,dev:!1,vapidPublicKey:a,ui:s,serviceWorker:{automaticallyRegister:!0,waitTimeout:10},defaultDataCollection:{geoip:!0}};o&&(c.subdomain=o),r&&(c.authKey=r),batchSDK("setup",c),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:d(h({},u.getBatch()),{apiKey:"***hidden***",authKey:"***hidden***"})})}finally{this._isLoading.set(!1)}})}waitForSDKFromHTML(){return l(this,null,function*(){return new Promise((t,e)=>{let a=0,r=100,o=()=>{if(a++,this.isBatchSDKAvailable())t();else if(a>=r){let s=document.querySelector('script[src*="batch.com/"]');e(s?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){batchSDK&&typeof batchSDK<"u"&&batchSDK(a=>{a.trackEvent(t,h({},e))})}};i.\u0275fac=function(e){return new(e||i)(m(p))},i.\u0275prov=S({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();export{I as a};