@frigade/react 1.32.54 → 1.32.55
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.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var xl=Object.create;var ko=Object.defineProperty;var Cl=Object.getOwnPropertyDescriptor;var Sl=Object.getOwnPropertyNames;var yl=Object.getPrototypeOf,bl=Object.prototype.hasOwnProperty;var wl=(e,t)=>{for(var o in t)ko(e,o,{get:t[o],enumerable:!0})},Pr=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Sl(t))!bl.call(e,i)&&i!==o&&ko(e,i,{get:()=>t[i],enumerable:!(r=Cl(t,i))||r.enumerable});return e};var g=(e,t,o)=>(o=e!=null?xl(yl(e)):{},Pr(t||!e||!e.__esModule?ko(o,"default",{value:e,enumerable:!0}):o,e)),Tl=e=>Pr(ko({},"__esModule",{value:!0}),e);var mp={};wl(mp,{CheckBox:()=>Re,FormLabel:()=>mt,FormTextField:()=>$o,FrigadeBanner:()=>pl,FrigadeChecklist:()=>Qo,FrigadeDefaultAppearance:()=>Qe,FrigadeEmbeddedTip:()=>rl,FrigadeForm:()=>lr,FrigadeGuide:()=>Os,FrigadeHeroChecklist:()=>ys,FrigadeNPSSurvey:()=>hl,FrigadeProgressBadge:()=>Ns,FrigadeProvider:()=>Wi,FrigadeSupportWidget:()=>Zs,FrigadeTour:()=>Ws,ProgressRing:()=>Et,useFlowOpens:()=>Ne,useFlowResponses:()=>_t,useFlows:()=>Q,useOrganization:()=>Go,useUser:()=>Wt});module.exports=Tl(mp);var Y=g(require("react")),_i=require("styled-components");var fe=g(require("react"));var We=require("react");var Dt=g(require("react"));var vr="1.32.54 ";var Ie="https://api.frigade.com/v1/public/",_e="NOT_STARTED_STEP",oe="COMPLETED_FLOW",Po="ABORTED_FLOW",Pt="STARTED_FLOW",je="NOT_STARTED_FLOW",Ge="COMPLETED_STEP",vo="STARTED_STEP";function Je(){let{publicApiKey:e,userId:t}=Dt.default.useContext(J);return{config:(0,Dt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":vr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}var Fl="frigade-last-call-at-",kl="frigade-last-call-data-";function $t(){let{shouldGracefullyDegrade:e}=Dt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),so();let r=Fl+t,i=kl+t;if(window&&window.localStorage&&o&&o.body&&o.method==="POST"){let s=window.localStorage.getItem(r),p=window.localStorage.getItem(i);if(s&&p&&p==o.body){let d=new Date(s);if(new Date().getTime()-d.getTime()<1e3)return so()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(i,o.body)}let n;try{n=await fetch(t,o)}catch(s){return so(s)}return n?n.ok?n:so(n.statusText):so()}}function so(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Mt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Dt.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 lo=require("react");var Ut=require("react");var Br=g(require("swr"));var Er=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:r,completedFlowsToKeepOpenDuringSession:i}=(0,Er.useContext)(J);function n(c,u=!1){return e[c]??u}function s(c,u){t(T=>({...T,[c]:u}))}function p(c){t(u=>{let{[c]:T,...F}=u;return{...F}})}function d(c){i.includes(c)||r(u=>[...u,c])}function a(c){return i.includes(c)}function f(){return Object.values(e).some(c=>c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:f,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}var Pl="unknown";function ze(){let{config:e}=Je(),{publicApiKey:t,userId:o,flows:r,setShouldGracefullyDegrade:i}=(0,Ut.useContext)(J),{resetOpenFlowState:n}=Ne(),[s,p]=(0,Ut.useState)(!1),d={data:r.map(b=>({flowId:b.id,flowState:oe,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},a=b=>fetch(b,e).then(x=>{if(x.ok)return x.json();throw new Error("Failed to fetch user flow states")}).catch(x=>(console.log(`Error fetching ${b}: ${x}. Will gracefully degrade and hide Frigade`),i(!0),d)),{data:f,isLoading:c,mutate:u,error:T}=(0,Br.default)(t&&r&&o?`${Ie}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,a,{revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),F=f==null?void 0:f.data;(0,Ut.useEffect)(()=>{!s&&!c&&F&&p(!0)},[F,s,c]);async function y(b){if(F){let x=F.find(m=>m.flowId===b);x&&x.flowState!==oe&&(x.flowState=oe),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function S(b,x,m){if(F){let C=F.find(k=>k.flowId===b);C&&(C.stepStates[x]=m,C.flowState=Pt),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function v(b,x,m){if(F){let C=F.find(k=>k.flowId===b);C&&(C.lastStepId=x,C.stepStates[x]=m,C.flowState=Pt),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function E(b){if(F){let x=F.find(m=>m.flowId===b);x&&x.flowState!==je&&(x.flowState=je,x.lastStepId=Pl,Object.keys(x.stepStates).forEach(m=>{x.stepStates[m].actionType=_e,x.stepStates[m].createdAt=new Date().toISOString()}),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1}),n(b))}}async function I(b,x){if(F){let m=F.find(C=>C.flowId===b);m&&m.stepStates[x]!==_e&&(m.stepStates[x]=_e),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:F,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:E,optimisticallyMarkStepCompleted:S,optimisticallyMarkStepNotStarted:I,optimisticallyMarkStepStarted:v,error:T}}function _t(){let{config:e}=Je(),{userFlowStatesData:t,mutateUserFlowState:o}=ze(),{failedFlowResponses:r,setFailedFlowResponses:i,flowResponses:n,setFlowResponses:s}=(0,lo.useContext)(J),[p,d]=(0,lo.useState)(new Set),[a,f]=(0,lo.useState)(new Set),c=$t();function u(y){let S=JSON.stringify(y);if(p.has(S))return null;p.add(S),d(p),a.add(y),f(a);let v=n==null?void 0:n.find(E=>E.flowSlug===y.flowSlug&&E.stepId===y.stepId&&E.actionType===y.actionType&&E.createdAt===y.createdAt);return c(`${Ie}flowResponses`,{...e,method:"POST",body:S}).then(E=>{E.status!==200&&E.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),i([...r,y])):v||s(I=>[...I??[],y])})}async function T(y){y.foreignUserId&&(y.actionType===Pt||y.actionType===je?await u(y):y.actionType===oe?await u(y):y.actionType===vo?await u(y):y.actionType===Ge?await u(y):y.actionType===Po?await u(y):y.actionType===_e&&await u(y))}function F(){let y=[];return t==null||t.forEach(S=>{if(S&&S.stepStates&&Object.keys(S.stepStates).length!==0)for(let v in S.stepStates){let E=S.stepStates[v];y.push({foreignUserId:S.foreignUserId,flowSlug:S.flowId,stepId:E.stepId,actionType:E.actionType,data:{},createdAt:new Date(E.createdAt),blocked:E.blocked,hidden:E.hidden})}}),[...y,...n]}return{addResponse:T,setFlowResponses:s,getFlowResponses:F}}var Ir=g(require("swr"));var vl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ar=e=>{let t=vl.exec(e);if(t===null)return null;let o=null;return t.forEach((r,i)=>{let n=El(r,"'","");n.startsWith("flow_")&&(o=n)}),o},El=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=Je(),{flows:t,setFlows:o,userId:r,publicApiKey:i,customVariables:n,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:a,setShouldGracefullyDegrade:f}=(0,We.useContext)(J),c={data:[]},{verifySDKInitiated:u}=Mt(),{addResponse:T,getFlowResponses:F}=_t(),y=h=>fetch(h,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${h} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),f(!0),c)).catch(w=>(console.log(`Error fetching ${h}: ${w}. Will gracefully degrade and hide Frigade`),f(!0),c)),{userFlowStatesData:S,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:E,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:x,optimisticallyMarkStepStarted:m}=ze(),{data:C,error:k,isLoading:M}=(0,Ir.default)(i?`${Ie}flows`:null,y,{keepPreviousData:!0});(0,We.useEffect)(()=>{if(k){console.error(k);return}C&&C.data&&(C.data=o(C.data))},[C,k]);function W(h){if(M)return null;let w=t.find(B=>B.slug===h);return!w&&t.length>0&&!v&&!M?(console.log(`Flow with slug ${h} not found`),null):(w==null?void 0:w.active)===!1?null:w}function H(h){var G;if(!W(h))return[];let w=W(h).data;return w?(w=N(w),(((G=JSON.parse(w))==null?void 0:G.data)??[]).map(Se=>{let V=ne(Se);return{handleSecondaryButtonClick:()=>{Se.skippable===!0&&$(h,Se.id,{skipped:!0})},...Se,complete:L(h,Se.id)===Ge||V>=1,blocked:ue(h,Se.id),hidden:Te(h,Se.id),handlePrimaryButtonClick:()=>{(!Se.completionCriteria&&(Se.autoMarkCompleted||Se.autoMarkCompleted===void 0)||Se.completionCriteria&&Se.autoMarkCompleted===!0)&&$(h,Se.id)},progress:V}}).filter(Se=>Se.hidden!==!0)):[]}function N(h){return h.replace(/\${(.*?)}/g,(w,B)=>n[B]!==void 0?String(n[B]):"")}function z(h){if(!W(h))return[];let w=W(h).data;return w?(w=N(w),JSON.parse(w)??{}):[]}function U(h,w){s(B=>({...B,[h]:w}))}function D(h){!v&&!M&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(w=>{U(w,h[w])})}let me=(0,We.useCallback)(async(h,w,B)=>{u();let G={foreignUserId:r,flowSlug:h,stepId:w,actionType:vo,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await m(h,w,G),T(G))},[r,S]),Ce=(0,We.useCallback)(async(h,w,B)=>{u();let G={foreignUserId:r,flowSlug:h,stepId:w,actionType:_e,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await x(h,w),T(G))},[r,S]),$=(0,We.useCallback)(async(h,w,B)=>{u();let G={foreignUserId:r,flowSlug:h,stepId:w,actionType:Ge,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await b(h,w,G),T(G))},[r,S]),Ae=(0,We.useCallback)(async(h,w)=>{if(u(),te(h)===je)return;let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:je,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await I(h),pe(B)&&T(B)},[r,S]),Pe=(0,We.useCallback)(async(h,w)=>{u();let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Pt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&T(B)},[r,S]),le=(0,We.useCallback)(async(h,w)=>{u();let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:oe,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await E(h),T(B))},[r,S]),q=(0,We.useCallback)(async(h,w)=>{u();let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Po,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await E(h),T(B))},[r,S]);function pe(h){var w;if(!S&&h.actionType===_e)return!1;if(S){let B=S.find(G=>G.flowId===h.flowSlug);if(h.actionType===_e&&(!(B!=null&&B.stepStates[h.stepId])||B.stepStates[h.stepId].actionType===_e)||B&&((w=B.stepStates[h.stepId])==null?void 0:w.actionType)===h.actionType||B&&B.flowState===oe&&h.actionType===oe)return!1}return!0}function L(h,w){let B=De(h,w);return v?null:B?B.actionType:_e}function ue(h,w){let B=De(h,w);return B?B.blocked:!1}function Te(h,w){let B=De(h,w);return B?B.hidden:!1}function De(h,w){if(v)return null;let B=S==null?void 0:S.find(G=>G.flowId===h);return!B||!B.stepStates[w]?null:B.stepStates[w]??null}function K(h){var B;if(v||!S)return null;if(te(h)===je)return H(h)[0]??null;let w=(B=S.find(G=>G.flowId===h))==null?void 0:B.lastStepId;return w?H(h).find(G=>G.id===w):null}function Fe(h){let w=K(h);if(!w)return 0;let B=H(h).findIndex(G=>G.id===w.id)??0;return L(h,w.id)===Ge&&B<H(h).length-1?B+1:B}function ne(h){if(!h.completionCriteria)return;let w=Ar(h.completionCriteria);if(w===null)return;let B=at(w),G=pt(w);return G===0?void 0:B/G}function te(h){let w=S==null?void 0:S.find(B=>B.flowId===h);return w?w.flowState:null}function at(h){let w=H(h);return w.length===0?0:w.filter(G=>L(h,G.id)===Ge).length}function pt(h){return H(h).length}function Ot(h){return JSON.parse(t.find(w=>w.slug===h).data)}function j(h){if(v)return!0;if(h!=null&&h.targetingLogic&&S){let w=S.find(B=>B.flowId===h.slug);if(w)return w.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&r&&r.startsWith("guest_"))}function Ue(h){return!j(W(h))}return{getFlow:W,getFlowData:Ot,isLoading:v||M,getStepStatus:L,getFlowSteps:H,getCurrentStepIndex:Fe,markStepStarted:me,markStepCompleted:$,markFlowNotStarted:Ae,markFlowStarted:Pe,markFlowCompleted:le,markFlowAborted:q,markStepNotStarted:Ce,getFlowStatus:te,getNumberOfStepsCompleted:at,getNumberOfSteps:pt,targetingLogicShouldHideFlow:j,setCustomVariable:U,updateCustomVariables:D,customVariables:n,getStepOptionalProgress:ne,getFlowMetadata:z,isStepBlocked:ue,isStepHidden:Te,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:Ue}}var vt=require("react");var zt="guest_";function Wt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:r,shouldGracefullyDegrade:i}=(0,vt.useContext)(J),{config:n}=Je(),{mutateUserFlowState:s}=ze(),p=$t(),{verifySDKInitiated:d}=Mt();(0,vt.useEffect)(()=>{if(e&&!t){if(e.startsWith(zt))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${Ie}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(c,"true"))}},[e,i,t]);let a=(0,vt.useCallback)(async c=>{d();let u={foreignId:e,properties:c};await p(`${Ie}users`,{...n,method:"POST",body:JSON.stringify(u)}),r(T=>({...T,...c})),s()},[e,n,i,s]),f=(0,vt.useCallback)(async(c,u)=>{d();let F={foreignId:e,events:[{event:c,properties:u}]};await p(`${Ie}users`,{...n,method:"POST",body:JSON.stringify(F)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:a,trackEventForUser:f}}var Mi=require("uuid");var Be=g(require("react"));var Le=g(require("react")),co=g(require("styled-components"));var Or=g(require("react")),Dr=g(require("styled-components"));var Nr="fr-",ao="cfr-";function l(e,t){let o=`${Nr}${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+" "+ao+e}return o}function P(e){if(!e.className||e.className.indexOf(ao)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Nr)?"":`:not(${o.map(r=>`.${r}`).join(", ")})`}function Ro(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function dt(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ro(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ve(...e){return e.filter(Boolean).join(" ")}function Lr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Bl=Dr.default.div`
|
|
2
|
+
var xl=Object.create;var ko=Object.defineProperty;var Cl=Object.getOwnPropertyDescriptor;var Sl=Object.getOwnPropertyNames;var yl=Object.getPrototypeOf,bl=Object.prototype.hasOwnProperty;var wl=(e,t)=>{for(var o in t)ko(e,o,{get:t[o],enumerable:!0})},Pr=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Sl(t))!bl.call(e,i)&&i!==o&&ko(e,i,{get:()=>t[i],enumerable:!(r=Cl(t,i))||r.enumerable});return e};var g=(e,t,o)=>(o=e!=null?xl(yl(e)):{},Pr(t||!e||!e.__esModule?ko(o,"default",{value:e,enumerable:!0}):o,e)),Tl=e=>Pr(ko({},"__esModule",{value:!0}),e);var mp={};wl(mp,{CheckBox:()=>Re,FormLabel:()=>mt,FormTextField:()=>$o,FrigadeBanner:()=>pl,FrigadeChecklist:()=>Qo,FrigadeDefaultAppearance:()=>Qe,FrigadeEmbeddedTip:()=>rl,FrigadeForm:()=>lr,FrigadeGuide:()=>Os,FrigadeHeroChecklist:()=>ys,FrigadeNPSSurvey:()=>hl,FrigadeProgressBadge:()=>Ns,FrigadeProvider:()=>Wi,FrigadeSupportWidget:()=>Zs,FrigadeTour:()=>Ws,ProgressRing:()=>Et,useFlowOpens:()=>Ne,useFlowResponses:()=>_t,useFlows:()=>Q,useOrganization:()=>Go,useUser:()=>Wt});module.exports=Tl(mp);var Y=g(require("react")),_i=require("styled-components");var fe=g(require("react"));var We=require("react");var Dt=g(require("react"));var vr="1.32.55 ";var Ie="https://api.frigade.com/v1/public/",_e="NOT_STARTED_STEP",oe="COMPLETED_FLOW",Po="ABORTED_FLOW",Pt="STARTED_FLOW",je="NOT_STARTED_FLOW",Ge="COMPLETED_STEP",vo="STARTED_STEP";function Je(){let{publicApiKey:e,userId:t}=Dt.default.useContext(J);return{config:(0,Dt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":vr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}var Fl="frigade-last-call-at-",kl="frigade-last-call-data-";function $t(){let{shouldGracefullyDegrade:e}=Dt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),so();let r=Fl+t,i=kl+t;if(window&&window.localStorage&&o&&o.body&&o.method==="POST"){let s=window.localStorage.getItem(r),p=window.localStorage.getItem(i);if(s&&p&&p==o.body){let d=new Date(s);if(new Date().getTime()-d.getTime()<1e3)return so()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(i,o.body)}let n;try{n=await fetch(t,o)}catch(s){return so(s)}return n?n.ok?n:so(n.statusText):so()}}function so(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Mt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Dt.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 lo=require("react");var Ut=require("react");var Br=g(require("swr"));var Er=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:r,completedFlowsToKeepOpenDuringSession:i}=(0,Er.useContext)(J);function n(c,u=!1){return e[c]??u}function s(c,u){t(T=>({...T,[c]:u}))}function p(c){t(u=>{let{[c]:T,...F}=u;return{...F}})}function d(c){i.includes(c)||r(u=>[...u,c])}function a(c){return i.includes(c)}function f(){return Object.values(e).some(c=>c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:f,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}var Pl="unknown";function ze(){let{config:e}=Je(),{publicApiKey:t,userId:o,flows:r,setShouldGracefullyDegrade:i}=(0,Ut.useContext)(J),{resetOpenFlowState:n}=Ne(),[s,p]=(0,Ut.useState)(!1),d={data:r.map(b=>({flowId:b.id,flowState:oe,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},a=b=>fetch(b,e).then(x=>{if(x.ok)return x.json();throw new Error("Failed to fetch user flow states")}).catch(x=>(console.log(`Error fetching ${b}: ${x}. Will gracefully degrade and hide Frigade`),i(!0),d)),{data:f,isLoading:c,mutate:u,error:T}=(0,Br.default)(t&&r&&o?`${Ie}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,a,{revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),F=f==null?void 0:f.data;(0,Ut.useEffect)(()=>{!s&&!c&&F&&p(!0)},[F,s,c]);async function y(b){if(F){let x=F.find(m=>m.flowId===b);x&&x.flowState!==oe&&(x.flowState=oe),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function S(b,x,m){if(F){let C=F.find(k=>k.flowId===b);C&&(C.stepStates[x]=m,C.flowState=Pt),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function v(b,x,m){if(F){let C=F.find(k=>k.flowId===b);C&&(C.lastStepId=x,C.stepStates[x]=m,C.flowState=Pt),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function E(b){if(F){let x=F.find(m=>m.flowId===b);x&&x.flowState!==je&&(x.flowState=je,x.lastStepId=Pl,Object.keys(x.stepStates).forEach(m=>{x.stepStates[m].actionType=_e,x.stepStates[m].createdAt=new Date().toISOString()}),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1}),n(b))}}async function I(b,x){if(F){let m=F.find(C=>C.flowId===b);m&&m.stepStates[x]!==_e&&(m.stepStates[x]=_e),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:F,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:E,optimisticallyMarkStepCompleted:S,optimisticallyMarkStepNotStarted:I,optimisticallyMarkStepStarted:v,error:T}}function _t(){let{config:e}=Je(),{userFlowStatesData:t,mutateUserFlowState:o}=ze(),{failedFlowResponses:r,setFailedFlowResponses:i,flowResponses:n,setFlowResponses:s}=(0,lo.useContext)(J),[p,d]=(0,lo.useState)(new Set),[a,f]=(0,lo.useState)(new Set),c=$t();function u(y){let S=JSON.stringify(y);if(p.has(S))return null;p.add(S),d(p),a.add(y),f(a);let v=n==null?void 0:n.find(E=>E.flowSlug===y.flowSlug&&E.stepId===y.stepId&&E.actionType===y.actionType&&E.createdAt===y.createdAt);return c(`${Ie}flowResponses`,{...e,method:"POST",body:S}).then(E=>{E.status!==200&&E.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),i([...r,y])):v||s(I=>[...I??[],y])})}async function T(y){y.foreignUserId&&(y.actionType===Pt||y.actionType===je?await u(y):y.actionType===oe?await u(y):y.actionType===vo?await u(y):y.actionType===Ge?await u(y):y.actionType===Po?await u(y):y.actionType===_e&&await u(y))}function F(){let y=[];return t==null||t.forEach(S=>{if(S&&S.stepStates&&Object.keys(S.stepStates).length!==0)for(let v in S.stepStates){let E=S.stepStates[v];y.push({foreignUserId:S.foreignUserId,flowSlug:S.flowId,stepId:E.stepId,actionType:E.actionType,data:{},createdAt:new Date(E.createdAt),blocked:E.blocked,hidden:E.hidden})}}),[...y,...n]}return{addResponse:T,setFlowResponses:s,getFlowResponses:F}}var Ir=g(require("swr"));var vl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ar=e=>{let t=vl.exec(e);if(t===null)return null;let o=null;return t.forEach((r,i)=>{let n=El(r,"'","");n.startsWith("flow_")&&(o=n)}),o},El=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=Je(),{flows:t,setFlows:o,userId:r,publicApiKey:i,customVariables:n,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:a,setShouldGracefullyDegrade:f}=(0,We.useContext)(J),c={data:[]},{verifySDKInitiated:u}=Mt(),{addResponse:T,getFlowResponses:F}=_t(),y=h=>fetch(h,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${h} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),f(!0),c)).catch(w=>(console.log(`Error fetching ${h}: ${w}. Will gracefully degrade and hide Frigade`),f(!0),c)),{userFlowStatesData:S,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:E,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:x,optimisticallyMarkStepStarted:m}=ze(),{data:C,error:k,isLoading:M}=(0,Ir.default)(i?`${Ie}flows`:null,y,{keepPreviousData:!0});(0,We.useEffect)(()=>{if(k){console.error(k);return}C&&C.data&&(C.data=o(C.data))},[C,k]);function W(h){if(M)return null;let w=t.find(B=>B.slug===h);return!w&&t.length>0&&!v&&!M?(console.log(`Flow with slug ${h} not found`),null):(w==null?void 0:w.active)===!1?null:w}function H(h){var G;if(!W(h))return[];let w=W(h).data;return w?(w=N(w),(((G=JSON.parse(w))==null?void 0:G.data)??[]).map(Se=>{let V=ne(Se);return{handleSecondaryButtonClick:()=>{Se.skippable===!0&&$(h,Se.id,{skipped:!0})},...Se,complete:L(h,Se.id)===Ge||V>=1,blocked:ue(h,Se.id),hidden:Te(h,Se.id),handlePrimaryButtonClick:()=>{(!Se.completionCriteria&&(Se.autoMarkCompleted||Se.autoMarkCompleted===void 0)||Se.completionCriteria&&Se.autoMarkCompleted===!0)&&$(h,Se.id)},progress:V}}).filter(Se=>Se.hidden!==!0)):[]}function N(h){return h.replace(/\${(.*?)}/g,(w,B)=>n[B]!==void 0?String(n[B]):"")}function z(h){if(!W(h))return[];let w=W(h).data;return w?(w=N(w),JSON.parse(w)??{}):[]}function U(h,w){s(B=>({...B,[h]:w}))}function D(h){!v&&!M&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(w=>{U(w,h[w])})}let me=(0,We.useCallback)(async(h,w,B)=>{u();let G={foreignUserId:r,flowSlug:h,stepId:w,actionType:vo,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await m(h,w,G),T(G))},[r,S]),Ce=(0,We.useCallback)(async(h,w,B)=>{u();let G={foreignUserId:r,flowSlug:h,stepId:w,actionType:_e,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await x(h,w),T(G))},[r,S]),$=(0,We.useCallback)(async(h,w,B)=>{u();let G={foreignUserId:r,flowSlug:h,stepId:w,actionType:Ge,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await b(h,w,G),T(G))},[r,S]),Ae=(0,We.useCallback)(async(h,w)=>{if(u(),te(h)===je)return;let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:je,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await I(h),pe(B)&&T(B)},[r,S]),Pe=(0,We.useCallback)(async(h,w)=>{u();let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Pt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&T(B)},[r,S]),le=(0,We.useCallback)(async(h,w)=>{u();let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:oe,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await E(h),T(B))},[r,S]),q=(0,We.useCallback)(async(h,w)=>{u();let B={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Po,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await E(h),T(B))},[r,S]);function pe(h){var w;if(!S&&h.actionType===_e)return!1;if(S){let B=S.find(G=>G.flowId===h.flowSlug);if(h.actionType===_e&&(!(B!=null&&B.stepStates[h.stepId])||B.stepStates[h.stepId].actionType===_e)||B&&((w=B.stepStates[h.stepId])==null?void 0:w.actionType)===h.actionType||B&&B.flowState===oe&&h.actionType===oe)return!1}return!0}function L(h,w){let B=De(h,w);return v?null:B?B.actionType:_e}function ue(h,w){let B=De(h,w);return B?B.blocked:!1}function Te(h,w){let B=De(h,w);return B?B.hidden:!1}function De(h,w){if(v)return null;let B=S==null?void 0:S.find(G=>G.flowId===h);return!B||!B.stepStates[w]?null:B.stepStates[w]??null}function K(h){var B;if(v||!S)return null;if(te(h)===je)return H(h)[0]??null;let w=(B=S.find(G=>G.flowId===h))==null?void 0:B.lastStepId;return w?H(h).find(G=>G.id===w):null}function Fe(h){let w=K(h);if(!w)return 0;let B=H(h).findIndex(G=>G.id===w.id)??0;return L(h,w.id)===Ge&&B<H(h).length-1?B+1:B}function ne(h){if(!h.completionCriteria)return;let w=Ar(h.completionCriteria);if(w===null)return;let B=at(w),G=pt(w);return G===0?void 0:B/G}function te(h){let w=S==null?void 0:S.find(B=>B.flowId===h);return w?w.flowState:null}function at(h){let w=H(h);return w.length===0?0:w.filter(G=>L(h,G.id)===Ge).length}function pt(h){return H(h).length}function Ot(h){return JSON.parse(t.find(w=>w.slug===h).data)}function j(h){if(v)return!0;if(h!=null&&h.targetingLogic&&S){let w=S.find(B=>B.flowId===h.slug);if(w)return w.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&r&&r.startsWith("guest_"))}function Ue(h){return!j(W(h))}return{getFlow:W,getFlowData:Ot,isLoading:v||M,getStepStatus:L,getFlowSteps:H,getCurrentStepIndex:Fe,markStepStarted:me,markStepCompleted:$,markFlowNotStarted:Ae,markFlowStarted:Pe,markFlowCompleted:le,markFlowAborted:q,markStepNotStarted:Ce,getFlowStatus:te,getNumberOfStepsCompleted:at,getNumberOfSteps:pt,targetingLogicShouldHideFlow:j,setCustomVariable:U,updateCustomVariables:D,customVariables:n,getStepOptionalProgress:ne,getFlowMetadata:z,isStepBlocked:ue,isStepHidden:Te,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:Ue}}var vt=require("react");var zt="guest_";function Wt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:r,shouldGracefullyDegrade:i}=(0,vt.useContext)(J),{config:n}=Je(),{mutateUserFlowState:s}=ze(),p=$t(),{verifySDKInitiated:d}=Mt();(0,vt.useEffect)(()=>{if(e&&!t){if(e.startsWith(zt))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${Ie}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(c,"true"))}},[e,i,t]);let a=(0,vt.useCallback)(async c=>{d();let u={foreignId:e,properties:c};await p(`${Ie}users`,{...n,method:"POST",body:JSON.stringify(u)}),r(T=>({...T,...c})),s()},[e,n,i,s]),f=(0,vt.useCallback)(async(c,u)=>{d();let F={foreignId:e,events:[{event:c,properties:u}]};await p(`${Ie}users`,{...n,method:"POST",body:JSON.stringify(F)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:a,trackEventForUser:f}}var Mi=require("uuid");var Be=g(require("react"));var Le=g(require("react")),co=g(require("styled-components"));var Or=g(require("react")),Dr=g(require("styled-components"));var Nr="fr-",ao="cfr-";function l(e,t){let o=`${Nr}${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+" "+ao+e}return o}function P(e){if(!e.className||e.className.indexOf(ao)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Nr)?"":`:not(${o.map(r=>`.${r}`).join(", ")})`}function Ro(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function dt(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ro(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ve(...e){return e.filter(Boolean).join(" ")}function Lr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Bl=Dr.default.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -253,7 +253,7 @@ var xl=Object.create;var ko=Object.defineProperty;var Cl=Object.getOwnPropertyDe
|
|
|
253
253
|
align-items: flex-start;
|
|
254
254
|
justify-content: left;
|
|
255
255
|
margin-bottom: 10px;
|
|
256
|
-
`;var Lo=g(require("react"));var Qe={theme:{colorPrimary:"#000000",colorText:"#000000",colorBackground:"#ffffff",colorBackgroundSecondary:"#d2d2d2",colorTextOnPrimaryBackground:"#ffffff",colorTextSecondary:"#505050",colorTextDisabled:"#999999",colorBorder:"#E5E5E5",colorTextError:"#c00000",borderRadius:20}};function mt({title:e,required:t,appearance:o=Qe}){return Lo.default.createElement(No,null,t?Lo.default.createElement(ti,{className:l("formLabelRequired",o),appearance:o},"*"):null,Lo.default.createElement(Rr,{className:l("formLabel",o)},e))}var tr=g(require("react"));function Ht({title:e,appearance:t}){return e?tr.default.createElement(No,null,tr.default.createElement(ei,{className:l("formSubLabel",t)},e)):null}var Oo=require("zod");function oi(e,t){try{if(t){if(t.type=="number"){let o=Oo.z.number();if(t.props)for(let r of t.props)r.requirement=="min"?o=o.min(Number(r.value),r.message??"Value is too small"):r.requirement=="max"?o=o.max(Number(r.value),r.message??"Value is too large"):r.requirement=="positive"?o=o.positive(r.message??"Value must be positive"):r.requirement=="negative"&&(o=o.nonpositive(r.message??"Value must be negative"));o.parse(Number(e))}if(t.type=="string"){let o=Oo.z.string();if(t.props)for(let r of t.props)r.requirement=="min"?o=o.min(Number(r.value),r.message??"Value is too short"):r.requirement=="max"?o=o.max(Number(r.value),r.message??"Value is too long"):r.requirement=="regex"&&(o=o.regex(new RegExp(String(r.value)),r.message??"Value does not match requirements"));o.parse(e)}return}}catch(o){if(o instanceof Oo.z.ZodError)return o.issues&&o.issues.length>0?o.issues[0].message:null;console.error("Frigade Form validation failed for rule ",t,o)}return null}var zl=Do.default.div`
|
|
256
|
+
`;var Lo=g(require("react"));var Qe={theme:{colorPrimary:"#000000",colorText:"#000000",colorBackground:"#ffffff",colorBackgroundSecondary:"#d2d2d2",colorTextOnPrimaryBackground:"#ffffff",colorTextSecondary:"#505050",colorTextDisabled:"#999999",colorBorder:"#E5E5E5",colorTextError:"#c00000",borderRadius:20}};function mt({title:e,required:t,appearance:o=Qe}){return e?Lo.default.createElement(No,null,t?Lo.default.createElement(ti,{className:l("formLabelRequired",o),appearance:o},"*"):null,Lo.default.createElement(Rr,{className:l("formLabel",o)},e)):null}var tr=g(require("react"));function Ht({title:e,appearance:t}){return e?tr.default.createElement(No,null,tr.default.createElement(ei,{className:l("formSubLabel",t)},e)):null}var Oo=require("zod");function oi(e,t){try{if(t){if(t.type=="number"){let o=Oo.z.number();if(t.props)for(let r of t.props)r.requirement=="min"?o=o.min(Number(r.value),r.message??"Value is too small"):r.requirement=="max"?o=o.max(Number(r.value),r.message??"Value is too large"):r.requirement=="positive"?o=o.positive(r.message??"Value must be positive"):r.requirement=="negative"&&(o=o.nonpositive(r.message??"Value must be negative"));o.parse(Number(e))}if(t.type=="string"){let o=Oo.z.string();if(t.props)for(let r of t.props)r.requirement=="min"?o=o.min(Number(r.value),r.message??"Value is too short"):r.requirement=="max"?o=o.max(Number(r.value),r.message??"Value is too long"):r.requirement=="regex"&&(o=o.regex(new RegExp(String(r.value)),r.message??"Value does not match requirements"));o.parse(e)}return}}catch(o){if(o instanceof Oo.z.ZodError)return o.issues&&o.issues.length>0?o.issues[0].message:null;console.error("Frigade Form validation failed for rule ",t,o)}return null}var zl=Do.default.div`
|
|
257
257
|
display: flex;
|
|
258
258
|
flex-direction: column;
|
|
259
259
|
width: 100%;
|