@frigade/react 1.32.33 → 1.32.34

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/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDescriptor;var al=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,dl=Object.prototype.hasOwnProperty;var cl=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Sr=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of al(t))!dl.call(e,r)&&r!==o&&To(e,r,{get:()=>t[r],enumerable:!(n=ll(t,r))||n.enumerable});return e};var h=(e,t,o)=>(o=e!=null?sl(pl(e)):{},Sr(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),ml=e=>Sr(To({},"__esModule",{value:!0}),e);var Qa={};cl(Qa,{CheckBox:()=>ut,FormLabel:()=>st,FrigadeBanner:()=>Zs,FrigadeChecklist:()=>Go,FrigadeEmbeddedTip:()=>Ks,FrigadeForm:()=>er,FrigadeGuide:()=>gs,FrigadeHeroChecklist:()=>ts,FrigadeNPSSurvey:()=>nl,FrigadeProgressBadge:()=>us,FrigadeProvider:()=>wi,FrigadeSupportWidget:()=>zs,FrigadeTour:()=>As,ProgressRing:()=>vt,useFlowOpens:()=>Ee,useFlowResponses:()=>Mt,useFlows:()=>Q,useOrganization:()=>Uo,useUser:()=>vo});module.exports=ml(Qa);var q=h(require("react")),yi=require("styled-components");var me=h(require("react"));var Ue=require("react");var Lt=h(require("react"));var yr="1.32.33 ";var ve="https://api.frigade.com/v1/public/",$e="NOT_STARTED_STEP",re="COMPLETED_FLOW",ko="ABORTED_FLOW",wt="STARTED_FLOW",We="NOT_STARTED_FLOW",ze="COMPLETED_STEP",Po="STARTED_STEP";function qe(){let{publicApiKey:e,userId:t}=Lt.default.useContext(J);return{config:(0,Lt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function Ot(){let{shouldGracefullyDegrade:e}=Lt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),Fo();let n;try{n=await fetch(t,o)}catch(r){return Fo(r)}return n?n.ok?n:Fo(n.statusText):Fo()}}function Fo(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Dt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Lt.default.useContext(J);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var no=require("react");var $t=require("react");var wr=h(require("swr"));var br=require("react");function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:r}=(0,br.useContext)(J);function i(c,m=!1){return e[c]??m}function s(c,m){t(w=>({...w,[c]:m}))}function p(c){t(m=>{let{[c]:w,...T}=m;return{...T}})}function d(c){r.includes(c)||n(m=>[...m,c])}function l(c){return r.includes(c)}function u(){return Object.values(e).some(c=>c)||o}return{getOpenFlowState:i,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var ul="unknown";function Me(){let{config:e}=qe(),{publicApiKey:t,userId:o,flows:n,setShouldGracefullyDegrade:r}=(0,$t.useContext)(J),{resetOpenFlowState:i}=Ee(),[s,p]=(0,$t.useState)(!1),d={data:n.map(P=>({flowId:P.id,flowState:re,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=P=>fetch(P,e).then(g=>{if(g.ok)return g.json();throw new Error("Failed to fetch user flow states")}).catch(g=>(console.log(`Error fetching ${P}: ${g}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:u,isLoading:c,mutate:m,error:w}=(0,wr.default)(t&&n&&o?`${ve}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),T=u==null?void 0:u.data;(0,$t.useEffect)(()=>{!s&&!c&&T&&p(!0)},[T,s,c]);async function y(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==re&&(g.flowState=re),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function f(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.stepStates[g]=C,S.flowState=wt),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function v(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.lastStepId=g,S.stepStates[g]=C,S.flowState=wt),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function F(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==We&&(g.flowState=We,g.lastStepId=ul,Object.keys(g.stepStates).forEach(C=>{g.stepStates[C].actionType=$e,g.stepStates[C].createdAt=new Date().toISOString()}),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1}),i(P))}}async function A(P,g){if(T){let C=T.find(S=>S.flowId===P);C&&C.stepStates[g]!==$e&&(C.stepStates[g]=$e),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:T,isLoadingUserFlowStateData:!s,mutateUserFlowState:m,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:F,optimisticallyMarkStepCompleted:f,optimisticallyMarkStepNotStarted:A,optimisticallyMarkStepStarted:v,error:w}}function Mt(){let{config:e}=qe(),{userFlowStatesData:t,mutateUserFlowState:o}=Me(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:i,setFlowResponses:s}=(0,no.useContext)(J),[p,d]=(0,no.useState)(new Set),[l,u]=(0,no.useState)(new Set),c=Ot();function m(y){let f=JSON.stringify(y);if(p.has(f))return null;p.add(f),d(p),l.add(y),u(l);let v=i==null?void 0:i.find(F=>F.flowSlug===y.flowSlug&&F.stepId===y.stepId&&F.actionType===y.actionType&&F.createdAt===y.createdAt);return c(`${ve}flowResponses`,{...e,method:"POST",body:f}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),r([...n,y])):v||s(A=>[...A??[],y])})}async function w(y){y.foreignUserId&&(y.actionType===wt||y.actionType===We?await m(y):y.actionType===re?await m(y):y.actionType===Po?await m(y):y.actionType===ze?await m(y):y.actionType===ko?await m(y):y.actionType===$e&&await m(y))}function T(){let y=[];return t==null||t.forEach(f=>{if(f&&f.stepStates&&Object.keys(f.stepStates).length!==0)for(let v in f.stepStates){let F=f.stepStates[v];y.push({foreignUserId:f.foreignUserId,flowSlug:f.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...y,...i]}return{addResponse:w,setFlowResponses:s,getFlowResponses:T}}var Fr=h(require("swr"));var fl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Tr=e=>{let t=fl.exec(e);if(t===null)return null;let o=null;return t.forEach((n,r)=>{let i=gl(n,"'","");i.startsWith("flow_")&&(o=i)}),o},gl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=qe(),{flows:t,setFlows:o,userId:n,publicApiKey:r,customVariables:i,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:u}=(0,Ue.useContext)(J),c={data:[]},{verifySDKInitiated:m}=Dt(),{addResponse:w,getFlowResponses:T}=Mt(),y=x=>fetch(x,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${x} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),u(!0),c)).catch(b=>(console.log(`Error fetching ${x}: ${b}. Will gracefully degrade and hide Frigade`),u(!0),c)),{userFlowStatesData:f,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:P,optimisticallyMarkStepNotStarted:g,optimisticallyMarkStepStarted:C}=Me(),{data:S,error:E,isLoading:U}=(0,Fr.default)(r?`${ve}flows`:null,y,{keepPreviousData:!0});(0,Ue.useEffect)(()=>{if(E){console.error(E);return}S&&S.data&&(S.data=o(S.data))},[S,E]);function M(x){if(U)return null;let b=t.find(B=>B.slug===x);return!b&&t.length>0&&!v&&!U?(console.log(`Flow with slug ${x} not found`),null):(b==null?void 0:b.active)===!1?null:b}function W(x){var V;if(!M(x))return[];let b=M(x).data;return b?(b=N(b),(((V=JSON.parse(b))==null?void 0:V.data)??[]).map(he=>{let j=Ne(he);return{handleSecondaryButtonClick:()=>{he.skippable===!0&&H(x,he.id,{skipped:!0})},...he,complete:O(x,he.id)===ze||j>=1,blocked:X(x,he.id),hidden:Ie(x,he.id),handlePrimaryButtonClick:()=>{(!he.completionCriteria&&(he.autoMarkCompleted||he.autoMarkCompleted===void 0)||he.completionCriteria&&he.autoMarkCompleted===!0)&&H(x,he.id)},progress:j}}).filter(he=>he.hidden!==!0)):[]}function N(x){return x.replace(/\${(.*?)}/g,(b,B)=>i[B]!==void 0?String(i[B]):"")}function G(x){if(!M(x))return[];let b=M(x).data;return b?(b=N(b),JSON.parse(b)??{}):[]}function L(x,b){s(B=>({...B,[x]:b}))}function z(x){!v&&!U&&x&&JSON.stringify(i)!=JSON.stringify({...i,...x})&&Object.keys(x).forEach(b=>{L(b,x[b])})}let ae=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:Po,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await C(x,b,V),w(V))},[n,f]),ee=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:$e,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await g(x,b),w(V))},[n,f]),H=(0,Ue.useCallback)(async(x,b,B)=>{console.log("markStepCompleted",x,b,B),m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:ze,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await P(x,b,V),w(V))},[n,f]),Ae=(0,Ue.useCallback)(async(x,b)=>{if(m(),ye(x)===We)return;let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:We,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await A(x),pe(B)&&w(B)},[n,f]),we=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:wt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&w(B)},[n,f]),K=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:re,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]),$=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:ko,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]);function pe(x){var b;if(!f&&x.actionType===$e)return!1;if(f){let B=f.find(V=>V.flowId===x.flowSlug);if(x.actionType===$e&&(!(B!=null&&B.stepStates[x.stepId])||B.stepStates[x.stepId].actionType===$e)||B&&((b=B.stepStates[x.stepId])==null?void 0:b.actionType)===x.actionType)return!1}return!0}function O(x,b){let B=De(x,b);return v?null:B?B.actionType:$e}function X(x,b){let B=De(x,b);return B?B.blocked:!1}function Ie(x,b){let B=De(x,b);return B?B.hidden:!1}function De(x,b){if(v)return null;let B=f==null?void 0:f.find(V=>V.flowId===x);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function Nt(x){var B;if(v||!f)return null;if(ye(x)===We)return W(x)[0]??null;let b=(B=f.find(V=>V.flowId===x))==null?void 0:B.lastStepId;return b?W(x).find(V=>V.id===b):null}function St(x){let b=Nt(x);if(!b)return 0;let B=W(x).findIndex(V=>V.id===b.id)??0;return O(x,b.id)===ze&&B<W(x).length-1?B+1:B}function Ne(x){if(!x.completionCriteria)return;let b=Tr(x.completionCriteria);if(b===null)return;let B=it(b),V=nt(b);return V===0?void 0:B/V}function ye(x){let b=f==null?void 0:f.find(B=>B.flowId===x);return b?b.flowState:null}function it(x){let b=W(x);return b.length===0?0:b.filter(V=>O(x,V.id)===ze).length}function nt(x){return W(x).length}function te(x){return JSON.parse(t.find(b=>b.slug===x).data)}function Te(x){if(v)return!0;if(x!=null&&x.targetingLogic&&f){let b=f.find(B=>B.flowId===x.slug);if(b)return b.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&n&&n.startsWith("guest_"))}function yt(x){return!Te(M(x))}return{getFlow:M,getFlowData:te,isLoading:v||U,getStepStatus:O,getFlowSteps:W,getCurrentStepIndex:St,markStepStarted:ae,markStepCompleted:H,markFlowNotStarted:Ae,markFlowStarted:we,markFlowCompleted:K,markFlowAborted:$,markStepNotStarted:ee,getFlowStatus:ye,getNumberOfStepsCompleted:it,getNumberOfSteps:nt,targetingLogicShouldHideFlow:Te,setCustomVariable:L,updateCustomVariables:z,customVariables:i,getStepOptionalProgress:Ne,getFlowMetadata:G,isStepBlocked:X,isStepHidden:Ie,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:yt}}var Tt=require("react");var Ut="guest_";function vo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:r}=(0,Tt.useContext)(J),{config:i}=qe(),{mutateUserFlowState:s}=Me(),p=Ot(),{verifySDKInitiated:d}=Dt();(0,Tt.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ut))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${ve}users`,{...i,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(c,"true"))}},[e,r,t]);let l=(0,Tt.useCallback)(async c=>{d();let m={foreignId:e,properties:c};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(m)}),n(w=>({...w,...c})),s()},[e,i,r,s]),u=(0,Tt.useCallback)(async(c,m)=>{d();let T={foreignId:e,events:[{event:c,properties:m}]};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(T)}),s()},[e,i,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:u}}var Ci=require("uuid");var Pe=h(require("react"));var _e=h(require("react")),ao=h(require("styled-components"));var vr=h(require("react")),Er=h(require("styled-components"));var kr="fr-",so="cfr-";function a(e,t){let o=`${kr}${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+" "+so+e}return o}function k(e){if(!e.className||e.className.indexOf(so)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(kr)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Ko(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ft(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ko(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Fe(...e){return e.filter(Boolean).join(" ")}function Pr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var hl=Er.default.div`
2
+ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDescriptor;var al=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,dl=Object.prototype.hasOwnProperty;var cl=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Sr=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of al(t))!dl.call(e,r)&&r!==o&&To(e,r,{get:()=>t[r],enumerable:!(n=ll(t,r))||n.enumerable});return e};var h=(e,t,o)=>(o=e!=null?sl(pl(e)):{},Sr(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),ml=e=>Sr(To({},"__esModule",{value:!0}),e);var Qa={};cl(Qa,{CheckBox:()=>ut,FormLabel:()=>st,FrigadeBanner:()=>Zs,FrigadeChecklist:()=>Go,FrigadeEmbeddedTip:()=>Ks,FrigadeForm:()=>er,FrigadeGuide:()=>gs,FrigadeHeroChecklist:()=>ts,FrigadeNPSSurvey:()=>nl,FrigadeProgressBadge:()=>us,FrigadeProvider:()=>wi,FrigadeSupportWidget:()=>zs,FrigadeTour:()=>As,ProgressRing:()=>vt,useFlowOpens:()=>Ee,useFlowResponses:()=>Mt,useFlows:()=>Q,useOrganization:()=>Uo,useUser:()=>vo});module.exports=ml(Qa);var q=h(require("react")),yi=require("styled-components");var me=h(require("react"));var Ue=require("react");var Lt=h(require("react"));var yr="1.32.34 ";var ve="https://api.frigade.com/v1/public/",$e="NOT_STARTED_STEP",re="COMPLETED_FLOW",ko="ABORTED_FLOW",wt="STARTED_FLOW",We="NOT_STARTED_FLOW",ze="COMPLETED_STEP",Po="STARTED_STEP";function qe(){let{publicApiKey:e,userId:t}=Lt.default.useContext(J);return{config:(0,Lt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function Ot(){let{shouldGracefullyDegrade:e}=Lt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),Fo();let n;try{n=await fetch(t,o)}catch(r){return Fo(r)}return n?n.ok?n:Fo(n.statusText):Fo()}}function Fo(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Dt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Lt.default.useContext(J);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var no=require("react");var $t=require("react");var wr=h(require("swr"));var br=require("react");function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:r}=(0,br.useContext)(J);function i(c,m=!1){return e[c]??m}function s(c,m){t(w=>({...w,[c]:m}))}function p(c){t(m=>{let{[c]:w,...T}=m;return{...T}})}function d(c){r.includes(c)||n(m=>[...m,c])}function l(c){return r.includes(c)}function u(){return Object.values(e).some(c=>c)||o}return{getOpenFlowState:i,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var ul="unknown";function Me(){let{config:e}=qe(),{publicApiKey:t,userId:o,flows:n,setShouldGracefullyDegrade:r}=(0,$t.useContext)(J),{resetOpenFlowState:i}=Ee(),[s,p]=(0,$t.useState)(!1),d={data:n.map(P=>({flowId:P.id,flowState:re,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=P=>fetch(P,e).then(g=>{if(g.ok)return g.json();throw new Error("Failed to fetch user flow states")}).catch(g=>(console.log(`Error fetching ${P}: ${g}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:u,isLoading:c,mutate:m,error:w}=(0,wr.default)(t&&n&&o?`${ve}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),T=u==null?void 0:u.data;(0,$t.useEffect)(()=>{!s&&!c&&T&&p(!0)},[T,s,c]);async function y(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==re&&(g.flowState=re),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function f(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.stepStates[g]=C,S.flowState=wt),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function v(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.lastStepId=g,S.stepStates[g]=C,S.flowState=wt),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function F(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==We&&(g.flowState=We,g.lastStepId=ul,Object.keys(g.stepStates).forEach(C=>{g.stepStates[C].actionType=$e,g.stepStates[C].createdAt=new Date().toISOString()}),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1}),i(P))}}async function A(P,g){if(T){let C=T.find(S=>S.flowId===P);C&&C.stepStates[g]!==$e&&(C.stepStates[g]=$e),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:T,isLoadingUserFlowStateData:!s,mutateUserFlowState:m,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:F,optimisticallyMarkStepCompleted:f,optimisticallyMarkStepNotStarted:A,optimisticallyMarkStepStarted:v,error:w}}function Mt(){let{config:e}=qe(),{userFlowStatesData:t,mutateUserFlowState:o}=Me(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:i,setFlowResponses:s}=(0,no.useContext)(J),[p,d]=(0,no.useState)(new Set),[l,u]=(0,no.useState)(new Set),c=Ot();function m(y){let f=JSON.stringify(y);if(p.has(f))return null;p.add(f),d(p),l.add(y),u(l);let v=i==null?void 0:i.find(F=>F.flowSlug===y.flowSlug&&F.stepId===y.stepId&&F.actionType===y.actionType&&F.createdAt===y.createdAt);return c(`${ve}flowResponses`,{...e,method:"POST",body:f}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),r([...n,y])):v||s(A=>[...A??[],y])})}async function w(y){y.foreignUserId&&(y.actionType===wt||y.actionType===We?await m(y):y.actionType===re?await m(y):y.actionType===Po?await m(y):y.actionType===ze?await m(y):y.actionType===ko?await m(y):y.actionType===$e&&await m(y))}function T(){let y=[];return t==null||t.forEach(f=>{if(f&&f.stepStates&&Object.keys(f.stepStates).length!==0)for(let v in f.stepStates){let F=f.stepStates[v];y.push({foreignUserId:f.foreignUserId,flowSlug:f.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...y,...i]}return{addResponse:w,setFlowResponses:s,getFlowResponses:T}}var Fr=h(require("swr"));var fl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Tr=e=>{let t=fl.exec(e);if(t===null)return null;let o=null;return t.forEach((n,r)=>{let i=gl(n,"'","");i.startsWith("flow_")&&(o=i)}),o},gl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=qe(),{flows:t,setFlows:o,userId:n,publicApiKey:r,customVariables:i,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:u}=(0,Ue.useContext)(J),c={data:[]},{verifySDKInitiated:m}=Dt(),{addResponse:w,getFlowResponses:T}=Mt(),y=x=>fetch(x,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${x} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),u(!0),c)).catch(b=>(console.log(`Error fetching ${x}: ${b}. Will gracefully degrade and hide Frigade`),u(!0),c)),{userFlowStatesData:f,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:P,optimisticallyMarkStepNotStarted:g,optimisticallyMarkStepStarted:C}=Me(),{data:S,error:E,isLoading:U}=(0,Fr.default)(r?`${ve}flows`:null,y,{keepPreviousData:!0});(0,Ue.useEffect)(()=>{if(E){console.error(E);return}S&&S.data&&(S.data=o(S.data))},[S,E]);function M(x){if(U)return null;let b=t.find(B=>B.slug===x);return!b&&t.length>0&&!v&&!U?(console.log(`Flow with slug ${x} not found`),null):(b==null?void 0:b.active)===!1?null:b}function W(x){var V;if(!M(x))return[];let b=M(x).data;return b?(b=N(b),(((V=JSON.parse(b))==null?void 0:V.data)??[]).map(he=>{let j=Ne(he);return{handleSecondaryButtonClick:()=>{he.skippable===!0&&H(x,he.id,{skipped:!0})},...he,complete:O(x,he.id)===ze||j>=1,blocked:X(x,he.id),hidden:Ie(x,he.id),handlePrimaryButtonClick:()=>{(!he.completionCriteria&&(he.autoMarkCompleted||he.autoMarkCompleted===void 0)||he.completionCriteria&&he.autoMarkCompleted===!0)&&H(x,he.id)},progress:j}}).filter(he=>he.hidden!==!0)):[]}function N(x){return x.replace(/\${(.*?)}/g,(b,B)=>i[B]!==void 0?String(i[B]):"")}function G(x){if(!M(x))return[];let b=M(x).data;return b?(b=N(b),JSON.parse(b)??{}):[]}function L(x,b){s(B=>({...B,[x]:b}))}function z(x){!v&&!U&&x&&JSON.stringify(i)!=JSON.stringify({...i,...x})&&Object.keys(x).forEach(b=>{L(b,x[b])})}let ae=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:Po,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await C(x,b,V),w(V))},[n,f]),ee=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:$e,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await g(x,b),w(V))},[n,f]),H=(0,Ue.useCallback)(async(x,b,B)=>{console.log("markStepCompleted",x,b,B),m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:ze,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await P(x,b,V),w(V))},[n,f]),Ae=(0,Ue.useCallback)(async(x,b)=>{if(m(),ye(x)===We)return;let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:We,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await A(x),pe(B)&&w(B)},[n,f]),we=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:wt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&w(B)},[n,f]),K=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:re,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]),$=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:ko,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]);function pe(x){var b;if(!f&&x.actionType===$e)return!1;if(f){let B=f.find(V=>V.flowId===x.flowSlug);if(x.actionType===$e&&(!(B!=null&&B.stepStates[x.stepId])||B.stepStates[x.stepId].actionType===$e)||B&&((b=B.stepStates[x.stepId])==null?void 0:b.actionType)===x.actionType)return!1}return!0}function O(x,b){let B=De(x,b);return v?null:B?B.actionType:$e}function X(x,b){let B=De(x,b);return B?B.blocked:!1}function Ie(x,b){let B=De(x,b);return B?B.hidden:!1}function De(x,b){if(v)return null;let B=f==null?void 0:f.find(V=>V.flowId===x);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function Nt(x){var B;if(v||!f)return null;if(ye(x)===We)return W(x)[0]??null;let b=(B=f.find(V=>V.flowId===x))==null?void 0:B.lastStepId;return b?W(x).find(V=>V.id===b):null}function St(x){let b=Nt(x);if(!b)return 0;let B=W(x).findIndex(V=>V.id===b.id)??0;return O(x,b.id)===ze&&B<W(x).length-1?B+1:B}function Ne(x){if(!x.completionCriteria)return;let b=Tr(x.completionCriteria);if(b===null)return;let B=it(b),V=nt(b);return V===0?void 0:B/V}function ye(x){let b=f==null?void 0:f.find(B=>B.flowId===x);return b?b.flowState:null}function it(x){let b=W(x);return b.length===0?0:b.filter(V=>O(x,V.id)===ze).length}function nt(x){return W(x).length}function te(x){return JSON.parse(t.find(b=>b.slug===x).data)}function Te(x){if(v)return!0;if(x!=null&&x.targetingLogic&&f){let b=f.find(B=>B.flowId===x.slug);if(b)return b.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&n&&n.startsWith("guest_"))}function yt(x){return!Te(M(x))}return{getFlow:M,getFlowData:te,isLoading:v||U,getStepStatus:O,getFlowSteps:W,getCurrentStepIndex:St,markStepStarted:ae,markStepCompleted:H,markFlowNotStarted:Ae,markFlowStarted:we,markFlowCompleted:K,markFlowAborted:$,markStepNotStarted:ee,getFlowStatus:ye,getNumberOfStepsCompleted:it,getNumberOfSteps:nt,targetingLogicShouldHideFlow:Te,setCustomVariable:L,updateCustomVariables:z,customVariables:i,getStepOptionalProgress:Ne,getFlowMetadata:G,isStepBlocked:X,isStepHidden:Ie,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:yt}}var Tt=require("react");var Ut="guest_";function vo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:r}=(0,Tt.useContext)(J),{config:i}=qe(),{mutateUserFlowState:s}=Me(),p=Ot(),{verifySDKInitiated:d}=Dt();(0,Tt.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ut))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${ve}users`,{...i,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(c,"true"))}},[e,r,t]);let l=(0,Tt.useCallback)(async c=>{d();let m={foreignId:e,properties:c};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(m)}),n(w=>({...w,...c})),s()},[e,i,r,s]),u=(0,Tt.useCallback)(async(c,m)=>{d();let T={foreignId:e,events:[{event:c,properties:m}]};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(T)}),s()},[e,i,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:u}}var Ci=require("uuid");var Pe=h(require("react"));var _e=h(require("react")),ao=h(require("styled-components"));var vr=h(require("react")),Er=h(require("styled-components"));var kr="fr-",so="cfr-";function a(e,t){let o=`${kr}${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+" "+so+e}return o}function k(e){if(!e.className||e.className.indexOf(so)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(kr)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Ko(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ft(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ko(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Fe(...e){return e.filter(Boolean).join(" ")}function Pr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var hl=Er.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -54,6 +54,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
54
54
  left: 50%;
55
55
  top: 50%;
56
56
  transform: translate(-50%, -50%);
57
+ max-height: 90%;
57
58
 
58
59
  display: flex;
59
60
  flex-direction: column;