@frigade/react 1.36.8 → 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/{lib → dist}/index.d.ts +8 -12
- package/{lib → dist}/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/{lib → dist}/index.mjs +1 -1
- package/dist/index.mjs.map +1 -0
- package/package.json +5 -28
- package/lib/index.js.map +0 -1
- package/lib/index.mjs.map +0 -1
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/{lib → dist}/index.d.ts
RENAMED
|
@@ -347,13 +347,9 @@ interface FrigadeChecklistProps extends HeroChecklistProps {
|
|
|
347
347
|
customVariables?: {
|
|
348
348
|
[key: string]: string | number | boolean;
|
|
349
349
|
};
|
|
350
|
-
/**
|
|
351
|
-
* Flow ID referencing the flow of a guide/link collection to attach to this Checklist
|
|
352
|
-
*/
|
|
350
|
+
/** @ignore */
|
|
353
351
|
guideFlowId?: string;
|
|
354
|
-
/**
|
|
355
|
-
* Title for the guide (if attached)
|
|
356
|
-
*/
|
|
352
|
+
/** @ignore */
|
|
357
353
|
guideTitle?: string;
|
|
358
354
|
autoExpandFirstIncompleteStep?: boolean;
|
|
359
355
|
autoExpandNextStep?: boolean;
|
|
@@ -748,9 +744,9 @@ declare function Label({ title, required, appearance, }: {
|
|
|
748
744
|
title?: string;
|
|
749
745
|
required: boolean;
|
|
750
746
|
appearance?: Appearance;
|
|
751
|
-
}): JSX.Element;
|
|
747
|
+
}): React__default.JSX.Element;
|
|
752
748
|
|
|
753
|
-
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;
|
|
754
750
|
|
|
755
751
|
interface Overrides extends Record<string, Overrides | CSSProperties> {
|
|
756
752
|
}
|
|
@@ -760,14 +756,14 @@ type BoxProps<T extends ElementType = 'div'> = {
|
|
|
760
756
|
children?: ReactNode;
|
|
761
757
|
overrides?: Overrides;
|
|
762
758
|
} & BorderProps & ColorProps & Exclude<LayoutProps, 'size'> & ShadowProps & SpaceProps & TypographyProps & ComponentPropsWithoutRef<T>;
|
|
763
|
-
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;
|
|
764
760
|
|
|
765
761
|
interface ButtonProps extends BoxProps {
|
|
766
762
|
title: string;
|
|
767
763
|
}
|
|
768
764
|
declare const Button: React.FC<ButtonProps> & {
|
|
769
765
|
[k: string]: {
|
|
770
|
-
(props: ButtonProps): JSX.Element;
|
|
766
|
+
(props: ButtonProps): React.JSX.Element;
|
|
771
767
|
displayName: string;
|
|
772
768
|
};
|
|
773
769
|
};
|
|
@@ -858,7 +854,7 @@ interface BaseTextProps extends BoxProps, Partial<Pick<FontProps, 'fontWeight'>>
|
|
|
858
854
|
}
|
|
859
855
|
declare const Text: React__default.FC<BaseTextProps> & {
|
|
860
856
|
[k: string]: {
|
|
861
|
-
(props: BaseTextProps): JSX.Element;
|
|
857
|
+
(props: BaseTextProps): React__default.JSX.Element;
|
|
862
858
|
displayName: string;
|
|
863
859
|
};
|
|
864
860
|
};
|
|
@@ -872,7 +868,7 @@ declare const ProgressBar: ({ count, total, display, textLocation, style, textSt
|
|
|
872
868
|
style?: CSSProperties;
|
|
873
869
|
textStyle?: CSSProperties;
|
|
874
870
|
appearance?: Appearance;
|
|
875
|
-
}) => JSX.Element;
|
|
871
|
+
}) => React__default.JSX.Element;
|
|
876
872
|
|
|
877
873
|
declare const tokens: {
|
|
878
874
|
colors: {
|
package/{lib → dist}/index.js
RENAMED
|
@@ -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.8 ";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;
|