@frigade/react 1.38.3 → 1.38.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- var sa=Object.defineProperty,la=Object.defineProperties;var aa=Object.getOwnPropertyDescriptors;var Wo=Object.getOwnPropertySymbols;var ci=Object.prototype.hasOwnProperty,mi=Object.prototype.propertyIsEnumerable;var di=(e,t,o)=>t in e?sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,b=(e,t)=>{for(var o in t||(t={}))ci.call(t,o)&&di(e,o,t[o]);if(Wo)for(var o of Wo(t))mi.call(t,o)&&di(e,o,t[o]);return e},j=(e,t)=>la(e,aa(t));var ui=e=>typeof e=="symbol"?e:e+"",$e=(e,t)=>{var o={};for(var i in e)ci.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Wo)for(var i of Wo(e))t.indexOf(i)<0&&mi.call(e,i)&&(o[i]=e[i]);return o};var M=(e,t,o)=>new Promise((i,n)=>{var r=d=>{try{a(o.next(d))}catch(l){n(l)}},s=d=>{try{a(o.throw(d))}catch(l){n(l)}},a=d=>d.done?i(d.value):Promise.resolve(d.value).then(r,s);a((o=o.apply(e,t)).next())});import Oo,{createContext as Fd,useEffect as lr,useState as Ke}from"react";import{ThemeProvider as In}from"styled-components";import _t,{useContext as Rp,useEffect as ro,useState as Eo}from"react";import{useCallback as Lt,useContext as ba,useEffect as wa}from"react";import wr,{useMemo as gi}from"react";var fi="1.38.3";var st="NOT_STARTED_STEP",pe="COMPLETED_FLOW",It="SKIPPED_FLOW",Ot="STARTED_FLOW",Ue="NOT_STARTED_FLOW",Me="COMPLETED_STEP",yo="STARTED_STEP";function Re(){let{publicApiKey:e,userId:t,apiUrl:o}=wr.useContext(oe);return{config:gi(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":fi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:gi(()=>`${o}/v1/public/`,[o])}}var pa="frigade-last-call-at-",da="frigade-last-call-data-";function qt(){let{shouldGracefullyDegrade:e,readonly:t}=wr.useContext(oe);return(o,i)=>M(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Kt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Kt();let n=pa+o,r=da+o;if(typeof window!="undefined"&&window.localStorage&&i&&i.body&&i.method==="POST"){let a=window.localStorage.getItem(n),d=window.localStorage.getItem(r);if(a&&d&&d==i.body){let l=new Date(a);if(new Date().getTime()-l.getTime()<1e3)return Kt()}typeof window!="undefined"&&(window.localStorage.setItem(n,new Date().toISOString()),window.localStorage.setItem(r,i.body))}let s;try{s=yield fetch(o,i)}catch(a){return Kt(a)}return s?s.ok?s:Kt(s.statusText):Kt()})}function Kt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Yt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=wr.useContext(oe);function o(){return t?!1:e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}import{useContext as Ca,useState as hi}from"react";import{useContext as ma,useEffect as ua,useState as fa}from"react";import ga from"swr";import{useContext as ca}from"react";function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=ca(oe);function r(c,g=!1){var S;return(S=e[c])!=null?S:g}function s(c,g){t(S=>j(b({},S),{[c]:g}))}function a(c){t(g=>{let h=g,{[c]:S}=h,k=$e(h,[ui(c)]);return b({},k)})}function d(c){n.includes(c)||i(g=>[...g,c])}function l(c){return n.includes(c)}function u(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:a,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}import ha from"swr/immutable";import So from"core-js-pure/actual/structured-clone";function Tr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ue(...e){let t=e.shift(),o=e.length===1?e[0]:ue(...e);if(!Tr(t)||!Tr(o))throw new Error("deepmerge can only merge Objects");let i=So(t);return Object.entries(o).forEach(([n,r])=>{Tr(r)?i[n]!==void 0?Object.assign(i,{[n]:ue(i[n],So(r))}):Object.assign(i,{[n]:So(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...So(r)]}):Object.assign(i,{[n]:So(r)}):Object.assign(i,{[n]:r})}),i}function Jt(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var xa="unknown";function _e(){let{config:e,apiUrl:t}=Re(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:s,readonly:a}=ma(oe),{resetOpenFlowState:d}=Ne(),[l,u]=fa(!1),c={data:r.map(T=>({flowId:T.id,flowState:pe,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=T=>fetch(T,e).then(A=>{if(A.ok)return A.json();throw new Error("Failed to fetch user flow states")}).catch(A=>(console.log(`Error fetching ${T}: ${A}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:k,isLoading:h,mutate:x,error:F}=a?ha(S,g):ga(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),y=k==null?void 0:k.data;ua(()=>{!l&&!h&&y&&u(!0)},[y,l,h]);function v(T){return M(this,null,function*(){if(y&&!a){let A=y.find(N=>N.flowId===T);A&&A.flowState!==pe&&(A.flowState=pe),yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1})}})}function L(T){return M(this,null,function*(){if(y&&!a){let A=y.find(N=>N.flowId===T);A&&A.flowState!==It&&(A.flowState=It),yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1})}})}function E(T,A,N){return M(this,null,function*(){var U,z;if(y){let G=y.find(_=>_.flowId===T);if(G){let _=r.find(q=>q.slug===T),K=Jt(_==null?void 0:_.data),J=(z=(U=K==null?void 0:K.steps)!=null?U:K==null?void 0:K.data)!=null?z:[],O=J.findIndex(q=>q.id===A),Z=J&&J.length>O+1?J[O+1]:null;Z&&(G.lastStepId=Z.id),G.stepStates[A]=N,G.flowState=Ot}a||(yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1}))}})}function f(T,A,N){return M(this,null,function*(){if(y){let U=y.find(z=>z.flowId===T);U&&(U.lastStepId=A,U.stepStates[A]=N,U.flowState=Ot),a||(yield x(ue(k,{data:y}),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1}))}})}function w(T){return M(this,null,function*(){if(y){let A=y.find(N=>N.flowId===T);A&&A.flowState!==Ue&&(A.flowState=Ue,A.lastStepId=xa,Object.keys(A.stepStates).forEach(N=>{A.stepStates[N].actionType=st,A.stepStates[N].createdAt=new Date().toISOString()}),yield x(ue(k,{data:y}),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1}),d(T))}})}function I(T,A,N){return M(this,null,function*(){if(y){let U=y.find(z=>z.flowId===T);U&&(U.stepStates[A]=N),yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:y,isLoadingUserFlowStateData:!l,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowSkipped:L,optimisticallyMarkFlowNotStarted:w,optimisticallyMarkStepCompleted:E,optimisticallyMarkStepNotStarted:I,optimisticallyMarkStepStarted:f,error:F}}function bo(){let{config:e,apiUrl:t}=Re(),{userFlowStatesData:o,mutateUserFlowState:i}=_e(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:a}=Ca(oe),[d,l]=hi(new Set),[u,c]=hi(new Set),g=qt();function S(x){let F=JSON.stringify(x);if(d.has(F))return null;d.add(F),l(d),u.add(x),c(u);let y=s==null?void 0:s.find(v=>v.flowSlug===x.flowSlug&&v.stepId===x.stepId&&v.actionType===x.actionType&&v.createdAt===x.createdAt);return g(`${t}flowResponses`,j(b({},e),{method:"POST",body:F})).then(v=>{v.status!==200&&v.status!==201?(console.log("Failed to send flow response for step "+x.stepId+". Will retry again later."),r([...n,x])):y||a(L=>[...L!=null?L:[],x])})}function k(x){return M(this,null,function*(){x.foreignUserId&&(x.actionType===Ot||x.actionType===Ue?yield S(x):x.actionType===pe?yield S(x):x.actionType===yo?yield S(x):x.actionType===Me?yield S(x):x.actionType===It?yield S(x):x.actionType===st&&(yield S(x)))})}function h(){let x=[];return o==null||o.forEach(F=>{if(F&&F.stepStates&&Object.keys(F.stepStates).length!==0)for(let y in F.stepStates){let v=F.stepStates[y];x.push({foreignUserId:F.foreignUserId,flowSlug:F.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden})}}),[...x,...s]}return{addResponse:k,setFlowResponses:a,getFlowResponses:h}}import Ta from"swr";var ya=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,xi=e=>{let t=ya.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=Sa(i,"'","");r.startsWith("flow_")&&(o=r)}),o},Sa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};var Fr=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Fr||{});function ie(){let{config:e,apiUrl:t}=Re(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:s,customVariables:a,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:u,setFlowResponses:c,setShouldGracefullyDegrade:g,shouldGracefullyDegrade:S,readonly:k,flowDataOverrides:h}=ba(oe),x={data:[]},{verifySDKInitiated:F}=Yt(),{addResponse:y,getFlowResponses:v}=bo(),L=m=>fetch(m,e).then(C=>C.ok?C.json():(console.log(`Error fetching ${m} (${C.status}): ${C.statusText}. Will gracefully degrade and hide Frigade`),g(!0),x)).catch(C=>(console.log(`Error fetching ${m}: ${C}. Will gracefully degrade and hide Frigade`),g(!0),x)),{mutateUserFlowState:E,userFlowStatesData:f,isLoadingUserFlowStateData:w,optimisticallyMarkFlowCompleted:I,optimisticallyMarkFlowSkipped:T,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:U,optimisticallyMarkStepStarted:z}=_e(),{data:G,error:_,isLoading:K}=Ta(s?`${t}flows${k?"?readonly=true":""}`:null,L,{keepPreviousData:!0});wa(()=>{if(_){console.error(_);return}G&&G.data&&i(G.data)},[G,_]);function J(m){if(K)return null;let C=o.find(P=>P.slug===m);return!C&&o.length>0&&!w&&!K?(console.log(`Flow with id ${m} not found`),null):(C&&h&&h[m]&&(C.data=h[m]),(C==null?void 0:C.active)===!1&&!k?null:C)}function O(m){var W,Be,Et,At,Nt;if(!J(m))return[];let C=(W=J(m))==null?void 0:W.data;return C?(C=Z(C),((Nt=(At=(Be=Jt(C))==null?void 0:Be.data)!=null?At:(Et=Jt(C))==null?void 0:Et.steps)!=null?Nt:[]).map(ge=>{let xo=je(ge);return j(b({handleSecondaryButtonClick:()=>{ge.skippable===!0&&$(m,ge.id,{skipped:!0})}},ge),{complete:H(m,ge.id)===Me||xo>=1,started:H(m,ge.id)===yo||H(m,ge.id)===Me,currentlyActive:f==null?void 0:f.some(Co=>Co.flowId==m&&Co.lastStepId===ge.id),blocked:V(m,ge.id),hidden:ee(m,ge.id),handlePrimaryButtonClick:()=>{(!ge.completionCriteria&&(ge.autoMarkCompleted||ge.autoMarkCompleted===void 0)||ge.completionCriteria&&ge.autoMarkCompleted===!0)&&$(m,ge.id)},progress:xo})}).filter(ge=>ge.hidden!==!0)):[]}function Z(m){return m.replaceAll(/\${(.*?)}/g,(C,P)=>a[P]===void 0?"":String(a[P]).replace(/[\u00A0-\u9999<>\&]/g,function(W){return"&#"+W.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function q(m){var P;if(!J(m))return[];let C=J(m).data;return C?(C=Z(C),(P=JSON.parse(C))!=null?P:{}):[]}function ne(m,C){d(P=>j(b({},P),{[m]:C}))}function Se(m){!w&&!K&&m&&JSON.stringify(a)!=JSON.stringify(b(b({},a),m))&&Object.keys(m).forEach(C=>{ne(C,m[C])})}let ke=Lt((m,C,P)=>M(this,null,function*(){if(!F())return;let W={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:yo,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};ae(W)&&(yield z(m,C,W),y(W))}),[n,r,f]),R=Lt((m,C,P)=>M(this,null,function*(){if(!F())return;let W={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:st,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};ae(W)&&(yield U(m,C,W),y(W))}),[n,r,f]),$=Lt((m,C,P)=>M(this,null,function*(){if(!F())return;let W={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:Me,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};ae(W)&&(yield N(m,C,W),y(W))}),[n,r,f]),re=Lt((m,C)=>M(this,null,function*(){if(!F()||xt(m)===Ue)return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ue,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};yield A(m),ae(P)&&y(P)}),[n,r,f]),Pe=Lt((m,C)=>M(this,null,function*(){if(!F())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ot,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};ae(P)&&y(P)}),[n,r,f]),Ve=Lt((m,C)=>M(this,null,function*(){if(!F())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:pe,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};ae(P)&&(yield I(m),y(P))}),[n,r,f]),ve=Lt((m,C)=>M(this,null,function*(){if(!F())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:It,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};ae(P)&&(yield T(m),y(P))}),[n,r,f]);function ae(m){var C;if(f===void 0)return!1;if(f){let P=f.find(W=>W.flowId===m.flowSlug);if(m.actionType===st&&(!(P!=null&&P.stepStates[m.stepId])||P.stepStates[m.stepId].actionType===st))return!1;if(P&&((C=P.stepStates[m.stepId])==null?void 0:C.actionType)===m.actionType){if(m.actionType===Me&&(!m.data||JSON.stringify(m.data)===JSON.stringify({})))return!1;let W=Object.keys(P.stepStates).sort((Be,Et)=>{let At=new Date(P.stepStates[Be].createdAt),Nt=new Date(P.stepStates[Et].createdAt);return At.getTime()-Nt.getTime()});if(P.stepStates[W[W.length-1]].actionType===m.actionType&&m.stepId===W[W.length-1])return!1}if(P&&P.flowState===pe&&m.actionType===pe)return!1}return!0}function H(m,C){let P=D(m,C);return w?null:P?P.actionType:st}function V(m,C){let P=D(m,C);return P?P.blocked:!1}function ee(m,C){let P=D(m,C);return P?P.hidden:!1}function D(m,C){var W;if(w)return null;let P=f==null?void 0:f.find(Be=>Be.flowId===m);return!P||!P.stepStates[C]?null:(W=P.stepStates[C])!=null?W:null}function Q(m){var P,W;if(w||!f)return null;if(xt(m)===Ue)return(P=O(m)[0])!=null?P:null;let C=(W=f.find(Be=>Be.flowId===m))==null?void 0:W.lastStepId;return C?O(m).find(Be=>Be.id===C):null}function we(m){var W;let C=Q(m);if(!C)return 0;let P=(W=O(m).findIndex(Be=>Be.id===C.id))!=null?W:0;return H(m,C.id)===Me&&P<O(m).length-1?P+1:P}function je(m){if(!m.completionCriteria)return;let C=xi(m.completionCriteria);if(C===null)return;let P=Ye(C),W=nt(C);return W===0?void 0:P/W}function xt(m){let C=f==null?void 0:f.find(P=>P.flowId===m);return C?C.flowState:null}function Ye(m){let C=O(m);return C.length===0?0:C.filter(W=>H(m,W.id)===Me).length}function nt(m){return O(m).length}function Qe(m){let C=o.find(P=>P.slug===m);return C?(h&&h[m]&&(C.data=h[m]),Jt(C.data)):null}function vt(m){if(k)return!1;if(w||S)return!0;if(m!=null&&m.targetingLogic&&f){let C=f.find(P=>P.flowId===m.slug);if(C)return C.shouldTrigger===!1}return!!(m!=null&&m.targetingLogic&&n&&n.startsWith("guest_"))}function jt(m){return!vt(J(m))}function Gt(){n&&E()}function Bt(){return o}return{getAllFlows:Bt,getFlow:J,getFlowData:Qe,isLoading:w||K,getStepStatus:H,getFlowSteps:O,getCurrentStepIndex:we,markStepStarted:ke,markStepCompleted:$,markFlowNotStarted:re,markFlowStarted:Pe,markFlowCompleted:Ve,markFlowSkipped:ve,markStepNotStarted:R,getFlowStatus:xt,getNumberOfStepsCompleted:Ye,getNumberOfSteps:nt,targetingLogicShouldHideFlow:vt,setCustomVariable:ne,updateCustomVariables:Se,customVariables:a,getStepOptionalProgress:je,getFlowMetadata:q,isStepBlocked:V,isStepHidden:ee,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:u,isFlowAvailableToUser:jt,refresh:Gt}}import{useCallback as zo,useContext as Fa,useEffect as ka}from"react";var Xt="guest_";function wo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=Fa(oe),{config:r,apiUrl:s}=Re(),{mutateUserFlowState:a}=_e(),d=qt(),{verifySDKInitiated:l}=Yt();function u(h){return`frigade-user-registered-${h}`}ka(()=>{if(e&&!t){if(e.startsWith(Xt))return;let h=u(e);localStorage.getItem(h)||(d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(h,"true"))}},[e,n,t]);let c=zo(h=>M(this,null,function*(){if(!l())return;let x={foreignId:e,properties:h};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(x)})),i(F=>b(b({},F),h)),a()}),[e,r,n,a]),g=zo((h,x)=>M(this,null,function*(){if(!l())return;let y={foreignId:e,events:[{event:h,properties:x}]};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(y)})),a()}),[e,r,a]),S=zo((h,x)=>M(this,null,function*(){if(l())if(x&&Object.keys(x).length>0){let F=u(h);localStorage.setItem(F,"true"),o(h);let y={foreignId:h,properties:x};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(y)})),i(v=>b(b({},v),x)),a()}else o(h)}),[r,n,a]),k=zo(h=>M(this,null,function*(){if(!l())return;let x=typeof window!="undefined"?localStorage.getItem($t):null;if(console.log("id",localStorage.getItem($t)),!x)return;let F={foreignId:h,linkGuestId:x};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(F)})),a()}),[r,n,a]);return{userId:e,setUserId:o,setUserIdWithProperties:S,addPropertiesToUser:c,trackEventForUser:g,linkExistingGuestSessionToUser:k}}import{v4 as ed}from"uuid";import rt,{useEffect as Sn,useState as Xp}from"react";import Je,{useEffect as Br,useState as La}from"react";import Go from"styled-components";import Pa from"react";import va from"styled-components";var Ci="fr-",To="cfr-";function p(e,t){let o=`${Ci}${e}`;if(!t)return o;if(t.styleOverrides&&t.styleOverrides[e]){if(typeof t.styleOverrides[e]=="string")return o+" "+t.styleOverrides[e];if(typeof t.styleOverrides[e]=="object")return o+" "+To+e}return o}function B(e){if(!e.className||e.className.indexOf(To)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Ci)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Ho(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ee(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ho(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Te(...e){return e.filter(Boolean).join(" ")}function Fo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Ba=va.div`
2
+ var sa=Object.defineProperty,la=Object.defineProperties;var aa=Object.getOwnPropertyDescriptors;var Wo=Object.getOwnPropertySymbols;var ci=Object.prototype.hasOwnProperty,mi=Object.prototype.propertyIsEnumerable;var di=(e,t,o)=>t in e?sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,b=(e,t)=>{for(var o in t||(t={}))ci.call(t,o)&&di(e,o,t[o]);if(Wo)for(var o of Wo(t))mi.call(t,o)&&di(e,o,t[o]);return e},j=(e,t)=>la(e,aa(t));var ui=e=>typeof e=="symbol"?e:e+"",$e=(e,t)=>{var o={};for(var i in e)ci.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Wo)for(var i of Wo(e))t.indexOf(i)<0&&mi.call(e,i)&&(o[i]=e[i]);return o};var M=(e,t,o)=>new Promise((i,n)=>{var r=d=>{try{a(o.next(d))}catch(l){n(l)}},s=d=>{try{a(o.throw(d))}catch(l){n(l)}},a=d=>d.done?i(d.value):Promise.resolve(d.value).then(r,s);a((o=o.apply(e,t)).next())});import Oo,{createContext as Fd,useEffect as lr,useState as Ke}from"react";import{ThemeProvider as In}from"styled-components";import _t,{useContext as Rp,useEffect as ro,useState as Eo}from"react";import{useCallback as Lt,useContext as ba,useEffect as wa}from"react";import wr,{useMemo as gi}from"react";var fi="1.38.5";var st="NOT_STARTED_STEP",pe="COMPLETED_FLOW",It="SKIPPED_FLOW",Ot="STARTED_FLOW",Ue="NOT_STARTED_FLOW",Me="COMPLETED_STEP",yo="STARTED_STEP";function Re(){let{publicApiKey:e,userId:t,apiUrl:o}=wr.useContext(oe);return{config:gi(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":fi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:gi(()=>`${o}/v1/public/`,[o])}}var pa="frigade-last-call-at-",da="frigade-last-call-data-";function qt(){let{shouldGracefullyDegrade:e,readonly:t}=wr.useContext(oe);return(o,i)=>M(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Kt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Kt();let n=pa+o,r=da+o;if(typeof window!="undefined"&&window.localStorage&&i&&i.body&&i.method==="POST"){let a=window.localStorage.getItem(n),d=window.localStorage.getItem(r);if(a&&d&&d==i.body){let l=new Date(a);if(new Date().getTime()-l.getTime()<1e3)return Kt()}typeof window!="undefined"&&(window.localStorage.setItem(n,new Date().toISOString()),window.localStorage.setItem(r,i.body))}let s;try{s=yield fetch(o,i)}catch(a){return Kt(a)}return s?s.ok?s:Kt(s.statusText):Kt()})}function Kt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Yt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=wr.useContext(oe);function o(){return t?!1:e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}import{useContext as Ca,useState as hi}from"react";import{useContext as ma,useEffect as ua,useState as fa}from"react";import ga from"swr";import{useContext as ca}from"react";function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=ca(oe);function r(c,g=!1){var S;return(S=e[c])!=null?S:g}function s(c,g){t(S=>j(b({},S),{[c]:g}))}function a(c){t(g=>{let h=g,{[c]:S}=h,k=$e(h,[ui(c)]);return b({},k)})}function d(c){n.includes(c)||i(g=>[...g,c])}function l(c){return n.includes(c)}function u(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:a,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}import ha from"swr/immutable";import So from"core-js-pure/actual/structured-clone";function Tr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ue(...e){let t=e.shift(),o=e.length===1?e[0]:ue(...e);if(!Tr(t)||!Tr(o))throw new Error("deepmerge can only merge Objects");let i=So(t);return Object.entries(o).forEach(([n,r])=>{Tr(r)?i[n]!==void 0?Object.assign(i,{[n]:ue(i[n],So(r))}):Object.assign(i,{[n]:So(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...So(r)]}):Object.assign(i,{[n]:So(r)}):Object.assign(i,{[n]:r})}),i}function Jt(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var xa="unknown";function _e(){let{config:e,apiUrl:t}=Re(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:s,readonly:a}=ma(oe),{resetOpenFlowState:d}=Ne(),[l,u]=fa(!1),c={data:r.map(T=>({flowId:T.id,flowState:pe,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=T=>fetch(T,e).then(A=>{if(A.ok)return A.json();throw new Error("Failed to fetch user flow states")}).catch(A=>(console.log(`Error fetching ${T}: ${A}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:k,isLoading:h,mutate:x,error:F}=a?ha(S,g):ga(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),y=k==null?void 0:k.data;ua(()=>{!l&&!h&&y&&u(!0)},[y,l,h]);function v(T){return M(this,null,function*(){if(y&&!a){let A=y.find(N=>N.flowId===T);A&&A.flowState!==pe&&(A.flowState=pe),yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1})}})}function L(T){return M(this,null,function*(){if(y&&!a){let A=y.find(N=>N.flowId===T);A&&A.flowState!==It&&(A.flowState=It),yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1})}})}function E(T,A,N){return M(this,null,function*(){var U,z;if(y){let G=y.find(_=>_.flowId===T);if(G){let _=r.find(q=>q.slug===T),K=Jt(_==null?void 0:_.data),J=(z=(U=K==null?void 0:K.steps)!=null?U:K==null?void 0:K.data)!=null?z:[],O=J.findIndex(q=>q.id===A),Z=J&&J.length>O+1?J[O+1]:null;Z&&(G.lastStepId=Z.id),G.stepStates[A]=N,G.flowState=Ot}a||(yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1}))}})}function f(T,A,N){return M(this,null,function*(){if(y){let U=y.find(z=>z.flowId===T);U&&(U.lastStepId=A,U.stepStates[A]=N,U.flowState=Ot),a||(yield x(ue(k,{data:y}),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1}))}})}function w(T){return M(this,null,function*(){if(y){let A=y.find(N=>N.flowId===T);A&&A.flowState!==Ue&&(A.flowState=Ue,A.lastStepId=xa,Object.keys(A.stepStates).forEach(N=>{A.stepStates[N].actionType=st,A.stepStates[N].createdAt=new Date().toISOString()}),yield x(ue(k,{data:y}),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1}),d(T))}})}function I(T,A,N){return M(this,null,function*(){if(y){let U=y.find(z=>z.flowId===T);U&&(U.stepStates[A]=N),yield x(Promise.resolve(ue(k,{data:y})),{optimisticData:ue(k,{data:y}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:y,isLoadingUserFlowStateData:!l,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowSkipped:L,optimisticallyMarkFlowNotStarted:w,optimisticallyMarkStepCompleted:E,optimisticallyMarkStepNotStarted:I,optimisticallyMarkStepStarted:f,error:F}}function bo(){let{config:e,apiUrl:t}=Re(),{userFlowStatesData:o,mutateUserFlowState:i}=_e(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:a}=Ca(oe),[d,l]=hi(new Set),[u,c]=hi(new Set),g=qt();function S(x){let F=JSON.stringify(x);if(d.has(F))return null;d.add(F),l(d),u.add(x),c(u);let y=s==null?void 0:s.find(v=>v.flowSlug===x.flowSlug&&v.stepId===x.stepId&&v.actionType===x.actionType&&v.createdAt===x.createdAt);return g(`${t}flowResponses`,j(b({},e),{method:"POST",body:F})).then(v=>{v.status!==200&&v.status!==201?(console.log("Failed to send flow response for step "+x.stepId+". Will retry again later."),r([...n,x])):y||a(L=>[...L!=null?L:[],x])})}function k(x){return M(this,null,function*(){x.foreignUserId&&(x.actionType===Ot||x.actionType===Ue?yield S(x):x.actionType===pe?yield S(x):x.actionType===yo?yield S(x):x.actionType===Me?yield S(x):x.actionType===It?yield S(x):x.actionType===st&&(yield S(x)))})}function h(){let x=[];return o==null||o.forEach(F=>{if(F&&F.stepStates&&Object.keys(F.stepStates).length!==0)for(let y in F.stepStates){let v=F.stepStates[y];x.push({foreignUserId:F.foreignUserId,flowSlug:F.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden})}}),[...x,...s]}return{addResponse:k,setFlowResponses:a,getFlowResponses:h}}import Ta from"swr";var ya=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,xi=e=>{let t=ya.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=Sa(i,"'","");r.startsWith("flow_")&&(o=r)}),o},Sa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};var Fr=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Fr||{});function ie(){let{config:e,apiUrl:t}=Re(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:s,customVariables:a,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:u,setFlowResponses:c,setShouldGracefullyDegrade:g,shouldGracefullyDegrade:S,readonly:k,flowDataOverrides:h}=ba(oe),x={data:[]},{verifySDKInitiated:F}=Yt(),{addResponse:y,getFlowResponses:v}=bo(),L=m=>fetch(m,e).then(C=>C.ok?C.json():(console.log(`Error fetching ${m} (${C.status}): ${C.statusText}. Will gracefully degrade and hide Frigade`),g(!0),x)).catch(C=>(console.log(`Error fetching ${m}: ${C}. Will gracefully degrade and hide Frigade`),g(!0),x)),{mutateUserFlowState:E,userFlowStatesData:f,isLoadingUserFlowStateData:w,optimisticallyMarkFlowCompleted:I,optimisticallyMarkFlowSkipped:T,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:U,optimisticallyMarkStepStarted:z}=_e(),{data:G,error:_,isLoading:K}=Ta(s?`${t}flows${k?"?readonly=true":""}`:null,L,{keepPreviousData:!0});wa(()=>{if(_){console.error(_);return}G&&G.data&&i(G.data)},[G,_]);function J(m){if(K)return null;let C=o.find(P=>P.slug===m);return!C&&o.length>0&&!w&&!K?(console.log(`Flow with id ${m} not found`),null):(C&&h&&h[m]&&(C.data=h[m]),(C==null?void 0:C.active)===!1&&!k?null:C)}function O(m){var W,Be,Et,At,Nt;if(!J(m))return[];let C=(W=J(m))==null?void 0:W.data;return C?(C=Z(C),((Nt=(At=(Be=Jt(C))==null?void 0:Be.data)!=null?At:(Et=Jt(C))==null?void 0:Et.steps)!=null?Nt:[]).map(ge=>{let xo=je(ge);return j(b({handleSecondaryButtonClick:()=>{ge.skippable===!0&&$(m,ge.id,{skipped:!0})}},ge),{complete:H(m,ge.id)===Me||xo>=1,started:H(m,ge.id)===yo||H(m,ge.id)===Me,currentlyActive:f==null?void 0:f.some(Co=>Co.flowId==m&&Co.lastStepId===ge.id),blocked:V(m,ge.id),hidden:ee(m,ge.id),handlePrimaryButtonClick:()=>{(!ge.completionCriteria&&(ge.autoMarkCompleted||ge.autoMarkCompleted===void 0)||ge.completionCriteria&&ge.autoMarkCompleted===!0)&&$(m,ge.id)},progress:xo})}).filter(ge=>ge.hidden!==!0)):[]}function Z(m){return m.replaceAll(/\${(.*?)}/g,(C,P)=>a[P]===void 0?"":String(a[P]).replace(/[\u00A0-\u9999<>\&]/g,function(W){return"&#"+W.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function q(m){var P;if(!J(m))return[];let C=J(m).data;return C?(C=Z(C),(P=JSON.parse(C))!=null?P:{}):[]}function ne(m,C){d(P=>j(b({},P),{[m]:C}))}function Se(m){!w&&!K&&m&&JSON.stringify(a)!=JSON.stringify(b(b({},a),m))&&Object.keys(m).forEach(C=>{ne(C,m[C])})}let ke=Lt((m,C,P)=>M(this,null,function*(){if(!F())return;let W={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:yo,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};ae(W)&&(yield z(m,C,W),y(W))}),[n,r,f]),R=Lt((m,C,P)=>M(this,null,function*(){if(!F())return;let W={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:st,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};ae(W)&&(yield U(m,C,W),y(W))}),[n,r,f]),$=Lt((m,C,P)=>M(this,null,function*(){if(!F())return;let W={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:Me,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};ae(W)&&(yield N(m,C,W),y(W))}),[n,r,f]),re=Lt((m,C)=>M(this,null,function*(){if(!F()||xt(m)===Ue)return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ue,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};yield A(m),ae(P)&&y(P)}),[n,r,f]),Pe=Lt((m,C)=>M(this,null,function*(){if(!F())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ot,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};ae(P)&&y(P)}),[n,r,f]),Ve=Lt((m,C)=>M(this,null,function*(){if(!F())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:pe,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};ae(P)&&(yield I(m),y(P))}),[n,r,f]),ve=Lt((m,C)=>M(this,null,function*(){if(!F())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:It,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};ae(P)&&(yield T(m),y(P))}),[n,r,f]);function ae(m){var C;if(f===void 0)return!1;if(f){let P=f.find(W=>W.flowId===m.flowSlug);if(m.actionType===st&&(!(P!=null&&P.stepStates[m.stepId])||P.stepStates[m.stepId].actionType===st))return!1;if(P&&((C=P.stepStates[m.stepId])==null?void 0:C.actionType)===m.actionType){if(m.actionType===Me&&(!m.data||JSON.stringify(m.data)===JSON.stringify({})))return!1;let W=Object.keys(P.stepStates).sort((Be,Et)=>{let At=new Date(P.stepStates[Be].createdAt),Nt=new Date(P.stepStates[Et].createdAt);return At.getTime()-Nt.getTime()});if(P.stepStates[W[W.length-1]].actionType===m.actionType&&m.stepId===W[W.length-1])return!1}if(P&&P.flowState===pe&&m.actionType===pe)return!1}return!0}function H(m,C){let P=D(m,C);return w?null:P?P.actionType:st}function V(m,C){let P=D(m,C);return P?P.blocked:!1}function ee(m,C){let P=D(m,C);return P?P.hidden:!1}function D(m,C){var W;if(w)return null;let P=f==null?void 0:f.find(Be=>Be.flowId===m);return!P||!P.stepStates[C]?null:(W=P.stepStates[C])!=null?W:null}function Q(m){var P,W;if(w||!f)return null;if(xt(m)===Ue)return(P=O(m)[0])!=null?P:null;let C=(W=f.find(Be=>Be.flowId===m))==null?void 0:W.lastStepId;return C?O(m).find(Be=>Be.id===C):null}function we(m){var W;let C=Q(m);if(!C)return 0;let P=(W=O(m).findIndex(Be=>Be.id===C.id))!=null?W:0;return H(m,C.id)===Me&&P<O(m).length-1?P+1:P}function je(m){if(!m.completionCriteria)return;let C=xi(m.completionCriteria);if(C===null)return;let P=Ye(C),W=nt(C);return W===0?void 0:P/W}function xt(m){let C=f==null?void 0:f.find(P=>P.flowId===m);return C?C.flowState:null}function Ye(m){let C=O(m);return C.length===0?0:C.filter(W=>H(m,W.id)===Me).length}function nt(m){return O(m).length}function Qe(m){let C=o.find(P=>P.slug===m);return C?(h&&h[m]&&(C.data=h[m]),Jt(C.data)):null}function vt(m){if(k)return!1;if(w||S)return!0;if(m!=null&&m.targetingLogic&&f){let C=f.find(P=>P.flowId===m.slug);if(C)return C.shouldTrigger===!1}return!!(m!=null&&m.targetingLogic&&n&&n.startsWith("guest_"))}function jt(m){return!vt(J(m))}function Gt(){n&&E()}function Bt(){return o}return{getAllFlows:Bt,getFlow:J,getFlowData:Qe,isLoading:w||K,getStepStatus:H,getFlowSteps:O,getCurrentStepIndex:we,markStepStarted:ke,markStepCompleted:$,markFlowNotStarted:re,markFlowStarted:Pe,markFlowCompleted:Ve,markFlowSkipped:ve,markStepNotStarted:R,getFlowStatus:xt,getNumberOfStepsCompleted:Ye,getNumberOfSteps:nt,targetingLogicShouldHideFlow:vt,setCustomVariable:ne,updateCustomVariables:Se,customVariables:a,getStepOptionalProgress:je,getFlowMetadata:q,isStepBlocked:V,isStepHidden:ee,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:u,isFlowAvailableToUser:jt,refresh:Gt}}import{useCallback as zo,useContext as Fa,useEffect as ka}from"react";var Xt="guest_";function wo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=Fa(oe),{config:r,apiUrl:s}=Re(),{mutateUserFlowState:a}=_e(),d=qt(),{verifySDKInitiated:l}=Yt();function u(h){return`frigade-user-registered-${h}`}ka(()=>{if(e&&!t){if(e.startsWith(Xt))return;let h=u(e);localStorage.getItem(h)||(d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(h,"true"))}},[e,n,t]);let c=zo(h=>M(this,null,function*(){if(!l())return;let x={foreignId:e,properties:h};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(x)})),i(F=>b(b({},F),h)),a()}),[e,r,n,a]),g=zo((h,x)=>M(this,null,function*(){if(!l())return;let y={foreignId:e,events:[{event:h,properties:x}]};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(y)})),a()}),[e,r,a]),S=zo((h,x)=>M(this,null,function*(){if(l())if(x&&Object.keys(x).length>0){let F=u(h);localStorage.setItem(F,"true"),o(h);let y={foreignId:h,properties:x};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(y)})),i(v=>b(b({},v),x)),a()}else o(h)}),[r,n,a]),k=zo(h=>M(this,null,function*(){if(!l())return;let x=typeof window!="undefined"?localStorage.getItem($t):null;if(console.log("id",localStorage.getItem($t)),!x)return;let F={foreignId:h,linkGuestId:x};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(F)})),a()}),[r,n,a]);return{userId:e,setUserId:o,setUserIdWithProperties:S,addPropertiesToUser:c,trackEventForUser:g,linkExistingGuestSessionToUser:k}}import{v4 as ed}from"uuid";import rt,{useEffect as Sn,useState as Xp}from"react";import Je,{useEffect as Br,useState as La}from"react";import Go from"styled-components";import Pa from"react";import va from"styled-components";var Ci="fr-",To="cfr-";function p(e,t){let o=`${Ci}${e}`;if(!t)return o;if(t.styleOverrides&&t.styleOverrides[e]){if(typeof t.styleOverrides[e]=="string")return o+" "+t.styleOverrides[e];if(typeof t.styleOverrides[e]=="object")return o+" "+To+e}return o}function B(e){if(!e.className||e.className.indexOf(To)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Ci)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Ho(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ee(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ho(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Te(...e){return e.filter(Boolean).join(" ")}function Fo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Ba=va.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -610,7 +610,7 @@ var sa=Object.defineProperty,la=Object.defineProperties;var aa=Object.getOwnProp
610
610
  height: 100%;
611
611
  min-height: 400px;
612
612
  border-radius: ${e=>e.appearance.theme.borderRadius}px;
613
- }`,_p=to.iframe`
613
+ `,_p=to.iframe`
614
614
  width: 100%;
615
615
  height: 100%;
616
616
  min-height: 400px;