import{c as n}from"./chunk-AYHVL37M.js";import{G as b}from"./chunk-VTET4O2Q.js";import{Na as m,Sa as S,a as f,b as d,gc as u,m as s,zb as p}from"./chunk-XNQ3RS5P.js";var I=(()=>{let e=class e{constructor(t){this.platformId=t,this._isInitialized=u(!1),this._isLoading=u(!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 s(this,null,function*(){this._isLoading.set(!0);try{yield this.waitForSDKFromHTML();let{apiKey:t,dev:a,vapidPublicKey:i,authKey:r,subdomain:o}=n.getBatch(),h=this.getBrowserSpecificUIConfig(),l={apiKey:t,dev:!1,vapidPublicKey:i,ui:h,serviceWorker:{automaticallyRegister:!0,waitTimeout:10},defaultDataCollection:{geoip:!0}};o&&(l.subdomain=o),r&&(l.authKey=r),batchSDK("setup",l),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(f({},n.getBatch()),{apiKey:"***hidden***",authKey:"***hidden***"})})}finally{this._isLoading.set(!1)}})}waitForSDKFromHTML(){return s(this,null,function*(){return new Promise((t,a)=>{let i=0,r=100,o=()=>{if(i++,this.isBatchSDKAvailable())t();else if(i>=r){let h=document.querySelector('script[src*="batch.com/"]');a(h?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,a){return s(this,null,function*(){yield this.waitForSDKFromHTML().then(()=>{batchSDK(i=>{i.trackEvent(t,f({},a))})}).catch(i=>{n.isProduction()?console.error("batchSDK is not defined"):console.error(i)})})}};e.\u0275fac=function(a){return new(a||e)(S(p))},e.\u0275prov=m({token:e,factory:e.\u0275fac,providedIn:"root"});let c=e;return c})();export{I as a};