@frigade/react 1.32.48 → 1.32.49
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 +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.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var hl=Object.create;var ko=Object.defineProperty;var xl=Object.getOwnPropertyDescriptor;var Cl=Object.getOwnPropertyNames;var Sl=Object.getPrototypeOf,yl=Object.prototype.hasOwnProperty;var bl=(e,t)=>{for(var o in t)ko(e,o,{get:t[o],enumerable:!0})},Fr=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Cl(t))!yl.call(e,i)&&i!==o&&ko(e,i,{get:()=>t[i],enumerable:!(r=xl(t,i))||r.enumerable});return e};var g=(e,t,o)=>(o=e!=null?hl(Sl(e)):{},Fr(t||!e||!e.__esModule?ko(o,"default",{value:e,enumerable:!0}):o,e)),wl=e=>Fr(ko({},"__esModule",{value:!0}),e);var cp={};bl(cp,{CheckBox:()=>Ct,FormLabel:()=>pt,FormTextField:()=>Lo,FrigadeBanner:()=>al,FrigadeChecklist:()=>Yo,FrigadeDefaultAppearance:()=>Qe,FrigadeEmbeddedTip:()=>ol,FrigadeForm:()=>nr,FrigadeGuide:()=>ks,FrigadeHeroChecklist:()=>cs,FrigadeNPSSurvey:()=>gl,FrigadeProgressBadge:()=>Ts,FrigadeProvider:()=>Ni,FrigadeSupportWidget:()=>Qs,FrigadeTour:()=>zs,ProgressRing:()=>At,useFlowOpens:()=>Le,useFlowResponses:()=>_t,useFlows:()=>J,useOrganization:()=>Ho,useUser:()=>Wt});module.exports=wl(cp);var q=g(require("react")),Ai=require("styled-components");var ge=g(require("react"));var We=require("react");var Dt=g(require("react"));var kr="1.32.48 ";var Ne="https://api.frigade.com/v1/public/",_e="NOT_STARTED_STEP",oe="COMPLETED_FLOW",Po="ABORTED_FLOW",Pt="STARTED_FLOW",Ve="NOT_STARTED_FLOW",je="COMPLETED_STEP",vo="STARTED_STEP";function Je(){let{publicApiKey:e,userId:t}=Dt.default.useContext(X);return{config:(0,Dt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":kr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}var Tl="frigade-last-call-at-",Fl="frigade-last-call-data-";function Mt(){let{shouldGracefullyDegrade:e}=Dt.default.useContext(X);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),so();let r=Tl+t,i=Fl+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 $t(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Dt.default.useContext(X);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 vr=g(require("swr"));var Pr=require("react");function Le(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:r,completedFlowsToKeepOpenDuringSession:i}=(0,Pr.useContext)(X);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 kl="unknown";function ze(){let{config:e}=Je(),{publicApiKey:t,userId:o,flows:r,setShouldGracefullyDegrade:i}=(0,Ut.useContext)(X),{resetOpenFlowState:n}=Le(),[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(S=>{if(S.ok)return S.json();throw new Error("Failed to fetch user flow states")}).catch(S=>(console.log(`Error fetching ${b}: ${S}. Will gracefully degrade and hide Frigade`),i(!0),d)),{data:f,isLoading:c,mutate:u,error:T}=(0,vr.default)(t&&r&&o?`${Ne}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 S=F.find(m=>m.flowId===b);S&&S.flowState!==oe&&(S.flowState=oe),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function C(b,S,m){if(F){let x=F.find(k=>k.flowId===b);x&&(x.stepStates[S]=m,x.flowState=Pt),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function B(b,S,m){if(F){let x=F.find(k=>k.flowId===b);x&&(x.lastStepId=S,x.stepStates[S]=m,x.flowState=Pt),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function v(b){if(F){let S=F.find(m=>m.flowId===b);S&&S.flowState!==Ve&&(S.flowState=Ve,S.lastStepId=kl,Object.keys(S.stepStates).forEach(m=>{S.stepStates[m].actionType=_e,S.stepStates[m].createdAt=new Date().toISOString()}),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1}),n(b))}}async function A(b,S){if(F){let m=F.find(x=>x.flowId===b);m&&m.stepStates[S]!==_e&&(m.stepStates[S]=_e),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:F,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:v,optimisticallyMarkStepCompleted:C,optimisticallyMarkStepNotStarted:A,optimisticallyMarkStepStarted:B,error:T}}function _t(){let{config:e}=Je(),{userFlowStatesData:t,mutateUserFlowState:o}=ze(),{failedFlowResponses:r,setFailedFlowResponses:i,flowResponses:n,setFlowResponses:s}=(0,lo.useContext)(X),[p,d]=(0,lo.useState)(new Set),[a,f]=(0,lo.useState)(new Set),c=Mt();function u(y){let C=JSON.stringify(y);if(p.has(C))return null;p.add(C),d(p),a.add(y),f(a);let B=n==null?void 0:n.find(v=>v.flowSlug===y.flowSlug&&v.stepId===y.stepId&&v.actionType===y.actionType&&v.createdAt===y.createdAt);return c(`${Ne}flowResponses`,{...e,method:"POST",body:C}).then(v=>{v.status!==200&&v.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),i([...r,y])):B||s(A=>[...A??[],y])})}async function T(y){y.foreignUserId&&(y.actionType===Pt||y.actionType===Ve?await u(y):y.actionType===oe?await u(y):y.actionType===vo?await u(y):y.actionType===je?await u(y):y.actionType===Po?await u(y):y.actionType===_e&&await u(y))}function F(){let y=[];return t==null||t.forEach(C=>{if(C&&C.stepStates&&Object.keys(C.stepStates).length!==0)for(let B in C.stepStates){let v=C.stepStates[B];y.push({foreignUserId:C.foreignUserId,flowSlug:C.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden})}}),[...y,...n]}return{addResponse:T,setFlowResponses:s,getFlowResponses:F}}var Br=g(require("swr"));var Pl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Er=e=>{let t=Pl.exec(e);if(t===null)return null;let o=null;return t.forEach((r,i)=>{let n=vl(r,"'","");n.startsWith("flow_")&&(o=n)}),o},vl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function J(){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)(X),c={data:[]},{verifySDKInitiated:u}=$t(),{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:C,isLoadingUserFlowStateData:B,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:S,optimisticallyMarkStepStarted:m}=ze(),{data:x,error:k,isLoading:M}=(0,Br.default)(i?`${Ne}flows`:null,y,{keepPreviousData:!0});(0,We.useEffect)(()=>{if(k){console.error(k);return}x&&x.data&&(x.data=o(x.data))},[x,k]);function z(h){if(M)return null;let w=t.find(E=>E.slug===h);return!w&&t.length>0&&!B&&!M?(console.log(`Flow with slug ${h} not found`),null):(w==null?void 0:w.active)===!1?null:w}function _(h){var j;if(!z(h))return[];let w=z(h).data;return w?(w=N(w),(((j=JSON.parse(w))==null?void 0:j.data)??[]).map(ye=>{let V=ae(ye);return{handleSecondaryButtonClick:()=>{ye.skippable===!0&&H(h,ye.id,{skipped:!0})},...ye,complete:L(h,ye.id)===je||V>=1,blocked:le(h,ye.id),hidden:Pe(h,ye.id),handlePrimaryButtonClick:()=>{(!ye.completionCriteria&&(ye.autoMarkCompleted||ye.autoMarkCompleted===void 0)||ye.completionCriteria&&ye.autoMarkCompleted===!0)&&H(h,ye.id)},progress:V}}).filter(ye=>ye.hidden!==!0)):[]}function N(h){return h.replace(/\${(.*?)}/g,(w,E)=>n[E]!==void 0?String(n[E]):"")}function W(h){if(!z(h))return[];let w=z(h).data;return w?(w=N(w),JSON.parse(w)??{}):[]}function D(h,w){s(E=>({...E,[h]:w}))}function $(h){!B&&!M&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(w=>{D(w,h[w])})}let ie=(0,We.useCallback)(async(h,w,E)=>{u();let j={foreignUserId:r,flowSlug:h,stepId:w,actionType:vo,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};me(j)&&(await m(h,w,j),T(j))},[r,C]),ne=(0,We.useCallback)(async(h,w,E)=>{u();let j={foreignUserId:r,flowSlug:h,stepId:w,actionType:_e,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};me(j)&&(await S(h,w),T(j))},[r,C]),H=(0,We.useCallback)(async(h,w,E)=>{u();let j={foreignUserId:r,flowSlug:h,stepId:w,actionType:je,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};me(j)&&(await b(h,w,j),T(j))},[r,C]),Me=(0,We.useCallback)(async(h,w)=>{if(u(),ee(h)===Ve)return;let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Ve,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await A(h),me(E)&&T(E)},[r,C]),ke=(0,We.useCallback)(async(h,w)=>{u();let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Pt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};me(E)&&T(E)},[r,C]),G=(0,We.useCallback)(async(h,w)=>{u();let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:oe,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};me(E)&&(await v(h),T(E))},[r,C]),de=(0,We.useCallback)(async(h,w)=>{u();let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Po,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};me(E)&&(await v(h),T(E))},[r,C]);function me(h){var w;if(!C&&h.actionType===_e)return!1;if(C){let E=C.find(j=>j.flowId===h.flowSlug);if(h.actionType===_e&&(!(E!=null&&E.stepStates[h.stepId])||E.stepStates[h.stepId].actionType===_e)||E&&((w=E.stepStates[h.stepId])==null?void 0:w.actionType)===h.actionType||E&&E.flowState===oe&&h.actionType===oe)return!1}return!0}function L(h,w){let E=ve(h,w);return B?null:E?E.actionType:_e}function le(h,w){let E=ve(h,w);return E?E.blocked:!1}function Pe(h,w){let E=ve(h,w);return E?E.hidden:!1}function ve(h,w){if(B)return null;let E=C==null?void 0:C.find(j=>j.flowId===h);return!E||!E.stepStates[w]?null:E.stepStates[w]??null}function Y(h){var E;if(B||!C)return null;if(ee(h)===Ve)return _(h)[0]??null;let w=(E=C.find(j=>j.flowId===h))==null?void 0:E.lastStepId;return w?_(h).find(j=>j.id===w):null}function Se(h){let w=Y(h);if(!w)return 0;let E=_(h).findIndex(j=>j.id===w.id)??0;return L(h,w.id)===je&&E<_(h).length-1?E+1:E}function ae(h){if(!h.completionCriteria)return;let w=Er(h.completionCriteria);if(w===null)return;let E=lt(w),j=at(w);return j===0?void 0:E/j}function ee(h){let w=C==null?void 0:C.find(E=>E.flowId===h);return w?w.flowState:null}function lt(h){let w=_(h);return w.length===0?0:w.filter(j=>L(h,j.id)===je).length}function at(h){return _(h).length}function te(h){return JSON.parse(t.find(w=>w.slug===h).data)}function Ee(h){if(B)return!0;if(h!=null&&h.targetingLogic&&C){let w=C.find(E=>E.flowId===h.slug);if(w)return w.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&r&&r.startsWith("guest_"))}function Ft(h){return!Ee(z(h))}return{getFlow:z,getFlowData:te,isLoading:B||M,getStepStatus:L,getFlowSteps:_,getCurrentStepIndex:Se,markStepStarted:ie,markStepCompleted:H,markFlowNotStarted:Me,markFlowStarted:ke,markFlowCompleted:G,markFlowAborted:de,markStepNotStarted:ne,getFlowStatus:ee,getNumberOfStepsCompleted:lt,getNumberOfSteps:at,targetingLogicShouldHideFlow:Ee,setCustomVariable:D,updateCustomVariables:$,customVariables:n,getStepOptionalProgress:ae,getFlowMetadata:W,isStepBlocked:le,isStepHidden:Pe,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:Ft}}var vt=require("react");var zt="guest_";function Wt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:r,shouldGracefullyDegrade:i}=(0,vt.useContext)(X),{config:n}=Je(),{mutateUserFlowState:s}=ze(),p=Mt(),{verifySDKInitiated:d}=$t();(0,vt.useEffect)(()=>{if(e&&!t){if(e.startsWith(zt))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${Ne}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(`${Ne}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(`${Ne}users`,{...n,method:"POST",body:JSON.stringify(F)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:a,trackEventForUser:f}}var Ei=require("uuid");var Ie=g(require("react"));var Oe=g(require("react")),co=g(require("styled-components"));var Nr=g(require("react")),Lr=g(require("styled-components"));var Ar="fr-",ao="cfr-";function l(e,t){let o=`${Ar}${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(Ar)?"":`:not(${o.map(r=>`.${r}`).join(", ")})`}function Jo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Et(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Jo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Be(...e){return e.filter(Boolean).join(" ")}function Ir(e){return e.charAt(0).toUpperCase()+e.slice(1)}var El=Lr.default.div`
|
|
2
|
+
var hl=Object.create;var ko=Object.defineProperty;var xl=Object.getOwnPropertyDescriptor;var Cl=Object.getOwnPropertyNames;var Sl=Object.getPrototypeOf,yl=Object.prototype.hasOwnProperty;var bl=(e,t)=>{for(var o in t)ko(e,o,{get:t[o],enumerable:!0})},Fr=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Cl(t))!yl.call(e,i)&&i!==o&&ko(e,i,{get:()=>t[i],enumerable:!(r=xl(t,i))||r.enumerable});return e};var g=(e,t,o)=>(o=e!=null?hl(Sl(e)):{},Fr(t||!e||!e.__esModule?ko(o,"default",{value:e,enumerable:!0}):o,e)),wl=e=>Fr(ko({},"__esModule",{value:!0}),e);var cp={};bl(cp,{CheckBox:()=>Ct,FormLabel:()=>pt,FormTextField:()=>Lo,FrigadeBanner:()=>al,FrigadeChecklist:()=>Yo,FrigadeDefaultAppearance:()=>Qe,FrigadeEmbeddedTip:()=>ol,FrigadeForm:()=>nr,FrigadeGuide:()=>ks,FrigadeHeroChecklist:()=>cs,FrigadeNPSSurvey:()=>gl,FrigadeProgressBadge:()=>Ts,FrigadeProvider:()=>Ni,FrigadeSupportWidget:()=>Qs,FrigadeTour:()=>zs,ProgressRing:()=>At,useFlowOpens:()=>Le,useFlowResponses:()=>_t,useFlows:()=>J,useOrganization:()=>Ho,useUser:()=>Wt});module.exports=wl(cp);var q=g(require("react")),Ai=require("styled-components");var ge=g(require("react"));var We=require("react");var Dt=g(require("react"));var kr="1.32.49 ";var Ne="https://api.frigade.com/v1/public/",_e="NOT_STARTED_STEP",oe="COMPLETED_FLOW",Po="ABORTED_FLOW",Pt="STARTED_FLOW",Ve="NOT_STARTED_FLOW",je="COMPLETED_STEP",vo="STARTED_STEP";function Je(){let{publicApiKey:e,userId:t}=Dt.default.useContext(X);return{config:(0,Dt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":kr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}var Tl="frigade-last-call-at-",Fl="frigade-last-call-data-";function Mt(){let{shouldGracefullyDegrade:e}=Dt.default.useContext(X);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),so();let r=Tl+t,i=Fl+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 $t(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Dt.default.useContext(X);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 vr=g(require("swr"));var Pr=require("react");function Le(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:r,completedFlowsToKeepOpenDuringSession:i}=(0,Pr.useContext)(X);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 kl="unknown";function ze(){let{config:e}=Je(),{publicApiKey:t,userId:o,flows:r,setShouldGracefullyDegrade:i}=(0,Ut.useContext)(X),{resetOpenFlowState:n}=Le(),[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(S=>{if(S.ok)return S.json();throw new Error("Failed to fetch user flow states")}).catch(S=>(console.log(`Error fetching ${b}: ${S}. Will gracefully degrade and hide Frigade`),i(!0),d)),{data:f,isLoading:c,mutate:u,error:T}=(0,vr.default)(t&&r&&o?`${Ne}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 S=F.find(m=>m.flowId===b);S&&S.flowState!==oe&&(S.flowState=oe),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function C(b,S,m){if(F){let x=F.find(k=>k.flowId===b);x&&(x.stepStates[S]=m,x.flowState=Pt),await u(Promise.resolve({...f,data:F}),{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function B(b,S,m){if(F){let x=F.find(k=>k.flowId===b);x&&(x.lastStepId=S,x.stepStates[S]=m,x.flowState=Pt),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}async function v(b){if(F){let S=F.find(m=>m.flowId===b);S&&S.flowState!==Ve&&(S.flowState=Ve,S.lastStepId=kl,Object.keys(S.stepStates).forEach(m=>{S.stepStates[m].actionType=_e,S.stepStates[m].createdAt=new Date().toISOString()}),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1}),n(b))}}async function A(b,S){if(F){let m=F.find(x=>x.flowId===b);m&&m.stepStates[S]!==_e&&(m.stepStates[S]=_e),await u({...f,data:F},{optimisticData:{...f,data:F},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:F,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:v,optimisticallyMarkStepCompleted:C,optimisticallyMarkStepNotStarted:A,optimisticallyMarkStepStarted:B,error:T}}function _t(){let{config:e}=Je(),{userFlowStatesData:t,mutateUserFlowState:o}=ze(),{failedFlowResponses:r,setFailedFlowResponses:i,flowResponses:n,setFlowResponses:s}=(0,lo.useContext)(X),[p,d]=(0,lo.useState)(new Set),[a,f]=(0,lo.useState)(new Set),c=Mt();function u(y){let C=JSON.stringify(y);if(p.has(C))return null;p.add(C),d(p),a.add(y),f(a);let B=n==null?void 0:n.find(v=>v.flowSlug===y.flowSlug&&v.stepId===y.stepId&&v.actionType===y.actionType&&v.createdAt===y.createdAt);return c(`${Ne}flowResponses`,{...e,method:"POST",body:C}).then(v=>{v.status!==200&&v.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),i([...r,y])):B||s(A=>[...A??[],y])})}async function T(y){y.foreignUserId&&(y.actionType===Pt||y.actionType===Ve?await u(y):y.actionType===oe?await u(y):y.actionType===vo?await u(y):y.actionType===je?await u(y):y.actionType===Po?await u(y):y.actionType===_e&&await u(y))}function F(){let y=[];return t==null||t.forEach(C=>{if(C&&C.stepStates&&Object.keys(C.stepStates).length!==0)for(let B in C.stepStates){let v=C.stepStates[B];y.push({foreignUserId:C.foreignUserId,flowSlug:C.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden})}}),[...y,...n]}return{addResponse:T,setFlowResponses:s,getFlowResponses:F}}var Br=g(require("swr"));var Pl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Er=e=>{let t=Pl.exec(e);if(t===null)return null;let o=null;return t.forEach((r,i)=>{let n=vl(r,"'","");n.startsWith("flow_")&&(o=n)}),o},vl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function J(){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)(X),c={data:[]},{verifySDKInitiated:u}=$t(),{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:C,isLoadingUserFlowStateData:B,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:S,optimisticallyMarkStepStarted:m}=ze(),{data:x,error:k,isLoading:M}=(0,Br.default)(i?`${Ne}flows`:null,y,{keepPreviousData:!0});(0,We.useEffect)(()=>{if(k){console.error(k);return}x&&x.data&&(x.data=o(x.data))},[x,k]);function z(h){if(M)return null;let w=t.find(E=>E.slug===h);return!w&&t.length>0&&!B&&!M?(console.log(`Flow with slug ${h} not found`),null):(w==null?void 0:w.active)===!1?null:w}function _(h){var j;if(!z(h))return[];let w=z(h).data;return w?(w=N(w),(((j=JSON.parse(w))==null?void 0:j.data)??[]).map(ye=>{let V=ae(ye);return{handleSecondaryButtonClick:()=>{ye.skippable===!0&&H(h,ye.id,{skipped:!0})},...ye,complete:L(h,ye.id)===je||V>=1,blocked:le(h,ye.id),hidden:Pe(h,ye.id),handlePrimaryButtonClick:()=>{(!ye.completionCriteria&&(ye.autoMarkCompleted||ye.autoMarkCompleted===void 0)||ye.completionCriteria&&ye.autoMarkCompleted===!0)&&H(h,ye.id)},progress:V}}).filter(ye=>ye.hidden!==!0)):[]}function N(h){return h.replace(/\${(.*?)}/g,(w,E)=>n[E]!==void 0?String(n[E]):"")}function W(h){if(!z(h))return[];let w=z(h).data;return w?(w=N(w),JSON.parse(w)??{}):[]}function D(h,w){s(E=>({...E,[h]:w}))}function $(h){!B&&!M&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(w=>{D(w,h[w])})}let ie=(0,We.useCallback)(async(h,w,E)=>{u();let j={foreignUserId:r,flowSlug:h,stepId:w,actionType:vo,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};me(j)&&(await m(h,w,j),T(j))},[r,C]),ne=(0,We.useCallback)(async(h,w,E)=>{u();let j={foreignUserId:r,flowSlug:h,stepId:w,actionType:_e,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};me(j)&&(await S(h,w),T(j))},[r,C]),H=(0,We.useCallback)(async(h,w,E)=>{u();let j={foreignUserId:r,flowSlug:h,stepId:w,actionType:je,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};me(j)&&(await b(h,w,j),T(j))},[r,C]),Me=(0,We.useCallback)(async(h,w)=>{if(u(),ee(h)===Ve)return;let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Ve,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await A(h),me(E)&&T(E)},[r,C]),ke=(0,We.useCallback)(async(h,w)=>{u();let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Pt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};me(E)&&T(E)},[r,C]),G=(0,We.useCallback)(async(h,w)=>{u();let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:oe,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};me(E)&&(await v(h),T(E))},[r,C]),de=(0,We.useCallback)(async(h,w)=>{u();let E={foreignUserId:r,flowSlug:h,stepId:"unknown",actionType:Po,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};me(E)&&(await v(h),T(E))},[r,C]);function me(h){var w;if(!C&&h.actionType===_e)return!1;if(C){let E=C.find(j=>j.flowId===h.flowSlug);if(h.actionType===_e&&(!(E!=null&&E.stepStates[h.stepId])||E.stepStates[h.stepId].actionType===_e)||E&&((w=E.stepStates[h.stepId])==null?void 0:w.actionType)===h.actionType||E&&E.flowState===oe&&h.actionType===oe)return!1}return!0}function L(h,w){let E=ve(h,w);return B?null:E?E.actionType:_e}function le(h,w){let E=ve(h,w);return E?E.blocked:!1}function Pe(h,w){let E=ve(h,w);return E?E.hidden:!1}function ve(h,w){if(B)return null;let E=C==null?void 0:C.find(j=>j.flowId===h);return!E||!E.stepStates[w]?null:E.stepStates[w]??null}function Y(h){var E;if(B||!C)return null;if(ee(h)===Ve)return _(h)[0]??null;let w=(E=C.find(j=>j.flowId===h))==null?void 0:E.lastStepId;return w?_(h).find(j=>j.id===w):null}function Se(h){let w=Y(h);if(!w)return 0;let E=_(h).findIndex(j=>j.id===w.id)??0;return L(h,w.id)===je&&E<_(h).length-1?E+1:E}function ae(h){if(!h.completionCriteria)return;let w=Er(h.completionCriteria);if(w===null)return;let E=lt(w),j=at(w);return j===0?void 0:E/j}function ee(h){let w=C==null?void 0:C.find(E=>E.flowId===h);return w?w.flowState:null}function lt(h){let w=_(h);return w.length===0?0:w.filter(j=>L(h,j.id)===je).length}function at(h){return _(h).length}function te(h){return JSON.parse(t.find(w=>w.slug===h).data)}function Ee(h){if(B)return!0;if(h!=null&&h.targetingLogic&&C){let w=C.find(E=>E.flowId===h.slug);if(w)return w.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&r&&r.startsWith("guest_"))}function Ft(h){return!Ee(z(h))}return{getFlow:z,getFlowData:te,isLoading:B||M,getStepStatus:L,getFlowSteps:_,getCurrentStepIndex:Se,markStepStarted:ie,markStepCompleted:H,markFlowNotStarted:Me,markFlowStarted:ke,markFlowCompleted:G,markFlowAborted:de,markStepNotStarted:ne,getFlowStatus:ee,getNumberOfStepsCompleted:lt,getNumberOfSteps:at,targetingLogicShouldHideFlow:Ee,setCustomVariable:D,updateCustomVariables:$,customVariables:n,getStepOptionalProgress:ae,getFlowMetadata:W,isStepBlocked:le,isStepHidden:Pe,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:Ft}}var vt=require("react");var zt="guest_";function Wt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:r,shouldGracefullyDegrade:i}=(0,vt.useContext)(X),{config:n}=Je(),{mutateUserFlowState:s}=ze(),p=Mt(),{verifySDKInitiated:d}=$t();(0,vt.useEffect)(()=>{if(e&&!t){if(e.startsWith(zt))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${Ne}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(`${Ne}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(`${Ne}users`,{...n,method:"POST",body:JSON.stringify(F)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:a,trackEventForUser:f}}var Ei=require("uuid");var Ie=g(require("react"));var Oe=g(require("react")),co=g(require("styled-components"));var Nr=g(require("react")),Lr=g(require("styled-components"));var Ar="fr-",ao="cfr-";function l(e,t){let o=`${Ar}${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(Ar)?"":`:not(${o.map(r=>`.${r}`).join(", ")})`}function Jo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Et(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Jo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Be(...e){return e.filter(Boolean).join(" ")}function Ir(e){return e.charAt(0).toUpperCase()+e.slice(1)}var El=Lr.default.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -268,7 +268,7 @@ var hl=Object.create;var ko=Object.defineProperty;var xl=Object.getOwnPropertyDe
|
|
|
268
268
|
height: 60px;
|
|
269
269
|
padding: 0 18px;
|
|
270
270
|
margin-bottom: 10px;
|
|
271
|
-
`;function Xr({formInput:e,customFormTypeProps:t,onSaveInputData:o,inputData:r}){var a;let i=e,[n,s]=(0,qe.useState)((r==null?void 0:r.choice)||[]),[p,d]=(0,qe.useState)(!1);return(0,qe.useEffect)(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[]),(0,qe.useEffect)(()=>{o({choice:n})},[n]),qe.default.createElement(Vl,null,qe.default.createElement(pt,{title:i.title,required:i.required,appearance:t.appearance}),(a=i.props.options)==null?void 0:a.map(f=>qe.default.createElement(jl,{appearance:t.appearance,key:f.id,value:f.id,"data-selected":n.includes(f.id),onClick:()=>{if(n.includes(f.id)){s(n.filter(c=>c!==f.id));return}n.length<i.props.maxChoices?s([...n,f.id]):n.length==1&&i.props.maxChoices==1&&s([f.id])}},f.title)),qe.default.createElement(Ht,{title:i.subtitle,appearance:t.appearance}))}var fo=g(require("react"));var rr=g(require("styled-components"));var Jr=g(require("dompurify"));function be(e){return{__html:Jr.default.sanitize(e,{ALLOWED_TAGS:["b","i","a","span","div","p","pre","u","br","img"],ALLOWED_ATTR:["style","class","target","id","href","alt","src"]})}}var Gl=rr.default.h1`
|
|
271
|
+
`;function Xr({formInput:e,customFormTypeProps:t,onSaveInputData:o,inputData:r}){var a;let i=e,[n,s]=(0,qe.useState)((r==null?void 0:r.choice)||[]),[p,d]=(0,qe.useState)(!1);return(0,qe.useEffect)(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[]),(0,qe.useEffect)(()=>{o({choice:n})},[n]),qe.default.createElement(Vl,null,qe.default.createElement(pt,{title:i.title,required:i.required,appearance:t.appearance}),(a=i.props.options)==null?void 0:a.map(f=>qe.default.createElement(jl,{appearance:t.appearance,className:l("multipleChoiceListItem",t.appearance),key:f.id,value:f.id,"data-selected":n.includes(f.id),onClick:()=>{if(n.includes(f.id)){s(n.filter(c=>c!==f.id));return}n.length<i.props.maxChoices?s([...n,f.id]):n.length==1&&i.props.maxChoices==1&&s([f.id])}},f.title)),qe.default.createElement(Ht,{title:i.subtitle,appearance:t.appearance}))}var fo=g(require("react"));var rr=g(require("styled-components"));var Jr=g(require("dompurify"));function be(e){return{__html:Jr.default.sanitize(e,{ALLOWED_TAGS:["b","i","a","span","div","p","pre","u","br","img"],ALLOWED_ATTR:["style","class","target","id","href","alt","src"]})}}var Gl=rr.default.h1`
|
|
272
272
|
${e=>P(e)} {
|
|
273
273
|
font-style: normal;
|
|
274
274
|
font-weight: 600;
|