@frigade/react 1.36.9 → 1.37.0
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/README.md +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -24
package/README.md
CHANGED
|
@@ -70,6 +70,7 @@ Frigade makes it easy to manage multiple versions of onboarding across staging a
|
|
|
70
70
|
|
|
71
71
|
Frigade automatically tracks state management and onboarding progress. Give your team full observability into the customer journey, and use Frigade to kick off automated workflows.
|
|
72
72
|
|
|
73
|
+
|
|
73
74
|
To learn more, visit [frigade.com](<https://frigade.com>)
|
|
74
75
|
|
|
75
76
|
|
package/dist/index.d.ts
CHANGED
|
@@ -744,9 +744,9 @@ declare function Label({ title, required, appearance, }: {
|
|
|
744
744
|
title?: string;
|
|
745
745
|
required: boolean;
|
|
746
746
|
appearance?: Appearance;
|
|
747
|
-
}): JSX.Element;
|
|
747
|
+
}): React__default.JSX.Element;
|
|
748
748
|
|
|
749
|
-
declare function TextField({ formInput, customFormTypeProps, onSaveInputData, setFormValidationErrors, inputData, }: FormInputProps): JSX.Element;
|
|
749
|
+
declare function TextField({ formInput, customFormTypeProps, onSaveInputData, setFormValidationErrors, inputData, }: FormInputProps): React__default.JSX.Element;
|
|
750
750
|
|
|
751
751
|
interface Overrides extends Record<string, Overrides | CSSProperties> {
|
|
752
752
|
}
|
|
@@ -756,14 +756,14 @@ type BoxProps<T extends ElementType = 'div'> = {
|
|
|
756
756
|
children?: ReactNode;
|
|
757
757
|
overrides?: Overrides;
|
|
758
758
|
} & BorderProps & ColorProps & Exclude<LayoutProps, 'size'> & ShadowProps & SpaceProps & TypographyProps & ComponentPropsWithoutRef<T>;
|
|
759
|
-
declare const Box: <T extends React__default.ElementType<any> = "div">({ as, children, overrides, ...rest }: any) => JSX.Element;
|
|
759
|
+
declare const Box: <T extends React__default.ElementType<any> = "div">({ as, children, overrides, ...rest }: any) => React__default.JSX.Element;
|
|
760
760
|
|
|
761
761
|
interface ButtonProps extends BoxProps {
|
|
762
762
|
title: string;
|
|
763
763
|
}
|
|
764
764
|
declare const Button: React.FC<ButtonProps> & {
|
|
765
765
|
[k: string]: {
|
|
766
|
-
(props: ButtonProps): JSX.Element;
|
|
766
|
+
(props: ButtonProps): React.JSX.Element;
|
|
767
767
|
displayName: string;
|
|
768
768
|
};
|
|
769
769
|
};
|
|
@@ -854,7 +854,7 @@ interface BaseTextProps extends BoxProps, Partial<Pick<FontProps, 'fontWeight'>>
|
|
|
854
854
|
}
|
|
855
855
|
declare const Text: React__default.FC<BaseTextProps> & {
|
|
856
856
|
[k: string]: {
|
|
857
|
-
(props: BaseTextProps): JSX.Element;
|
|
857
|
+
(props: BaseTextProps): React__default.JSX.Element;
|
|
858
858
|
displayName: string;
|
|
859
859
|
};
|
|
860
860
|
};
|
|
@@ -868,7 +868,7 @@ declare const ProgressBar: ({ count, total, display, textLocation, style, textSt
|
|
|
868
868
|
style?: CSSProperties;
|
|
869
869
|
textStyle?: CSSProperties;
|
|
870
870
|
appearance?: Appearance;
|
|
871
|
-
}) => JSX.Element;
|
|
871
|
+
}) => React__default.JSX.Element;
|
|
872
872
|
|
|
873
873
|
declare const tokens: {
|
|
874
874
|
colors: {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var va=Object.create;var vo=Object.defineProperty,Ba=Object.defineProperties,Ea=Object.getOwnPropertyDescriptor,Aa=Object.getOwnPropertyDescriptors,Oa=Object.getOwnPropertyNames,Jo=Object.getOwnPropertySymbols,Na=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,hi=Object.prototype.propertyIsEnumerable;var gi=(e,t,o)=>t in e?vo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))Ar.call(t,o)&&gi(e,o,t[o]);if(Jo)for(var o of Jo(t))hi.call(t,o)&&gi(e,o,t[o]);return e},q=(e,t)=>Ba(e,Aa(t));var xi=e=>typeof e=="symbol"?e:e+"",Ye=(e,t)=>{var o={};for(var n in e)Ar.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Jo)for(var n of Jo(e))t.indexOf(n)<0&&hi.call(e,n)&&(o[n]=e[n]);return o};var Ia=(e,t)=>{for(var o in t)vo(e,o,{get:t[o],enumerable:!0})},Ci=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Oa(t))!Ar.call(e,i)&&i!==o&&vo(e,i,{get:()=>t[i],enumerable:!(n=Ea(t,i))||n.enumerable});return e};var u=(e,t,o)=>(o=e!=null?va(Na(e)):{},Ci(t||!e||!e.__esModule?vo(o,"default",{value:e,enumerable:!0}):o,e)),La=e=>Ci(vo({},"__esModule",{value:!0}),e);var z=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(l){i(l)}},s=d=>{try{p(o.throw(d))}catch(l){i(l)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});var Dd={};Ia(Dd,{Box:()=>go,Button:()=>ka,CheckBox:()=>ht,FlowType:()=>Qo,FormLabel:()=>Pt,FormTextField:()=>pr,FrigadeAnnouncement:()=>wa,FrigadeBanner:()=>na,FrigadeChecklist:()=>kr,FrigadeDefaultAppearance:()=>gt,FrigadeEmbeddedTip:()=>Rl,FrigadeForm:()=>jr,FrigadeGuide:()=>Al,FrigadeHeroChecklist:()=>xl,FrigadeNPSSurvey:()=>ma,FrigadeProgressBadge:()=>Bl,FrigadeProvider:()=>Hn,FrigadeSupportWidget:()=>Yl,FrigadeTour:()=>Dl,ProgressBar:()=>Qe,ProgressRing:()=>Gt,Text:()=>Br,tokens:()=>yr,useFlowOpens:()=>ze,useFlowResponses:()=>so,useFlows:()=>Q,useOrganization:()=>hr,useUser:()=>ao,useUserFlowStates:()=>Xe});module.exports=La(Dd);var te=u(require("react")),Wn=require("styled-components");var ge=u(require("react"));var rt=require("react");var Vt=u(require("react"));var yi="1.36.9 ";var kt="NOT_STARTED_STEP",se="COMPLETED_FLOW",Xo="ABORTED_FLOW",jt="STARTED_FLOW",et="NOT_STARTED_FLOW",Je="COMPLETED_STEP",Bo="STARTED_STEP";function mt(){let{publicApiKey:e,userId:t,apiUrl:o}=Vt.default.useContext(X);return{config:(0,Vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,Vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var $a="frigade-last-call-at-",Ma="frigade-last-call-data-";function oo(){let{shouldGracefullyDegrade:e,readonly:t}=Vt.default.useContext(X);return(o,n)=>z(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return to();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),to();let i=$a+o,r=Ma+o;if(typeof window!="undefined"&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return to()}typeof window!="undefined"&&(window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body))}let s;try{s=yield fetch(o,n)}catch(p){return to(p)}return s?s.ok?s:to(s.statusText):to()})}function to(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function ro(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Vt.default.useContext(X);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var Eo=require("react");var no=require("react");var bi=u(require("swr"));var Si=require("react");function ze(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,Si.useContext)(X);function r(c,g=!1){var y;return(y=e[c])!=null?y:g}function s(c,g){t(y=>q(w({},y),{[c]:g}))}function p(c){t(g=>{let C=g,{[c]:y}=C,T=Ye(C,[xi(c)]);return w({},T)})}function d(c){i.includes(c)||n(g=>[...g,c])}function l(c){return i.includes(c)}function m(c){return Object.entries(e).some(([g,y])=>y&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var wi=u(require("swr/immutable"));var io=u(require("core-js-pure/actual/structured-clone"));function Or(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(...e){let t=e.shift(),o=e.length===1?e[0]:ke(...e);if(!Or(t)||!Or(o))throw new Error("deepmerge can only merge Objects");let n=(0,io.default)(t);return Object.entries(o).forEach(([i,r])=>{Or(r)?n[i]!==void 0?Object.assign(n,{[i]:ke(n[i],(0,io.default)(r))}):Object.assign(n,{[i]:(0,io.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,io.default)(r)]}):Object.assign(n,{[i]:(0,io.default)(r)}):Object.assign(n,{[i]:r})}),n}var Da="unknown";function Xe(){let{config:e,apiUrl:t}=mt(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:s,readonly:p}=(0,no.useContext)(X),{resetOpenFlowState:d}=ze(),[l,m]=(0,no.useState)(!1),c={data:r.map(b=>({flowId:b.id,flowState:se,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},g=b=>fetch(b,e).then(k=>{if(k.ok)return k.json();throw new Error("Failed to fetch user flow states")}).catch(k=>(console.log(`Error fetching ${b}: ${k}. Will gracefully degrade and hide Frigade`),s(!0),c)),y=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:T,isLoading:C,mutate:h,error:O}=p?(0,wi.default)(y,g):(0,bi.default)(y,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),F=T==null?void 0:T.data;(0,no.useEffect)(()=>{!l&&!C&&F&&m(!0)},[F,l,C]);function P(b){return z(this,null,function*(){if(F&&!p){let k=F.find(D=>D.flowId===b);k&&k.flowState!==se&&(k.flowState=se),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function v(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D,N.flowState=jt),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function B(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.lastStepId=k,N.stepStates[k]=D,N.flowState=jt),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function f(b){return z(this,null,function*(){if(F){let k=F.find(D=>D.flowId===b);k&&k.flowState!==et&&(k.flowState=et,k.lastStepId=Da,Object.keys(k.stepStates).forEach(D=>{k.stepStates[D].actionType=kt,k.stepStates[D].createdAt=new Date().toISOString()}),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1}),d(b))}})}function $(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:F,isLoadingUserFlowStateData:!l,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:f,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:$,optimisticallyMarkStepStarted:B,error:O}}function so(){let{config:e,apiUrl:t}=mt(),{userFlowStatesData:o,mutateUserFlowState:n}=Xe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=(0,Eo.useContext)(X),[d,l]=(0,Eo.useState)(new Set),[m,c]=(0,Eo.useState)(new Set),g=oo();function y(h){let O=JSON.stringify(h);if(d.has(O))return null;d.add(O),l(d),m.add(h),c(m);let F=s==null?void 0:s.find(P=>P.flowSlug===h.flowSlug&&P.stepId===h.stepId&&P.actionType===h.actionType&&P.createdAt===h.createdAt);return g(`${t}flowResponses`,q(w({},e),{method:"POST",body:O})).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):F||p(v=>[...v!=null?v:[],h])})}function T(h){return z(this,null,function*(){h.foreignUserId&&(h.actionType===jt||h.actionType===et?yield y(h):h.actionType===se?yield y(h):h.actionType===Bo?yield y(h):h.actionType===Je?yield y(h):h.actionType===Xo?yield y(h):h.actionType===kt&&(yield y(h)))})}function C(){let h=[];return o==null||o.forEach(O=>{if(O&&O.stepStates&&Object.keys(O.stepStates).length!==0)for(let F in O.stepStates){let P=O.stepStates[F];h.push({foreignUserId:O.foreignUserId,flowSlug:O.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...h,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:C}}var Fi=u(require("swr"));var Ua=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ti=e=>{let t=Ua.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=Wa(n,"'","");r.startsWith("flow_")&&(o=r)}),o},Wa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Nr(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Qo=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Qo||{});function Q(){let{config:e,apiUrl:t}=mt(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,readonly:y}=(0,rt.useContext)(X),T={data:[]},{verifySDKInitiated:C}=ro(),{addResponse:h,getFlowResponses:O}=so(),F=x=>fetch(x,e).then(S=>S.ok?S.json():(console.log(`Error fetching ${x} (${S.status}): ${S.statusText}. Will gracefully degrade and hide Frigade`),g(!0),T)).catch(S=>(console.log(`Error fetching ${x}: ${S}. Will gracefully degrade and hide Frigade`),g(!0),T)),{mutateUserFlowState:P,userFlowStatesData:v,isLoadingUserFlowStateData:B,optimisticallyMarkFlowCompleted:f,optimisticallyMarkFlowNotStarted:$,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:k,optimisticallyMarkStepStarted:D}=Xe(),{data:N,error:L,isLoading:K}=(0,Fi.default)(s?`${t}flows${y?"?readonly=true":""}`:null,F,{keepPreviousData:!0});(0,rt.useEffect)(()=>{if(L){console.error(L);return}N&&N.data&&n(N.data)},[N,L]);function _(x){if(K)return null;let S=o.find(E=>E.slug===x);return!S&&o.length>0&&!B&&!K?(console.log(`Flow with id ${x} not found`),null):(S==null?void 0:S.active)===!1&&!y?null:S}function J(x){var I,de;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),((de=(I=Nr(S))==null?void 0:I.data)!=null?de:[]).map(ee=>{let Re=ne(ee);return q(w({handleSecondaryButtonClick:()=>{ee.skippable===!0&&pe(x,ee.id,{skipped:!0})}},ee),{complete:We(x,ee.id)===Je||Re>=1,started:We(x,ee.id)===Bo||We(x,ee.id)===Je,currentlyActive:v==null?void 0:v.some(Nt=>Nt.flowId==x&&Nt.lastStepId===ee.id),blocked:je(x,ee.id),hidden:Ae(x,ee.id),handlePrimaryButtonClick:()=>{(!ee.completionCriteria&&(ee.autoMarkCompleted||ee.autoMarkCompleted===void 0)||ee.completionCriteria&&ee.autoMarkCompleted===!0)&&pe(x,ee.id)},progress:Re})}).filter(ee=>ee.hidden!==!0)):[]}function R(x){return x.replaceAll(/\${(.*?)}/g,(S,E)=>p[E]===void 0?"":String(p[E]).replace(/[\u00A0-\u9999<>\&]/g,function(I){return"&#"+I.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function ye(x){var E;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),(E=JSON.parse(S))!=null?E:{}):[]}function j(x,S){d(E=>q(w({},E),{[x]:S}))}function ue(x){!B&&!K&&x&&JSON.stringify(p)!=JSON.stringify(w(w({},p),x))&&Object.keys(x).forEach(S=>{j(S,x[S])})}let be=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Bo,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield D(x,S,I),h(I))}),[i,r,v]),$e=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:kt,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield k(x,S,I),h(I))}),[i,r,v]),pe=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Je,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield b(x,S,I),h(I))}),[i,r,v]),ie=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C()||Se(x)===et)return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:et,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};yield $(x),Fe(E)&&h(E)}),[i,r,v]),Te=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:jt,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&h(E)}),[i,r,v]),W=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:se,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]),Ee=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:Xo,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]);function Fe(x){var S;if(v===void 0)return!1;if(v){let E=v.find(I=>I.flowId===x.flowSlug);if(x.actionType===kt&&(!(E!=null&&E.stepStates[x.stepId])||E.stepStates[x.stepId].actionType===kt))return!1;if(E&&((S=E.stepStates[x.stepId])==null?void 0:S.actionType)===x.actionType){if(x.actionType===Je&&(!x.data||JSON.stringify(x.data)===JSON.stringify({})))return!1;let I=Object.keys(E.stepStates).sort((de,ee)=>{let Re=new Date(E.stepStates[de].createdAt),Nt=new Date(E.stepStates[ee].createdAt);return Re.getTime()-Nt.getTime()});if(E.stepStates[I[I.length-1]].actionType===x.actionType&&x.stepId===I[I.length-1])return!1}if(E&&E.flowState===se&&x.actionType===se)return!1}return!0}function We(x,S){let E=V(x,S);return B?null:E?E.actionType:kt}function je(x,S){let E=V(x,S);return E?E.blocked:!1}function Ae(x,S){let E=V(x,S);return E?E.hidden:!1}function V(x,S){var I;if(B)return null;let E=v==null?void 0:v.find(de=>de.flowId===x);return!E||!E.stepStates[S]?null:(I=E.stepStates[S])!=null?I:null}function M(x){var E,I;if(B||!v)return null;if(Se(x)===et)return(E=J(x)[0])!=null?E:null;let S=(I=v.find(de=>de.flowId===x))==null?void 0:I.lastStepId;return S?J(x).find(de=>de.id===S):null}function H(x){var I;let S=M(x);if(!S)return 0;let E=(I=J(x).findIndex(de=>de.id===S.id))!=null?I:0;return We(x,S.id)===Je&&E<J(x).length-1?E+1:E}function ne(x){if(!x.completionCriteria)return;let S=Ti(x.completionCriteria);if(S===null)return;let E=Tt(S),I=Ft(S);return I===0?void 0:E/I}function Se(x){let S=v==null?void 0:v.find(E=>E.flowId===x);return S?S.flowState:null}function Tt(x){let S=J(x);return S.length===0?0:S.filter(I=>We(x,I.id)===Je).length}function Ft(x){return J(x).length}function Rt(x){let S=o.find(E=>E.slug===x);return S?Nr(S.data):null}function at(x){if(y)return!1;if(B)return!0;if(x!=null&&x.targetingLogic&&v){let S=v.find(E=>E.flowId===x.slug);if(S)return S.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&i&&i.startsWith("guest_"))}function Ot(x){return!at(_(x))}function ct(){i&&P()}function eo(){return o}return{getAllFlows:eo,getFlow:_,getFlowData:Rt,isLoading:B||K,getStepStatus:We,getFlowSteps:J,getCurrentStepIndex:H,markStepStarted:be,markStepCompleted:pe,markFlowNotStarted:ie,markFlowStarted:Te,markFlowCompleted:W,markFlowAborted:Ee,markStepNotStarted:$e,getFlowStatus:Se,getNumberOfStepsCompleted:Tt,getNumberOfSteps:Ft,targetingLogicShouldHideFlow:at,setCustomVariable:j,updateCustomVariables:ue,customVariables:p,getStepOptionalProgress:ne,getFlowMetadata:ye,isStepBlocked:je,isStepHidden:Ae,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Ot,refresh:ct}}var Lt=require("react");var lo="guest_";function ao(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,Lt.useContext)(X),{config:r,apiUrl:s}=mt(),{mutateUserFlowState:p}=Xe(),d=oo(),{verifySDKInitiated:l}=ro();function m(T){return`frigade-user-registered-${T}`}(0,Lt.useEffect)(()=>{if(e&&!t){if(e.startsWith(lo))return;let T=m(e);localStorage.getItem(T)||(d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(T,"true"))}},[e,i,t]);let c=(0,Lt.useCallback)(T=>z(this,null,function*(){if(!l())return;let C={foreignId:e,properties:T};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(C)})),n(h=>w(w({},h),T)),p()}),[e,r,i,p]),g=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(!l())return;let O={foreignId:e,events:[{event:T,properties:C}]};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),p()}),[e,r,p]),y=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(l())if(C){let h=m(T);localStorage.setItem(h,"true"),o(T);let O={foreignId:T,properties:C};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),n(F=>w(w({},F),C)),p()}else o(T)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:y,addPropertiesToUser:c,trackEventForUser:g}}var En=require("uuid");var He=u(require("react"));var Oe=u(require("react")),No=u(require("styled-components"));var Pi=u(require("react")),vi=u(require("styled-components"));var ki="fr-",Ao="cfr-";function a(e,t){let o=`${ki}${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 A(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(ki)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Zo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function _e(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Zo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Me(...e){return e.filter(Boolean).join(" ")}function Oo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var za=vi.default.div`
|
|
2
|
+
var va=Object.create;var vo=Object.defineProperty,Ba=Object.defineProperties,Ea=Object.getOwnPropertyDescriptor,Aa=Object.getOwnPropertyDescriptors,Oa=Object.getOwnPropertyNames,Jo=Object.getOwnPropertySymbols,Na=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,hi=Object.prototype.propertyIsEnumerable;var gi=(e,t,o)=>t in e?vo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))Ar.call(t,o)&&gi(e,o,t[o]);if(Jo)for(var o of Jo(t))hi.call(t,o)&&gi(e,o,t[o]);return e},q=(e,t)=>Ba(e,Aa(t));var xi=e=>typeof e=="symbol"?e:e+"",Ye=(e,t)=>{var o={};for(var n in e)Ar.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Jo)for(var n of Jo(e))t.indexOf(n)<0&&hi.call(e,n)&&(o[n]=e[n]);return o};var Ia=(e,t)=>{for(var o in t)vo(e,o,{get:t[o],enumerable:!0})},Ci=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Oa(t))!Ar.call(e,i)&&i!==o&&vo(e,i,{get:()=>t[i],enumerable:!(n=Ea(t,i))||n.enumerable});return e};var u=(e,t,o)=>(o=e!=null?va(Na(e)):{},Ci(t||!e||!e.__esModule?vo(o,"default",{value:e,enumerable:!0}):o,e)),La=e=>Ci(vo({},"__esModule",{value:!0}),e);var z=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(l){i(l)}},s=d=>{try{p(o.throw(d))}catch(l){i(l)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});var Dd={};Ia(Dd,{Box:()=>go,Button:()=>ka,CheckBox:()=>ht,FlowType:()=>Qo,FormLabel:()=>Pt,FormTextField:()=>pr,FrigadeAnnouncement:()=>wa,FrigadeBanner:()=>na,FrigadeChecklist:()=>kr,FrigadeDefaultAppearance:()=>gt,FrigadeEmbeddedTip:()=>Rl,FrigadeForm:()=>jr,FrigadeGuide:()=>Al,FrigadeHeroChecklist:()=>xl,FrigadeNPSSurvey:()=>ma,FrigadeProgressBadge:()=>Bl,FrigadeProvider:()=>Hn,FrigadeSupportWidget:()=>Yl,FrigadeTour:()=>Dl,ProgressBar:()=>Qe,ProgressRing:()=>Gt,Text:()=>Br,tokens:()=>yr,useFlowOpens:()=>ze,useFlowResponses:()=>so,useFlows:()=>Q,useOrganization:()=>hr,useUser:()=>ao,useUserFlowStates:()=>Xe});module.exports=La(Dd);var te=u(require("react")),Wn=require("styled-components");var ge=u(require("react"));var rt=require("react");var Vt=u(require("react"));var yi="1.32.18";var kt="NOT_STARTED_STEP",se="COMPLETED_FLOW",Xo="ABORTED_FLOW",jt="STARTED_FLOW",et="NOT_STARTED_FLOW",Je="COMPLETED_STEP",Bo="STARTED_STEP";function mt(){let{publicApiKey:e,userId:t,apiUrl:o}=Vt.default.useContext(X);return{config:(0,Vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,Vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var $a="frigade-last-call-at-",Ma="frigade-last-call-data-";function oo(){let{shouldGracefullyDegrade:e,readonly:t}=Vt.default.useContext(X);return(o,n)=>z(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return to();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),to();let i=$a+o,r=Ma+o;if(typeof window!="undefined"&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return to()}typeof window!="undefined"&&(window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body))}let s;try{s=yield fetch(o,n)}catch(p){return to(p)}return s?s.ok?s:to(s.statusText):to()})}function to(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function ro(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Vt.default.useContext(X);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var Eo=require("react");var no=require("react");var bi=u(require("swr"));var Si=require("react");function ze(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,Si.useContext)(X);function r(c,g=!1){var y;return(y=e[c])!=null?y:g}function s(c,g){t(y=>q(w({},y),{[c]:g}))}function p(c){t(g=>{let C=g,{[c]:y}=C,T=Ye(C,[xi(c)]);return w({},T)})}function d(c){i.includes(c)||n(g=>[...g,c])}function l(c){return i.includes(c)}function m(c){return Object.entries(e).some(([g,y])=>y&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var wi=u(require("swr/immutable"));var io=u(require("core-js-pure/actual/structured-clone"));function Or(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(...e){let t=e.shift(),o=e.length===1?e[0]:ke(...e);if(!Or(t)||!Or(o))throw new Error("deepmerge can only merge Objects");let n=(0,io.default)(t);return Object.entries(o).forEach(([i,r])=>{Or(r)?n[i]!==void 0?Object.assign(n,{[i]:ke(n[i],(0,io.default)(r))}):Object.assign(n,{[i]:(0,io.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,io.default)(r)]}):Object.assign(n,{[i]:(0,io.default)(r)}):Object.assign(n,{[i]:r})}),n}var Da="unknown";function Xe(){let{config:e,apiUrl:t}=mt(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:s,readonly:p}=(0,no.useContext)(X),{resetOpenFlowState:d}=ze(),[l,m]=(0,no.useState)(!1),c={data:r.map(b=>({flowId:b.id,flowState:se,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},g=b=>fetch(b,e).then(k=>{if(k.ok)return k.json();throw new Error("Failed to fetch user flow states")}).catch(k=>(console.log(`Error fetching ${b}: ${k}. Will gracefully degrade and hide Frigade`),s(!0),c)),y=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:T,isLoading:C,mutate:h,error:O}=p?(0,wi.default)(y,g):(0,bi.default)(y,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),F=T==null?void 0:T.data;(0,no.useEffect)(()=>{!l&&!C&&F&&m(!0)},[F,l,C]);function P(b){return z(this,null,function*(){if(F&&!p){let k=F.find(D=>D.flowId===b);k&&k.flowState!==se&&(k.flowState=se),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function v(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D,N.flowState=jt),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function B(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.lastStepId=k,N.stepStates[k]=D,N.flowState=jt),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function f(b){return z(this,null,function*(){if(F){let k=F.find(D=>D.flowId===b);k&&k.flowState!==et&&(k.flowState=et,k.lastStepId=Da,Object.keys(k.stepStates).forEach(D=>{k.stepStates[D].actionType=kt,k.stepStates[D].createdAt=new Date().toISOString()}),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1}),d(b))}})}function $(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:F,isLoadingUserFlowStateData:!l,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:f,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:$,optimisticallyMarkStepStarted:B,error:O}}function so(){let{config:e,apiUrl:t}=mt(),{userFlowStatesData:o,mutateUserFlowState:n}=Xe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=(0,Eo.useContext)(X),[d,l]=(0,Eo.useState)(new Set),[m,c]=(0,Eo.useState)(new Set),g=oo();function y(h){let O=JSON.stringify(h);if(d.has(O))return null;d.add(O),l(d),m.add(h),c(m);let F=s==null?void 0:s.find(P=>P.flowSlug===h.flowSlug&&P.stepId===h.stepId&&P.actionType===h.actionType&&P.createdAt===h.createdAt);return g(`${t}flowResponses`,q(w({},e),{method:"POST",body:O})).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):F||p(v=>[...v!=null?v:[],h])})}function T(h){return z(this,null,function*(){h.foreignUserId&&(h.actionType===jt||h.actionType===et?yield y(h):h.actionType===se?yield y(h):h.actionType===Bo?yield y(h):h.actionType===Je?yield y(h):h.actionType===Xo?yield y(h):h.actionType===kt&&(yield y(h)))})}function C(){let h=[];return o==null||o.forEach(O=>{if(O&&O.stepStates&&Object.keys(O.stepStates).length!==0)for(let F in O.stepStates){let P=O.stepStates[F];h.push({foreignUserId:O.foreignUserId,flowSlug:O.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...h,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:C}}var Fi=u(require("swr"));var Ua=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ti=e=>{let t=Ua.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=Wa(n,"'","");r.startsWith("flow_")&&(o=r)}),o},Wa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Nr(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Qo=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Qo||{});function Q(){let{config:e,apiUrl:t}=mt(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,readonly:y}=(0,rt.useContext)(X),T={data:[]},{verifySDKInitiated:C}=ro(),{addResponse:h,getFlowResponses:O}=so(),F=x=>fetch(x,e).then(S=>S.ok?S.json():(console.log(`Error fetching ${x} (${S.status}): ${S.statusText}. Will gracefully degrade and hide Frigade`),g(!0),T)).catch(S=>(console.log(`Error fetching ${x}: ${S}. Will gracefully degrade and hide Frigade`),g(!0),T)),{mutateUserFlowState:P,userFlowStatesData:v,isLoadingUserFlowStateData:B,optimisticallyMarkFlowCompleted:f,optimisticallyMarkFlowNotStarted:$,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:k,optimisticallyMarkStepStarted:D}=Xe(),{data:N,error:L,isLoading:K}=(0,Fi.default)(s?`${t}flows${y?"?readonly=true":""}`:null,F,{keepPreviousData:!0});(0,rt.useEffect)(()=>{if(L){console.error(L);return}N&&N.data&&n(N.data)},[N,L]);function _(x){if(K)return null;let S=o.find(E=>E.slug===x);return!S&&o.length>0&&!B&&!K?(console.log(`Flow with id ${x} not found`),null):(S==null?void 0:S.active)===!1&&!y?null:S}function J(x){var I,de;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),((de=(I=Nr(S))==null?void 0:I.data)!=null?de:[]).map(ee=>{let Re=ne(ee);return q(w({handleSecondaryButtonClick:()=>{ee.skippable===!0&&pe(x,ee.id,{skipped:!0})}},ee),{complete:We(x,ee.id)===Je||Re>=1,started:We(x,ee.id)===Bo||We(x,ee.id)===Je,currentlyActive:v==null?void 0:v.some(Nt=>Nt.flowId==x&&Nt.lastStepId===ee.id),blocked:je(x,ee.id),hidden:Ae(x,ee.id),handlePrimaryButtonClick:()=>{(!ee.completionCriteria&&(ee.autoMarkCompleted||ee.autoMarkCompleted===void 0)||ee.completionCriteria&&ee.autoMarkCompleted===!0)&&pe(x,ee.id)},progress:Re})}).filter(ee=>ee.hidden!==!0)):[]}function R(x){return x.replaceAll(/\${(.*?)}/g,(S,E)=>p[E]===void 0?"":String(p[E]).replace(/[\u00A0-\u9999<>\&]/g,function(I){return"&#"+I.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function ye(x){var E;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),(E=JSON.parse(S))!=null?E:{}):[]}function j(x,S){d(E=>q(w({},E),{[x]:S}))}function ue(x){!B&&!K&&x&&JSON.stringify(p)!=JSON.stringify(w(w({},p),x))&&Object.keys(x).forEach(S=>{j(S,x[S])})}let be=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Bo,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield D(x,S,I),h(I))}),[i,r,v]),$e=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:kt,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield k(x,S,I),h(I))}),[i,r,v]),pe=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Je,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield b(x,S,I),h(I))}),[i,r,v]),ie=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C()||Se(x)===et)return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:et,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};yield $(x),Fe(E)&&h(E)}),[i,r,v]),Te=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:jt,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&h(E)}),[i,r,v]),W=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:se,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]),Ee=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:Xo,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]);function Fe(x){var S;if(v===void 0)return!1;if(v){let E=v.find(I=>I.flowId===x.flowSlug);if(x.actionType===kt&&(!(E!=null&&E.stepStates[x.stepId])||E.stepStates[x.stepId].actionType===kt))return!1;if(E&&((S=E.stepStates[x.stepId])==null?void 0:S.actionType)===x.actionType){if(x.actionType===Je&&(!x.data||JSON.stringify(x.data)===JSON.stringify({})))return!1;let I=Object.keys(E.stepStates).sort((de,ee)=>{let Re=new Date(E.stepStates[de].createdAt),Nt=new Date(E.stepStates[ee].createdAt);return Re.getTime()-Nt.getTime()});if(E.stepStates[I[I.length-1]].actionType===x.actionType&&x.stepId===I[I.length-1])return!1}if(E&&E.flowState===se&&x.actionType===se)return!1}return!0}function We(x,S){let E=V(x,S);return B?null:E?E.actionType:kt}function je(x,S){let E=V(x,S);return E?E.blocked:!1}function Ae(x,S){let E=V(x,S);return E?E.hidden:!1}function V(x,S){var I;if(B)return null;let E=v==null?void 0:v.find(de=>de.flowId===x);return!E||!E.stepStates[S]?null:(I=E.stepStates[S])!=null?I:null}function M(x){var E,I;if(B||!v)return null;if(Se(x)===et)return(E=J(x)[0])!=null?E:null;let S=(I=v.find(de=>de.flowId===x))==null?void 0:I.lastStepId;return S?J(x).find(de=>de.id===S):null}function H(x){var I;let S=M(x);if(!S)return 0;let E=(I=J(x).findIndex(de=>de.id===S.id))!=null?I:0;return We(x,S.id)===Je&&E<J(x).length-1?E+1:E}function ne(x){if(!x.completionCriteria)return;let S=Ti(x.completionCriteria);if(S===null)return;let E=Tt(S),I=Ft(S);return I===0?void 0:E/I}function Se(x){let S=v==null?void 0:v.find(E=>E.flowId===x);return S?S.flowState:null}function Tt(x){let S=J(x);return S.length===0?0:S.filter(I=>We(x,I.id)===Je).length}function Ft(x){return J(x).length}function Rt(x){let S=o.find(E=>E.slug===x);return S?Nr(S.data):null}function at(x){if(y)return!1;if(B)return!0;if(x!=null&&x.targetingLogic&&v){let S=v.find(E=>E.flowId===x.slug);if(S)return S.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&i&&i.startsWith("guest_"))}function Ot(x){return!at(_(x))}function ct(){i&&P()}function eo(){return o}return{getAllFlows:eo,getFlow:_,getFlowData:Rt,isLoading:B||K,getStepStatus:We,getFlowSteps:J,getCurrentStepIndex:H,markStepStarted:be,markStepCompleted:pe,markFlowNotStarted:ie,markFlowStarted:Te,markFlowCompleted:W,markFlowAborted:Ee,markStepNotStarted:$e,getFlowStatus:Se,getNumberOfStepsCompleted:Tt,getNumberOfSteps:Ft,targetingLogicShouldHideFlow:at,setCustomVariable:j,updateCustomVariables:ue,customVariables:p,getStepOptionalProgress:ne,getFlowMetadata:ye,isStepBlocked:je,isStepHidden:Ae,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Ot,refresh:ct}}var Lt=require("react");var lo="guest_";function ao(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,Lt.useContext)(X),{config:r,apiUrl:s}=mt(),{mutateUserFlowState:p}=Xe(),d=oo(),{verifySDKInitiated:l}=ro();function m(T){return`frigade-user-registered-${T}`}(0,Lt.useEffect)(()=>{if(e&&!t){if(e.startsWith(lo))return;let T=m(e);localStorage.getItem(T)||(d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(T,"true"))}},[e,i,t]);let c=(0,Lt.useCallback)(T=>z(this,null,function*(){if(!l())return;let C={foreignId:e,properties:T};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(C)})),n(h=>w(w({},h),T)),p()}),[e,r,i,p]),g=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(!l())return;let O={foreignId:e,events:[{event:T,properties:C}]};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),p()}),[e,r,p]),y=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(l())if(C){let h=m(T);localStorage.setItem(h,"true"),o(T);let O={foreignId:T,properties:C};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),n(F=>w(w({},F),C)),p()}else o(T)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:y,addPropertiesToUser:c,trackEventForUser:g}}var En=require("uuid");var He=u(require("react"));var Oe=u(require("react")),No=u(require("styled-components"));var Pi=u(require("react")),vi=u(require("styled-components"));var ki="fr-",Ao="cfr-";function a(e,t){let o=`${ki}${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 A(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(ki)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Zo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function _e(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Zo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Me(...e){return e.filter(Boolean).join(" ")}function Oo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var za=vi.default.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|