"use strict";(self.webpackChunk_klaviyo_onsite_modules=self.webpackChunk_klaviyo_onsite_modules||[]).push([[7327],{73145:function(e,t,n){var r=n(69899);n(56816);let o,a;const s=new WeakMap,i=new WeakMap,c=new WeakMap,l=new WeakMap,d=new WeakMap;let u={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return i.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return f(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function m(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(y(this),t),f(s.get(this))}:function(...t){return f(e.apply(y(this),t))}:function(t,...n){const r=e.call(y(this),t,...n);return c.set(r,t.sort?t.sort():[t]),f(r)}}function p(e){return"function"==typeof e?m(e):(e instanceof IDBTransaction&&function(e){if(i.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",a),e.removeEventListener("abort",a)},o=()=>{t(),r()},a=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",o),e.addEventListener("error",a),e.addEventListener("abort",a)}));i.set(e,t)}(e),t=e,(o||(o=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>t instanceof e))?new Proxy(e,u):e);var t}function f(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",o),e.removeEventListener("error",a)},o=()=>{t(f(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener("success",o),e.addEventListener("error",a)}));return t.then((t=>{t instanceof IDBCursor&&s.set(t,e)})).catch((()=>{})),d.set(t,e),t}(e);if(l.has(e))return l.get(e);const t=p(e);return t!==e&&(l.set(e,t),d.set(t,e)),t}const y=e=>d.get(e);function h(e,t,{blocked:n,upgrade:r,blocking:o,terminated:a}={}){const s=indexedDB.open(e,t),i=f(s);return r&&s.addEventListener("upgradeneeded",(e=>{r(f(s.result),e.oldVersion,e.newVersion,f(s.transaction),e)})),n&&s.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),i.then((e=>{a&&e.addEventListener("close",(()=>a())),o&&e.addEventListener("versionchange",(e=>o(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),i}const v=["get","getKey","getAll","getAllKeys","count"],b=["put","add","delete","clear"],g=new Map;function w(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(g.get(t))return g.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,o=b.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!v.includes(n))return;const a=async function(e,...t){const a=this.transaction(e,o?"readwrite":"readonly");let s=a.store;return r&&(s=s.index(t.shift())),(await Promise.all([s[n](...t),o&&a.done]))[0]};return g.set(t,a),a}u=(e=>({...e,get:(t,n,r)=>w(t,n)||e.get(t,n,r),has:(t,n)=>!!w(t,n)||e.has(t,n)}))(u);var k=n(74882);const D="kl-post-identification-sync",I="kl-onsite-modules",S="kl-event-cache",E=JSON.stringify([]),B=()=>"indexedDB"in window,O={upgrade(e){e.objectStoreNames.contains(S)||e.createObjectStore(S,{autoIncrement:!0})}},j=async e=>{const t=(await h(I,1,O)).transaction(S,"readwrite"),n=t.objectStore(S);(async(e,t=1)=>{const n=await e.getAll(),r=n.length+t-1e4;if(r>0)for(let t=0;t{B()?j(e).finally((()=>{t&&t()})):(async e=>{const t=localStorage.getItem(D),n=null===t?[]:JSON.parse(t);n.push(e),n.length>1e4&&n.shift(),localStorage.setItem(D,JSON.stringify(n))})(e).finally((()=>{t&&t()}))},$=async(e=1e3)=>B()?(async e=>{const t=await h(I,1,O),n=t.transaction(S,"readwrite").objectStore(S).openCursor(),r=[];let o,a=async()=>{};return await n.then((function n(s){if(s&&!(r.length>=e))return r.push(s.value.event),o=s.key,s.continue().then(n);o&&(a=()=>{const e=t.transaction(S,"readwrite").objectStore(S);let n=new Promise((()=>{}));try{n=e.delete(IDBKeyRange.upperBound(o))}catch(e){console.error("Error deleting records from indexedDB",e),e instanceof Error&&(0,k.T)(e,{tags:{source:"post-identification-sync",method:"getEventsAndDeleteCallbackFromIndexedDb#deleteCallback"}})}return n})})),{events:r||[],deleteCallback:a}})(e):(async e=>{const t=JSON.parse(localStorage.getItem(D)||E),n=t.slice(0,e),r=t.slice(e);return{events:n||[],deleteCallback:async()=>{localStorage.setItem(D,JSON.stringify(r))}}})(e),_=()=>B()?(async()=>(await h(I,1,O)).transaction(S,"readwrite").objectStore(S).clear())():(async()=>{localStorage.removeItem(D)})(),x=(e,t)=>{var n;const r=(new Date).toISOString(),o={name:e.event,time:(null==(n=e.properties)?void 0:n.time)||r,properties:e.properties||{}};C(o,t)};var L=n(2116),N=n.n(L),M=n(44050),T=n(28650),A=n(96497),P=n(113);const J=new Set(["$exchange_id","email","id","$email","$id","$anonymous","$phone_number"]),K=["name"],V=`${M.bl.url}${M.bl.eventBulkCreate}`;let W=!1;const F=(e,t,n)=>{const r=((e,t)=>({data:{type:"event-bulk-create",attributes:{profile:{data:{type:"profile",attributes:Object.assign({},t),meta:{identifiers:t}}},events:{data:e.map((e=>{const{name:t}=e,n=N()(e,K);return{type:"event",attributes:Object.assign({metric:{data:{type:"metric",attributes:{name:t}}}},n)}}))}}}}))(e,n);return(0,T.W)((()=>((e,t)=>fetch(`${V}/?company_id=${e}`,{method:"POST",headers:{"Access-Control-Allow-Headers":"*","Content-Type":"application/json","X-Klaviyo-Onsite":"1",revision:"2023-10-15"},body:JSON.stringify(t)}))(t,r)),5,1e3+1e3*Math.random(),[429])},R={$exchange_id:"_kx",email:"email",id:"id",$email:"email",$id:"id",$anonymous:"anonymous_id",$phone_number:"phone_number"},q=e=>{let t={};return Object.keys(R).forEach((n=>{if(r=n,Set.prototype.has.call(J,r)){const r=e[n];if(r){const e=("$email"===n||"email"===n)&&!(0,A.v)(r),o="$phone_number"===n&&!(0,P.y)(r);e||o||(t=Object.assign({},t,{[R[n]]:r}))}}var r})),t},H=(e,t,n)=>{if(0!==e.events.length)return F(e.events,t,n).then((async r=>{if(429===r.status)throw Error("Saving event cache due to rate limit.");return e.deleteCallback&&await e.deleteCallback(),$().then((e=>H(e,t,n)))}))},X=async(e,t,n)=>{const r=e||window.__klKey;if(!r||W)return;const o=q(t);o&&0!==Object.keys(o).length&&(W=!0,$().then((e=>H(e,r,o))).catch((e=>{throw console.error("Failed to send bulk events",e),e})).then((()=>{_(),n&&n()})).catch((e=>{console.error("Failed to clear storage",e)})).finally((()=>{W=!1})))};(()=>{(0,r.e)("cacheEvent",x),(0,r.e)("sendCachedEvents",X)})()}},function(e){e.O(0,[2462,7943],(function(){return t=73145,e(e.s=t);var t}));e.O()}]);