@frigade/react 1.32.12 → 1.32.13
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 +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var Ws=Object.create;var fo=Object.defineProperty;var Hs=Object.getOwnPropertyDescriptor;var zs=Object.getOwnPropertyNames;var Gs=Object.getPrototypeOf,js=Object.prototype.hasOwnProperty;var Vs=(e,t)=>{for(var o in t)fo(e,o,{get:t[o],enumerable:!0})},lr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of zs(t))!js.call(e,r)&&r!==o&&fo(e,r,{get:()=>t[r],enumerable:!(i=Hs(t,r))||i.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Ws(Gs(e)):{},lr(t||!e||!e.__esModule?fo(o,"default",{value:e,enumerable:!0}):o,e)),qs=e=>lr(fo({},"__esModule",{value:!0}),e);var Aa={};Vs(Aa,{FrigadeBanner:()=>_s,FrigadeChecklist:()=>Mo,FrigadeEmbeddedTip:()=>Os,FrigadeForm:()=>qo,FrigadeGuide:()=>os,FrigadeHeroChecklist:()=>zn,FrigadeProgressBadge:()=>es,FrigadeProvider:()=>di,FrigadeSupportWidget:()=>Is,FrigadeTour:()=>xs,useFlowOpens:()=>Ee,useFlowResponses:()=>It,useFlows:()=>Z,useOrganization:()=>Ao,useUser:()=>Co});module.exports=qs(Aa);var Y=f(require("react")),ai=require("styled-components");var ae=f(require("react"));var Be=require("react");var Ft=f(require("react"));var ar="1.32.12 ";var we="https://api.frigade.com/v1/public/",Ie="NOT_STARTED_STEP",re="COMPLETED_FLOW",ho="ABORTED_FLOW",ft="STARTED_FLOW",He="NOT_STARTED_FLOW",De="COMPLETED_STEP",xo="STARTED_STEP";function ze(){let{publicApiKey:e,userId:t}=Ft.default.useContext(K);return{config:(0,Ft.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":ar,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function kt(){let{shouldGracefullyDegrade:e}=Ft.default.useContext(K);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),go();let i;try{i=await fetch(t,o)}catch(r){return go(r)}return i?i.ok?i:go(i.statusText):go()}}function go(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Pt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Ft.default.useContext(K);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 Jt=require("react");var vt=require("react");var dr=f(require("swr"));var pr=require("react");function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o}=(0,pr.useContext)(K);function i(p,d=!1){return e[p]??d}function r(p,d){t(l=>({...l,[p]:d}))}function n(p){t(d=>{let{[p]:l,...x}=d;return{...x}})}function s(){return Object.values(e).some(p=>p)||o}return{getOpenFlowState:i,setOpenFlowState:r,resetOpenFlowState:n,hasOpenModals:s}}var Ks="unknown";function Ae(){let{config:e}=ze(),{publicApiKey:t,userId:o,flows:i,setShouldGracefullyDegrade:r}=(0,vt.useContext)(K),{resetOpenFlowState:n}=Ee(),[s,p]=(0,vt.useState)(!1),d={data:i.map(v=>({flowId:v.id,flowState:re,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=v=>fetch(v,e).then(c=>{if(c.ok)return c.json();throw new Error("Failed to fetch user flow states")}).catch(c=>(console.log(`Error fetching ${v}: ${c}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:x,isLoading:m,mutate:u,error:F}=(0,dr.default)(t&&i&&o?`${we}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),C=x==null?void 0:x.data;(0,vt.useEffect)(()=>{!s&&!m&&C&&p(!0)},[C,s,m]);async function y(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==re&&(c.flowState=re),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function b(v,c,g){if(C){let w=C.find(I=>I.flowId===v);w&&(w.stepStates[c]=g,w.flowState=ft),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function E(v,c,g){if(C){let w=C.find(I=>I.flowId===v);w&&(w.lastStepId=c,w.stepStates[c]=g,w.flowState=ft),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function P(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==He&&(c.flowState=He,c.lastStepId=Ks,Object.keys(c.stepStates).forEach(g=>{c.stepStates[g].actionType=Ie,c.stepStates[g].createdAt=new Date().toISOString()}),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1}),n(v))}}async function B(v,c){if(C){let g=C.find(w=>w.flowId===v);g&&g.stepStates[c]!==Ie&&(g.stepStates[c]=Ie),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:C,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:P,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:B,optimisticallyMarkStepStarted:E,error:F}}function It(){let{config:e}=ze(),{userFlowStatesData:t,mutateUserFlowState:o}=Ae(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:n,setFlowResponses:s}=(0,Jt.useContext)(K),[p,d]=(0,Jt.useState)(new Set),[l,x]=(0,Jt.useState)(new Set),m=kt();function u(y){let b=JSON.stringify(y);if(p.has(b))return null;p.add(b),d(p),l.add(y),x(l);let E=n==null?void 0:n.find(P=>P.flowSlug===y.flowSlug&&P.stepId===y.stepId&&P.actionType===y.actionType&&P.createdAt===y.createdAt);return m(`${we}flowResponses`,{...e,method:"POST",body:b}).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),r([...i,y])):E||s(B=>[...B??[],y])})}async function F(y){y.foreignUserId&&(y.actionType===ft||y.actionType===He?await u(y):y.actionType===re?await u(y):y.actionType===xo?await u(y):y.actionType===De?await u(y):y.actionType===ho?await u(y):y.actionType===Ie&&await u(y))}function C(){let y=[];return t==null||t.forEach(b=>{if(b&&b.stepStates&&Object.keys(b.stepStates).length!==0)for(let E in b.stepStates){let P=b.stepStates[E];y.push({foreignUserId:b.foreignUserId,flowSlug:b.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...y,...n]}return{addResponse:F,setFlowResponses:s,getFlowResponses:C}}var mr=f(require("swr"));var Ys=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,cr=e=>{let t=Ys.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Xs(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Xs=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e}=ze(),{flows:t,setFlows:o,userId:i,publicApiKey:r,customVariables:n,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:x}=(0,Be.useContext)(K),m={data:[]},{verifySDKInitiated:u}=Pt(),{addResponse:F,getFlowResponses:C}=It(),y=h=>fetch(h,e).then(T=>T.ok?T.json():(console.log(`Error fetching ${h} (${T.status}): ${T.statusText}. .Will gracefully degrade and hide Frigade`),x(!0),m)).catch(T=>(console.log(`Error fetching ${h}: ${T}. Will gracefully degrade and hide Frigade`),x(!0),m)),{userFlowStatesData:b,isLoadingUserFlowStateData:E,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:B,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:c,optimisticallyMarkStepStarted:g}=Ae(),{data:w,error:I,isLoading:_}=(0,mr.default)(r?`${we}flows`:null,y,{keepPreviousData:!0});(0,Be.useEffect)(()=>{if(I){console.error(I);return}w&&w.data&&(w.data=o(w.data))},[w,I]);function W(h){let T=t.find(S=>S.slug===h);return!T&&t.length>0&&!E&&!_&&console.log(`Flow with slug ${h} not found`),T.active===!1?null:T}function H(h){var M;if(!W(h))return[];let T=W(h).data;return T?(T=L(T),(((M=JSON.parse(T))==null?void 0:M.data)??[]).map(ie=>{let Xt=Re(ie);return{handleSecondaryButtonClick:()=>{ie.skippable===!0&&$(h,ie.id,{skipped:!0})},...ie,complete:N(h,ie.id)===De||Xt>=1,blocked:ce(h,ie.id),hidden:Ze(h,ie.id),handlePrimaryButtonClick:()=>{(!ie.completionCriteria&&(ie.autoMarkCompleted||ie.autoMarkCompleted===void 0)||ie.completionCriteria&&ie.autoMarkCompleted===!0)&&$(h,ie.id)},progress:Xt}}).filter(ie=>ie.hidden!==!0)):[]}function L(h){return h.replace(/\${(.*?)}/g,(T,S)=>n[S]!==void 0?String(n[S]):"")}function z(h){if(!W(h))return[];let T=W(h).data;return T?(T=L(T),JSON.parse(T)??{}):[]}function D(h,T){s(S=>({...S,[h]:T}))}function Q(h){!E&&!_&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(T=>{D(T,h[T])})}let j=(0,Be.useCallback)(async(h,T,S)=>{u();let M={foreignUserId:i,flowSlug:h,stepId:T,actionType:xo,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};Se(M)&&(await g(h,T,M),F(M))},[i,b]),V=(0,Be.useCallback)(async(h,T,S)=>{u();let M={foreignUserId:i,flowSlug:h,stepId:T,actionType:Ie,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};Se(M)&&(await c(h,T),F(M))},[i,b]),$=(0,Be.useCallback)(async(h,T,S)=>{u();let M={foreignUserId:i,flowSlug:h,stepId:T,actionType:De,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};Se(M)&&(await v(h,T,M),F(M))},[i,b]),oe=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:He,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};await B(h),Se(S)&&F(S)},[i,b]),q=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ft,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};Se(S)&&F(S)},[i,b]),R=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:re,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};Se(S)&&(await P(h),F(S))},[i,b]),nt=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ho,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};Se(S)&&(await P(h),F(S))},[i,b]);function Se(h){var T;if(!b&&h.actionType===Ie)return!1;if(b){let S=b.find(M=>M.flowId===h.flowSlug);if(h.actionType===Ie&&(!(S!=null&&S.stepStates[h.stepId])||S.stepStates[h.stepId].actionType===Ie)||S&&((T=S.stepStates[h.stepId])==null?void 0:T.actionType)===h.actionType)return!1}return!0}function N(h,T){let S=me(h,T);return E?null:S?S.actionType:Ie}function ce(h,T){let S=me(h,T);return S?S.blocked:!1}function Ze(h,T){let S=me(h,T);return S?S.hidden:!1}function me(h,T){if(E)return null;let S=b==null?void 0:b.find(M=>M.flowId===h);return!S||!S.stepStates[T]?null:S.stepStates[T]??null}function be(h){var S;if(E||!b)return null;if(ut(h)===He)return H(h)[0]??null;let T=(S=b.find(M=>M.flowId===h))==null?void 0:S.lastStepId;return T?H(h).find(M=>M.id===T):null}function st(h){let T=be(h);if(!T)return 0;let S=H(h).findIndex(M=>M.id===T.id)??0;return N(h,T.id)===De&&S<H(h).length-1?S+1:S}function Re(h){if(!h.completionCriteria)return;let T=cr(h.completionCriteria);if(T===null)return;let S=Ne(T),M=G(T);return M===0?void 0:S/M}function ut(h){let T=b==null?void 0:b.find(S=>S.flowId===h);return T?T.flowState:null}function Ne(h){let T=H(h);return T.length===0?0:T.filter(M=>N(h,M.id)===De).length}function G(h){return H(h).length}function ve(h){return JSON.parse(t.find(T=>T.slug===h).data)}function wt(h){if(E)return!0;if(h!=null&&h.targetingLogic&&b){let T=b.find(S=>S.flowId===h.slug);if(T)return T.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&i&&i.startsWith("guest_"))}function Uo(h){return!wt(W(h))}return{getFlow:W,getFlowData:ve,isLoading:E||_,getStepStatus:N,getFlowSteps:H,getCurrentStepIndex:st,markStepStarted:j,markStepCompleted:$,markFlowNotStarted:oe,markFlowStarted:q,markFlowCompleted:R,markFlowAborted:nt,markStepNotStarted:V,getFlowStatus:ut,getNumberOfStepsCompleted:Ne,getNumberOfSteps:G,targetingLogicShouldHideFlow:wt,setCustomVariable:D,updateCustomVariables:Q,customVariables:n,getStepOptionalProgress:Re,getFlowMetadata:z,isStepBlocked:ce,isStepHidden:Ze,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:Uo}}var gt=require("react");var Et="guest_";function Co(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,gt.useContext)(K),{config:n}=ze(),{mutateUserFlowState:s}=Ae(),p=kt(),{verifySDKInitiated:d}=Pt();(0,gt.useEffect)(()=>{if(e&&!t){if(e.startsWith(Et))return;let m=`frigade-user-registered-${e}`;localStorage.getItem(m)||(p(`${we}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(m,"true"))}},[e,r,t]);let l=(0,gt.useCallback)(async m=>{d();let u={foreignId:e,properties:m};await p(`${we}users`,{...n,method:"POST",body:JSON.stringify(u)}),i(F=>({...F,...m})),s()},[e,n,r,s]),x=(0,gt.useCallback)(async(m,u)=>{d();let C={foreignId:e,events:[{event:m,properties:u}]};await p(`${we}users`,{...n,method:"POST",body:JSON.stringify(C)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:x}}var si=require("uuid");var Te=f(require("react"));var Le=f(require("react")),Rt=f(require("styled-components"));var gr=f(require("react")),hr=f(require("styled-components"));var ur="fr-",Qt="cfr-";function a(e,t){let o=`${ur}${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+" "+Qt+e}return o}function k(e){if(!e.className||e.className.indexOf(Qt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(ur)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function _o(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ht(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${_o(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ke(...e){return e.filter(Boolean).join(" ")}function fr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Js=hr.default.div`
|
|
2
|
+
var Ws=Object.create;var fo=Object.defineProperty;var Hs=Object.getOwnPropertyDescriptor;var zs=Object.getOwnPropertyNames;var Gs=Object.getPrototypeOf,js=Object.prototype.hasOwnProperty;var Vs=(e,t)=>{for(var o in t)fo(e,o,{get:t[o],enumerable:!0})},lr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of zs(t))!js.call(e,r)&&r!==o&&fo(e,r,{get:()=>t[r],enumerable:!(i=Hs(t,r))||i.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Ws(Gs(e)):{},lr(t||!e||!e.__esModule?fo(o,"default",{value:e,enumerable:!0}):o,e)),qs=e=>lr(fo({},"__esModule",{value:!0}),e);var Aa={};Vs(Aa,{FrigadeBanner:()=>_s,FrigadeChecklist:()=>Mo,FrigadeEmbeddedTip:()=>Os,FrigadeForm:()=>qo,FrigadeGuide:()=>os,FrigadeHeroChecklist:()=>zn,FrigadeProgressBadge:()=>es,FrigadeProvider:()=>di,FrigadeSupportWidget:()=>Is,FrigadeTour:()=>xs,useFlowOpens:()=>Ee,useFlowResponses:()=>It,useFlows:()=>Z,useOrganization:()=>Ao,useUser:()=>Co});module.exports=qs(Aa);var Y=f(require("react")),ai=require("styled-components");var ae=f(require("react"));var Be=require("react");var Ft=f(require("react"));var ar="1.32.13 ";var we="https://api.frigade.com/v1/public/",Ie="NOT_STARTED_STEP",re="COMPLETED_FLOW",ho="ABORTED_FLOW",ft="STARTED_FLOW",He="NOT_STARTED_FLOW",De="COMPLETED_STEP",xo="STARTED_STEP";function ze(){let{publicApiKey:e,userId:t}=Ft.default.useContext(K);return{config:(0,Ft.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":ar,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function kt(){let{shouldGracefullyDegrade:e}=Ft.default.useContext(K);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),go();let i;try{i=await fetch(t,o)}catch(r){return go(r)}return i?i.ok?i:go(i.statusText):go()}}function go(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Pt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Ft.default.useContext(K);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 Jt=require("react");var vt=require("react");var dr=f(require("swr"));var pr=require("react");function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o}=(0,pr.useContext)(K);function i(p,d=!1){return e[p]??d}function r(p,d){t(l=>({...l,[p]:d}))}function n(p){t(d=>{let{[p]:l,...x}=d;return{...x}})}function s(){return Object.values(e).some(p=>p)||o}return{getOpenFlowState:i,setOpenFlowState:r,resetOpenFlowState:n,hasOpenModals:s}}var Ks="unknown";function Ae(){let{config:e}=ze(),{publicApiKey:t,userId:o,flows:i,setShouldGracefullyDegrade:r}=(0,vt.useContext)(K),{resetOpenFlowState:n}=Ee(),[s,p]=(0,vt.useState)(!1),d={data:i.map(v=>({flowId:v.id,flowState:re,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=v=>fetch(v,e).then(c=>{if(c.ok)return c.json();throw new Error("Failed to fetch user flow states")}).catch(c=>(console.log(`Error fetching ${v}: ${c}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:x,isLoading:m,mutate:u,error:F}=(0,dr.default)(t&&i&&o?`${we}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),C=x==null?void 0:x.data;(0,vt.useEffect)(()=>{!s&&!m&&C&&p(!0)},[C,s,m]);async function y(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==re&&(c.flowState=re),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function b(v,c,g){if(C){let w=C.find(I=>I.flowId===v);w&&(w.stepStates[c]=g,w.flowState=ft),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function E(v,c,g){if(C){let w=C.find(I=>I.flowId===v);w&&(w.lastStepId=c,w.stepStates[c]=g,w.flowState=ft),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function P(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==He&&(c.flowState=He,c.lastStepId=Ks,Object.keys(c.stepStates).forEach(g=>{c.stepStates[g].actionType=Ie,c.stepStates[g].createdAt=new Date().toISOString()}),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1}),n(v))}}async function B(v,c){if(C){let g=C.find(w=>w.flowId===v);g&&g.stepStates[c]!==Ie&&(g.stepStates[c]=Ie),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:C,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:P,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:B,optimisticallyMarkStepStarted:E,error:F}}function It(){let{config:e}=ze(),{userFlowStatesData:t,mutateUserFlowState:o}=Ae(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:n,setFlowResponses:s}=(0,Jt.useContext)(K),[p,d]=(0,Jt.useState)(new Set),[l,x]=(0,Jt.useState)(new Set),m=kt();function u(y){let b=JSON.stringify(y);if(p.has(b))return null;p.add(b),d(p),l.add(y),x(l);let E=n==null?void 0:n.find(P=>P.flowSlug===y.flowSlug&&P.stepId===y.stepId&&P.actionType===y.actionType&&P.createdAt===y.createdAt);return m(`${we}flowResponses`,{...e,method:"POST",body:b}).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),r([...i,y])):E||s(B=>[...B??[],y])})}async function F(y){y.foreignUserId&&(y.actionType===ft||y.actionType===He?await u(y):y.actionType===re?await u(y):y.actionType===xo?await u(y):y.actionType===De?await u(y):y.actionType===ho?await u(y):y.actionType===Ie&&await u(y))}function C(){let y=[];return t==null||t.forEach(b=>{if(b&&b.stepStates&&Object.keys(b.stepStates).length!==0)for(let E in b.stepStates){let P=b.stepStates[E];y.push({foreignUserId:b.foreignUserId,flowSlug:b.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...y,...n]}return{addResponse:F,setFlowResponses:s,getFlowResponses:C}}var mr=f(require("swr"));var Ys=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,cr=e=>{let t=Ys.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Xs(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Xs=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e}=ze(),{flows:t,setFlows:o,userId:i,publicApiKey:r,customVariables:n,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:x}=(0,Be.useContext)(K),m={data:[]},{verifySDKInitiated:u}=Pt(),{addResponse:F,getFlowResponses:C}=It(),y=h=>fetch(h,e).then(T=>T.ok?T.json():(console.log(`Error fetching ${h} (${T.status}): ${T.statusText}. .Will gracefully degrade and hide Frigade`),x(!0),m)).catch(T=>(console.log(`Error fetching ${h}: ${T}. Will gracefully degrade and hide Frigade`),x(!0),m)),{userFlowStatesData:b,isLoadingUserFlowStateData:E,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:B,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:c,optimisticallyMarkStepStarted:g}=Ae(),{data:w,error:I,isLoading:_}=(0,mr.default)(r?`${we}flows`:null,y,{keepPreviousData:!0});(0,Be.useEffect)(()=>{if(I){console.error(I);return}w&&w.data&&(w.data=o(w.data))},[w,I]);function W(h){let T=t.find(S=>S.slug===h);return!T&&t.length>0&&!E&&!_?(console.log(`Flow with slug ${h} not found`),null):T.active===!1?null:T}function H(h){var M;if(!W(h))return[];let T=W(h).data;return T?(T=L(T),(((M=JSON.parse(T))==null?void 0:M.data)??[]).map(ie=>{let Xt=Re(ie);return{handleSecondaryButtonClick:()=>{ie.skippable===!0&&$(h,ie.id,{skipped:!0})},...ie,complete:N(h,ie.id)===De||Xt>=1,blocked:ce(h,ie.id),hidden:Ze(h,ie.id),handlePrimaryButtonClick:()=>{(!ie.completionCriteria&&(ie.autoMarkCompleted||ie.autoMarkCompleted===void 0)||ie.completionCriteria&&ie.autoMarkCompleted===!0)&&$(h,ie.id)},progress:Xt}}).filter(ie=>ie.hidden!==!0)):[]}function L(h){return h.replace(/\${(.*?)}/g,(T,S)=>n[S]!==void 0?String(n[S]):"")}function z(h){if(!W(h))return[];let T=W(h).data;return T?(T=L(T),JSON.parse(T)??{}):[]}function D(h,T){s(S=>({...S,[h]:T}))}function Q(h){!E&&!_&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(T=>{D(T,h[T])})}let j=(0,Be.useCallback)(async(h,T,S)=>{u();let M={foreignUserId:i,flowSlug:h,stepId:T,actionType:xo,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};Se(M)&&(await g(h,T,M),F(M))},[i,b]),V=(0,Be.useCallback)(async(h,T,S)=>{u();let M={foreignUserId:i,flowSlug:h,stepId:T,actionType:Ie,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};Se(M)&&(await c(h,T),F(M))},[i,b]),$=(0,Be.useCallback)(async(h,T,S)=>{u();let M={foreignUserId:i,flowSlug:h,stepId:T,actionType:De,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};Se(M)&&(await v(h,T,M),F(M))},[i,b]),oe=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:He,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};await B(h),Se(S)&&F(S)},[i,b]),q=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ft,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};Se(S)&&F(S)},[i,b]),R=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:re,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};Se(S)&&(await P(h),F(S))},[i,b]),nt=(0,Be.useCallback)(async(h,T)=>{u();let S={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ho,data:T??{},createdAt:new Date,blocked:!1,hidden:!1};Se(S)&&(await P(h),F(S))},[i,b]);function Se(h){var T;if(!b&&h.actionType===Ie)return!1;if(b){let S=b.find(M=>M.flowId===h.flowSlug);if(h.actionType===Ie&&(!(S!=null&&S.stepStates[h.stepId])||S.stepStates[h.stepId].actionType===Ie)||S&&((T=S.stepStates[h.stepId])==null?void 0:T.actionType)===h.actionType)return!1}return!0}function N(h,T){let S=me(h,T);return E?null:S?S.actionType:Ie}function ce(h,T){let S=me(h,T);return S?S.blocked:!1}function Ze(h,T){let S=me(h,T);return S?S.hidden:!1}function me(h,T){if(E)return null;let S=b==null?void 0:b.find(M=>M.flowId===h);return!S||!S.stepStates[T]?null:S.stepStates[T]??null}function be(h){var S;if(E||!b)return null;if(ut(h)===He)return H(h)[0]??null;let T=(S=b.find(M=>M.flowId===h))==null?void 0:S.lastStepId;return T?H(h).find(M=>M.id===T):null}function st(h){let T=be(h);if(!T)return 0;let S=H(h).findIndex(M=>M.id===T.id)??0;return N(h,T.id)===De&&S<H(h).length-1?S+1:S}function Re(h){if(!h.completionCriteria)return;let T=cr(h.completionCriteria);if(T===null)return;let S=Ne(T),M=G(T);return M===0?void 0:S/M}function ut(h){let T=b==null?void 0:b.find(S=>S.flowId===h);return T?T.flowState:null}function Ne(h){let T=H(h);return T.length===0?0:T.filter(M=>N(h,M.id)===De).length}function G(h){return H(h).length}function ve(h){return JSON.parse(t.find(T=>T.slug===h).data)}function wt(h){if(E)return!0;if(h!=null&&h.targetingLogic&&b){let T=b.find(S=>S.flowId===h.slug);if(T)return T.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&i&&i.startsWith("guest_"))}function Uo(h){return!wt(W(h))}return{getFlow:W,getFlowData:ve,isLoading:E||_,getStepStatus:N,getFlowSteps:H,getCurrentStepIndex:st,markStepStarted:j,markStepCompleted:$,markFlowNotStarted:oe,markFlowStarted:q,markFlowCompleted:R,markFlowAborted:nt,markStepNotStarted:V,getFlowStatus:ut,getNumberOfStepsCompleted:Ne,getNumberOfSteps:G,targetingLogicShouldHideFlow:wt,setCustomVariable:D,updateCustomVariables:Q,customVariables:n,getStepOptionalProgress:Re,getFlowMetadata:z,isStepBlocked:ce,isStepHidden:Ze,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:Uo}}var gt=require("react");var Et="guest_";function Co(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,gt.useContext)(K),{config:n}=ze(),{mutateUserFlowState:s}=Ae(),p=kt(),{verifySDKInitiated:d}=Pt();(0,gt.useEffect)(()=>{if(e&&!t){if(e.startsWith(Et))return;let m=`frigade-user-registered-${e}`;localStorage.getItem(m)||(p(`${we}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(m,"true"))}},[e,r,t]);let l=(0,gt.useCallback)(async m=>{d();let u={foreignId:e,properties:m};await p(`${we}users`,{...n,method:"POST",body:JSON.stringify(u)}),i(F=>({...F,...m})),s()},[e,n,r,s]),x=(0,gt.useCallback)(async(m,u)=>{d();let C={foreignId:e,events:[{event:m,properties:u}]};await p(`${we}users`,{...n,method:"POST",body:JSON.stringify(C)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:x}}var si=require("uuid");var Te=f(require("react"));var Le=f(require("react")),Rt=f(require("styled-components"));var gr=f(require("react")),hr=f(require("styled-components"));var ur="fr-",Qt="cfr-";function a(e,t){let o=`${ur}${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+" "+Qt+e}return o}function k(e){if(!e.className||e.className.indexOf(Qt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(ur)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function _o(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ht(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${_o(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ke(...e){return e.filter(Boolean).join(" ")}function fr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Js=hr.default.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|