(()=>{var ct=Object.create;var $=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var L=(r,o)=>()=>(r&&(o=r(r=0)),o);var lt=(r,o)=>()=>(o||r((o={exports:{}}).exports,o),o.exports);var ut=(r,o,u,k)=>{if(o&&typeof o=="object"||typeof o=="function")for(let T of rt(o))!dt.call(r,T)&&T!==u&&$(r,T,{get:()=>o[T],enumerable:!(k=st(o,T))||k.enumerable});return r};var pt=(r,o,u)=>(u=r!=null?ct(it(r)):{},ut(o||!r||!r.__esModule?$(u,"default",{value:r,enumerable:!0}):u,r));var y=(r,o,u)=>new Promise((k,T)=>{var x=f=>{try{p(u.next(f))}catch(P){T(P)}},D=f=>{try{p(u.throw(f))}catch(P){T(P)}},p=f=>f.done?k(f.value):Promise.resolve(f.value).then(x,D);p((u=u.apply(r,o)).next())});var B,J=L(()=>{B="WebPixel::Render"});var R,z=L(()=>{J();R=r=>shopify.extend(B,r)});var q=L(()=>{z()});var F=L(()=>{q()});var H=lt(S=>{F();R(({analytics:r,browser:o,init:u,settings:k})=>{let x="https://ping.fastsimon.com/sh_webhook_thank_you",D=(k==null?void 0:k.mode)==="production",p=(t,e=null)=>{(!D||e)&&console.log(`%c\u274C IS+ Web Pixels Error | ${t}${e?": "+e:""}`,"font-weight: bold; font-size: 12px; color: red")},f=t=>{D||console.log(`%c\u26A0\uFE0F IS+ Web Pixels Warning | ${t}`,"font-weight: bold; font-size: 12px; color: orange")},P=()=>y(null,null,function*(){var t;try{let e=yield(t=o==null?void 0:o.cookie)==null?void 0:t.get("cart");return e?e.split("?")[0]||null:(f("Could not access browser cookies"),null)}catch(e){return p("Could not retrieve cart token from cookies",e),null}}),j=()=>{var t,e;try{let n=(e=(t=u==null?void 0:u.data)==null?void 0:t.shop)==null?void 0:e.myshopifyDomain;return n||null}catch(n){return f("Could not get Shopify shop domain"),null}},U=()=>y(null,null,function*(){var t,e;try{let n=yield(e=(t=o==null?void 0:o.localStorage)==null?void 0:t.getItem)==null?void 0:e.call(t,"fast-session-token");if(n){let c=JSON.parse(n);return{start:c.start,lastActive:c.lastActive}}return null}catch(n){return null}}),X=()=>y(null,null,function*(){var t,e;try{return yield(e=(t=o==null?void 0:o.localStorage)==null?void 0:t.getItem)==null?void 0:e.call(t,"isp_token_1")}catch(n){return null}}),G=t=>y(null,null,function*(){var e,n;try{yield(n=(e=o==null?void 0:o.localStorage)==null?void 0:e.setItem)==null?void 0:n.call(e,"isp_token_1",t)}catch(c){f("Could not save user session to localStorage")}}),Q=t=>y(null,null,function*(){var c,d;let e="FS_ANALYTICS_post_load_tracked";try{let m=yield(d=(c=o==null?void 0:o.localStorage)==null?void 0:c.getItem)==null?void 0:d.call(c,e);if(!m)return!1;let a=JSON.parse(m);if(!Array.isArray(a))return!1;let l=Date.now();return!!a.find(h=>h.productId===t&&l-h.timestamp<2e3)}catch(m){return!1}}),V=(t,e)=>y(null,null,function*(){var d,m;let n="FS_ANALYTICS_thank_you_reported";try{let a=yield(m=(d=o==null?void 0:o.localStorage)==null?void 0:d.getItem)==null?void 0:m.call(d,n);if(!a)return!1;let l=JSON.parse(a),h=Date.now()-l.timestamp<3e3,g=l.sessionTokenStart===t,s=l.cartToken===e;return h&&g&&s}catch(a){return!1}}),Z=(t,e)=>y(null,null,function*(){var c,d;let n="FS_ANALYTICS_thank_you_reported";try{let m={timestamp:Date.now(),sessionTokenStart:t,cartToken:e};yield(d=(c=o==null?void 0:o.localStorage)==null?void 0:c.setItem)==null?void 0:d.call(c,n,JSON.stringify(m))}catch(m){f("Could not mark thank you as sent in localStorage")}}),b=(t,e,n)=>y(null,null,function*(){try{let c=j();if(!c){f("Cannot send post_load: missing shop domain");return}let d=yield U(),m=d==null?void 0:d.start;if(!m){f("Cannot send post_load: missing session token");return}let a=new URLSearchParams;a.append("source","fast-simon-pixels"),a.append("host",c),a.append("cart_product",t),a.append("cart","1"),a.append("session",m.toString());let l=yield X();l&&a.append("st",l);let _=yield P();_&&a.append("cart_token",_),a.append("timestamp",e),n&&a.append("account_id",n);let h=`https://ping.fastsimon.com/post_load?${a.toString()}`,g=yield fetch(h);if(!g.ok)throw new Error(`Server responded with status: ${g.status}`);try{let s=yield g.json();s!=null&&s.st&&(yield G(s.st))}catch(s){}D||console.log(`%c\u2705 IS+ Web Pixels | post_load sent for product ${t}`,"font-weight: bold; font-size: 12px; color: green")}catch(c){p("Could not send post_load request",c)}}),v=(t,e,n,c,d)=>y(null,null,function*(){var l,_,h,g;if(!(t!=null&&t.localStorage)||!e||!Array.isArray(n)){p("Invalid parameters for saveProductToLocalStorage");return}let m=Date.now()-c*24*60*60*1e3,a=[];try{let s=yield(_=(l=t==null?void 0:t.localStorage)==null?void 0:l.getItem)==null?void 0:_.call(l,e);s&&(a=JSON.parse(s),Array.isArray(a)||(p("Stored products is not an array"),a=[]))}catch(s){p("Could not parse stored products",s)}a=a.concat(n),a=a.filter(s=>{try{return(s.timestampMs||new Date(s.timestamp).getTime())>=m}catch(i){return!1}}).sort((s,i)=>{try{return(i.timestampMs||new Date(i.timestamp).getTime())-(s.timestampMs||new Date(s.timestamp).getTime())}catch(E){return 0}}).slice(0,d);try{yield(g=(h=t==null?void 0:t.localStorage)==null?void 0:h.setItem)==null?void 0:g.call(h,e,JSON.stringify(a))}catch(s){p("Could not save products to local storage",s)}});r.subscribe("checkout_completed",t=>y(null,null,function*(){var e,n,c,d,m,a,l,_,h,g,s;try{if(!t){p("Invalid event data for checkout_completed");return}let i=(e=u==null?void 0:u.data)==null?void 0:e.cart;if(!i){p("Missing cart data in checkout_completed event");return}let E=(n=u==null?void 0:u.data)==null?void 0:n.shop,N=(i==null?void 0:i.id)||null;D||console.log("Checkout Completed - Cart Token:",N);let I=yield U();if(yield V(I==null?void 0:I.start,N))D||console.log("%c\u23ED\uFE0F IS+ Web Pixels | Skipping thank you webhook (already sent recently)","font-weight: bold; font-size: 12px; color: blue");else{let A={host:E==null?void 0:E.myshopifyDomain,order_id:(c=t==null?void 0:t.id)!=null?c:"",st:(d=I==null?void 0:I.start)!=null?d:"",cart_token:N,location:typeof window!="undefined"?window.location.href:"",subtotal_price:(l=(a=(m=i==null?void 0:i.cost)==null?void 0:m.totalAmount)==null?void 0:a.amount)!=null?l:""};try{let C=yield fetch(x,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)});if(!C.ok)throw new Error(`Server responded with status: ${C.status}`);yield Z(I==null?void 0:I.start,N),D||console.log("%c\u2705 IS+ Web Pixels | Thank you webhook sent","font-weight: bold; font-size: 12px; color: green")}catch(C){p("Could Not Track Checkout Completed",C)}}let O=i==null?void 0:i.id;O||f("Missing checkoutId in checkout_completed event");let w=(h=(_=i==null?void 0:i.cost)==null?void 0:_.totalAmount)==null?void 0:h.amount,K=(i==null?void 0:i.lines)||[],Y=(t==null?void 0:t.timestamp)||new Date().toISOString(),M;try{M=new Date(Y).getTime()}catch(A){p("Invalid timestamp in checkout_completed event",A),M=Date.now()}let ot="FS_ANALYTICS_checkouts_completed",et=5,at=25,W=[];if(K.length>0)for(let A of K){let C=(s=(g=A==null?void 0:A.merchandise)==null?void 0:g.product)==null?void 0:s.id;if(!C){f("Missing productId for item in checkout_completed event");continue}let nt={checkoutId:O,totalPrice:w,productId:C,timestampMs:M,timestamp:Y};W.push(nt)}if(W.length===0){let A={checkoutId:O,totalPrice:w,productId:null,timestampMs:M,timestamp:Y};W.push(A)}W.length>0&&(yield v(o,ot,W,et,at))}catch(i){p("Error processing checkout_completed event",i)}})),r.subscribe("product_added_to_cart",t=>y(null,null,function*(){var e,n,c,d,m;try{if(!t){p("Invalid event data for product_added_to_cart");return}let a=(e=t==null?void 0:t.data)==null?void 0:e.cartLine;if(!a){p("Missing cartLine in product_added_to_cart event");return}let l=(c=(n=a==null?void 0:a.merchandise)==null?void 0:n.product)==null?void 0:c.id;if(!l){p("Missing productId in product_added_to_cart event");return}let _=(m=(d=a==null?void 0:a.cost)==null?void 0:d.totalAmount)==null?void 0:m.amount,h=(t==null?void 0:t.timestamp)||new Date().toISOString(),g;try{g=new Date(h).getTime()}catch(O){p("Invalid timestamp in product_added_to_cart event",O),g=Date.now()}yield v(o,"FS_ANALYTICS_products_added_to_cart",[{productId:l,cartLineCost:_,timestampMs:g,timestamp:h}],5,25),(yield Q(l))?D||console.log(`%c\u23ED\uFE0F IS+ Web Pixels | Skipping post_load (already tracked by reporting) for product ${l}`,"font-weight: bold; font-size: 12px; color: blue"):yield b(l,h,k==null?void 0:k.accountID)}catch(a){p("Error processing product_added_to_cart event",a)}}))})});var At=pt(H());})();