@frigade/react 1.33.14 → 1.33.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +15 -15
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +12 -12
- 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 Bp,useEffect as Eo,useState as Oe}from"react";import{ThemeProvider as Ep}from"styled-components";import ht,{useContext as rp,useEffect as vo,useState as ar}from"react";import{useCallback as ft,useContext as kl,useEffect as Pl}from"react";import Vo,{useMemo as Er}from"react";var Br="1.33.14 ";var Ie="NOT_STARTED_STEP",Q="COMPLETED_FLOW",po="ABORTED_FLOW",ut="STARTED_FLOW",De="NOT_STARTED_FLOW",$e="COMPLETED_STEP",co="STARTED_STEP";function _e(){let{publicApiKey:e,userId:t,apiUrl:o}=Vo.useContext(j);return{config:Er(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Br,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Er(()=>`${o}/v1/public/`,[o])}}var ul="frigade-last-call-at-",fl="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=ul+o,n=fl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),c=window.localStorage.getItem(n);if(p&&c&&c==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 wl,useState as Ar}from"react";import{useContext as xl,useEffect as hl,useState as Cl}from"react";import yl from"swr";import{useContext as gl}from"react";function ve(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=gl(j);function n(d,g=!1){return e[d]??g}function s(d,g){t(C=>({...C,[d]:g}))}function p(d){t(g=>{let{[d]:C,...b}=g;return{...b}})}function c(d){r.includes(d)||i(g=>[...g,d])}function a(d){return r.includes(d)}function h(d){return Object.entries(e).some(([g,C])=>C&&g!=d)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:h,setKeepCompletedFlowOpenDuringSession:c,shouldKeepCompletedFlowOpenDuringSession:a}}import Sl from"swr/immutable";var bl="unknown";function Ne(){let{config:e,apiUrl:t}=_e(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=xl(j),{resetOpenFlowState:c}=ve(),[a,h]=Cl(!1),d={data:n.map(y=>({flowId:y.id,flowState:Q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(P=>{if(P.ok)return P.json();throw new Error("Failed to fetch user flow states")}).catch(P=>(console.log(`Error fetching ${y}: ${P}. Will gracefully degrade and hide Frigade`),s(!0),d)),C=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:b,isLoading:k,mutate:u,error:B}=p?Sl(C,g):yl(C,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),x=b==null?void 0:b.data;hl(()=>{!a&&!k&&x&&h(!0)},[x,a,k]);async function F(y){if(x&&!p){let P=x.find(O=>O.flowId===y);P&&P.flowState!==Q&&(P.flowState=Q),await u(Promise.resolve({...b,data:x}),{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,P,O){if(x){let I=x.find(L=>L.flowId===y);I&&(I.stepStates[P]=O,I.flowState=ut),await u(Promise.resolve({...b,data:x}),{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}async function T(y,P,O){if(x){let I=x.find(L=>L.flowId===y);I&&(I.lastStepId=P,I.stepStates[P]=O,I.flowState=ut),await u({...b,data:x},{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let P=x.find(O=>O.flowId===y);P&&P.flowState!==De&&(P.flowState=De,P.lastStepId=bl,Object.keys(P.stepStates).forEach(O=>{P.stepStates[O].actionType=Ie,P.stepStates[O].createdAt=new Date().toISOString()}),await u({...b,data:x},{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1}),c(y))}}async function w(y,P){if(x){let O=x.find(I=>I.flowId===y);O&&O.stepStates[P]!==Ie&&(O.stepStates[P]=Ie),await u({...b,data:x},{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:T,error:B}}function Vt(){let{config:e,apiUrl:t}=_e(),{userFlowStatesData:o,mutateUserFlowState:i}=Ne(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=wl(j),[c,a]=Ar(new Set),[h,d]=Ar(new Set),g=kt();function C(u){let B=JSON.stringify(u);if(c.has(B))return null;c.add(B),a(c),h.add(u),d(h);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:B}).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 b(u){u.foreignUserId&&(u.actionType===ut||u.actionType===De?await C(u):u.actionType===Q?await C(u):u.actionType===co?await C(u):u.actionType===$e?await C(u):u.actionType===po?await C(u):u.actionType===Ie&&await C(u))}function k(){let u=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let x in B.stepStates){let F=B.stepStates[x];u.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...u,...s]}return{addResponse:b,setFlowResponses:p,getFlowResponses:k}}import vl from"swr";var Tl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ir=e=>{let t=Tl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Fl(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Fl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=_e(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,setFlowResponses:h,setShouldGracefullyDegrade:d,readonly:g}=kl(j),C={data:[]},{verifySDKInitiated:b}=Pt(),{addResponse:k,getFlowResponses:u}=Vt(),B=f=>fetch(f,e).then(S=>S.ok?S.json():(console.log(`Error fetching ${f} (${S.status}): ${S.statusText}. .Will gracefully degrade and hide Frigade`),d(!0),C)).catch(S=>(console.log(`Error fetching ${f}: ${S}. Will gracefully degrade and hide Frigade`),d(!0),C)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:N,optimisticallyMarkFlowNotStarted:T,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:y}=Ne(),{data:P,error:O,isLoading:I}=vl(n?`${t}flows${g?"?readonly=true":""}`:null,B,{keepPreviousData:!0});Pl(()=>{if(O){console.error(O);return}P&&P.data&&i(P.data)},[P,O]);function L(f){if(I)return null;let S=o.find(E=>E.slug===f);return!S&&o.length>0&&!F&&!I?(console.log(`Flow with slug ${f} not found`),null):(S==null?void 0:S.active)===!1?null:S}function D(f){var A;if(!L(f))return[];let S=L(f).data;return S?(S=_(S),(((A=JSON.parse(S))==null?void 0:A.data)??[]).map(J=>{let mt=me(J);return{handleSecondaryButtonClick:()=>{J.skippable===!0&&ae(f,J.id,{skipped:!0})},...J,complete:X(f,J.id)===$e||mt>=1,blocked:M(f,J.id),hidden:W(f,J.id),handlePrimaryButtonClick:()=>{(!J.completionCriteria&&(J.autoMarkCompleted||J.autoMarkCompleted===void 0)||J.completionCriteria&&J.autoMarkCompleted===!0)&&ae(f,J.id)},progress:mt}}).filter(J=>J.hidden!==!0)):[]}function _(f){return f.replaceAll(/\${(.*?)}/g,(S,E)=>s[E]===void 0?"":String(s[E]).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 H(f){if(!L(f))return[];let S=L(f).data;return S?(S=_(S),JSON.parse(S)??{}):[]}function re(f,S){p(E=>({...E,[f]:S}))}function R(f){!F&&!I&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(S=>{re(S,f[S])})}let q=ft(async(f,S,E)=>{if(!b())return;let A={foreignUserId:r,flowSlug:f,stepId:S,actionType:co,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};ie(A)&&(await y(f,S,A),k(A))},[r,x]),G=ft(async(f,S,E)=>{if(!b())return;let A={foreignUserId:r,flowSlug:f,stepId:S,actionType:Ie,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};ie(A)&&(await w(f,S),k(A))},[r,x]),ae=ft(async(f,S,E)=>{if(!b())return;let A={foreignUserId:r,flowSlug:f,stepId:S,actionType:$e,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};ie(A)&&(await m(f,S,A),k(A))},[r,x]),Y=ft(async(f,S)=>{if(!b()||te(f)===De)return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:De,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};await T(f),ie(E)&&k(E)},[r,x]),ee=ft(async(f,S)=>{if(!b())return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ut,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};ie(E)&&k(E)},[r,x]),Pe=ft(async(f,S)=>{if(!b())return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Q,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};ie(E)&&(await N(f),k(E))},[r,x]),Ce=ft(async(f,S)=>{if(!b())return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:po,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};ie(E)&&(await N(f),k(E))},[r,x]);function ie(f){var S;if(!x&&f.actionType===Ie)return!1;if(x){let E=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Ie&&(!(E!=null&&E.stepStates[f.stepId])||E.stepStates[f.stepId].actionType===Ie)||E&&((S=E.stepStates[f.stepId])==null?void 0:S.actionType)===f.actionType||E&&E.flowState===Q&&f.actionType===Q)return!1}return!0}function X(f,S){let E=ye(f,S);return F?null:E?E.actionType:Ie}function M(f,S){let E=ye(f,S);return E?E.blocked:!1}function W(f,S){let E=ye(f,S);return E?E.hidden:!1}function ye(f,S){if(F)return null;let E=x==null?void 0:x.find(A=>A.flowId===f);return!E||!E.stepStates[S]?null:E.stepStates[S]??null}function ce(f){var E;if(F||!x)return null;if(te(f)===De)return D(f)[0]??null;let S=(E=x.find(A=>A.flowId===f))==null?void 0:E.lastStepId;return S?D(f).find(A=>A.id===S):null}function z(f){let S=ce(f);if(!S)return 0;let E=D(f).findIndex(A=>A.id===S.id)??0;return X(f,S.id)===$e&&E<D(f).length-1?E+1:E}function me(f){if(!f.completionCriteria)return;let S=Ir(f.completionCriteria);if(S===null)return;let E=Se(S),A=V(S);return A===0?void 0:E/A}function te(f){let S=x==null?void 0:x.find(E=>E.flowId===f);return S?S.flowState:null}function Se(f){let S=D(f);return S.length===0?0:S.filter(A=>X(f,A.id)===$e).length}function V(f){return D(f).length}function Ae(f){let S=o.find(E=>E.slug===f);return S?JSON.parse(S.data):null}function ze(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let S=x.find(E=>E.flowId===f.slug);if(S)return S.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function Ho(f){return!ze(L(f))}return{getFlow:L,getFlowData:Ae,isLoading:F||I,getStepStatus:X,getFlowSteps:D,getCurrentStepIndex:z,markStepStarted:q,markStepCompleted:ae,markFlowNotStarted:Y,markFlowStarted:ee,markFlowCompleted:Pe,markFlowAborted:Ce,markStepNotStarted:G,getFlowStatus:te,getNumberOfStepsCompleted:Se,getNumberOfSteps:V,targetingLogicShouldHideFlow:ze,setCustomVariable:re,updateCustomVariables:R,customVariables:s,getStepOptionalProgress:me,getFlowMetadata:H,isStepBlocked:M,isStepHidden:W,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,isFlowAvailableToUser:Ho}}import{useCallback as Nr,useContext as Bl,useEffect as El}from"react";var vt="guest_";function jt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Bl(j),{config:n,apiUrl:s}=_e(),{mutateUserFlowState:p}=Ne(),c=kt(),{verifySDKInitiated:a}=Pt();El(()=>{if(e&&!t){if(e.startsWith(vt))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(c(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let h=Nr(async g=>{if(!a())return;let C={foreignId:e,properties:g};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(C)}),i(b=>({...b,...g})),p()},[e,n,r,p]),d=Nr(async(g,C)=>{if(!a())return;let k={foreignId:e,events:[{event:g,properties:C}]};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(k)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:h,trackEventForUser:d}}import{v4 as ip}from"uuid";import He,{useEffect as Ra,useState as ep}from"react";import Me,{useEffect as $l}from"react";import fo from"styled-components";import Al from"react";import Il from"styled-components";var Or="fr-",Gt="cfr-";function l(e,t){let o=`${Or}${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 v(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(Or)?"":`: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 be(...e){return e.filter(Boolean).join(" ")}function qt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Nl=Il.div`
|
|
2
|
+
import Ct,{createContext as Bp,useEffect as Eo,useState as Oe}from"react";import{ThemeProvider as Ep}from"styled-components";import ht,{useContext as rp,useEffect as vo,useState as ar}from"react";import{useCallback as ft,useContext as kl,useEffect as Pl}from"react";import Vo,{useMemo as Er}from"react";var Br="1.33.15 ";var Ie="NOT_STARTED_STEP",J="COMPLETED_FLOW",po="ABORTED_FLOW",ut="STARTED_FLOW",De="NOT_STARTED_FLOW",$e="COMPLETED_STEP",co="STARTED_STEP";function _e(){let{publicApiKey:e,userId:t,apiUrl:o}=Vo.useContext(j);return{config:Er(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Br,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Er(()=>`${o}/v1/public/`,[o])}}var ul="frigade-last-call-at-",fl="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=ul+o,n=fl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),c=window.localStorage.getItem(n);if(p&&c&&c==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 wl,useState as Ar}from"react";import{useContext as xl,useEffect as hl,useState as Cl}from"react";import yl from"swr";import{useContext as gl}from"react";function ve(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=gl(j);function n(d,g=!1){return e[d]??g}function s(d,g){t(C=>({...C,[d]:g}))}function p(d){t(g=>{let{[d]:C,...b}=g;return{...b}})}function c(d){r.includes(d)||i(g=>[...g,d])}function a(d){return r.includes(d)}function h(d){return Object.entries(e).some(([g,C])=>C&&g!=d)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:h,setKeepCompletedFlowOpenDuringSession:c,shouldKeepCompletedFlowOpenDuringSession:a}}import Sl from"swr/immutable";var bl="unknown";function Ne(){let{config:e,apiUrl:t}=_e(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=xl(j),{resetOpenFlowState:c}=ve(),[a,h]=Cl(!1),d={data:n.map(y=>({flowId:y.id,flowState:J,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(P=>{if(P.ok)return P.json();throw new Error("Failed to fetch user flow states")}).catch(P=>(console.log(`Error fetching ${y}: ${P}. Will gracefully degrade and hide Frigade`),s(!0),d)),C=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:b,isLoading:k,mutate:u,error:B}=p?Sl(C,g):yl(C,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),x=b==null?void 0:b.data;hl(()=>{!a&&!k&&x&&h(!0)},[x,a,k]);async function F(y){if(x&&!p){let P=x.find(O=>O.flowId===y);P&&P.flowState!==J&&(P.flowState=J),await u(Promise.resolve({...b,data:x}),{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,P,O){if(x){let I=x.find(L=>L.flowId===y);I&&(I.stepStates[P]=O,I.flowState=ut),await u(Promise.resolve({...b,data:x}),{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}async function T(y,P,O){if(x){let I=x.find(L=>L.flowId===y);I&&(I.lastStepId=P,I.stepStates[P]=O,I.flowState=ut),await u({...b,data:x},{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let P=x.find(O=>O.flowId===y);P&&P.flowState!==De&&(P.flowState=De,P.lastStepId=bl,Object.keys(P.stepStates).forEach(O=>{P.stepStates[O].actionType=Ie,P.stepStates[O].createdAt=new Date().toISOString()}),await u({...b,data:x},{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1}),c(y))}}async function w(y,P){if(x){let O=x.find(I=>I.flowId===y);O&&O.stepStates[P]!==Ie&&(O.stepStates[P]=Ie),await u({...b,data:x},{optimisticData:{...b,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:T,error:B}}function Vt(){let{config:e,apiUrl:t}=_e(),{userFlowStatesData:o,mutateUserFlowState:i}=Ne(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=wl(j),[c,a]=Ar(new Set),[h,d]=Ar(new Set),g=kt();function C(u){let B=JSON.stringify(u);if(c.has(B))return null;c.add(B),a(c),h.add(u),d(h);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:B}).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 b(u){u.foreignUserId&&(u.actionType===ut||u.actionType===De?await C(u):u.actionType===J?await C(u):u.actionType===co?await C(u):u.actionType===$e?await C(u):u.actionType===po?await C(u):u.actionType===Ie&&await C(u))}function k(){let u=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let x in B.stepStates){let F=B.stepStates[x];u.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...u,...s]}return{addResponse:b,setFlowResponses:p,getFlowResponses:k}}import vl from"swr";var Tl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ir=e=>{let t=Tl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Fl(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Fl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e,apiUrl:t}=_e(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,setFlowResponses:h,setShouldGracefullyDegrade:d,readonly:g}=kl(j),C={data:[]},{verifySDKInitiated:b}=Pt(),{addResponse:k,getFlowResponses:u}=Vt(),B=f=>fetch(f,e).then(S=>S.ok?S.json():(console.log(`Error fetching ${f} (${S.status}): ${S.statusText}. .Will gracefully degrade and hide Frigade`),d(!0),C)).catch(S=>(console.log(`Error fetching ${f}: ${S}. Will gracefully degrade and hide Frigade`),d(!0),C)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:N,optimisticallyMarkFlowNotStarted:T,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:y}=Ne(),{data:P,error:O,isLoading:I}=vl(n?`${t}flows${g?"?readonly=true":""}`:null,B,{keepPreviousData:!0});Pl(()=>{if(O){console.error(O);return}P&&P.data&&i(P.data)},[P,O]);function L(f){if(I)return null;let S=o.find(E=>E.slug===f);return!S&&o.length>0&&!F&&!I?(console.log(`Flow with slug ${f} not found`),null):(S==null?void 0:S.active)===!1?null:S}function D(f){var A;if(!L(f))return[];let S=L(f).data;return S?(S=z(S),(((A=JSON.parse(S))==null?void 0:A.data)??[]).map(X=>{let mt=me(X);return{handleSecondaryButtonClick:()=>{X.skippable===!0&&ae(f,X.id,{skipped:!0})},...X,complete:Y(f,X.id)===$e||mt>=1,blocked:$(f,X.id),hidden:_(f,X.id),handlePrimaryButtonClick:()=>{(!X.completionCriteria&&(X.autoMarkCompleted||X.autoMarkCompleted===void 0)||X.completionCriteria&&X.autoMarkCompleted===!0)&&ae(f,X.id)},progress:mt}}).filter(X=>X.hidden!==!0)):[]}function z(f){return f.replaceAll(/\${(.*?)}/g,(S,E)=>s[E]===void 0?"":String(s[E]).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 H(f){if(!L(f))return[];let S=L(f).data;return S?(S=z(S),JSON.parse(S)??{}):[]}function re(f,S){p(E=>({...E,[f]:S}))}function Z(f){!F&&!I&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(S=>{re(S,f[S])})}let R=ft(async(f,S,E)=>{if(!b())return;let A={foreignUserId:r,flowSlug:f,stepId:S,actionType:co,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};ie(A)&&(await y(f,S,A),k(A))},[r,x]),G=ft(async(f,S,E)=>{if(!b())return;let A={foreignUserId:r,flowSlug:f,stepId:S,actionType:Ie,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};ie(A)&&(await w(f,S),k(A))},[r,x]),ae=ft(async(f,S,E)=>{if(!b())return;let A={foreignUserId:r,flowSlug:f,stepId:S,actionType:$e,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};ie(A)&&(await m(f,S,A),k(A))},[r,x]),K=ft(async(f,S)=>{if(!b()||te(f)===De)return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:De,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};await T(f),ie(E)&&k(E)},[r,x]),ee=ft(async(f,S)=>{if(!b())return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ut,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};ie(E)&&k(E)},[r,x]),Pe=ft(async(f,S)=>{if(!b())return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:J,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};ie(E)&&(await N(f),k(E))},[r,x]),Ce=ft(async(f,S)=>{if(!b())return;let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:po,data:S??{},createdAt:new Date,blocked:!1,hidden:!1};ie(E)&&(await N(f),k(E))},[r,x]);function ie(f){var S;if(!x&&f.actionType===Ie)return!1;if(x){let E=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Ie&&(!(E!=null&&E.stepStates[f.stepId])||E.stepStates[f.stepId].actionType===Ie)||E&&((S=E.stepStates[f.stepId])==null?void 0:S.actionType)===f.actionType||E&&E.flowState===J&&f.actionType===J)return!1}return!0}function Y(f,S){let E=ye(f,S);return F?null:E?E.actionType:Ie}function $(f,S){let E=ye(f,S);return E?E.blocked:!1}function _(f,S){let E=ye(f,S);return E?E.hidden:!1}function ye(f,S){if(F)return null;let E=x==null?void 0:x.find(A=>A.flowId===f);return!E||!E.stepStates[S]?null:E.stepStates[S]??null}function ce(f){var E;if(F||!x)return null;if(te(f)===De)return D(f)[0]??null;let S=(E=x.find(A=>A.flowId===f))==null?void 0:E.lastStepId;return S?D(f).find(A=>A.id===S):null}function U(f){let S=ce(f);if(!S)return 0;let E=D(f).findIndex(A=>A.id===S.id)??0;return Y(f,S.id)===$e&&E<D(f).length-1?E+1:E}function me(f){if(!f.completionCriteria)return;let S=Ir(f.completionCriteria);if(S===null)return;let E=Se(S),A=V(S);return A===0?void 0:E/A}function te(f){let S=x==null?void 0:x.find(E=>E.flowId===f);return S?S.flowState:null}function Se(f){let S=D(f);return S.length===0?0:S.filter(A=>Y(f,A.id)===$e).length}function V(f){return D(f).length}function Ae(f){let S=o.find(E=>E.slug===f);return S?JSON.parse(S.data):null}function ze(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let S=x.find(E=>E.flowId===f.slug);if(S)return S.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function Ho(f){return!ze(L(f))}return{getFlow:L,getFlowData:Ae,isLoading:F||I,getStepStatus:Y,getFlowSteps:D,getCurrentStepIndex:U,markStepStarted:R,markStepCompleted:ae,markFlowNotStarted:K,markFlowStarted:ee,markFlowCompleted:Pe,markFlowAborted:Ce,markStepNotStarted:G,getFlowStatus:te,getNumberOfStepsCompleted:Se,getNumberOfSteps:V,targetingLogicShouldHideFlow:ze,setCustomVariable:re,updateCustomVariables:Z,customVariables:s,getStepOptionalProgress:me,getFlowMetadata:H,isStepBlocked:$,isStepHidden:_,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,isFlowAvailableToUser:Ho}}import{useCallback as Nr,useContext as Bl,useEffect as El}from"react";var vt="guest_";function jt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Bl(j),{config:n,apiUrl:s}=_e(),{mutateUserFlowState:p}=Ne(),c=kt(),{verifySDKInitiated:a}=Pt();El(()=>{if(e&&!t){if(e.startsWith(vt))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(c(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let h=Nr(async g=>{if(!a())return;let C={foreignId:e,properties:g};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(C)}),i(b=>({...b,...g})),p()},[e,n,r,p]),d=Nr(async(g,C)=>{if(!a())return;let k={foreignId:e,events:[{event:g,properties:C}]};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(k)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:h,trackEventForUser:d}}import{v4 as ip}from"uuid";import He,{useEffect as Ra,useState as ep}from"react";import Me,{useEffect as $l}from"react";import fo from"styled-components";import Al from"react";import Il from"styled-components";var Or="fr-",Gt="cfr-";function l(e,t){let o=`${Or}${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 v(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(Or)?"":`: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 be(...e){return e.filter(Boolean).join(" ")}function qt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Nl=Il.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -629,8 +629,8 @@ import Ct,{createContext as Bp,useEffect as Eo,useState as Oe}from"react";import
|
|
|
629
629
|
color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorText}};
|
|
630
630
|
display: flex;
|
|
631
631
|
align-self: center;
|
|
632
|
-
`;var Ii=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=sr([]),[p,c]=sr(!1),[a,h]=sr(e.id);return nr(()=>{n.length==0&&!p&&(c(!0),o({choice:[]}))},[p]),nr(()=>{a!==e.id&&(h(e.id),s([]))},[e]),nr(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),Ye.createElement(Ti,{className:l("selectListContainer",i)},Ye.createElement(Fi,null,Ye.createElement(ki,{className:l("selectListTitle",i)},e.title),Ye.createElement(Pi,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),r.options.map((d,g)=>{let C=n.includes(d.id);return Ye.createElement(vi,{key:`select-item-${g}`,onClick:()=>{if(n.includes(d.id)){s(n.filter(b=>b!==d.id));return}n.length<r.maxChoices?s([...n,d.id]):n.length==1&&r.maxChoices==1&&s([d.id])},hideBottomBorder:g===r.options.length-1,className:l("selectListSelectItem",i)},Ye.createElement(Bi,{className:l("selectListItemImage",i)},d.imageUri&&Ye.createElement(Ei,{src:d.imageUri,alt:`select-icon-${g}`}),Ye.createElement(Ai,{appearance:i,className:l("selectListSelectItemText",i)},d.title)),Ye.createElement(Ke,{appearance:i,value:C,primaryColor:i.theme.colorPrimary}))}))};import Te,{useEffect as ko,useState as Qt}from"react";import{AnimatePresence as Xa,motion as Ja}from"framer-motion";var Qa=({children:e,id:t,shouldWrap:o=!1})=>Te.createElement(Te.Fragment,null,o?Te.createElement(Xa,{initial:!1},Te.createElement(Ja.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:c,hideOnFlowCompletion:a,onComplete:h,setVisible:d,setShowModal:g,onDismiss:C,showPagination:b=!1,customFormElements:k,allowBackNavigation:u,validationHandler:B,onFormDataChange:x,showFooter:F,prefillData:N})=>{var ce;let m={...{linkCollection:bi,multiInput:di,callToAction:wi,selectList:Ii},...i},{primaryCTAClickSideEffects:w,secondaryCTAClickSideEffects:y}=pe(),[P,O]=Qt(!1),[I,L]=Qt({}),[D,
|
|
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 Ni=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:c,hideOnFlowCompletion:a=!0,onStepCompletion:h,onButtonClick:d,dismissible:g=!0,endFlowOnDismiss:C=!1,modalPosition:b="center",repeatable:k=!1,onDismiss:u,showPagination:B=!1,allowBackNavigation:x=!1,validationHandler:F,showFrigadeBranding:N=!1,onFormDataChange:T,showFooter:m=!0,prefillData:w={}})=>{let{getFlow:y,getFlowSteps:P,isLoading:O,targetingLogicShouldHideFlow:I,getFlowStatus:L,getCurrentStepIndex:D,markFlowCompleted:_,markFlowNotStarted:H}=Z(),re=D(e),{mergeAppearanceWithDefault:R}=oe(),[q,G]=ep(!1),{setOpenFlowState:ae,getOpenFlowState:Y,hasOpenModals:ee}=ve();c=R(c);let[Pe,Ce]=i!==void 0&&r!==void 0?[i,r]:[Y(e,!0),W=>ae(e,W)];if(Ra(()=>{!q&&!O&&(G(!0),L(e)===Q&&k&&H(e),G(!0))},[q,G,O]),O)return null;let ie=y(e);if(!ie||I(ie))return null;let X=P(e);if(!X||i!==void 0&&i===!1||L(e)===Q&&a||(o=="modal"||o=="corner-modal")&&ee(e))return null;let M=()=>{Ce(!1),u&&u(),C===!0&&_(e)};if(b=="center"&&o==="modal"||o==="large-modal"){let W={padding:"24px"};return o==="large-modal"?(W.width="85%",W.height="90%",W.maxHeight="800px",W.minHeight="500px",W.padding="0"):W.width="400px",He.createElement(tt,{appearance:c,onClose:M,visible:Pe,style:W,dismissible:g,showFrigadeBranding:N},He.createElement(se,{appearance:c}),He.createElement(Po,{appearance:c,steps:X,selectedStep:re,customStepTypes:t,customVariables:n,onButtonClick:d,onStepCompletion:h,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:Ce,onDismiss:u,showPagination:B,customFormElements:s,allowBackNavigation:x,validationHandler:F,onFormDataChange:T,showFooter:m,prefillData:w}))}return o==="modal"&&b!=="center"?He.createElement(Kr,{appearance:c,onClose:M,visible:Pe},He.createElement(se,{appearance:c}),He.createElement(Po,{appearance:c,steps:X,selectedStep:re,customStepTypes:t,customVariables:n,onButtonClick:d,onStepCompletion:h,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:Ce,onDismiss:u,showPagination:B,customFormElements:s,allowBackNavigation:x,validationHandler:F,onFormDataChange:T,showFooter:m,prefillData:w})):He.createElement(He.Fragment,null,He.createElement(se,{appearance:c}),He.createElement(Po,{appearance:c,steps:X,selectedStep:re,customStepTypes:t,customVariables:n,onButtonClick:d,onStepCompletion:h,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:Ce,onDismiss:u,showPagination:B,customFormElements:s,allowBackNavigation:x,validationHandler:F,onFormDataChange:T,showFooter:m,prefillData:w}))},Oi=Ni;import{useCallback as Li,useContext as tp,useEffect as op}from"react";function lr(){let{organizationId:e,userId:t,setOrganizationId:o}=tp(j),{mutateUserFlowState:i}=Ne(),{config:r,apiUrl:n}=_e(),s=kt(),{verifySDKInitiated:p}=Pt();op(()=>{if(t&&e){if(t.startsWith(vt))return;let h=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(h)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(h,"true"))}},[t,e]);let c=Li(async h=>{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 d={foreignUserId:t,foreignUserGroupId:e,properties:h};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(d)}),i()},[e,t,r,i]),a=Li(async(h,d)=>{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 C={foreignUserId:t,foreignUserGroupId:e,events:[{event:h,properties:d}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(C)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:c,trackEventForOrganization:a}}var Di="frigade-xFrigade_guestUserId",Rt="frigade-xFrigade_userId",$i=({})=>{let{setFlowResponses:e}=Vt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ne(),{userId:r,setUserId:n}=jt(),[s,p]=ar(null),{getFlowStatus:c}=Z(),{flows:a,userProperties:h,setIsNewGuestUser:d,flowResponses:g}=rp(j),[C,b]=ar([]),[k,u]=ar([]),{organizationId:B}=lr();vo(()=>{if(!o&&t)for(let T=0;T<t.length;T++){let m=t[T],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(T){let m=a.find(w=>w.slug===T);m&&m.triggerType==="AUTOMATIC"&&!k.includes(m.slug)&&(u([...k,m.slug]),b([m]))}function F(){if(!r){let T=localStorage.getItem(Rt);if(T){n(T);return}let m=localStorage.getItem(Di);if(m){n(m);return}d(!0);let w=vt+ip();try{localStorage.setItem(Di,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 T=[];a.forEach(m=>{if(m.data){let w=m.data.match(/"imageUri":"(.*?)"/g);w&&w.forEach(y=>{let P=y.replace('"imageUri":"',"").replace('"',"");if(T.includes(P))return;let O=new Image;O.src=P,T.push(P)})}})}}catch{}},[a]),vo(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(vt))try{localStorage.setItem(Rt,r)}catch(T){console.log("Failed to save user id locally: Local storage available",T)}r===null&&setTimeout(()=>{r===null&&F()},50)},[r,a,h]);function N(){return ht.createElement(ht.Fragment,null,C.map(T=>c(T.slug)!==De?null:ht.createElement("span",{key:T.slug},ht.createElement(Oi,{flowId:T.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return ht.createElement(ht.Fragment,null,ht.createElement(N,null))};import{ErrorBoundary as Ap}from"react-error-boundary";import eo from"core-js-pure/actual/structured-clone";function pr(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(!pr(t)||!pr(o))throw new Error("deepmerge can only merge Objects");let i=eo(t);return Object.entries(o).forEach(([r,n])=>{pr(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 Mi={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 np(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(Mi[o]){let r=Mi[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function sp(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 Ui(e){let{theme:t,styleOverrides:o}=e,i=np(t),r=sp(o);return{overrides:i,css:r}}import Sp from"styled-components";import{compose as bp,variant as _i}from"styled-system";import zi from"react";import lp,{ThemeProvider as ap,useTheme as pp}from"styled-components";import{border as dp,color as cp,compose as mp,get as up,shadow as fp,space as gp,system as xp,typography as hp}from"styled-system";var Cp={width:{property:"width",scale:"sizes",transform:(e,t)=>up(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},yp=lp("div")(({css:e})=>e,mp(dp,cp,fp,gp,hp,xp(Cp))),to=({as:e,children:t,overrides:o,...i})=>{let r=pp(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>zi.createElement(yp,{as:e,...n,...i},t);if(o!==void 0){let p=at(r,o);return zi.createElement(ap,{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"}},wp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},Wi=Sp(to)(()=>({whiteSpace:"nowrap"}),bp(_i({scale:"components.Button",variants:"components.Button"}),_i({prop:"size",variants:wp})));import Tp from"styled-components";import{variant as Fp,system as kp}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 Hi=Tp(to)(Fp({scale:"components.Text",variants:"components.Text"}),kp({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Vi=4,ji="px",Pp=20,vp=Object.fromEntries(Array.from(Array(Pp+1),(e,t)=>t===0?[.5,`${.5*Vi}${ji}`]:[t,`${t*Vi}${ji}`])),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"},dr={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:vp,components:{Button:oo,Text:Bo}};var Gi="https://api.frigade.com",j=Bp({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:Gi,readonly:!1});function Ip(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Np=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var q,G;let[n,s]=Oe(t||null),[p,c]=Oe(o||null),[a,h]=Oe([]),[d,g]=Oe([]),[C,b]=Oe([]),[k,u]=Oe({}),[B,x]=Oe({}),[F,N]=Oe([]),[T,m]=Oe({}),[w,y]=Oe(!1),[P,O]=Oe(!1),[I,L]=Oe(!H(e)),D=(ae,Y)=>{if(Y==="_blank"){window.open(ae,"_blank");return}setTimeout(()=>{window.location.href=ae},50)},_={theme:{...qe.theme,...((q=i==null?void 0:i.defaultAppearance)==null?void 0:q.theme)??{}},styleOverrides:{...qe.styleOverrides,...((G=i==null?void 0:i.defaultAppearance)==null?void 0:G.styleOverrides)??{}}};function H(ae){return!!(ae&&ae.length>10&&ae.substring(0,10)==="api_public")}Eo(()=>{t&&s(t)},[t]),Eo(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(Rt)&&window.localStorage.getItem(Rt)!==n&&Ip()},[n]),Eo(()=>{o&&c(o)},[o]),Eo(()=>{if(H(e))L(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),L(!0);return}},[e,L]);let re={publicApiKey:e,userId:n,setUserId:s,setFlows:h,flows:a,failedFlowResponses:d,setFailedFlowResponses:g,flowResponses:C,setFlowResponses:b,userProperties:k,setUserProperties:u,openFlowStates:B,setOpenFlowStates:x,completedFlowsToKeepOpenDuringSession:F,setCompletedFlowsToKeepOpenDuringSession:N,customVariables:T,setCustomVariables:m,isNewGuestUser:w,setIsNewGuestUser:y,hasActiveFullPageFlow:P,setHasActiveFullPageFlow:O,organizationId:p,setOrganizationId:c,navigate:i&&i.navigate?i.navigate:D,defaultAppearance:_,shouldGracefullyDegrade:I,setShouldGracefullyDegrade:L,apiUrl:i&&i.apiUrl?i.apiUrl:Gi,readonly:i&&i.readonly?i.readonly:!1};if(I)return Ct.createElement(j.Provider,{value:re},r);let{overrides:R}=Ui(_);return Ct.createElement(Ap,{fallback:Ct.createElement(Ct.Fragment,null,r)},Ct.createElement(j.Provider,{value:re},Ct.createElement(Ep,{theme:at(_.theme,dr,R??{},(i==null?void 0:i.theme)??{})},r,Ct.createElement($i,null))))};import Ad from"react";import ue,{useEffect as Cs,useState as ys}from"react";import Ue,{useState as td}from"react";import bt from"styled-components";import No from"react";import yt from"react";import Ki from"styled-components";var qi=Ki.span`
|
|
632
|
+
`;var Ii=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=sr([]),[p,c]=sr(!1),[a,h]=sr(e.id);return nr(()=>{n.length==0&&!p&&(c(!0),o({choice:[]}))},[p]),nr(()=>{a!==e.id&&(h(e.id),s([]))},[e]),nr(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),Ye.createElement(Ti,{className:l("selectListContainer",i)},Ye.createElement(Fi,null,Ye.createElement(ki,{className:l("selectListTitle",i)},e.title),Ye.createElement(Pi,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),r.options.map((d,g)=>{let C=n.includes(d.id);return Ye.createElement(vi,{key:`select-item-${g}`,onClick:()=>{if(n.includes(d.id)){s(n.filter(b=>b!==d.id));return}n.length<r.maxChoices?s([...n,d.id]):n.length==1&&r.maxChoices==1&&s([d.id])},hideBottomBorder:g===r.options.length-1,className:l("selectListSelectItem",i)},Ye.createElement(Bi,{className:l("selectListItemImage",i)},d.imageUri&&Ye.createElement(Ei,{src:d.imageUri,alt:`select-icon-${g}`}),Ye.createElement(Ai,{appearance:i,className:l("selectListSelectItemText",i)},d.title)),Ye.createElement(Ke,{appearance:i,value:C,primaryColor:i.theme.colorPrimary}))}))};import Te,{useEffect as ko,useState as Qt}from"react";import{AnimatePresence as Xa,motion as Ja}from"framer-motion";var Qa=({children:e,id:t,shouldWrap:o=!1})=>Te.createElement(Te.Fragment,null,o?Te.createElement(Xa,{initial:!1},Te.createElement(Ja.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:c,hideOnFlowCompletion:a,onComplete:h,setVisible:d,setShowModal:g,onDismiss:C,showPagination:b=!1,customFormElements:k,allowBackNavigation:u,validationHandler:B,onFormDataChange:x,showFooter:F,prefillData:N})=>{var ce;let m={...{linkCollection:bi,multiInput:di,callToAction:wi,selectList:Ii},...i},{primaryCTAClickSideEffects:w,secondaryCTAClickSideEffects:y}=pe(),[P,O]=Qt(!1),[I,L]=Qt({}),[D,z]=Qt(!1),[H,re]=Qt(!1),[Z,R]=Qt(null),G=t[o]??null,{markStepCompleted:ae,markStepStarted:K,isLoading:ee,updateCustomVariables:Pe,markFlowCompleted:Ce}=Q();ko(()=>{Pe(r)},[r,ee]),ko(()=>{x&&x(I,ie(),t[o],o)},[I]),ko(()=>{window&&u&&!H&&(window.location.hash=t[o].id,re(!0))},[u,H,re]),ko(()=>{var U;if(window&&((U=window==null?void 0:window.location)!=null&&U.hash)&&window.location.hash.replace("#","")!==t[o].id){let me=window.location.hash.replace("#",""),te=t.findIndex(Se=>Se.id===me);te!==-1&&K(p,t[te].id)}},[(ce=window==null?void 0:window.location)==null?void 0:ce.hash,K,o,t]);function ie(){return{data:I[t[o].id]??{},stepId:t[o].id,customVariables:r}}function Y(U,me,te){let Se=o+1<t.length?t[o+1]:null;return s&&s(U,te,Se,I,ie()),n?n(U,o,me,Se):!0}function $(U,me){L(te=>{let Se={};return Se[U.id]=me,{...te,...Se}})}function _(U){return U.selectedStep.imageUri?Te.createElement(hi,{image:U.selectedStep.imageUri,appearance:e,className:l("formContainerSidebarImage",e)}):null}let ye=F&&Te.createElement(yi,{step:t[o],canContinue:P&&!D,formType:c,selectedStep:o,appearance:e,onPrimaryClick:async()=>{if(z(!0),B){let te=await B(t[o],o,t[o+1],I,ie());if(te||te===!1){R(typeof te=="string"?te:null),z(!1);return}else R(null)}let U={...ie()};await ae(p,t[o].id,U),o+1<t.length&&await K(p,t[o+1].id);let me=Y(t[o],"primary",o);o+1>=t.length&&(h&&h(),C&&C(),a&&me&&(d&&d(!1),g(!1)),await Ce(p)),w(t[o]),z(!1),window&&u&&o+1<t.length&&(window.location.hash=t[o+1].id)},onSecondaryClick:()=>{Y(t[o],"secondary",o),y(t[o])},onBack:async()=>{o-1>=0&&(z(!0),await K(p,t[o-1].id),z(!1))},steps:t,allowBackNavigation:u,errorMessage:Z});return Te.createElement(Te.Fragment,null,Te.createElement(fi,{className:l("formContainer",e)},Te.createElement(gi,null,Te.createElement(Qa,{id:o,shouldWrap:c==="large-modal"},Te.createElement(xi,{key:G.id,type:c,className:l("formContent",e)},t.map(U=>{let me=m[U.type];return G.id!==U.id?null:Te.createElement(me,{key:U.id,stepData:U,canContinue:P,setCanContinue:O,onSaveData:te=>{$(U,te)},appearance:e,customFormElements:k,flowId:p,prefillData:N})}),b&&Te.createElement(Si,{className:l("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),ye))),c=="large-modal"&&Te.createElement(_,{selectedStep:t[o]})))};import Zt from"react";import{createGlobalStyle as Za}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=Za`
|
|
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 Ni=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:c,hideOnFlowCompletion:a=!0,onStepCompletion:h,onButtonClick:d,dismissible:g=!0,endFlowOnDismiss:C=!1,modalPosition:b="center",repeatable:k=!1,onDismiss:u,showPagination:B=!1,allowBackNavigation:x=!1,validationHandler:F,showFrigadeBranding:N=!1,onFormDataChange:T,showFooter:m=!0,prefillData:w={}})=>{let{getFlow:y,getFlowSteps:P,isLoading:O,targetingLogicShouldHideFlow:I,getFlowStatus:L,getCurrentStepIndex:D,markFlowCompleted:z,markFlowNotStarted:H}=Q(),re=D(e),{mergeAppearanceWithDefault:Z}=oe(),[R,G]=ep(!1),{setOpenFlowState:ae,getOpenFlowState:K,hasOpenModals:ee}=ve();c=Z(c);let[Pe,Ce]=i!==void 0&&r!==void 0?[i,r]:[K(e,!0),_=>ae(e,_)];if(Ra(()=>{!R&&!O&&(G(!0),L(e)===J&&k&&H(e),G(!0))},[R,G,O]),O)return null;let ie=y(e);if(!ie||I(ie))return null;let Y=P(e);if(!Y||i!==void 0&&i===!1||L(e)===J&&a||(o=="modal"||o=="corner-modal")&&ee(e))return null;let $=()=>{Ce(!1),u&&u(),C===!0&&z(e)};if(b=="center"&&o==="modal"||o==="large-modal"){let _={padding:"24px"};return o==="large-modal"?(_.width="85%",_.height="90%",_.maxHeight="800px",_.minHeight="500px",_.padding="0"):_.width="400px",He.createElement(tt,{appearance:c,onClose:$,visible:Pe,style:_,dismissible:g,showFrigadeBranding:N},He.createElement(se,{appearance:c}),He.createElement(Po,{appearance:c,steps:Y,selectedStep:re,customStepTypes:t,customVariables:n,onButtonClick:d,onStepCompletion:h,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:Ce,onDismiss:u,showPagination:B,customFormElements:s,allowBackNavigation:x,validationHandler:F,onFormDataChange:T,showFooter:m,prefillData:w}))}return o==="modal"&&b!=="center"?He.createElement(Kr,{appearance:c,onClose:$,visible:Pe},He.createElement(se,{appearance:c}),He.createElement(Po,{appearance:c,steps:Y,selectedStep:re,customStepTypes:t,customVariables:n,onButtonClick:d,onStepCompletion:h,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:Ce,onDismiss:u,showPagination:B,customFormElements:s,allowBackNavigation:x,validationHandler:F,onFormDataChange:T,showFooter:m,prefillData:w})):He.createElement(He.Fragment,null,He.createElement(se,{appearance:c}),He.createElement(Po,{appearance:c,steps:Y,selectedStep:re,customStepTypes:t,customVariables:n,onButtonClick:d,onStepCompletion:h,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:Ce,onDismiss:u,showPagination:B,customFormElements:s,allowBackNavigation:x,validationHandler:F,onFormDataChange:T,showFooter:m,prefillData:w}))},Oi=Ni;import{useCallback as Li,useContext as tp,useEffect as op}from"react";function lr(){let{organizationId:e,userId:t,setOrganizationId:o}=tp(j),{mutateUserFlowState:i}=Ne(),{config:r,apiUrl:n}=_e(),s=kt(),{verifySDKInitiated:p}=Pt();op(()=>{if(t&&e){if(t.startsWith(vt))return;let h=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(h)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(h,"true"))}},[t,e]);let c=Li(async h=>{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 d={foreignUserId:t,foreignUserGroupId:e,properties:h};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(d)}),i()},[e,t,r,i]),a=Li(async(h,d)=>{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 C={foreignUserId:t,foreignUserGroupId:e,events:[{event:h,properties:d}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(C)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:c,trackEventForOrganization:a}}var Di="frigade-xFrigade_guestUserId",Rt="frigade-xFrigade_userId",$i=({})=>{let{setFlowResponses:e}=Vt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ne(),{userId:r,setUserId:n}=jt(),[s,p]=ar(null),{getFlowStatus:c}=Q(),{flows:a,userProperties:h,setIsNewGuestUser:d,flowResponses:g}=rp(j),[C,b]=ar([]),[k,u]=ar([]),{organizationId:B}=lr();vo(()=>{if(!o&&t)for(let T=0;T<t.length;T++){let m=t[T],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(T){let m=a.find(w=>w.slug===T);m&&m.triggerType==="AUTOMATIC"&&!k.includes(m.slug)&&(u([...k,m.slug]),b([m]))}function F(){if(!r){let T=localStorage.getItem(Rt);if(T){n(T);return}let m=localStorage.getItem(Di);if(m){n(m);return}d(!0);let w=vt+ip();try{localStorage.setItem(Di,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 T=[];a.forEach(m=>{if(m.data){let w=m.data.match(/"imageUri":"(.*?)"/g);w&&w.forEach(y=>{let P=y.replace('"imageUri":"',"").replace('"',"");if(T.includes(P))return;let O=new Image;O.src=P,T.push(P)})}})}}catch{}},[a]),vo(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(vt))try{localStorage.setItem(Rt,r)}catch(T){console.log("Failed to save user id locally: Local storage available",T)}r===null&&setTimeout(()=>{r===null&&F()},50)},[r,a,h]);function N(){return ht.createElement(ht.Fragment,null,C.map(T=>c(T.slug)!==De?null:ht.createElement("span",{key:T.slug},ht.createElement(Oi,{flowId:T.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return ht.createElement(ht.Fragment,null,ht.createElement(N,null))};import{ErrorBoundary as Ap}from"react-error-boundary";import eo from"core-js-pure/actual/structured-clone";function pr(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(!pr(t)||!pr(o))throw new Error("deepmerge can only merge Objects");let i=eo(t);return Object.entries(o).forEach(([r,n])=>{pr(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 Mi={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 np(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(Mi[o]){let r=Mi[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function sp(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 Ui(e){let{theme:t,styleOverrides:o}=e,i=np(t),r=sp(o);return{overrides:i,css:r}}import Sp from"styled-components";import{compose as bp,variant as _i}from"styled-system";import zi from"react";import lp,{ThemeProvider as ap,useTheme as pp}from"styled-components";import{border as dp,color as cp,compose as mp,get as up,shadow as fp,space as gp,system as xp,typography as hp}from"styled-system";var Cp={width:{property:"width",scale:"sizes",transform:(e,t)=>up(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},yp=lp("div")(({css:e})=>e,mp(dp,cp,fp,gp,hp,xp(Cp))),to=({as:e,children:t,overrides:o,...i})=>{let r=pp(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>zi.createElement(yp,{as:e,...n,...i},t);if(o!==void 0){let p=at(r,o);return zi.createElement(ap,{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"}},wp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},Wi=Sp(to)(()=>({whiteSpace:"nowrap"}),bp(_i({scale:"components.Button",variants:"components.Button"}),_i({prop:"size",variants:wp})));import Tp from"styled-components";import{variant as Fp,system as kp}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 Hi=Tp(to)(Fp({scale:"components.Text",variants:"components.Text"}),kp({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Vi=4,ji="px",Pp=20,vp=Object.fromEntries(Array.from(Array(Pp+1),(e,t)=>t===0?[.5,`${.5*Vi}${ji}`]:[t,`${t*Vi}${ji}`])),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"},dr={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:vp,components:{Button:oo,Text:Bo}};var Gi="https://api.frigade.com",j=Bp({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:Gi,readonly:!1});function Ip(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Np=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var R,G;let[n,s]=Oe(t||null),[p,c]=Oe(o||null),[a,h]=Oe([]),[d,g]=Oe([]),[C,b]=Oe([]),[k,u]=Oe({}),[B,x]=Oe({}),[F,N]=Oe([]),[T,m]=Oe({}),[w,y]=Oe(!1),[P,O]=Oe(!1),[I,L]=Oe(!H(e)),D=(ae,K)=>{if(K==="_blank"){window.open(ae,"_blank");return}setTimeout(()=>{window.location.href=ae},50)},z={theme:{...qe.theme,...((R=i==null?void 0:i.defaultAppearance)==null?void 0:R.theme)??{}},styleOverrides:{...qe.styleOverrides,...((G=i==null?void 0:i.defaultAppearance)==null?void 0:G.styleOverrides)??{}}};function H(ae){return!!(ae&&ae.length>10&&ae.substring(0,10)==="api_public")}Eo(()=>{t&&s(t)},[t]),Eo(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(Rt)&&window.localStorage.getItem(Rt)!==n&&Ip()},[n]),Eo(()=>{o&&c(o)},[o]),Eo(()=>{if(H(e))L(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),L(!0);return}},[e,L]);let re={publicApiKey:e,userId:n,setUserId:s,setFlows:h,flows:a,failedFlowResponses:d,setFailedFlowResponses:g,flowResponses:C,setFlowResponses:b,userProperties:k,setUserProperties:u,openFlowStates:B,setOpenFlowStates:x,completedFlowsToKeepOpenDuringSession:F,setCompletedFlowsToKeepOpenDuringSession:N,customVariables:T,setCustomVariables:m,isNewGuestUser:w,setIsNewGuestUser:y,hasActiveFullPageFlow:P,setHasActiveFullPageFlow:O,organizationId:p,setOrganizationId:c,navigate:i&&i.navigate?i.navigate:D,defaultAppearance:z,shouldGracefullyDegrade:I,setShouldGracefullyDegrade:L,apiUrl:i&&i.apiUrl?i.apiUrl:Gi,readonly:i&&i.readonly?i.readonly:!1};if(I)return Ct.createElement(j.Provider,{value:re},r);let{overrides:Z}=Ui(z);return Ct.createElement(Ap,{fallback:Ct.createElement(Ct.Fragment,null,r)},Ct.createElement(j.Provider,{value:re},Ct.createElement(Ep,{theme:at(z.theme,dr,Z??{},(i==null?void 0:i.theme)??{})},r,Ct.createElement($i,null))))};import Ad from"react";import ue,{useEffect as Cs,useState as ys}from"react";import Ue,{useState as td}from"react";import bt from"styled-components";import No from"react";import yt from"react";import Ki from"styled-components";var qi=Ki.span`
|
|
634
634
|
font-weight: 400;
|
|
635
635
|
font-size: 15px;
|
|
636
636
|
line-height: 20px;
|
|
@@ -800,7 +800,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
800
800
|
`,ld=bt.div`
|
|
801
801
|
flex: 2;
|
|
802
802
|
padding: 2rem;
|
|
803
|
-
`,ad=({title:e,subtitle:t,steps:o=[],style:i={},selectedStep:r,setSelectedStep:n,className:s="",customStepTypes:p=new Map,appearance:c,type:a})=>{let{mergeAppearanceWithDefault:h}=oe();c=h(c);let g={...{[ur]:en,[on]:rn,[sn]:ln},...p},[C,b]=td(0),k=r??C,u=n??b,B=o.filter(F=>F.complete===!0).length,x=()=>{var F;return!((F=o[k])!=null&&F.type)||!g[o[k].type]?g[ur]({stepData:o[k],appearance:c}):g[o[k].type]({stepData:o[k],appearance:c})};return Ue.createElement(od,{type:a,style:i,className:s,appearance:c},Ue.createElement(an,{style:{flex:1}},Ue.createElement(an,{style:{padding:"30px 0px 30px 30px",borderBottom:"none"}},Ue.createElement(rd,{className:l("checklistTitle",c),appearance:c},e),Ue.createElement(id,{className:l("checklistSubtitle",c),appearance:c},t),Ue.createElement(Le,{total:o.length,count:B,fillColor:c.theme.colorPrimary,style:{marginTop:"24px"},appearance:c})),Ue.createElement(nd,{className:l("checklistStepsContainer",c)},o.map((F,N)=>Ue.createElement(Zi,{data:F,index:N,key:N,listLength:o.length,isSelected:N===k,primaryColor:c.theme.colorPrimary,style:{justifyContent:"space-between"},onClick:()=>{u(N)}})))),Ue.createElement(sd,{appearance:c,className:l("checklistDivider",c)}),Ue.createElement(ld,null,Ue.createElement(x,null)))},fr=ad;import
|
|
803
|
+
`,ad=({title:e,subtitle:t,steps:o=[],style:i={},selectedStep:r,setSelectedStep:n,className:s="",customStepTypes:p=new Map,appearance:c,type:a})=>{let{mergeAppearanceWithDefault:h}=oe();c=h(c);let g={...{[ur]:en,[on]:rn,[sn]:ln},...p},[C,b]=td(0),k=r??C,u=n??b,B=o.filter(F=>F.complete===!0).length,x=()=>{var F;return!((F=o[k])!=null&&F.type)||!g[o[k].type]?g[ur]({stepData:o[k],appearance:c}):g[o[k].type]({stepData:o[k],appearance:c})};return Ue.createElement(od,{type:a,style:i,className:s,appearance:c},Ue.createElement(an,{style:{flex:1}},Ue.createElement(an,{style:{padding:"30px 0px 30px 30px",borderBottom:"none"}},Ue.createElement(rd,{className:l("checklistTitle",c),appearance:c},e),Ue.createElement(id,{className:l("checklistSubtitle",c),appearance:c},t),Ue.createElement(Le,{total:o.length,count:B,fillColor:c.theme.colorPrimary,style:{marginTop:"24px"},appearance:c})),Ue.createElement(nd,{className:l("checklistStepsContainer",c)},o.map((F,N)=>Ue.createElement(Zi,{data:F,index:N,key:N,listLength:o.length,isSelected:N===k,primaryColor:c.theme.colorPrimary,style:{justifyContent:"space-between"},onClick:()=>{u(N)}})))),Ue.createElement(sd,{appearance:c,className:l("checklistDivider",c)}),Ue.createElement(ld,null,Ue.createElement(x,null)))},fr=ad;import M,{useState as fd}from"react";import pn from"react";import pd from"styled-components";var dd=pd.svg`
|
|
804
804
|
transition: 'transform 0.35s ease-in-out';
|
|
805
805
|
`,Mt=({color:e="#323232",style:t,className:o})=>pn.createElement(dd,{width:"7",height:"10",viewBox:"0 0 9 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:t,className:o},pn.createElement("path",{d:"M1 13L7.5 7L0.999999 1",stroke:e,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}));import{motion as gd}from"framer-motion";import ge from"styled-components";var gr={boxShadow:"0px 6px 25px rgba(0, 0, 0, 0.06)",padding:"32px",maxHeight:"700px",msOverflowStyle:"none",scrollbarWidth:"none",paddingBottom:"12px",minHeight:"610px"},dn=ge.div`
|
|
806
806
|
max-height: 350px;
|
|
@@ -1015,7 +1015,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1015
1015
|
line-height: 14px;
|
|
1016
1016
|
font-weight: 400;
|
|
1017
1017
|
cursor: pointer;
|
|
1018
|
-
`;var ud=({steps:e,style:t,title:o,primaryColor:i,appearance:r,onButtonClick:n})=>{let{primaryCTAClickSideEffects:s}=pe();return Qe.createElement(En,{style:t,className:l("guideContainer",r)},Qe.createElement(In,{className:l("guideTitle",r)},o),Qe.createElement(An,{className:l("guideItemContainer",r)},e.map((p,c)=>Qe.createElement(Nn,{key:`guide-${p.id??c}`,as:md.div,whileHover:{boxShadow:"0px 2px 8px rgba(0, 0, 0, 0.05)",transition:{duration:.25}},className:l("guideItem",r)},p.icon&&Qe.createElement(On,{className:l("guideIcon",r)},Qe.createElement(Ln,null,p.icon)),Qe.createElement(Dn,{className:l("guideItemTitle",r),dangerouslySetInnerHTML:fe(p.title)}),Qe.createElement($n,{className:l("guideItemSubtitle",r),dangerouslySetInnerHTML:fe(p.subtitle)}),Qe.createElement(Mn,{className:l("guideItemLink",r),color:i,onClick:()=>{p.primaryButtonUri&&s(p),n&&n(p)}},p.primaryButtonTitle)))))},no=ud;var xd=({steps:e,title:t,subtitle:o,stepsTitle:i,visible:r,onClose:n,selectedStep:s,setSelectedStep:p,customStepTypes:c,appearance:a,guideData:h,guideTitle:d,onGuideButtonClick:g})=>{let C=({stepData:m,handleSecondaryCTAClick:w,handleCTAClick:y})=>m?
|
|
1018
|
+
`;var ud=({steps:e,style:t,title:o,primaryColor:i,appearance:r,onButtonClick:n})=>{let{primaryCTAClickSideEffects:s}=pe();return Qe.createElement(En,{style:t,className:l("guideContainer",r)},Qe.createElement(In,{className:l("guideTitle",r)},o),Qe.createElement(An,{className:l("guideItemContainer",r)},e.map((p,c)=>Qe.createElement(Nn,{key:`guide-${p.id??c}`,as:md.div,whileHover:{boxShadow:"0px 2px 8px rgba(0, 0, 0, 0.05)",transition:{duration:.25}},className:l("guideItem",r)},p.icon&&Qe.createElement(On,{className:l("guideIcon",r)},Qe.createElement(Ln,null,p.icon)),Qe.createElement(Dn,{className:l("guideItemTitle",r),dangerouslySetInnerHTML:fe(p.title)}),Qe.createElement($n,{className:l("guideItemSubtitle",r),dangerouslySetInnerHTML:fe(p.subtitle)}),Qe.createElement(Mn,{className:l("guideItemLink",r),color:i,onClick:()=>{p.primaryButtonUri&&s(p),n&&n(p)}},p.primaryButtonTitle)))))},no=ud;var xd=({steps:e,title:t,subtitle:o,stepsTitle:i,visible:r,onClose:n,selectedStep:s,setSelectedStep:p,customStepTypes:c,appearance:a,guideData:h,guideTitle:d,onGuideButtonClick:g})=>{let C=({stepData:m,handleSecondaryCTAClick:w,handleCTAClick:y})=>m?M.createElement(yn,{className:l("checklistStepContainer",a),"data-testid":"checklistStepContainer"},M.createElement(Sn,{appearance:a,className:l("checklistStepTitle",a),dangerouslySetInnerHTML:fe(m.title)}),M.createElement(bn,{appearance:a,className:l("checklistStepSubtitle",a),dangerouslySetInnerHTML:fe(m.subtitle)}),M.createElement(wn,{className:l("checklistCTAContainer",a)},m.secondaryButtonTitle&&M.createElement(ne,{title:m.secondaryButtonTitle,onClick:w,appearance:a,secondary:!0}),M.createElement(ne,{title:m.primaryButtonTitle,onClick:y,appearance:a}))):M.createElement(M.Fragment,null),k={...{default:m=>{var O;if((O=e[x])!=null&&O.StepContent){let I=e[x].StepContent;return M.createElement("div",null,I)}let w=e[x];return M.createElement(C,{stepData:m,handleCTAClick:()=>{w.handlePrimaryButtonClick&&w.handlePrimaryButtonClick()},handleSecondaryCTAClick:()=>{w.handleSecondaryButtonClick&&w.handleSecondaryButtonClick()}})}},...c},[u,B]=fd(0),x=s??u,F=p??B,N=()=>{var m;return e?!((m=e[x])!=null&&m.type)||!k[e[x].type]?k.default(e[x]):k[e[x].type]({stepData:e[x],primaryColor:a.theme.colorPrimary}):M.createElement(M.Fragment,null)},T=e.filter(m=>m.complete).length;return r?(a.theme.modalContainer||(a.theme.borderRadius&&(gr.borderRadius=a.theme.borderRadius+"px"),a.theme.modalContainer=gr),M.createElement(tt,{onClose:n,visible:r,appearance:a},M.createElement(vn,null,M.createElement(cn,null,M.createElement(mn,{appearance:a,className:l("checklistTitle",a)},t),M.createElement(un,{appearance:a,className:l("checklistSubtitle",a)},o)),M.createElement(dn,null,e&&e.length>0&&M.createElement(fn,{className:l("stepsContainer",a)},M.createElement(gn,null,M.createElement("div",{style:{flex:3}},M.createElement(xn,{className:l("stepsTitle",a)},i)),M.createElement(Pn,null,M.createElement(Le,{fillColor:a.theme.colorPrimary,style:{width:"100%"},count:T,total:e.length,appearance:a}))),M.createElement(hn,null,M.createElement(Cn,{className:l("checklistStepListContainer",a),appearance:a},e.map((m,w)=>{let y=x===w;return M.createElement(Tn,{selected:y,className:l(`checklistStepListItem${y?"Selected":""}`,a),key:`checklist-guide-step-${m.id??w}`,disabled:m.blocked,onClick:()=>{m.blocked||F(w)},title:m.blocked?"Finish remaining steps to continue":void 0},y&&M.createElement(Io,{className:l("checklistStepItemSelectedIndicator",a),as:gd.div,layoutId:"checklist-step-selected",style:{backgroundColor:a.theme.colorPrimary,borderRadius:0,height:"100%",top:"0%",width:"2px"}}),M.createElement(Fn,{selected:y,className:l(`checklistStepListStepName${y?"Selected":""}`,a)},m.stepName),M.createElement(kn,null,M.createElement(Ke,{value:m.complete,type:"round",primaryColor:a.theme.colorPrimary,progress:m.progress,appearance:a}),M.createElement(Bn,null,M.createElement(Mt,{style:{marginLeft:"10px"},color:a.theme.colorBackgroundSecondary}))))})),M.createElement(N,null))),h&&h.length>0&&M.createElement(no,{steps:h,title:d,primaryColor:a.theme.colorPrimary,style:{border:"none",boxShadow:"none"},appearance:a,onButtonClick:m=>(g&&g(m),!0)}))))):M.createElement(M.Fragment,null)},xr=xd;import{useEffect as hd,useState as Cd}from"react";var $o=()=>{let e={isSmall:"(max-width: 480px)",isMedium:"(min-width: 481px) AND (max-width: 1023px)",isLarge:"(min-width: 1025px)"},t=Object.fromEntries(Object.entries(e).map(([p])=>[p,!1])),[o,i]=Cd(t),r=null,n=()=>{r!==null?clearTimeout(r):s(),r=setTimeout(()=>{s()},16)},s=()=>{let p=Object.fromEntries(Object.entries(e).map(([c,a])=>{if(!window)return[c,!1];let h=window.matchMedia(a);return h.addEventListener("change",n),[c,h.matches]}));i(p)};return hd(()=>{s()},[]),o};import ke,{useEffect as Zn,useState as bd}from"react";import xe from"react";import{AnimatePresence as yd,motion as Sd}from"framer-motion";import Ze from"styled-components";var Un=Ze.div`
|
|
1019
1019
|
background-color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorBackground}};
|
|
1020
1020
|
border: 1px solid;
|
|
1021
1021
|
border-color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorBorder}};
|
|
@@ -1243,7 +1243,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1243
1243
|
color: ${({theme:e})=>e.colorTextSecondary};
|
|
1244
1244
|
${e=>e.blocked||e.complete?"opacity: 0.4;":`
|
|
1245
1245
|
`}
|
|
1246
|
-
`;var gs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=oe(),{primaryCTAClickSideEffects:r}=pe();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:c=!1,blocked:a=!1}=e,h=e.primaryButtonTitle||e.secondaryButtonTitle,d=()=>{r(e)};return zt.createElement(ls,{className:l("carouselCard",o),onClick:a?null:d,style:t,blocked:a,complete:c},n&&zt.createElement(as,{className:l("carouselCardImage",o),src:n,alt:p,style:{opacity:c||a?.4:1}}),c&&zt.createElement(ds,{className:l("carouselCompletedPill",o)},zt.createElement(fs,{style:{color:"#108E0B"}},"Complete")),p&&zt.createElement(us,{blocked:a,complete:c,className:l("carouselCardTitle",o)},p),s&&zt.createElement(pt.Quiet,{blocked:a,complete:c,className:l("carouselCardSubtitle",o)},s))};var Ed=()=>le.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},le.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),le.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),le.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),xs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=wt(!1),[n,s]=wt(!1);Cr(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},c=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?le.createElement(is,{style:c,reversed:n,onAnimationEnd:n?p:null},le.createElement(ns,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},le.createElement(Ed,null))):null},hs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=Bd(null),[n,s]=wt(!1),[p,c]=wt(!1),[a,h]=wt(null),[d,g]=wt([]),[C,b]=wt(0),{isSmall:k}=$o(),u=k?1:3,{getFlowMetadata:B,getFlowSteps:x,getNumberOfStepsCompleted:F,updateCustomVariables:N,isLoading:T}=
|
|
1246
|
+
`;var gs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=oe(),{primaryCTAClickSideEffects:r}=pe();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:c=!1,blocked:a=!1}=e,h=e.primaryButtonTitle||e.secondaryButtonTitle,d=()=>{r(e)};return zt.createElement(ls,{className:l("carouselCard",o),onClick:a?null:d,style:t,blocked:a,complete:c},n&&zt.createElement(as,{className:l("carouselCardImage",o),src:n,alt:p,style:{opacity:c||a?.4:1}}),c&&zt.createElement(ds,{className:l("carouselCompletedPill",o)},zt.createElement(fs,{style:{color:"#108E0B"}},"Complete")),p&&zt.createElement(us,{blocked:a,complete:c,className:l("carouselCardTitle",o)},p),s&&zt.createElement(pt.Quiet,{blocked:a,complete:c,className:l("carouselCardSubtitle",o)},s))};var Ed=()=>le.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},le.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),le.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),le.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),xs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=wt(!1),[n,s]=wt(!1);Cr(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},c=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?le.createElement(is,{style:c,reversed:n,onAnimationEnd:n?p:null},le.createElement(ns,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},le.createElement(Ed,null))):null},hs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=Bd(null),[n,s]=wt(!1),[p,c]=wt(!1),[a,h]=wt(null),[d,g]=wt([]),[C,b]=wt(0),{isSmall:k}=$o(),u=k?1:3,{getFlowMetadata:B,getFlowSteps:x,getNumberOfStepsCompleted:F,updateCustomVariables:N,isLoading:T}=Q();Cr(()=>{N(o)},[o,T]),Cr(()=>{if(T)return;let I=B(e),L=F(e),D=x(e);h(I),I.data!==null&&(g(D.sort((z,H)=>Number(z.complete)-Number(H.complete))),c(D.length>u),b(L))},[T]);let m=[];for(let I=0;I<d.length;I+=u)m.push(d.slice(I,I+u));let w=I=>{let L=I.target,D=L.scrollWidth-L.clientWidth,z=Math.ceil(L.scrollLeft);z>0&&n===!1&&s(!0),z===0&&n===!0&&s(!1),z<D&&p===!1&&c(!0),z===D&&p===!0&&c(!1)},y=(I=!0)=>{let L=I?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*L,behavior:"smooth"})},P=null,O=I=>{P!==null?clearTimeout(P):w(I),P=setTimeout(()=>{w(I)},16)};return T?null:le.createElement(ps,{className:be(l("carouselContainer",t),i)},le.createElement("div",{style:{display:"flex",justifyContent:k?"center":"space-between",marginBottom:20,flexWrap:k?"wrap":"nowrap",gap:k?16:20}},le.createElement("div",null,le.createElement(cs,{className:l("carouselTitle",t)},a==null?void 0:a.title),le.createElement(pt.Quiet,{className:l("carouselSubtitle",t)},a==null?void 0:a.subtitle)),le.createElement(ms,{className:l("progressWrapper",t)},le.createElement(Le,{count:C,total:d.length,appearance:t}))),le.createElement("div",{style:{position:"relative"}},le.createElement(xs,{show:n,onClick:()=>y(!1)}),le.createElement(xs,{side:"right",show:p,onClick:y}),le.createElement(os,{ref:r,onScroll:O},m.map((I,L)=>le.createElement(rs,{key:L,style:{flex:`0 0 calc(100% - ${d.length>u?36:0}px)`}},I.map((D,z)=>le.createElement(gs,{key:z,stepData:D,style:{flex:d.length>u?`0 1 calc(100% / ${u} - 16px * 2 / ${u})`:1},appearance:t})))))),le.createElement(se,{appearance:t}))};var yr=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:r,className:n,type:s="inline",onDismiss:p,visible:c,customVariables:a,onStepCompletion:h,onButtonClick:d,appearance:g,hideOnFlowCompletion:C,setVisible:b,customStepTypes:k,checklistStyle:u="default",autoExpandFirstIncompleteStep:B,autoExpandNextStep:x,...F})=>{let{getFlow:N,getFlowSteps:T,markStepCompleted:m,getStepStatus:w,getNumberOfStepsCompleted:y,isLoading:P,targetingLogicShouldHideFlow:O,updateCustomVariables:I,getFlowMetadata:L,isStepBlocked:D,getFlowStatus:z,hasActiveFullPageFlow:H,setHasActiveFullPageFlow:re}=Q(),{primaryCTAClickSideEffects:Z,secondaryCTAClickSideEffects:R}=pe(),{getOpenFlowState:G,setOpenFlowState:ae}=ve(),[K,ee]=ys(r||0),[Pe,Ce]=ys(!1),ie=c===void 0?G(e):c,Y=s==="modal",{mergeAppearanceWithDefault:$}=oe(),{isLarge:_}=$o();if(g=$(g),Cs(()=>{I(a)},[a,P]),Cs(()=>{c!==void 0&&(Y&&c===!0?re(!0):Y&&c===!1&&re(!1))},[c,b,H]),P)return null;let ye=N(e);if(!ye||O(ye))return null;let ce=T(e);if(!ce||C===!0&&z(e)===J)return null;let U=L(e);if(U!=null&&U.title&&(t=U.title),U!=null&&U.subtitle&&(o=U.subtitle),!Pe&&r===void 0&&y(e)>0){let A=ce.findIndex(X=>X.complete===!1);ee(A>-1?A:ce.length-1),Ce(!0)}function me(){if(K+1>=ce.length){Y&&ae(e,!1);return}D(e,ce[K+1].id)||ee(K+1)}function te(A,X,mt){let vr=K+1<ce.length?ce[K+1]:null;d&&d(A,K,X,vr)===!0&&Y&&ze(),h&&h(A,mt,vr),!h&&!d&&(A.primaryButtonUri||A.secondaryButtonUri)&&Y&&ze()}function Se(){return ce.map((A,X)=>({...A,handleSecondaryButtonClick:()=>{me(),R(A),A.skippable===!0&&m(e,A.id,{skipped:!0}),te(A,"secondary",X)},handlePrimaryButtonClick:()=>{(!A.completionCriteria&&(A.autoMarkCompleted||A.autoMarkCompleted===void 0)||A.completionCriteria&&A.autoMarkCompleted===!0)&&(m(e,A.id),me()),te(A,"primary",X),Z(A),w(e,A.id)===$e&&me()}}))}function V(){return ue.createElement(se,{appearance:g})}let Ae={steps:Se(),title:t,subtitle:o,primaryColor:g.theme.colorPrimary,appearance:g,customStepTypes:k,type:s,className:n,autoExpandFirstIncompleteStep:B,autoExpandNextStep:x};function ze(){ae(e,!1),p&&p(),b&&b(!1)}function Ho(){return ue.createElement(ue.Fragment,null,ue.createElement(V,null),ue.createElement(hs,{flowId:e,appearance:g,customVariables:a,className:n}))}function f(){return ue.createElement(ue.Fragment,null,ue.createElement(V,null),ue.createElement(hr,{visible:ie,onClose:()=>{ze()},selectedStep:K,setSelectedStep:ee,autoExpandNextStep:!0,appearance:g,...Ae}))}function S(){if(!_)return f();let A=F.guideFlowId,X;return A&&N(A)&&(X=T(A)),ue.createElement(ue.Fragment,null,ue.createElement(V,null),ue.createElement(xr,{visible:ie,stepsTitle:U.stepsTitle?U.stepsTitle:"Your quick start guide",onClose:()=>{ze()},selectedStep:K,setSelectedStep:ee,guideData:X,guideTitle:F.guideTitle??"Guide",appearance:g,title:t,subtitle:o,onGuideButtonClick:mt=>{te(mt,"link",0)},customStepTypes:k,...Ae}))}function E(){if(!_)return f();let A=ue.createElement(fr,{flowId:e,style:i,selectedStep:K,setSelectedStep:ee,appearance:g,type:s,...Ae});return Y?ue.createElement(tt,{onClose:()=>{ze()},visible:ie,appearance:g,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},ue.createElement(V,null),A):ue.createElement(ue.Fragment,null,ue.createElement(V,null),A)}switch(u){case"condensed":return f();case"with-guide":return S();case"default":return E();case"carousel":return Ho();default:return E()}};var Id=e=>Ad.createElement(yr,{type:"inline",...e});import ct,{useEffect as Od}from"react";import Ve from"react";import Mo from"styled-components";var Ss=Mo.div`
|
|
1247
1247
|
border: 1px solid ${e=>e.appearance.theme.colorBorder};
|
|
1248
1248
|
border-radius: 8px;
|
|
1249
1249
|
padding: 6px 10px 6px 10px;
|
|
@@ -1308,7 +1308,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1308
1308
|
:hover {
|
|
1309
1309
|
opacity: 0.8;
|
|
1310
1310
|
}
|
|
1311
|
-
`;var Es=({title:e,subtitle:t,icon:o,appearance:i,count:r,total:n,className:s,style:p})=>dt.createElement(dt.Fragment,null,dt.createElement(ks,{appearance:i,className:be(l("fullWidthProgressBadgeContainer",i),s??""),style:p},o&&dt.createElement(Ps,{className:l("fullWidthProgressBadgeIcon",i)},o),dt.createElement(vs,null,dt.createElement(we,{size:"small",appearance:i,title:e,subtitle:t})),dt.createElement(Bs,{className:l("fullWidthProgressBadgeProgressContainer",i)},dt.createElement(Le,{count:r,total:n,display:"percent",textLocation:"top",fillColor:i.theme.colorPrimary}))));var Ld=({flowId:e,title:t,subtitle:o,icon:i,style:r,onClick:n,className:s,customVariables:p,hideOnFlowCompletion:c,appearance:a,type:h="default"})=>{let{getFlow:d,getFlowSteps:g,getFlowStatus:C,getNumberOfStepsCompleted:b,isLoading:k,targetingLogicShouldHideFlow:u,updateCustomVariables:B}=
|
|
1311
|
+
`;var Es=({title:e,subtitle:t,icon:o,appearance:i,count:r,total:n,className:s,style:p})=>dt.createElement(dt.Fragment,null,dt.createElement(ks,{appearance:i,className:be(l("fullWidthProgressBadgeContainer",i),s??""),style:p},o&&dt.createElement(Ps,{className:l("fullWidthProgressBadgeIcon",i)},o),dt.createElement(vs,null,dt.createElement(we,{size:"small",appearance:i,title:e,subtitle:t})),dt.createElement(Bs,{className:l("fullWidthProgressBadgeProgressContainer",i)},dt.createElement(Le,{count:r,total:n,display:"percent",textLocation:"top",fillColor:i.theme.colorPrimary}))));var Ld=({flowId:e,title:t,subtitle:o,icon:i,style:r,onClick:n,className:s,customVariables:p,hideOnFlowCompletion:c,appearance:a,type:h="default"})=>{let{getFlow:d,getFlowSteps:g,getFlowStatus:C,getNumberOfStepsCompleted:b,isLoading:k,targetingLogicShouldHideFlow:u,updateCustomVariables:B}=Q(),{mergeAppearanceWithDefault:x}=oe();a=x(a);let{setOpenFlowState:F,getOpenFlowState:N}=ve();if(Od(()=>{B(p)},[p,k]),k)return null;let T=d(e);if(!T||u(T)||c===!0&&C(e)===J)return null;let m=g(e),w=b(e);return h==="full-width"?ct.createElement(ct.Fragment,null,ct.createElement(se,{appearance:a}),ct.createElement(Es,{title:t,subtitle:o,count:w,total:m.length,style:r,className:s,appearance:a,icon:i,onClick:()=>{}})):ct.createElement(ct.Fragment,null,ct.createElement(se,{appearance:a}),ct.createElement(Fs,{count:w,total:m.length,title:t,style:r,onClick:()=>{F(e,!0),n&&n()},type:h,className:s,appearance:a}))};import Dd from"react";var $d=({flowId:e,style:t,appearance:o,...i})=>{let{getFlow:r,targetingLogicShouldHideFlow:n,getFlowSteps:s}=Q(),{mergeAppearanceWithDefault:p}=oe();o=p(o);let c=r(e);if(!c||n(c))return null;let a=s(e);return Dd.createElement(no,{steps:a,style:t,appearance:o,...i})};import Wt,{useContext as Yd,useEffect as Xd}from"react";import W,{useEffect as Uo,useLayoutEffect as Ns,useRef as Wd,useState as lo}from"react";import ao from"styled-components";import{useCallback as Md,useEffect as Ud,useState as zd}from"react";var Sr=(e,t,o,i={x:20,y:20},r)=>{let n=r=="fixed"?0:window.scrollY,s=r=="fixed"?0:window.scrollX;return t==="left"?{x:e.left-o+i.x+s,y:e.top-i.y+n}:t==="right"?{x:e.left+e.width+i.x+s,y:e.top-i.y+n}:{x:0,y:0}},As=new DOMRect;function _d(e){let t=As;return e&&(t=e.getBoundingClientRect()),t}function Is(e,t){let[o,i]=zd(As),r=Md(()=>{e&&i(_d(e))},[e]);return Ud(()=>(r(),window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)),[e,t]),o}var Os=300,Ls=100,Hd=500,_t=12,Vd=ao.div`
|
|
1312
1312
|
width: 100%;
|
|
1313
1313
|
height: 100%;
|
|
1314
1314
|
border-radius: 9999px;
|
|
@@ -1349,7 +1349,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1349
1349
|
`,qd=ao(Ds)`
|
|
1350
1350
|
width: ${_t+12}px;
|
|
1351
1351
|
height: ${_t+12}px;
|
|
1352
|
-
`,Kd=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:r=!0,primaryColor:n="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:c={},selectedStep:a=0,customStepTypes:h,appearance:d,dismissible:g=!1,showHighlightOnly:C,showStepCount:b=!0,completedStepsCount:k=0,showFrigadeBranding:u=!1})=>{var
|
|
1352
|
+
`,Kd=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:r=!0,primaryColor:n="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:c={},selectedStep:a=0,customStepTypes:h,appearance:d,dismissible:g=!1,showHighlightOnly:C,showStepCount:b=!0,completedStepsCount:k=0,showFrigadeBranding:u=!1})=>{var U,me,te,Se;let[B,x]=lo(),[F,N]=lo(new Date),T=Wd(null),[m,w]=lo(document.querySelector(e[a].selector)),y=Is(m,F),[P,O]=lo(),[I,L]=lo(!C),D=(me=(U=e[a])==null?void 0:U.props)!=null&&me.position?e[a].props.position:"absolute",z=((Se=(te=e[a])==null?void 0:te.props)==null?void 0:Se.zIndex)??90,H=(B==null?void 0:B.width)??Os,re=(B==null?void 0:B.height)??Ls;Ns(()=>{T.current&&x({width:T.current.clientWidth,height:T.current.clientHeight})},[a,F,D]),Uo(()=>{C||L(!0)},[a]);let Z=i==="auto"?"right":i,R=Sr(y,Z,H,s,D),G=y.right+H>(window.innerWidth||document.documentElement.clientWidth),ae=y.bottom+Ls>(window.innerHeight||document.documentElement.clientHeight);G&&i==="auto"&&(R=Sr(y,"left",H,s,D),Z="left");let K=window.location.pathname.split("/").pop(),ee=()=>{let V=document.querySelector(e[a].selector);if(!V){O(void 0),w(null);return}P&&P===JSON.stringify(V==null?void 0:V.getBoundingClientRect())||(w(V),N(new Date),V&&O(JSON.stringify(V.getBoundingClientRect())))};if(Uo(()=>{let V=new MutationObserver(ee);return V.observe(document.body,{subtree:!0,childList:!0}),()=>V.disconnect()},[ee]),Uo(()=>{let V=new MutationObserver(ee);return V.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>V.disconnect()},[ee]),Uo(()=>{let V=setInterval(()=>{ee()},10);return()=>clearInterval(V)},[ee]),Ns(()=>{setTimeout(()=>{ee()},Hd),ee()},[a,K]),m===null||!p||y.height===0&&y.width===0)return null;let Pe=()=>{let V=()=>{if(e[a].handlePrimaryButtonClick&&(e[a].handlePrimaryButtonClick(),L(!1),setTimeout(()=>{ee()},30)),k===e.length-1)return o()},Ae=()=>{e[a].handleSecondaryButtonClick&&(e[a].handleSecondaryButtonClick(),C&&!e[a].secondaryButtonUri&&L(!1))};return W.createElement(W.Fragment,null,b&&e.length>1&&W.createElement(_r,null,W.createElement(Hr,{className:l("tooltipStepCounter",d)},a+1," of ",e.length)),W.createElement(Wr,{showStepCount:b,className:l("tooltipCTAContainer",d)},e[a].secondaryButtonTitle&&W.createElement(ne,{title:e[a].secondaryButtonTitle,appearance:d,onClick:Ae,size:"small",withMargin:!1,secondary:!0}),e[a].primaryButtonTitle&&W.createElement(ne,{title:e[a].primaryButtonTitle,appearance:d,onClick:V,withMargin:!1,size:"small"})))},Ce=()=>W.createElement(W.Fragment,null,g&&W.createElement($r,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:l("tooltipClose",d)},W.createElement(Be,null)),e[a].imageUri&&W.createElement(Mr,{dismissible:g,appearance:d,src:e[a].imageUri,className:l("tooltipImageContainer",d)}),e[a].videoUri&&!e[a].imageUri&&W.createElement(Ur,{dismissible:g,appearance:d,className:l("tooltipVideoContainer",d)},W.createElement(st,{appearance:d,videoUri:e[a].videoUri})),W.createElement(we,{appearance:d,title:e[a].title,subtitle:e[a].subtitle,size:"small"}),W.createElement(zr,{className:l("tooltipFooter",d)},W.createElement(Pe,null))),Y={...{default:V=>{var Ae;if((Ae=e[a])!=null&&Ae.StepContent){let ze=e[a].StepContent;return W.createElement("div",null,ze)}return W.createElement(Ce,null)}},...h},$=()=>{var V;return e?!((V=e[a])!=null&&V.type)||!Y[e[a].type]?Y.default(e[a]):Y[e[a].type]({stepData:e[a],primaryColor:n}):W.createElement(W.Fragment,null)};if(C&&e[a].complete===!0)return null;let _={top:(R==null?void 0:R.y)-_t,left:(Z=="left"?y.x+s.x:(R==null?void 0:R.x)-_t)??0,cursor:C?"pointer":"default",position:D},ye=()=>{let Ae=_.left+(Z=="left"?-H:24);return Math.min(Math.max(Ae,20),window.innerWidth-H-20)},ce=()=>{C&&(N(new Date),L(!I))};return W.createElement(Gd,null,W.createElement(qd,{style:_,zIndex:z,className:l("tourHighlightContainer",d)},r&&e[a].showHighlight!==!1&&W.createElement(W.Fragment,null,W.createElement(jd,{style:{position:D},onClick:ce,primaryColor:d.theme.colorPrimary,className:l("tourHighlightInnerCircle",d)}),W.createElement(Vd,{style:{position:"absolute"},onClick:ce,primaryColor:d.theme.colorPrimary,className:l("tourHighlightOuterCircle",d)}))),W.createElement(Ds,{style:{..._,left:ye()},zIndex:z+1,className:l("tooltipContainerWrapper",d)},I&&W.createElement(W.Fragment,null,W.createElement(mo,{ref:T,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...c},appearance:d,className:l("tooltipContainer",d),maxWidth:Os,zIndex:z+10},W.createElement($,null)),u&&W.createElement(jr,{className:l("poweredByFrigadeTooltipRibbon",d),appearance:d,zIndex:z+10},W.createElement(uo,{appearance:d})))))},zo=Kd;import{Portal as Jd}from"react-portal";var Qd=({flowId:e,customVariables:t,appearance:o,onStepCompletion:i,onButtonClick:r,showTooltipsSimultaneously:n=!1,onDismiss:s,dismissible:p,tooltipPosition:c="auto",showHighlightOnly:a=!1,dismissBehavior:h="complete-flow",onComplete:d,skipIfNotFound:g=!1,...C})=>{let{getFlow:b,getFlowSteps:k,isLoading:u,targetingLogicShouldHideFlow:B,markStepCompleted:x,markStepStarted:F,markFlowCompleted:N,updateCustomVariables:T,getCurrentStepIndex:m,getStepStatus:w,isStepBlocked:y,getFlowStatus:P,getNumberOfStepsCompleted:O}=Q(),{isLoadingUserFlowStateData:I}=Ne(),{primaryCTAClickSideEffects:L,secondaryCTAClickSideEffects:D}=pe(),{hasOpenModals:z}=ve(),H=m(e),{openFlowStates:re}=Yd(j),{mergeAppearanceWithDefault:Z}=oe();if(o=Z(o),Xd(()=>{T(t)},[t,u]),I)return null;let R=b(e);if(!R||B(R)||P(e)==J||z())return null;let G=k(e);if(Object.keys(re).length>0){let $=Object.keys(re).find(_=>re[_]===!0);if($!==void 0&&$!==e)return Wt.createElement(Wt.Fragment,null)}async function ae($){if(await x(e,$.id),G.map(_=>w(e,_.id)).every(_=>_===$e)){await N(e);return}if(!a&&H+1<G.length){if(y(e,G[H+1].id))return;await F(e,G[H+1].id)}}function K($,_,ye){let ce=H+1<G.length?G[H+1]:null;r&&r($,H,_,ce),i&&i($,ye,ce)}function ee(){return G.map($=>({...$,handleSecondaryButtonClick:async()=>{D($),$.skippable===!0&&await x(e,$.id,{skipped:!0}),K($,"secondary",H)},handlePrimaryButtonClick:async()=>{(!$.completionCriteria&&($.autoMarkCompleted||$.autoMarkCompleted===void 0)||$.completionCriteria&&$.autoMarkCompleted===!0)&&await ae($),K($,"primary",H),L($)}}))}async function Pe($){s&&s(),h==="complete-flow"?await N(e):await x(e,$.id)}function Ce(){d&&d()}let ie=!document.querySelector(G[H].selector);function Y(){let $=G.findIndex(_=>!!document.querySelector(_.selector));return G.map((_,ye)=>ie&&!n&&ye!==$&&g?null:Wt.createElement(zo,{key:_.id,appearance:o,steps:ee(),selectedStep:ye,showTooltipsSimultaneously:n,dismissible:p,onDismiss:()=>Pe(_),tooltipPosition:c,showHighlightOnly:a,completedStepsCount:O(e),onComplete:Ce,...C}))}return Wt.createElement(Jd,null,Wt.createElement(se,{appearance:o}),n||ie&&g?Y():Wt.createElement(zo,{appearance:o,steps:ee(),selectedStep:H,showTooltipsSimultaneously:n,dismissible:p,onDismiss:()=>Pe(G[H]),tooltipPosition:c,completedStepsCount:O(e),showHighlightOnly:a,onComplete:Ce,...C}))};import Fe,{useEffect as Zd,useRef as Rd,useState as ec}from"react";import{Portal as tc}from"react-portal";import Tt from"styled-components";var $s=Tt.button`
|
|
1353
1353
|
${e=>v(e)} {
|
|
1354
1354
|
// Anything inside this block will be ignored if the user provides a custom class
|
|
1355
1355
|
|
|
@@ -1437,7 +1437,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1437
1437
|
font-size: 14px;
|
|
1438
1438
|
|
|
1439
1439
|
padding: 8px 12px;
|
|
1440
|
-
`;import{AnimatePresence as Ks,motion as Ys}from"framer-motion";import Vs from"react";var js=({style:e,className:t})=>Vs.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none",viewBox:"0 0 18 18",style:e,className:t},Vs.createElement("path",{fill:"currentColor",d:"M13.43 4.938a4.494 4.494 0 00-1.043-1.435A4.955 4.955 0 009 2.197c-1.276 0-2.48.464-3.387 1.305A4.502 4.502 0 004.57 4.938a4.242 4.242 0 00-.386 1.773v.475c0 .109.087.197.196.197h.95a.197.197 0 00.197-.197V6.71c0-1.749 1.557-3.17 3.473-3.17s3.473 1.421 3.473 3.17c0 .718-.254 1.393-.738 1.955a3.537 3.537 0 01-1.9 1.125 1.928 1.928 0 00-1.085.682c-.271.343-.42.768-.42 1.206v.552c0 .109.088.197.197.197h.95a.197.197 0 00.196-.197v-.552c0-.276.192-.519.457-.578a4.904 4.904 0 002.625-1.56c.335-.392.597-.828.778-1.3a4.256 4.256 0 00-.103-3.303zM9 13.834a.985.985 0 10.001 1.97.985.985 0 00-.001-1.97z"}));import Gs from"react";var qs=({style:e,className:t})=>Gs.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},Gs.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"}));var oc=({flowId:e,style:t,onStepCompletion:o,visible:i=!0,type:r="inline",title:n="Help",appearance:s})=>{let{getFlow:p,getFlowSteps:c,markStepCompleted:a,getStepStatus:h,getNumberOfStepsCompleted:d,isLoading:g,targetingLogicShouldHideFlow:C}=
|
|
1440
|
+
`;import{AnimatePresence as Ks,motion as Ys}from"framer-motion";import Vs from"react";var js=({style:e,className:t})=>Vs.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none",viewBox:"0 0 18 18",style:e,className:t},Vs.createElement("path",{fill:"currentColor",d:"M13.43 4.938a4.494 4.494 0 00-1.043-1.435A4.955 4.955 0 009 2.197c-1.276 0-2.48.464-3.387 1.305A4.502 4.502 0 004.57 4.938a4.242 4.242 0 00-.386 1.773v.475c0 .109.087.197.196.197h.95a.197.197 0 00.197-.197V6.71c0-1.749 1.557-3.17 3.473-3.17s3.473 1.421 3.473 3.17c0 .718-.254 1.393-.738 1.955a3.537 3.537 0 01-1.9 1.125 1.928 1.928 0 00-1.085.682c-.271.343-.42.768-.42 1.206v.552c0 .109.088.197.197.197h.95a.197.197 0 00.196-.197v-.552c0-.276.192-.519.457-.578a4.904 4.904 0 002.625-1.56c.335-.392.597-.828.778-1.3a4.256 4.256 0 00-.103-3.303zM9 13.834a.985.985 0 10.001 1.97.985.985 0 00-.001-1.97z"}));import Gs from"react";var qs=({style:e,className:t})=>Gs.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},Gs.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"}));var oc=({flowId:e,style:t,onStepCompletion:o,visible:i=!0,type:r="inline",title:n="Help",appearance:s})=>{let{getFlow:p,getFlowSteps:c,markStepCompleted:a,getStepStatus:h,getNumberOfStepsCompleted:d,isLoading:g,targetingLogicShouldHideFlow:C}=Q(),{primaryCTAClickSideEffects:b}=pe(),k=Rd(null),[u,B]=ec(!1),{mergeAppearanceWithDefault:x}=oe();s=x(s),Zd(()=>(document.addEventListener("click",F,!1),()=>{document.removeEventListener("click",F,!1)}),[]);let F=y=>{k.current&&!k.current.contains(y.target)&&B(!1)};if(g)return null;let N=p(e);if(!N||C(N))return null;let T=c(e);if(!T||!i)return null;function m(y,P){!y.completionCriteria&&(y.autoMarkCompleted||y.autoMarkCompleted===void 0)&&a(e,y.id),b(y),o&&o(y,P),B(!1)}function w(){return u&&Fe.createElement(Ws,{className:l("floatingWidgetMenu",s),as:Ys.div,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},type:r},T.map((y,P)=>Fe.createElement(Hs,{className:l("floatingWidgetMenuItem",s),key:P,onClick:()=>m(y,P)},y.title)))}return r=="inline"?Fe.createElement("span",{ref:k},Fe.createElement($s,{style:t,onClick:()=>{B(!u)},className:l("supportButton",s)},Fe.createElement(Us,{className:l("supportIconContainer",s)},Fe.createElement(qs,{className:l("supportIcon",s),style:{width:"18px",height:"18px"}})),Fe.createElement(Ms,{className:l("supportButtonTitle",s)},n)),Fe.createElement(Ks,null,Fe.createElement(w,null))):Fe.createElement(tc,null,Fe.createElement(zs,{style:t,ref:k},Fe.createElement(Ks,null,Fe.createElement(w,null)),Fe.createElement(_s,{onClick:()=>{B(!u)},as:Ys.button,whileHover:{scale:1.1},className:l("floatingWidgetButton",s)},Fe.createElement(js,{className:l("floatingWidgetButtonIcon",s),style:{display:"flex",width:"20px",height:"20px"}}))))};import je,{useEffect as rc}from"react";import _o from"styled-components";var Xs=_o.div`
|
|
1441
1441
|
${e=>v(e)} {
|
|
1442
1442
|
display: flex;
|
|
1443
1443
|
flex-direction: column;
|
|
@@ -1473,7 +1473,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1473
1473
|
opacity: 0.8;
|
|
1474
1474
|
}
|
|
1475
1475
|
}
|
|
1476
|
-
`;var ic=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,dismissible:p})=>{let{getFlow:c,markFlowCompleted:a,markStepCompleted:h,isLoading:d,targetingLogicShouldHideFlow:g,updateCustomVariables:C,getFlowSteps:b,getFlowStatus:k,getCurrentStepIndex:u}=
|
|
1476
|
+
`;var ic=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,dismissible:p})=>{let{getFlow:c,markFlowCompleted:a,markStepCompleted:h,isLoading:d,targetingLogicShouldHideFlow:g,updateCustomVariables:C,getFlowSteps:b,getFlowStatus:k,getCurrentStepIndex:u}=Q(),{primaryCTAClickSideEffects:B}=pe(),{mergeAppearanceWithDefault:x}=oe();if(r=x(r),rc(()=>{C(o)},[o,d]),d)return null;let F=c(e);if(!F||g(F)||k(e)===J)return null;let T=b(e)[u(e)];return je.createElement(je.Fragment,null,je.createElement(se,{appearance:r}),je.createElement(Xs,{appearance:r,className:be(l("embeddedTipContainer",r),n),style:s},(p===!0||T.dismissible)&&je.createElement(Zs,{onClick:async()=>{await a(e),t&&t()},className:l("embeddedTipDismissButton",r)},je.createElement(Be,null)),je.createElement(Js,null,je.createElement(we,{size:"small",appearance:r,title:T.title,subtitle:T.subtitle})),T.primaryButtonTitle&&je.createElement(Qs,{className:l("embeddedTipCallToActionContainer",r)},je.createElement(ne,{classPrefix:"embeddedTip",title:T.primaryButtonTitle,appearance:r,withMargin:!1,size:"small",type:"inline",onClick:async()=>{T.handlePrimaryButtonClick(),B(T),!(i&&i(T,u(e),"primary")===!1)&&(await h(e,T.id),await a(e))}}))))};import he,{useEffect as nc}from"react";import Ht from"styled-components";var Rs=Ht.div`
|
|
1477
1477
|
// use the :not annotation
|
|
1478
1478
|
${e=>v(e)} {
|
|
1479
1479
|
display: flex;
|
|
@@ -1518,7 +1518,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1518
1518
|
justify-content: ${e=>e.type==="square"?"flex-end":"center"};
|
|
1519
1519
|
align-items: flex-end;
|
|
1520
1520
|
margin-left: ${e=>e.type==="square"?"0px":"16px"};
|
|
1521
|
-
`;import rl from"react";var il=({style:e,className:t})=>rl.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},rl.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"}));var sc=({flowId:e,title:t,subtitle:o,onDismiss:i,customVariables:r,onButtonClick:n,appearance:s,type:p="full-width",icon:c})=>{let{getFlow:a,markFlowCompleted:h,isLoading:d,targetingLogicShouldHideFlow:g,updateCustomVariables:C,getFlowMetadata:b,getFlowStatus:k,getFlowSteps:u,getCurrentStepIndex:B}=
|
|
1521
|
+
`;import rl from"react";var il=({style:e,className:t})=>rl.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},rl.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"}));var sc=({flowId:e,title:t,subtitle:o,onDismiss:i,customVariables:r,onButtonClick:n,appearance:s,type:p="full-width",icon:c})=>{let{getFlow:a,markFlowCompleted:h,isLoading:d,targetingLogicShouldHideFlow:g,updateCustomVariables:C,getFlowMetadata:b,getFlowStatus:k,getFlowSteps:u,getCurrentStepIndex:B}=Q(),{primaryCTAClickSideEffects:x}=pe(),{mergeAppearanceWithDefault:F}=oe();if(s=F(s),nc(()=>{C(r)},[r,d]),d)return null;let N=a(e);if(!N||g(N)||k(e)===J)return null;let T=u(e),m=T.length>0?T[B(e)]:b(e);return m!=null&&m.title&&(t=m.title),m!=null&&m.subtitle&&(o=m.subtitle),he.createElement(he.Fragment,null,he.createElement(se,{appearance:s}),he.createElement(Rs,{type:p,appearance:s,className:l("bannerContainer",s)},p!="square"&&he.createElement(el,{className:l("bannerIconContainer",s)},c||he.createElement(il,null)),p==="square"&&m.dismissible&&he.createElement(wr,{type:p,className:l("bannerDismissButtonContainer",s)},he.createElement(br,{type:p,onClick:async()=>{await h(e),i&&i()},className:l("bannerDismissButton",s)},he.createElement(Be,null))),he.createElement(tl,{type:p},he.createElement(we,{appearance:s,title:t,subtitle:o,classPrefix:"banner"})),he.createElement(ol,{type:p,className:l("bannerCallToActionContainer",s)},he.createElement(ne,{title:(m==null?void 0:m.primaryButtonTitle)??"Get started",appearance:s,onClick:()=>{x(m),n&&n(m,0,"primary")},classPrefix:"banner"})),p!=="square"&&m.dismissible&&he.createElement(wr,{type:p,className:l("bannerDismissButtonContainer",s)},he.createElement(br,{type:p,onClick:async()=>{await h(e),i&&i()},className:l("bannerDismissButton",s)},he.createElement(Be,null)))))};import q,{useEffect as lc}from"react";import{Portal as ac}from"react-portal";import Re from"styled-components";var nl=Re.div`
|
|
1522
1522
|
${e=>v(e)} {
|
|
1523
1523
|
display: flex;
|
|
1524
1524
|
flex-direction: column;
|
|
@@ -1605,5 +1605,5 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Gt}${r}.${Gt}${r} { ${Object.entries(n).map
|
|
|
1605
1605
|
opacity: 0.8;
|
|
1606
1606
|
}
|
|
1607
1607
|
}
|
|
1608
|
-
`;var pc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,type:p="modal"})=>{let{getFlow:c,markFlowCompleted:a,markStepCompleted:h,getNumberOfStepsCompleted:d,isLoading:g,targetingLogicShouldHideFlow:C,updateCustomVariables:b,getFlowSteps:k,getFlowStatus:u,getCurrentStepIndex:B}=
|
|
1608
|
+
`;var pc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,type:p="modal"})=>{let{getFlow:c,markFlowCompleted:a,markStepCompleted:h,getNumberOfStepsCompleted:d,isLoading:g,targetingLogicShouldHideFlow:C,updateCustomVariables:b,getFlowSteps:k,getFlowStatus:u,getCurrentStepIndex:B}=Q(),{primaryCTAClickSideEffects:x}=pe(),{mergeAppearanceWithDefault:F}=oe(),[N,T]=q.useState(null),[m,w]=q.useState(""),{hasOpenModals:y,setKeepCompletedFlowOpenDuringSession:P,shouldKeepCompletedFlowOpenDuringSession:O}=ve();if(r=F(r),lc(()=>{b(o)},[o,g]),g)return null;let I=c(e);if(!I||C(I)||u(e)===J||d(e)===1&&!O(e)||y())return null;let D=k(e)[B(e)];function z(){return q.createElement(q.Fragment,null,q.createElement(kr,null,q.createElement(we,{size:"large",appearance:r,title:D.title,subtitle:D.subtitle})),q.createElement(Tr,{className:l("npsNumberButtonContainer",r),appearance:r},Array.from(Array(10).keys()).map(Z=>q.createElement(sl,{className:l("npsNumberButton",r),selected:N===Z+1,key:Z,onClick:async()=>{P(e),T(Z+1),await h(e,D.id,{score:Z+1})},appearance:r},Z+1))),q.createElement(ll,{appearance:r},q.createElement(Fr,{appearance:r},"Not likely at all"),q.createElement(Fr,{appearance:r},"Extremely likely")))}function H(){return q.createElement(q.Fragment,null,q.createElement(kr,null,q.createElement(we,{appearance:r,title:"Why did you choose this score?",size:"large"})),q.createElement(al,{appearance:r,value:m,onChange:Z=>{w(Z.target.value)},placeHolder:"Add your optional fedback here..."}),q.createElement(Tr,{appearance:r,className:l("npsNumberButtonContainer",r)},q.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await a(e),i&&i(D,1,"primary")},appearance:r,title:D.secondaryButtonTitle||"Skip",secondary:!0}),q.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await h(e,D.id,{feedbackText:m}),await a(e),i&&i(D,1,"primary")},appearance:r,title:D.primaryButtonTitle||"Submit"})))}function re(){return q.createElement(q.Fragment,null,q.createElement(se,{appearance:r}),q.createElement(nl,{appearance:r,className:be(l("npsSurveyContainer",r),n),style:s,type:p},q.createElement(pl,{onClick:async()=>{await a(e),t&&t()},className:l("npsSurveyDismissButton",r)},q.createElement(Be,null)),d(e)==0&&z(),d(e)==1&&H()))}return p==="inline"?re():q.createElement(ac,null,re())};import*as Wo from"react";import dl from"react";var cl=({as:e="span",children:t,variant:o="Body1",...i})=>dl.createElement(Hi,{color:"neutral.foreground",fontFamily:"default",forwardedAs:e,variant:o,...i},t),dc=Object.fromEntries(Object.keys(Bo).map(e=>{let t=["H1","H2","H3","H4"].includes(e)?e.toLowerCase():void 0,o=i=>dl.createElement(cl,{as:t,...i,variant:e},i.children);return o.displayName=`Text.${e}`,[e,o]})),Pr=Object.assign(cl,dc);var ml=({as:e="button",className:t,size:o="md",title:i,variant:r="Primary",...n})=>{var s;return Wo.createElement(Wi,{className:`fr-button-${r.toLowerCase()}${t?` ${t}`:""}`,forwardedAs:e,variant:r,size:o,borderRadius:"md",...n},Wo.createElement(Pr,{color:(s=oo[r])==null?void 0:s.color,fontWeight:"semibold"},i))},cc=Object.fromEntries(Object.keys(oo).map(e=>{let t=o=>Wo.createElement(ml,{...o,variant:e});return t.displayName=`Button.${e}`,[e,t]})),mc=Object.assign(ml,cc);export{to as Box,mc as Button,Ke as CheckBox,rt as FormLabel,Zo as FormTextField,sc as FrigadeBanner,yr as FrigadeChecklist,qe as FrigadeDefaultAppearance,ic as FrigadeEmbeddedTip,Ni as FrigadeForm,$d as FrigadeGuide,Id as FrigadeHeroChecklist,pc as FrigadeNPSSurvey,Ld as FrigadeProgressBadge,Np as FrigadeProvider,oc as FrigadeSupportWidget,Qd as FrigadeTour,Et as ProgressRing,Pr as Text,dr as tokens,ve as useFlowOpens,Vt as useFlowResponses,Q as useFlows,lr as useOrganization,jt as useUser};
|
|
1609
1609
|
//# sourceMappingURL=index.mjs.map
|