@frigade/react 1.33.10 → 1.33.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +4 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import Ct,{createContext as Ip,useEffect as Eo,useState as Ae}from"react";import{ThemeProvider as Np}from"styled-components";import ht,{useContext as sp,useEffect as vo,useState as pr}from"react";import{useCallback as ft,useContext as Bl,useEffect as El}from"react";import Vo,{useMemo as Ar}from"react";var Er="1.33.10 ";var Be="NOT_STARTED_STEP",Q="COMPLETED_FLOW",co="ABORTED_FLOW",ut="STARTED_FLOW",Ie="NOT_STARTED_FLOW",Ne="COMPLETED_STEP",mo="STARTED_STEP";function Me(){let{publicApiKey:e,userId:t,apiUrl:o}=Vo.useContext(j);return{config:Ar(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Er,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Ar(()=>`${o}/v1/public/`,[o])}}var xl="frigade-last-call-at-",hl="frigade-last-call-data-";function kt(){let{shouldGracefullyDegrade:e,readonly:t}=Vo.useContext(j);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Ft();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Ft();let r=xl+o,n=hl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Ft()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Ft(p)}return s?s.ok?s:Ft(s.statusText):Ft()}}function Ft(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Pt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Vo.useContext(j);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}}import{useContext as kl,useState as Ir}from"react";import{useContext as yl,useEffect as Sl,useState as bl}from"react";import wl from"swr";import{useContext as Cl}from"react";function Fe(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=Cl(j);function n(c,g=!1){return e[c]??g}function s(c,g){t(S=>({...S,[c]:g}))}function p(c){t(g=>{let{[c]:S,...T}=g;return{...T}})}function d(c){r.includes(c)||i(g=>[...g,c])}function a(c){return r.includes(c)}function C(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:C,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}import Tl from"swr/immutable";var Fl="unknown";function Ee(){let{config:e,apiUrl:t}=Me(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=yl(j),{resetOpenFlowState:d}=Fe(),[a,C]=bl(!1),c={data:n.map(y=>({flowId:y.id,flowState:Q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(E=>{if(E.ok)return E.json();throw new Error("Failed to fetch user flow states")}).catch(E=>(console.log(`Error fetching ${y}: ${E}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:T,isLoading:k,mutate:u,error:v}=p?Tl(S,g):wl(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),x=T==null?void 0:T.data;Sl(()=>{!a&&!k&&x&&C(!0)},[x,a,k]);async function F(y){if(x&&!p){let E=x.find(O=>O.flowId===y);E&&E.flowState!==Q&&(E.flowState=Q),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,E,O){if(x){let I=x.find($=>$.flowId===y);I&&(I.stepStates[E]=O,I.flowState=ut),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function h(y,E,O){if(x){let I=x.find($=>$.flowId===y);I&&(I.lastStepId=E,I.stepStates[E]=O,I.flowState=ut),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let E=x.find(O=>O.flowId===y);E&&E.flowState!==Ie&&(E.flowState=Ie,E.lastStepId=Fl,Object.keys(E.stepStates).forEach(O=>{E.stepStates[O].actionType=Be,E.stepStates[O].createdAt=new Date().toISOString()}),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1}),d(y))}}async function w(y,E){if(x){let O=x.find(I=>I.flowId===y);O&&O.stepStates[E]!==Be&&(O.stepStates[E]=Be),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:h,error:v}}function Vt(){let{config:e,apiUrl:t}=Me(),{userFlowStatesData:o,mutateUserFlowState:i}=Ee(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=kl(j),[d,a]=Ir(new Set),[C,c]=Ir(new Set),g=kt();function S(u){let v=JSON.stringify(u);if(d.has(v))return null;d.add(v),a(d),C.add(u),c(C);let x=s==null?void 0:s.find(F=>F.flowSlug===u.flowSlug&&F.stepId===u.stepId&&F.actionType===u.actionType&&F.createdAt===u.createdAt);return g(`${t}flowResponses`,{...e,method:"POST",body:v}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+u.stepId+". Will retry again later."),n([...r,u])):x||p(N=>[...N??[],u])})}async function T(u){u.foreignUserId&&(u.actionType===ut||u.actionType===Ie?await S(u):u.actionType===Q?await S(u):u.actionType===mo?await S(u):u.actionType===Ne?await S(u):u.actionType===co?await S(u):u.actionType===Be&&await S(u))}function k(){let u=[];return o==null||o.forEach(v=>{if(v&&v.stepStates&&Object.keys(v.stepStates).length!==0)for(let x in v.stepStates){let F=v.stepStates[x];u.push({foreignUserId:v.foreignUserId,flowSlug:v.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...u,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:k}}import Al from"swr";var Pl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Nr=e=>{let t=Pl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=vl(i,"'","");n.startsWith("flow_")&&(o=n)}),o},vl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Me(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:C,setShouldGracefullyDegrade:c,readonly:g}=Bl(j),S={data:[]},{verifySDKInitiated:T}=Pt(),{addResponse:k,getFlowResponses:u}=Vt(),v=f=>fetch(f,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${f} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),S)).catch(b=>(console.log(`Error fetching ${f}: ${b}. Will gracefully degrade and hide Frigade`),c(!0),S)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:N,optimisticallyMarkFlowNotStarted:h,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:y}=Ee(),{data:E,error:O,isLoading:I}=Al(n?`${t}flows${g?"?readonly=true":""}`:null,v,{keepPreviousData:!0});El(()=>{if(O){console.error(O);return}E&&E.data&&i(E.data)},[E,O]);function $(f){if(I)return null;let b=o.find(B=>B.slug===f);return!b&&o.length>0&&!F&&!I?(console.log(`Flow with slug ${f} not found`),null):(b==null?void 0:b.active)===!1?null:b}function L(f){var A;if(!$(f))return[];let b=$(f).data;return b?(b=H(b),(((A=JSON.parse(b))==null?void 0:A.data)??[]).map(J=>{let mt=je(J);return{handleSecondaryButtonClick:()=>{J.skippable===!0&&le(f,J.id,{skipped:!0})},...J,complete:de(f,J.id)===Ne||mt>=1,blocked:z(f,J.id),hidden:D(f,J.id),handlePrimaryButtonClick:()=>{(!J.completionCriteria&&(J.autoMarkCompleted||J.autoMarkCompleted===void 0)||J.completionCriteria&&J.autoMarkCompleted===!0)&&le(f,J.id)},progress:mt}}).filter(J=>J.hidden!==!0)):[]}function H(f){return f.replaceAll(/\${(.*?)}/g,(b,B)=>s[B]===void 0?"":String(s[B]).replace(/[\u00A0-\u9999<>\&]/g,function(A){return"&#"+A.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 _(f){if(!$(f))return[];let b=$(f).data;return b?(b=H(b),JSON.parse(b)??{}):[]}function oe(f,b){p(B=>({...B,[f]:b}))}function R(f){!F&&!I&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(b=>{oe(b,f[b])})}let K=ft(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:mo,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await y(f,b,A),k(A))},[r,x]),ee=ft(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Be,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(f,b),k(A))},[r,x]),le=ft(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Ne,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await m(f,b,A),k(A))},[r,x]),X=ft(async(f,b)=>{if(!T()||De(f)===Ie)return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await h(f),q(B)&&k(B)},[r,x]),G=ft(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ut,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&k(B)},[r,x]),xe=ft(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Q,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]),Te=ft(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:co,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]);function q(f){var b;if(!x&&f.actionType===Be)return!1;if(x){let B=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Be&&(!(B!=null&&B.stepStates[f.stepId])||B.stepStates[f.stepId].actionType===Be)||B&&((b=B.stepStates[f.stepId])==null?void 0:b.actionType)===f.actionType||B&&B.flowState===Q&&f.actionType===Q)return!1}return!0}function de(f,b){let B=re(f,b);return F?null:B?B.actionType:Be}function z(f,b){let B=re(f,b);return B?B.blocked:!1}function D(f,b){let B=re(f,b);return B?B.hidden:!1}function re(f,b){if(F)return null;let B=x==null?void 0:x.find(A=>A.flowId===f);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function V(f){var B;if(F||!x)return null;if(De(f)===Ie)return L(f)[0]??null;let b=(B=x.find(A=>A.flowId===f))==null?void 0:B.lastStepId;return b?L(f).find(A=>A.id===b):null}function ie(f){let b=V(f);if(!b)return 0;let B=L(f).findIndex(A=>A.id===b.id)??0;return de(f,b.id)===Ne&&B<L(f).length-1?B+1:B}function je(f){if(!f.completionCriteria)return;let b=Nr(f.completionCriteria);if(b===null)return;let B=ct(b),A=W(b);return A===0?void 0:B/A}function De(f){let b=x==null?void 0:x.find(B=>B.flowId===f);return b?b.flowState:null}function ct(f){let b=L(f);return b.length===0?0:b.filter(A=>de(f,A.id)===Ne).length}function W(f){return L(f).length}function ve(f){let b=o.find(B=>B.slug===f);return b?JSON.parse(b.data):null}function $e(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let b=x.find(B=>B.flowId===f.slug);if(b)return b.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function Ho(f){return!$e($(f))}return{getFlow:$,getFlowData:ve,isLoading:F||I,getStepStatus:de,getFlowSteps:L,getCurrentStepIndex:ie,markStepStarted:K,markStepCompleted:le,markFlowNotStarted:X,markFlowStarted:G,markFlowCompleted:xe,markFlowAborted:Te,markStepNotStarted:ee,getFlowStatus:De,getNumberOfStepsCompleted:ct,getNumberOfSteps:W,targetingLogicShouldHideFlow:$e,setCustomVariable:oe,updateCustomVariables:R,customVariables:s,getStepOptionalProgress:je,getFlowMetadata:_,isStepBlocked:z,isStepHidden:D,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:Ho}}import{useCallback as Or,useContext as Il,useEffect as Nl}from"react";var vt="guest_";function jt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Il(j),{config:n,apiUrl:s}=Me(),{mutateUserFlowState:p}=Ee(),d=kt(),{verifySDKInitiated:a}=Pt();Nl(()=>{if(e&&!t){if(e.startsWith(vt))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let C=Or(async g=>{if(!a())return;let S={foreignId:e,properties:g};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(T=>({...T,...g})),p()},[e,n,r,p]),c=Or(async(g,S)=>{if(!a())return;let k={foreignId:e,events:[{event:g,properties:S}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(k)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:C,trackEventForUser:c}}import{v4 as lp}from"uuid";import ze,{useEffect as op,useState as rp}from"react";import Oe,{useEffect as zl}from"react";import go from"styled-components";import Ol from"react";import Ll from"styled-components";var Lr="fr-",Gt="cfr-";function l(e,t){let o=`${Lr}${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+" "+Gt+e}return o}function P(e){if(!e.className||e.className.indexOf(Gt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Lr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function jo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ge(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${jo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ce(...e){return e.filter(Boolean).join(" ")}function qt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Dl=Ll.div`
|
|
2
|
+
import Ct,{createContext as Ip,useEffect as Eo,useState as Ae}from"react";import{ThemeProvider as Np}from"styled-components";import ht,{useContext as sp,useEffect as vo,useState as pr}from"react";import{useCallback as ft,useContext as Bl,useEffect as El}from"react";import Vo,{useMemo as Ar}from"react";var Er="1.33.12 ";var Be="NOT_STARTED_STEP",Q="COMPLETED_FLOW",co="ABORTED_FLOW",ut="STARTED_FLOW",Ie="NOT_STARTED_FLOW",Ne="COMPLETED_STEP",mo="STARTED_STEP";function Me(){let{publicApiKey:e,userId:t,apiUrl:o}=Vo.useContext(j);return{config:Ar(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Er,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Ar(()=>`${o}/v1/public/`,[o])}}var xl="frigade-last-call-at-",hl="frigade-last-call-data-";function kt(){let{shouldGracefullyDegrade:e,readonly:t}=Vo.useContext(j);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Ft();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Ft();let r=xl+o,n=hl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Ft()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Ft(p)}return s?s.ok?s:Ft(s.statusText):Ft()}}function Ft(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Pt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Vo.useContext(j);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}}import{useContext as kl,useState as Ir}from"react";import{useContext as yl,useEffect as Sl,useState as bl}from"react";import wl from"swr";import{useContext as Cl}from"react";function Fe(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=Cl(j);function n(c,g=!1){return e[c]??g}function s(c,g){t(S=>({...S,[c]:g}))}function p(c){t(g=>{let{[c]:S,...T}=g;return{...T}})}function d(c){r.includes(c)||i(g=>[...g,c])}function a(c){return r.includes(c)}function C(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:C,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}import Tl from"swr/immutable";var Fl="unknown";function Ee(){let{config:e,apiUrl:t}=Me(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=yl(j),{resetOpenFlowState:d}=Fe(),[a,C]=bl(!1),c={data:n.map(y=>({flowId:y.id,flowState:Q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(E=>{if(E.ok)return E.json();throw new Error("Failed to fetch user flow states")}).catch(E=>(console.log(`Error fetching ${y}: ${E}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:T,isLoading:k,mutate:u,error:v}=p?Tl(S,g):wl(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),x=T==null?void 0:T.data;Sl(()=>{!a&&!k&&x&&C(!0)},[x,a,k]);async function F(y){if(x&&!p){let E=x.find(O=>O.flowId===y);E&&E.flowState!==Q&&(E.flowState=Q),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,E,O){if(x){let I=x.find($=>$.flowId===y);I&&(I.stepStates[E]=O,I.flowState=ut),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function h(y,E,O){if(x){let I=x.find($=>$.flowId===y);I&&(I.lastStepId=E,I.stepStates[E]=O,I.flowState=ut),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let E=x.find(O=>O.flowId===y);E&&E.flowState!==Ie&&(E.flowState=Ie,E.lastStepId=Fl,Object.keys(E.stepStates).forEach(O=>{E.stepStates[O].actionType=Be,E.stepStates[O].createdAt=new Date().toISOString()}),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1}),d(y))}}async function w(y,E){if(x){let O=x.find(I=>I.flowId===y);O&&O.stepStates[E]!==Be&&(O.stepStates[E]=Be),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:h,error:v}}function Vt(){let{config:e,apiUrl:t}=Me(),{userFlowStatesData:o,mutateUserFlowState:i}=Ee(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=kl(j),[d,a]=Ir(new Set),[C,c]=Ir(new Set),g=kt();function S(u){let v=JSON.stringify(u);if(d.has(v))return null;d.add(v),a(d),C.add(u),c(C);let x=s==null?void 0:s.find(F=>F.flowSlug===u.flowSlug&&F.stepId===u.stepId&&F.actionType===u.actionType&&F.createdAt===u.createdAt);return g(`${t}flowResponses`,{...e,method:"POST",body:v}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+u.stepId+". Will retry again later."),n([...r,u])):x||p(N=>[...N??[],u])})}async function T(u){u.foreignUserId&&(u.actionType===ut||u.actionType===Ie?await S(u):u.actionType===Q?await S(u):u.actionType===mo?await S(u):u.actionType===Ne?await S(u):u.actionType===co?await S(u):u.actionType===Be&&await S(u))}function k(){let u=[];return o==null||o.forEach(v=>{if(v&&v.stepStates&&Object.keys(v.stepStates).length!==0)for(let x in v.stepStates){let F=v.stepStates[x];u.push({foreignUserId:v.foreignUserId,flowSlug:v.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...u,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:k}}import Al from"swr";var Pl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Nr=e=>{let t=Pl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=vl(i,"'","");n.startsWith("flow_")&&(o=n)}),o},vl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Me(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:C,setShouldGracefullyDegrade:c,readonly:g}=Bl(j),S={data:[]},{verifySDKInitiated:T}=Pt(),{addResponse:k,getFlowResponses:u}=Vt(),v=f=>fetch(f,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${f} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),S)).catch(b=>(console.log(`Error fetching ${f}: ${b}. Will gracefully degrade and hide Frigade`),c(!0),S)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:N,optimisticallyMarkFlowNotStarted:h,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:y}=Ee(),{data:E,error:O,isLoading:I}=Al(n?`${t}flows${g?"?readonly=true":""}`:null,v,{keepPreviousData:!0});El(()=>{if(O){console.error(O);return}E&&E.data&&i(E.data)},[E,O]);function $(f){if(I)return null;let b=o.find(B=>B.slug===f);return!b&&o.length>0&&!F&&!I?(console.log(`Flow with slug ${f} not found`),null):(b==null?void 0:b.active)===!1?null:b}function L(f){var A;if(!$(f))return[];let b=$(f).data;return b?(b=H(b),(((A=JSON.parse(b))==null?void 0:A.data)??[]).map(J=>{let mt=je(J);return{handleSecondaryButtonClick:()=>{J.skippable===!0&&le(f,J.id,{skipped:!0})},...J,complete:de(f,J.id)===Ne||mt>=1,blocked:z(f,J.id),hidden:D(f,J.id),handlePrimaryButtonClick:()=>{(!J.completionCriteria&&(J.autoMarkCompleted||J.autoMarkCompleted===void 0)||J.completionCriteria&&J.autoMarkCompleted===!0)&&le(f,J.id)},progress:mt}}).filter(J=>J.hidden!==!0)):[]}function H(f){return f.replaceAll(/\${(.*?)}/g,(b,B)=>s[B]===void 0?"":String(s[B]).replace(/[\u00A0-\u9999<>\&]/g,function(A){return"&#"+A.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 _(f){if(!$(f))return[];let b=$(f).data;return b?(b=H(b),JSON.parse(b)??{}):[]}function oe(f,b){p(B=>({...B,[f]:b}))}function R(f){!F&&!I&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(b=>{oe(b,f[b])})}let K=ft(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:mo,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await y(f,b,A),k(A))},[r,x]),ee=ft(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Be,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(f,b),k(A))},[r,x]),le=ft(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Ne,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await m(f,b,A),k(A))},[r,x]),X=ft(async(f,b)=>{if(!T()||De(f)===Ie)return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await h(f),q(B)&&k(B)},[r,x]),G=ft(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ut,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&k(B)},[r,x]),xe=ft(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Q,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]),Te=ft(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:co,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]);function q(f){var b;if(!x&&f.actionType===Be)return!1;if(x){let B=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Be&&(!(B!=null&&B.stepStates[f.stepId])||B.stepStates[f.stepId].actionType===Be)||B&&((b=B.stepStates[f.stepId])==null?void 0:b.actionType)===f.actionType||B&&B.flowState===Q&&f.actionType===Q)return!1}return!0}function de(f,b){let B=re(f,b);return F?null:B?B.actionType:Be}function z(f,b){let B=re(f,b);return B?B.blocked:!1}function D(f,b){let B=re(f,b);return B?B.hidden:!1}function re(f,b){if(F)return null;let B=x==null?void 0:x.find(A=>A.flowId===f);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function V(f){var B;if(F||!x)return null;if(De(f)===Ie)return L(f)[0]??null;let b=(B=x.find(A=>A.flowId===f))==null?void 0:B.lastStepId;return b?L(f).find(A=>A.id===b):null}function ie(f){let b=V(f);if(!b)return 0;let B=L(f).findIndex(A=>A.id===b.id)??0;return de(f,b.id)===Ne&&B<L(f).length-1?B+1:B}function je(f){if(!f.completionCriteria)return;let b=Nr(f.completionCriteria);if(b===null)return;let B=ct(b),A=W(b);return A===0?void 0:B/A}function De(f){let b=x==null?void 0:x.find(B=>B.flowId===f);return b?b.flowState:null}function ct(f){let b=L(f);return b.length===0?0:b.filter(A=>de(f,A.id)===Ne).length}function W(f){return L(f).length}function ve(f){let b=o.find(B=>B.slug===f);return b?JSON.parse(b.data):null}function $e(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let b=x.find(B=>B.flowId===f.slug);if(b)return b.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function Ho(f){return!$e($(f))}return{getFlow:$,getFlowData:ve,isLoading:F||I,getStepStatus:de,getFlowSteps:L,getCurrentStepIndex:ie,markStepStarted:K,markStepCompleted:le,markFlowNotStarted:X,markFlowStarted:G,markFlowCompleted:xe,markFlowAborted:Te,markStepNotStarted:ee,getFlowStatus:De,getNumberOfStepsCompleted:ct,getNumberOfSteps:W,targetingLogicShouldHideFlow:$e,setCustomVariable:oe,updateCustomVariables:R,customVariables:s,getStepOptionalProgress:je,getFlowMetadata:_,isStepBlocked:z,isStepHidden:D,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:Ho}}import{useCallback as Or,useContext as Il,useEffect as Nl}from"react";var vt="guest_";function jt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Il(j),{config:n,apiUrl:s}=Me(),{mutateUserFlowState:p}=Ee(),d=kt(),{verifySDKInitiated:a}=Pt();Nl(()=>{if(e&&!t){if(e.startsWith(vt))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let C=Or(async g=>{if(!a())return;let S={foreignId:e,properties:g};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(T=>({...T,...g})),p()},[e,n,r,p]),c=Or(async(g,S)=>{if(!a())return;let k={foreignId:e,events:[{event:g,properties:S}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(k)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:C,trackEventForUser:c}}import{v4 as lp}from"uuid";import ze,{useEffect as op,useState as rp}from"react";import Oe,{useEffect as zl}from"react";import go from"styled-components";import Ol from"react";import Ll from"styled-components";var Lr="fr-",Gt="cfr-";function l(e,t){let o=`${Lr}${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+" "+Gt+e}return o}function P(e){if(!e.className||e.className.indexOf(Gt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Lr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function jo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ge(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${jo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ce(...e){return e.filter(Boolean).join(" ")}function qt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Dl=Ll.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -630,7 +630,7 @@ import Ct,{createContext as Ip,useEffect as Eo,useState as Ae}from"react";import
|
|
|
630
630
|
display: flex;
|
|
631
631
|
align-self: center;
|
|
632
632
|
`;var Ni=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=sr([]),[p,d]=sr(!1),[a,C]=sr(e.id);return nr(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),nr(()=>{a!==e.id&&(C(e.id),s([]))},[e]),nr(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),Ye.createElement(Fi,{className:l("selectListContainer",i)},Ye.createElement(ki,null,Ye.createElement(Pi,{className:l("selectListTitle",i)},e.title),Ye.createElement(vi,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),r.options.map((c,g)=>{let S=n.includes(c.id);return Ye.createElement(Bi,{key:`select-item-${g}`,onClick:()=>{if(n.includes(c.id)){s(n.filter(T=>T!==c.id));return}n.length<r.maxChoices?s([...n,c.id]):n.length==1&&r.maxChoices==1&&s([c.id])},hideBottomBorder:g===r.options.length-1,className:l("selectListSelectItem",i)},Ye.createElement(Ei,{className:l("selectListItemImage",i)},c.imageUri&&Ye.createElement(Ai,{src:c.imageUri,alt:`select-icon-${g}`}),Ye.createElement(Ii,{appearance:i,className:l("selectListSelectItemText",i)},c.title)),Ye.createElement(Ke,{appearance:i,value:S,primaryColor:i.theme.colorPrimary}))}))};import Se,{useEffect as lr,useState as Qt}from"react";import{AnimatePresence as Za,motion as Ra}from"framer-motion";var ep=({children:e,id:t,shouldWrap:o=!1})=>Se.createElement(Se.Fragment,null,o?Se.createElement(Za,{initial:!1},Se.createElement(Ra.div,{key:t,initial:{opacity:1,y:"100%"},animate:{opacity:1,y:0},exit:{opacity:0,y:"-100%"},transition:{duration:.5,ease:"easeInOut"},style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e)):e),Po=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:r,onButtonClick:n,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:a,onComplete:C,setVisible:c,setShowModal:g,onDismiss:S,showPagination:T=!1,customFormElements:k,allowBackNavigation:u,validationHandler:v})=>{var z;let F={...{linkCollection:wi,multiInput:ci,callToAction:Ti,selectList:Ni},...i},{primaryCTAClickSideEffects:N,secondaryCTAClickSideEffects:h}=ae(),[m,w]=Qt(!1),[y,E]=Qt({}),[O,I]=Qt(!1),[$,L]=Qt(!1),[H,_]=Qt(null),oe=t[o]??null,{markStepCompleted:R,markStepStarted:K,isLoading:ee,updateCustomVariables:le,markFlowCompleted:X}=Z();lr(()=>{le(r)},[r,ee]),lr(()=>{window&&u&&!$&&(window.location.hash=t[o].id,L(!0))},[u,$,L]),lr(()=>{var D;if(window&&((D=window==null?void 0:window.location)!=null&&D.hash)&&window.location.hash.replace("#","")!==t[o].id){let re=window.location.hash.replace("#",""),V=t.findIndex(ie=>ie.id===re);V!==-1&&K(p,t[V].id)}},[(z=window==null?void 0:window.location)==null?void 0:z.hash,K,o,t]);function G(){return{data:y[t[o].id]??{},stepId:t[o].id,customVariables:r}}function xe(D,re,V){let ie=o+1<t.length?t[o+1]:null;return s&&s(D,V,ie,y,G()),n?n(D,o,re,ie):!0}function Te(D,re){E(V=>{let ie={};return ie[D.id]=re,{...V,...ie}})}function q(D){return D.selectedStep.imageUri?Se.createElement(Ci,{image:D.selectedStep.imageUri,appearance:e,className:l("formContainerSidebarImage",e)}):null}let de=Se.createElement(Si,{step:t[o],canContinue:m&&!O,formType:d,selectedStep:o,appearance:e,onPrimaryClick:async()=>{if(I(!0),v){let V=await v(t[o],o,t[o+1],y,G());if(V){_(V),I(!1);return}else _(null)}let D={...G()};await R(p,t[o].id,D),o+1<t.length&&await K(p,t[o+1].id);let re=xe(t[o],"primary",o);o+1>=t.length&&(C&&C(),S&&S(),a&&re&&(c&&c(!1),g(!1)),await X(p)),N(t[o]),I(!1),window&&u&&o+1<t.length&&(window.location.hash=t[o+1].id)},onSecondaryClick:()=>{xe(t[o],"secondary",o),h(t[o])},onBack:async()=>{o-1>=0&&(I(!0),await K(p,t[o-1].id),I(!1))},steps:t,allowBackNavigation:u,errorMessage:H});return Se.createElement(Se.Fragment,null,Se.createElement(gi,{className:l("formContainer",e)},Se.createElement(xi,null,Se.createElement(ep,{id:o,shouldWrap:d==="large-modal"},Se.createElement(hi,{key:oe.id,type:d,className:l("formContent",e)},t.map(D=>{let re=F[D.type];return oe.id!==D.id?null:Se.createElement(re,{key:D.id,stepData:D,canContinue:m,setCanContinue:w,onSaveData:V=>{Te(D,V)},appearance:e,customFormElements:k,flowId:p})}),T&&Se.createElement(bi,{className:l("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),de))),d=="large-modal"&&Se.createElement(q,{selectedStep:t[o]})))};import Zt from"react";import{createGlobalStyle as tp}from"styled-components";function se({appearance:e}){if(!e||!e.styleOverrides)return Zt.createElement(Zt.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([i,r])=>typeof r=="object");if(t.length===0)return Zt.createElement(Zt.Fragment,null);let o=tp`
|
|
633
|
-
${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map(([s,p])=>`${jo(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Zt.createElement(o,{inlineStyles:t})}var Oi=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:a=!0,onStepCompletion:C,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:S=!1,modalPosition:T="center",repeatable:k=!1,onDismiss:u,showPagination:v=!1,allowBackNavigation:x=!1,validationHandler:F,showFrigadeBranding:N=!1})=>{let{getFlow:h,getFlowSteps:m,isLoading:w,targetingLogicShouldHideFlow:y,getFlowStatus:E,getCurrentStepIndex:O,markFlowCompleted:I,markFlowNotStarted:$}=Z(),L=O(e),{mergeAppearanceWithDefault:H}=te(),[_,oe]=rp(!1),{setOpenFlowState:R,getOpenFlowState:K,hasOpenModals:ee}=Fe();d=H(d);let[le,X]=i!==void 0&&r!==void 0?[i,r]:[K(e,!0),q=>R(e,q)];if(op(()=>{!_&&!w&&(oe(!0),E(e)===Q&&k&&$(e),oe(!0))},[_,oe,w]),w)return null;let G=h(e);if(!G||y(G))return null;let xe=m(e);if(!xe||i!==void 0&&i===!1||E(e)===Q&&a||(o=="modal"||o=="corner-modal")&&ee(e))return null;let Te=()=>{X(!1),u&&u(),S===!0&&I(e)};if(T=="center"&&o==="modal"||o==="large-modal"){let q={padding:"24px"};return o==="large-modal"?(q.width="85%",q.height="90%",q.maxHeight="800px",q.minHeight="500px",q.padding="0"):q.width="400px",ze.createElement(tt,{appearance:d,onClose:Te,visible:le,style:q,dismissible:g,showFrigadeBranding:N},ze.createElement(se,{appearance:d}),ze.createElement(Po,{appearance:d,steps:xe,selectedStep:L,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))}return o==="modal"&&T!=="center"?ze.createElement(Yr,{appearance:d,onClose:Te,visible:le},ze.createElement(se,{appearance:d}),ze.createElement(Po,{appearance:d,steps:xe,selectedStep:L,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F})):ze.createElement(ze.Fragment,null,ze.createElement(se,{appearance:d}),ze.createElement(Po,{appearance:d,steps:xe,selectedStep:L,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))},Li=Oi;import{useCallback as Di,useContext as ip,useEffect as np}from"react";function ar(){let{organizationId:e,userId:t,setOrganizationId:o}=ip(j),{mutateUserFlowState:i}=Ee(),{config:r,apiUrl:n}=Me(),s=kt(),{verifySDKInitiated:p}=Pt();np(()=>{if(t&&e){if(t.startsWith(vt))return;let C=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(C)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(C,"true"))}},[t,e]);let d=Di(async C=>{if(!p())return;if(!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let c={foreignUserId:t,foreignUserGroupId:e,properties:C};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(c)}),i()},[e,t,r,i]),a=Di(async(C,c)=>{if(!p())return;if(!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,events:[{event:C,properties:c}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(S)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:d,trackEventForOrganization:a}}var $i="frigade-xFrigade_guestUserId",Rt="frigade-xFrigade_userId",Mi=({})=>{let{setFlowResponses:e}=Vt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ee(),{userId:r,setUserId:n}=jt(),[s,p]=pr(null),{getFlowStatus:d}=Z(),{flows:a,userProperties:C,setIsNewGuestUser:c,flowResponses:g}=sp(j),[S,T]=pr([]),[k,u]=pr([]),{organizationId:v}=ar();vo(()=>{if(!o&&t)for(let h=0;h<t.length;h++){let m=t[h],w=a.find(y=>y.slug===(m==null?void 0:m.flowId));if(w&&m&&m.shouldTrigger===!0&&w.type=="FORM"&&w.triggerType==="AUTOMATIC"&&!k.includes(w.slug)){setTimeout(()=>{x(m.flowId)},500);break}}},[o,t]),vo(()=>{g.length>0&&i()},[g]);function x(h){let m=a.find(w=>w.slug===h);m&&m.triggerType==="AUTOMATIC"&&!k.includes(m.slug)&&(u([...k,m.slug]),T([m]))}function F(){if(!r){let h=localStorage.getItem(Rt);if(h){n(h);return}let m=localStorage.getItem($i);if(m){n(m);return}c(!0);let w=vt+lp();try{localStorage.setItem($i,w)}catch(y){console.log("Failed to save guest user id locally: Local storage unavailable",y)}n(y=>y||w)}}vo(()=>{try{if(a){let h=[];a.forEach(m=>{if(m.data){let w=m.data.match(/"imageUri":"(.*?)"/g);w&&w.forEach(y=>{let E=y.replace('"imageUri":"',"").replace('"',"");if(h.includes(E))return;let O=new Image;O.src=E,h.push(E)})}})}}catch{}},[a]),vo(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(vt))try{localStorage.setItem(Rt,r)}catch(h){console.log("Failed to save user id locally: Local storage available",h)}r===null&&setTimeout(()=>{r===null&&F()},50)},[r,a,C]);function N(){return ht.createElement(ht.Fragment,null,S.map(h=>d(h.slug)!==Ie?null:ht.createElement("span",{key:h.slug},ht.createElement(Li,{flowId:h.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return ht.createElement(ht.Fragment,null,ht.createElement(N,null))};import{ErrorBoundary as Op}from"react-error-boundary";import eo from"core-js-pure/actual/structured-clone";function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function at(...e){let t=e.shift();if(e.length>1)return at(...e);let o=e[0];if(!dr(t)||!dr(o))throw new Error("deepmerge can only merge Objects");let i=eo(t);return Object.entries(o).forEach(([r,n])=>{dr(n)?i[r]!==void 0?Object.assign(i,{[r]:at(i[r],eo(n))}):Object.assign(i,{[r]:eo(n)}):Array.isArray(n)?i[r]!==void 0?Object.assign(i,{[r]:[...i[r],...eo(n)]}):Object.assign(i,{[r]:eo(n)}):Object.assign(i,{[r]:n})}),i}var Ui={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function ap(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(Ui[o]){let r=Ui[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function pp(e){if(!e)return;let t=at({},e),o={};return Object.keys(t).forEach(i=>{let r=`.fr-${i}`;o[r]=t[i]}),o}function zi(e){let{theme:t,styleOverrides:o}=e,i=ap(t),r=pp(o);return{overrides:i,css:r}}import Tp from"styled-components";import{compose as Fp,variant as Wi}from"styled-system";import _i from"react";import dp,{ThemeProvider as cp,useTheme as mp}from"styled-components";import{border as up,color as fp,compose as gp,get as xp,shadow as hp,space as Cp,system as yp,typography as Sp}from"styled-system";var bp={width:{property:"width",scale:"sizes",transform:(e,t)=>xp(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},wp=dp("div")(({css:e})=>e,gp(up,fp,hp,Cp,Sp,yp(bp))),to=({as:e,children:t,overrides:o,...i})=>{let r=mp(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>_i.createElement(wp,{as:e,...n,...i},t);if(o!==void 0){let p=at(r,o);return _i.createElement(cp,{theme:p},s())}return s()};var oo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},kp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},Hi=Tp(to)(()=>({whiteSpace:"nowrap"}),Fp(Wi({scale:"components.Button",variants:"components.Button"}),Wi({prop:"size",variants:kp})));import Pp from"styled-components";import{variant as vp,system as Bp}from"styled-system";var Bo={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var Vi=Pp(to)(vp({scale:"components.Text",variants:"components.Text"}),Bp({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var ji=4,Gi="px",Ep=20,Ap=Object.fromEntries(Array.from(Array(Ep+1),(e,t)=>t===0?[.5,`${.5*ji}${Gi}`]:[t,`${t*ji}${Gi}`])),Nt={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},cr={colors:{...Nt,neutral:{foreground:Nt.gray300},primary:{background:Nt.blue500,foreground:Nt.white,inverted:Nt.blue500},negative:{foreground:Nt.red500}},fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:Ap,components:{Button:oo,Text:Bo}};var qi="https://api.frigade.com",j=Ip({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},completedFlowsToKeepOpenDuringSession:[],setCompletedFlowsToKeepOpenDuringSession:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:qe,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:qi,readonly:!1});function Lp(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Dp=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var K,ee;let[n,s]=Ae(t||null),[p,d]=Ae(o||null),[a,C]=Ae([]),[c,g]=Ae([]),[S,T]=Ae([]),[k,u]=Ae({}),[v,x]=Ae({}),[F,N]=Ae([]),[h,m]=Ae({}),[w,y]=Ae(!1),[E,O]=Ae(!1),[I,$]=Ae(!_(e)),L=(le,X)=>{if(X==="_blank"){window.open(le,"_blank");return}setTimeout(()=>{window.location.href=le},50)},H={theme:{...qe.theme,...((K=i==null?void 0:i.defaultAppearance)==null?void 0:K.theme)??{}},styleOverrides:{...qe.styleOverrides,...((ee=i==null?void 0:i.defaultAppearance)==null?void 0:ee.styleOverrides)??{}}};function _(le){return!!(le&&le.length>10&&le.substring(0,10)==="api_public")}Eo(()=>{t&&s(t)},[t]),Eo(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(Rt)&&window.localStorage.getItem(Rt)!==n&&Lp()},[n]),Eo(()=>{o&&d(o)},[o]),Eo(()=>{if(_(e))$(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),$(!0);return}},[e,$]);let oe={publicApiKey:e,userId:n,setUserId:s,setFlows:C,flows:a,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:S,setFlowResponses:T,userProperties:k,setUserProperties:u,openFlowStates:v,setOpenFlowStates:x,completedFlowsToKeepOpenDuringSession:F,setCompletedFlowsToKeepOpenDuringSession:N,customVariables:h,setCustomVariables:m,isNewGuestUser:w,setIsNewGuestUser:y,hasActiveFullPageFlow:E,setHasActiveFullPageFlow:O,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:L,defaultAppearance:H,shouldGracefullyDegrade:I,setShouldGracefullyDegrade:$,apiUrl:i&&i.apiUrl?i.apiUrl:qi,readonly:i&&i.readonly?i.readonly:!1};if(I)return Ct.createElement(j.Provider,{value:oe},r);let{overrides:R}=zi(H);return Ct.createElement(Op,{fallback:Ct.createElement(Ct.Fragment,null,r)},Ct.createElement(j.Provider,{value:oe},Ct.createElement(Np,{theme:at(H.theme,cr,R??{},(i==null?void 0:i.theme)??{})},r,Ct.createElement(Mi,null))))};import Od from"react";import me,{useEffect as bs,useState as ws}from"react";import Le,{useState as id}from"react";import bt from"styled-components";import No from"react";import yt from"react";import Yi from"styled-components";var Ki=Yi.span`
|
|
633
|
+
${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map(([s,p])=>`${jo(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Zt.createElement(o,{inlineStyles:t})}var Oi=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:a=!0,onStepCompletion:C,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:S=!1,modalPosition:T="center",repeatable:k=!1,onDismiss:u,showPagination:v=!1,allowBackNavigation:x=!1,validationHandler:F,showFrigadeBranding:N=!1})=>{let{getFlow:h,getFlowSteps:m,isLoading:w,targetingLogicShouldHideFlow:y,getFlowStatus:E,getCurrentStepIndex:O,markFlowCompleted:I,markFlowNotStarted:$}=Z(),L=O(e),{mergeAppearanceWithDefault:H}=te(),[_,oe]=rp(!1),{setOpenFlowState:R,getOpenFlowState:K,hasOpenModals:ee}=Fe();d=H(d);let[le,X]=i!==void 0&&r!==void 0?[i,r]:[K(e,!0),q=>R(e,q)];if(op(()=>{!_&&!w&&(oe(!0),E(e)===Q&&k&&$(e),oe(!0))},[_,oe,w]),w)return null;let G=h(e);if(!G||y(G))return null;let xe=m(e);if(!xe||i!==void 0&&i===!1||E(e)===Q&&a||(o=="modal"||o=="corner-modal")&&ee(e))return null;let Te=()=>{X(!1),u&&u(),S===!0&&I(e)};if(T=="center"&&o==="modal"||o==="large-modal"){let q={padding:"24px"};return o==="large-modal"?(q.width="85%",q.height="90%",q.maxHeight="800px",q.minHeight="500px",q.padding="0"):q.width="400px",ze.createElement(tt,{appearance:d,onClose:Te,visible:le,style:q,dismissible:g,showFrigadeBranding:N},ze.createElement(se,{appearance:d}),ze.createElement(Po,{appearance:d,steps:xe,selectedStep:L,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))}return o==="modal"&&T!=="center"?ze.createElement(Yr,{appearance:d,onClose:Te,visible:le},ze.createElement(se,{appearance:d}),ze.createElement(Po,{appearance:d,steps:xe,selectedStep:L,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F})):ze.createElement(ze.Fragment,null,ze.createElement(se,{appearance:d}),ze.createElement(Po,{appearance:d,steps:xe,selectedStep:L,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))},Li=Oi;import{useCallback as Di,useContext as ip,useEffect as np}from"react";function ar(){let{organizationId:e,userId:t,setOrganizationId:o}=ip(j),{mutateUserFlowState:i}=Ee(),{config:r,apiUrl:n}=Me(),s=kt(),{verifySDKInitiated:p}=Pt();np(()=>{if(t&&e){if(t.startsWith(vt))return;let C=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(C)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(C,"true"))}},[t,e]);let d=Di(async C=>{if(!p())return;if(!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let c={foreignUserId:t,foreignUserGroupId:e,properties:C};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(c)}),i()},[e,t,r,i]),a=Di(async(C,c)=>{if(!p())return;if(!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,events:[{event:C,properties:c}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(S)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:d,trackEventForOrganization:a}}var $i="frigade-xFrigade_guestUserId",Rt="frigade-xFrigade_userId",Mi=({})=>{let{setFlowResponses:e}=Vt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ee(),{userId:r,setUserId:n}=jt(),[s,p]=pr(null),{getFlowStatus:d}=Z(),{flows:a,userProperties:C,setIsNewGuestUser:c,flowResponses:g}=sp(j),[S,T]=pr([]),[k,u]=pr([]),{organizationId:v}=ar();vo(()=>{if(!o&&t)for(let h=0;h<t.length;h++){let m=t[h],w=a.find(y=>y.slug===(m==null?void 0:m.flowId));if(w&&m&&m.shouldTrigger===!0&&w.type=="FORM"&&w.triggerType==="AUTOMATIC"&&!k.includes(w.slug)){setTimeout(()=>{x(m.flowId)},500);break}}},[o,t]),vo(()=>{g.length>0&&i()},[g]);function x(h){let m=a.find(w=>w.slug===h);m&&m.triggerType==="AUTOMATIC"&&!k.includes(m.slug)&&(u([...k,m.slug]),T([m]))}function F(){if(!r){let h=localStorage.getItem(Rt);if(h){n(h);return}let m=localStorage.getItem($i);if(m){n(m);return}c(!0);let w=vt+lp();try{localStorage.setItem($i,w)}catch(y){console.log("Failed to save guest user id locally: Local storage unavailable",y)}n(y=>y||w)}}vo(()=>{try{if(a){let h=[];a.forEach(m=>{if(m.data){let w=m.data.match(/"imageUri":"(.*?)"/g);w&&w.forEach(y=>{let E=y.replace('"imageUri":"',"").replace('"',"");if(h.includes(E))return;let O=new Image;O.src=E,h.push(E)})}})}}catch{}},[a]),vo(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(vt))try{localStorage.setItem(Rt,r)}catch(h){console.log("Failed to save user id locally: Local storage available",h)}r===null&&setTimeout(()=>{r===null&&F()},50)},[r,a,C]);function N(){return ht.createElement(ht.Fragment,null,S.map(h=>d(h.slug)!==Ie?null:ht.createElement("span",{key:h.slug},ht.createElement(Li,{flowId:h.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return ht.createElement(ht.Fragment,null,ht.createElement(N,null))};import{ErrorBoundary as Op}from"react-error-boundary";import eo from"core-js-pure/actual/structured-clone";function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function at(...e){let t=e.shift(),o=e.length===1?e[0]:at(...e);if(!dr(t)||!dr(o))throw new Error("deepmerge can only merge Objects");let i=eo(t);return Object.entries(o).forEach(([r,n])=>{dr(n)?i[r]!==void 0?Object.assign(i,{[r]:at(i[r],eo(n))}):Object.assign(i,{[r]:eo(n)}):Array.isArray(n)?i[r]!==void 0?Object.assign(i,{[r]:[...i[r],...eo(n)]}):Object.assign(i,{[r]:eo(n)}):Object.assign(i,{[r]:n})}),i}var Ui={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function ap(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(Ui[o]){let r=Ui[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function pp(e){if(!e)return;let t=at({},e),o={};return Object.keys(t).forEach(i=>{let r=`.fr-${i}`;o[r]=t[i]}),o}function zi(e){let{theme:t,styleOverrides:o}=e,i=ap(t),r=pp(o);return{overrides:i,css:r}}import Tp from"styled-components";import{compose as Fp,variant as Wi}from"styled-system";import _i from"react";import dp,{ThemeProvider as cp,useTheme as mp}from"styled-components";import{border as up,color as fp,compose as gp,get as xp,shadow as hp,space as Cp,system as yp,typography as Sp}from"styled-system";var bp={width:{property:"width",scale:"sizes",transform:(e,t)=>xp(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},wp=dp("div")(({css:e})=>e,gp(up,fp,hp,Cp,Sp,yp(bp))),to=({as:e,children:t,overrides:o,...i})=>{let r=mp(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>_i.createElement(wp,{as:e,...n,...i},t);if(o!==void 0){let p=at(r,o);return _i.createElement(cp,{theme:p},s())}return s()};var oo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},kp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},Hi=Tp(to)(()=>({whiteSpace:"nowrap"}),Fp(Wi({scale:"components.Button",variants:"components.Button"}),Wi({prop:"size",variants:kp})));import Pp from"styled-components";import{variant as vp,system as Bp}from"styled-system";var Bo={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var Vi=Pp(to)(vp({scale:"components.Text",variants:"components.Text"}),Bp({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var ji=4,Gi="px",Ep=20,Ap=Object.fromEntries(Array.from(Array(Ep+1),(e,t)=>t===0?[.5,`${.5*ji}${Gi}`]:[t,`${t*ji}${Gi}`])),Nt={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},cr={colors:{...Nt,neutral:{foreground:Nt.gray300},primary:{background:Nt.blue500,foreground:Nt.white,inverted:Nt.blue500},negative:{foreground:Nt.red500}},fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:Ap,components:{Button:oo,Text:Bo}};var qi="https://api.frigade.com",j=Ip({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},completedFlowsToKeepOpenDuringSession:[],setCompletedFlowsToKeepOpenDuringSession:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:qe,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:qi,readonly:!1});function Lp(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Dp=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var K,ee;let[n,s]=Ae(t||null),[p,d]=Ae(o||null),[a,C]=Ae([]),[c,g]=Ae([]),[S,T]=Ae([]),[k,u]=Ae({}),[v,x]=Ae({}),[F,N]=Ae([]),[h,m]=Ae({}),[w,y]=Ae(!1),[E,O]=Ae(!1),[I,$]=Ae(!_(e)),L=(le,X)=>{if(X==="_blank"){window.open(le,"_blank");return}setTimeout(()=>{window.location.href=le},50)},H={theme:{...qe.theme,...((K=i==null?void 0:i.defaultAppearance)==null?void 0:K.theme)??{}},styleOverrides:{...qe.styleOverrides,...((ee=i==null?void 0:i.defaultAppearance)==null?void 0:ee.styleOverrides)??{}}};function _(le){return!!(le&&le.length>10&&le.substring(0,10)==="api_public")}Eo(()=>{t&&s(t)},[t]),Eo(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(Rt)&&window.localStorage.getItem(Rt)!==n&&Lp()},[n]),Eo(()=>{o&&d(o)},[o]),Eo(()=>{if(_(e))$(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),$(!0);return}},[e,$]);let oe={publicApiKey:e,userId:n,setUserId:s,setFlows:C,flows:a,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:S,setFlowResponses:T,userProperties:k,setUserProperties:u,openFlowStates:v,setOpenFlowStates:x,completedFlowsToKeepOpenDuringSession:F,setCompletedFlowsToKeepOpenDuringSession:N,customVariables:h,setCustomVariables:m,isNewGuestUser:w,setIsNewGuestUser:y,hasActiveFullPageFlow:E,setHasActiveFullPageFlow:O,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:L,defaultAppearance:H,shouldGracefullyDegrade:I,setShouldGracefullyDegrade:$,apiUrl:i&&i.apiUrl?i.apiUrl:qi,readonly:i&&i.readonly?i.readonly:!1};if(I)return Ct.createElement(j.Provider,{value:oe},r);let{overrides:R}=zi(H);return Ct.createElement(Op,{fallback:Ct.createElement(Ct.Fragment,null,r)},Ct.createElement(j.Provider,{value:oe},Ct.createElement(Np,{theme:at(H.theme,cr,R??{},(i==null?void 0:i.theme)??{})},r,Ct.createElement(Mi,null))))};import Od from"react";import me,{useEffect as bs,useState as ws}from"react";import Le,{useState as id}from"react";import bt from"styled-components";import No from"react";import yt from"react";import Yi from"styled-components";var Ki=Yi.span`
|
|
634
634
|
font-weight: 400;
|
|
635
635
|
font-size: 15px;
|
|
636
636
|
line-height: 20px;
|