@frigade/react 1.32.32 → 1.32.34

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDescriptor;var al=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,dl=Object.prototype.hasOwnProperty;var cl=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Sr=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of al(t))!dl.call(e,r)&&r!==o&&To(e,r,{get:()=>t[r],enumerable:!(n=ll(t,r))||n.enumerable});return e};var h=(e,t,o)=>(o=e!=null?sl(pl(e)):{},Sr(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),ml=e=>Sr(To({},"__esModule",{value:!0}),e);var Qa={};cl(Qa,{CheckBox:()=>ut,FormLabel:()=>st,FrigadeBanner:()=>Zs,FrigadeChecklist:()=>Go,FrigadeEmbeddedTip:()=>Ks,FrigadeForm:()=>er,FrigadeGuide:()=>gs,FrigadeHeroChecklist:()=>ts,FrigadeNPSSurvey:()=>nl,FrigadeProgressBadge:()=>us,FrigadeProvider:()=>wi,FrigadeSupportWidget:()=>zs,FrigadeTour:()=>As,ProgressRing:()=>vt,useFlowOpens:()=>Ee,useFlowResponses:()=>Mt,useFlows:()=>Q,useOrganization:()=>Uo,useUser:()=>vo});module.exports=ml(Qa);var q=h(require("react")),yi=require("styled-components");var me=h(require("react"));var Ue=require("react");var Lt=h(require("react"));var yr="1.32.32 ";var ve="https://api.frigade.com/v1/public/",$e="NOT_STARTED_STEP",re="COMPLETED_FLOW",ko="ABORTED_FLOW",wt="STARTED_FLOW",Ke="NOT_STARTED_FLOW",We="COMPLETED_STEP",Po="STARTED_STEP";function qe(){let{publicApiKey:e,userId:t}=Lt.default.useContext(J);return{config:(0,Lt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function Ot(){let{shouldGracefullyDegrade:e}=Lt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),Fo();let n;try{n=await fetch(t,o)}catch(r){return Fo(r)}return n?n.ok?n:Fo(n.statusText):Fo()}}function Fo(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Dt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Lt.default.useContext(J);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var no=require("react");var $t=require("react");var wr=h(require("swr"));var br=require("react");function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:r}=(0,br.useContext)(J);function i(c,m=!1){return e[c]??m}function s(c,m){t(w=>({...w,[c]:m}))}function p(c){t(m=>{let{[c]:w,...T}=m;return{...T}})}function d(c){r.includes(c)||n(m=>[...m,c])}function l(c){return r.includes(c)}function u(){return Object.values(e).some(c=>c)||o}return{getOpenFlowState:i,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var ul="unknown";function Me(){let{config:e}=qe(),{publicApiKey:t,userId:o,flows:n,setShouldGracefullyDegrade:r}=(0,$t.useContext)(J),{resetOpenFlowState:i}=Ee(),[s,p]=(0,$t.useState)(!1),d={data:n.map(P=>({flowId:P.id,flowState:re,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=P=>fetch(P,e).then(g=>{if(g.ok)return g.json();throw new Error("Failed to fetch user flow states")}).catch(g=>(console.log(`Error fetching ${P}: ${g}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:u,isLoading:c,mutate:m,error:w}=(0,wr.default)(t&&n&&o?`${ve}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),T=u==null?void 0:u.data;(0,$t.useEffect)(()=>{!s&&!c&&T&&p(!0)},[T,s,c]);async function y(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==re&&(g.flowState=re),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function f(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.stepStates[g]=C,S.flowState=wt),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function v(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.lastStepId=g,S.stepStates[g]=C,S.flowState=wt),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function F(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==Ke&&(g.flowState=Ke,g.lastStepId=ul,Object.keys(g.stepStates).forEach(C=>{g.stepStates[C].actionType=$e,g.stepStates[C].createdAt=new Date().toISOString()}),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1}),i(P))}}async function A(P,g){if(T){let C=T.find(S=>S.flowId===P);C&&C.stepStates[g]!==$e&&(C.stepStates[g]=$e),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:T,isLoadingUserFlowStateData:!s,mutateUserFlowState:m,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:F,optimisticallyMarkStepCompleted:f,optimisticallyMarkStepNotStarted:A,optimisticallyMarkStepStarted:v,error:w}}function Mt(){let{config:e}=qe(),{userFlowStatesData:t,mutateUserFlowState:o}=Me(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:i,setFlowResponses:s}=(0,no.useContext)(J),[p,d]=(0,no.useState)(new Set),[l,u]=(0,no.useState)(new Set),c=Ot();function m(y){let f=JSON.stringify(y);if(p.has(f))return null;p.add(f),d(p),l.add(y),u(l);let v=i==null?void 0:i.find(F=>F.flowSlug===y.flowSlug&&F.stepId===y.stepId&&F.actionType===y.actionType&&F.createdAt===y.createdAt);return c(`${ve}flowResponses`,{...e,method:"POST",body:f}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),r([...n,y])):v||s(A=>[...A??[],y])})}async function w(y){y.foreignUserId&&(y.actionType===wt||y.actionType===Ke?await m(y):y.actionType===re?await m(y):y.actionType===Po?await m(y):y.actionType===We?await m(y):y.actionType===ko?await m(y):y.actionType===$e&&await m(y))}function T(){let y=[];return t==null||t.forEach(f=>{if(f&&f.stepStates&&Object.keys(f.stepStates).length!==0)for(let v in f.stepStates){let F=f.stepStates[v];y.push({foreignUserId:f.foreignUserId,flowSlug:f.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...y,...i]}return{addResponse:w,setFlowResponses:s,getFlowResponses:T}}var Fr=h(require("swr"));var fl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Tr=e=>{let t=fl.exec(e);if(t===null)return null;let o=null;return t.forEach((n,r)=>{let i=gl(n,"'","");i.startsWith("flow_")&&(o=i)}),o},gl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=qe(),{flows:t,setFlows:o,userId:n,publicApiKey:r,customVariables:i,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:u}=(0,Ue.useContext)(J),c={data:[]},{verifySDKInitiated:m}=Dt(),{addResponse:w,getFlowResponses:T}=Mt(),y=x=>fetch(x,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${x} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),u(!0),c)).catch(b=>(console.log(`Error fetching ${x}: ${b}. Will gracefully degrade and hide Frigade`),u(!0),c)),{userFlowStatesData:f,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:P,optimisticallyMarkStepNotStarted:g,optimisticallyMarkStepStarted:C}=Me(),{data:S,error:E,isLoading:U}=(0,Fr.default)(r?`${ve}flows`:null,y,{keepPreviousData:!0});(0,Ue.useEffect)(()=>{if(E){console.error(E);return}S&&S.data&&(S.data=o(S.data))},[S,E]);function M(x){if(U)return null;let b=t.find(B=>B.slug===x);return!b&&t.length>0&&!v&&!U?(console.log(`Flow with slug ${x} not found`),null):(b==null?void 0:b.active)===!1?null:b}function W(x){var V;if(!M(x))return[];let b=M(x).data;return b?(b=N(b),(((V=JSON.parse(b))==null?void 0:V.data)??[]).map(he=>{let j=Ne(he);return{handleSecondaryButtonClick:()=>{he.skippable===!0&&H(x,he.id,{skipped:!0})},...he,complete:O(x,he.id)===We||j>=1,blocked:X(x,he.id),hidden:Ie(x,he.id),handlePrimaryButtonClick:()=>{(!he.completionCriteria&&(he.autoMarkCompleted||he.autoMarkCompleted===void 0)||he.completionCriteria&&he.autoMarkCompleted===!0)&&H(x,he.id)},progress:j}}).filter(he=>he.hidden!==!0)):[]}function N(x){return x.replace(/\${(.*?)}/g,(b,B)=>i[B]!==void 0?String(i[B]):"")}function G(x){if(!M(x))return[];let b=M(x).data;return b?(b=N(b),JSON.parse(b)??{}):[]}function L(x,b){s(B=>({...B,[x]:b}))}function z(x){!v&&!U&&x&&JSON.stringify(i)!=JSON.stringify({...i,...x})&&Object.keys(x).forEach(b=>{L(b,x[b])})}let ae=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:Po,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await C(x,b,V),w(V))},[n,f]),ee=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:$e,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await g(x,b),w(V))},[n,f]),H=(0,Ue.useCallback)(async(x,b,B)=>{console.log("markStepCompleted",x,b,B),m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:We,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await P(x,b,V),w(V))},[n,f]),Ae=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:Ke,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await A(x),pe(B)&&w(B)},[n,f]),be=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:wt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&w(B)},[n,f]),K=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:re,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]),$=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:ko,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]);function pe(x){var b;if(!f&&x.actionType===$e)return!1;if(f){let B=f.find(V=>V.flowId===x.flowSlug);if(x.actionType===$e&&(!(B!=null&&B.stepStates[x.stepId])||B.stepStates[x.stepId].actionType===$e)||B&&((b=B.stepStates[x.stepId])==null?void 0:b.actionType)===x.actionType)return!1}return!0}function O(x,b){let B=De(x,b);return v?null:B?B.actionType:$e}function X(x,b){let B=De(x,b);return B?B.blocked:!1}function Ie(x,b){let B=De(x,b);return B?B.hidden:!1}function De(x,b){if(v)return null;let B=f==null?void 0:f.find(V=>V.flowId===x);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function Nt(x){var B;if(v||!f)return null;if(we(x)===Ke)return W(x)[0]??null;let b=(B=f.find(V=>V.flowId===x))==null?void 0:B.lastStepId;return b?W(x).find(V=>V.id===b):null}function St(x){let b=Nt(x);if(!b)return 0;let B=W(x).findIndex(V=>V.id===b.id)??0;return O(x,b.id)===We&&B<W(x).length-1?B+1:B}function Ne(x){if(!x.completionCriteria)return;let b=Tr(x.completionCriteria);if(b===null)return;let B=it(b),V=nt(b);return V===0?void 0:B/V}function we(x){let b=f==null?void 0:f.find(B=>B.flowId===x);return b?b.flowState:null}function it(x){let b=W(x);return b.length===0?0:b.filter(V=>O(x,V.id)===We).length}function nt(x){return W(x).length}function te(x){return JSON.parse(t.find(b=>b.slug===x).data)}function Te(x){if(v)return!0;if(x!=null&&x.targetingLogic&&f){let b=f.find(B=>B.flowId===x.slug);if(b)return b.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&n&&n.startsWith("guest_"))}function yt(x){return!Te(M(x))}return{getFlow:M,getFlowData:te,isLoading:v||U,getStepStatus:O,getFlowSteps:W,getCurrentStepIndex:St,markStepStarted:ae,markStepCompleted:H,markFlowNotStarted:Ae,markFlowStarted:be,markFlowCompleted:K,markFlowAborted:$,markStepNotStarted:ee,getFlowStatus:we,getNumberOfStepsCompleted:it,getNumberOfSteps:nt,targetingLogicShouldHideFlow:Te,setCustomVariable:L,updateCustomVariables:z,customVariables:i,getStepOptionalProgress:Ne,getFlowMetadata:G,isStepBlocked:X,isStepHidden:Ie,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:yt}}var Tt=require("react");var Ut="guest_";function vo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:r}=(0,Tt.useContext)(J),{config:i}=qe(),{mutateUserFlowState:s}=Me(),p=Ot(),{verifySDKInitiated:d}=Dt();(0,Tt.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ut))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${ve}users`,{...i,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(c,"true"))}},[e,r,t]);let l=(0,Tt.useCallback)(async c=>{d();let m={foreignId:e,properties:c};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(m)}),n(w=>({...w,...c})),s()},[e,i,r,s]),u=(0,Tt.useCallback)(async(c,m)=>{d();let T={foreignId:e,events:[{event:c,properties:m}]};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(T)}),s()},[e,i,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:u}}var Ci=require("uuid");var Pe=h(require("react"));var _e=h(require("react")),ao=h(require("styled-components"));var vr=h(require("react")),Er=h(require("styled-components"));var kr="fr-",so="cfr-";function a(e,t){let o=`${kr}${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+" "+so+e}return o}function k(e){if(!e.className||e.className.indexOf(so)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(kr)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Ko(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ft(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ko(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Fe(...e){return e.filter(Boolean).join(" ")}function Pr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var hl=Er.default.div`
2
+ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDescriptor;var al=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,dl=Object.prototype.hasOwnProperty;var cl=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Sr=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of al(t))!dl.call(e,r)&&r!==o&&To(e,r,{get:()=>t[r],enumerable:!(n=ll(t,r))||n.enumerable});return e};var h=(e,t,o)=>(o=e!=null?sl(pl(e)):{},Sr(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),ml=e=>Sr(To({},"__esModule",{value:!0}),e);var Qa={};cl(Qa,{CheckBox:()=>ut,FormLabel:()=>st,FrigadeBanner:()=>Zs,FrigadeChecklist:()=>Go,FrigadeEmbeddedTip:()=>Ks,FrigadeForm:()=>er,FrigadeGuide:()=>gs,FrigadeHeroChecklist:()=>ts,FrigadeNPSSurvey:()=>nl,FrigadeProgressBadge:()=>us,FrigadeProvider:()=>wi,FrigadeSupportWidget:()=>zs,FrigadeTour:()=>As,ProgressRing:()=>vt,useFlowOpens:()=>Ee,useFlowResponses:()=>Mt,useFlows:()=>Q,useOrganization:()=>Uo,useUser:()=>vo});module.exports=ml(Qa);var q=h(require("react")),yi=require("styled-components");var me=h(require("react"));var Ue=require("react");var Lt=h(require("react"));var yr="1.32.34 ";var ve="https://api.frigade.com/v1/public/",$e="NOT_STARTED_STEP",re="COMPLETED_FLOW",ko="ABORTED_FLOW",wt="STARTED_FLOW",We="NOT_STARTED_FLOW",ze="COMPLETED_STEP",Po="STARTED_STEP";function qe(){let{publicApiKey:e,userId:t}=Lt.default.useContext(J);return{config:(0,Lt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function Ot(){let{shouldGracefullyDegrade:e}=Lt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),Fo();let n;try{n=await fetch(t,o)}catch(r){return Fo(r)}return n?n.ok?n:Fo(n.statusText):Fo()}}function Fo(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Dt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Lt.default.useContext(J);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var no=require("react");var $t=require("react");var wr=h(require("swr"));var br=require("react");function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:r}=(0,br.useContext)(J);function i(c,m=!1){return e[c]??m}function s(c,m){t(w=>({...w,[c]:m}))}function p(c){t(m=>{let{[c]:w,...T}=m;return{...T}})}function d(c){r.includes(c)||n(m=>[...m,c])}function l(c){return r.includes(c)}function u(){return Object.values(e).some(c=>c)||o}return{getOpenFlowState:i,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var ul="unknown";function Me(){let{config:e}=qe(),{publicApiKey:t,userId:o,flows:n,setShouldGracefullyDegrade:r}=(0,$t.useContext)(J),{resetOpenFlowState:i}=Ee(),[s,p]=(0,$t.useState)(!1),d={data:n.map(P=>({flowId:P.id,flowState:re,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=P=>fetch(P,e).then(g=>{if(g.ok)return g.json();throw new Error("Failed to fetch user flow states")}).catch(g=>(console.log(`Error fetching ${P}: ${g}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:u,isLoading:c,mutate:m,error:w}=(0,wr.default)(t&&n&&o?`${ve}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),T=u==null?void 0:u.data;(0,$t.useEffect)(()=>{!s&&!c&&T&&p(!0)},[T,s,c]);async function y(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==re&&(g.flowState=re),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function f(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.stepStates[g]=C,S.flowState=wt),await m(Promise.resolve({...u,data:T}),{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function v(P,g,C){if(T){let S=T.find(E=>E.flowId===P);S&&(S.lastStepId=g,S.stepStates[g]=C,S.flowState=wt),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}async function F(P){if(T){let g=T.find(C=>C.flowId===P);g&&g.flowState!==We&&(g.flowState=We,g.lastStepId=ul,Object.keys(g.stepStates).forEach(C=>{g.stepStates[C].actionType=$e,g.stepStates[C].createdAt=new Date().toISOString()}),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1}),i(P))}}async function A(P,g){if(T){let C=T.find(S=>S.flowId===P);C&&C.stepStates[g]!==$e&&(C.stepStates[g]=$e),await m({...u,data:T},{optimisticData:{...u,data:T},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:T,isLoadingUserFlowStateData:!s,mutateUserFlowState:m,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:F,optimisticallyMarkStepCompleted:f,optimisticallyMarkStepNotStarted:A,optimisticallyMarkStepStarted:v,error:w}}function Mt(){let{config:e}=qe(),{userFlowStatesData:t,mutateUserFlowState:o}=Me(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:i,setFlowResponses:s}=(0,no.useContext)(J),[p,d]=(0,no.useState)(new Set),[l,u]=(0,no.useState)(new Set),c=Ot();function m(y){let f=JSON.stringify(y);if(p.has(f))return null;p.add(f),d(p),l.add(y),u(l);let v=i==null?void 0:i.find(F=>F.flowSlug===y.flowSlug&&F.stepId===y.stepId&&F.actionType===y.actionType&&F.createdAt===y.createdAt);return c(`${ve}flowResponses`,{...e,method:"POST",body:f}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+y.stepId+". Will retry again later."),r([...n,y])):v||s(A=>[...A??[],y])})}async function w(y){y.foreignUserId&&(y.actionType===wt||y.actionType===We?await m(y):y.actionType===re?await m(y):y.actionType===Po?await m(y):y.actionType===ze?await m(y):y.actionType===ko?await m(y):y.actionType===$e&&await m(y))}function T(){let y=[];return t==null||t.forEach(f=>{if(f&&f.stepStates&&Object.keys(f.stepStates).length!==0)for(let v in f.stepStates){let F=f.stepStates[v];y.push({foreignUserId:f.foreignUserId,flowSlug:f.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...y,...i]}return{addResponse:w,setFlowResponses:s,getFlowResponses:T}}var Fr=h(require("swr"));var fl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Tr=e=>{let t=fl.exec(e);if(t===null)return null;let o=null;return t.forEach((n,r)=>{let i=gl(n,"'","");i.startsWith("flow_")&&(o=i)}),o},gl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=qe(),{flows:t,setFlows:o,userId:n,publicApiKey:r,customVariables:i,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:u}=(0,Ue.useContext)(J),c={data:[]},{verifySDKInitiated:m}=Dt(),{addResponse:w,getFlowResponses:T}=Mt(),y=x=>fetch(x,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${x} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),u(!0),c)).catch(b=>(console.log(`Error fetching ${x}: ${b}. Will gracefully degrade and hide Frigade`),u(!0),c)),{userFlowStatesData:f,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:P,optimisticallyMarkStepNotStarted:g,optimisticallyMarkStepStarted:C}=Me(),{data:S,error:E,isLoading:U}=(0,Fr.default)(r?`${ve}flows`:null,y,{keepPreviousData:!0});(0,Ue.useEffect)(()=>{if(E){console.error(E);return}S&&S.data&&(S.data=o(S.data))},[S,E]);function M(x){if(U)return null;let b=t.find(B=>B.slug===x);return!b&&t.length>0&&!v&&!U?(console.log(`Flow with slug ${x} not found`),null):(b==null?void 0:b.active)===!1?null:b}function W(x){var V;if(!M(x))return[];let b=M(x).data;return b?(b=N(b),(((V=JSON.parse(b))==null?void 0:V.data)??[]).map(he=>{let j=Ne(he);return{handleSecondaryButtonClick:()=>{he.skippable===!0&&H(x,he.id,{skipped:!0})},...he,complete:O(x,he.id)===ze||j>=1,blocked:X(x,he.id),hidden:Ie(x,he.id),handlePrimaryButtonClick:()=>{(!he.completionCriteria&&(he.autoMarkCompleted||he.autoMarkCompleted===void 0)||he.completionCriteria&&he.autoMarkCompleted===!0)&&H(x,he.id)},progress:j}}).filter(he=>he.hidden!==!0)):[]}function N(x){return x.replace(/\${(.*?)}/g,(b,B)=>i[B]!==void 0?String(i[B]):"")}function G(x){if(!M(x))return[];let b=M(x).data;return b?(b=N(b),JSON.parse(b)??{}):[]}function L(x,b){s(B=>({...B,[x]:b}))}function z(x){!v&&!U&&x&&JSON.stringify(i)!=JSON.stringify({...i,...x})&&Object.keys(x).forEach(b=>{L(b,x[b])})}let ae=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:Po,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await C(x,b,V),w(V))},[n,f]),ee=(0,Ue.useCallback)(async(x,b,B)=>{m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:$e,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await g(x,b),w(V))},[n,f]),H=(0,Ue.useCallback)(async(x,b,B)=>{console.log("markStepCompleted",x,b,B),m();let V={foreignUserId:n,flowSlug:x,stepId:b,actionType:ze,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};pe(V)&&(await P(x,b,V),w(V))},[n,f]),Ae=(0,Ue.useCallback)(async(x,b)=>{if(m(),ye(x)===We)return;let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:We,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await A(x),pe(B)&&w(B)},[n,f]),we=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:wt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&w(B)},[n,f]),K=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:re,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]),$=(0,Ue.useCallback)(async(x,b)=>{m();let B={foreignUserId:n,flowSlug:x,stepId:"unknown",actionType:ko,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};pe(B)&&(await F(x),w(B))},[n,f]);function pe(x){var b;if(!f&&x.actionType===$e)return!1;if(f){let B=f.find(V=>V.flowId===x.flowSlug);if(x.actionType===$e&&(!(B!=null&&B.stepStates[x.stepId])||B.stepStates[x.stepId].actionType===$e)||B&&((b=B.stepStates[x.stepId])==null?void 0:b.actionType)===x.actionType)return!1}return!0}function O(x,b){let B=De(x,b);return v?null:B?B.actionType:$e}function X(x,b){let B=De(x,b);return B?B.blocked:!1}function Ie(x,b){let B=De(x,b);return B?B.hidden:!1}function De(x,b){if(v)return null;let B=f==null?void 0:f.find(V=>V.flowId===x);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function Nt(x){var B;if(v||!f)return null;if(ye(x)===We)return W(x)[0]??null;let b=(B=f.find(V=>V.flowId===x))==null?void 0:B.lastStepId;return b?W(x).find(V=>V.id===b):null}function St(x){let b=Nt(x);if(!b)return 0;let B=W(x).findIndex(V=>V.id===b.id)??0;return O(x,b.id)===ze&&B<W(x).length-1?B+1:B}function Ne(x){if(!x.completionCriteria)return;let b=Tr(x.completionCriteria);if(b===null)return;let B=it(b),V=nt(b);return V===0?void 0:B/V}function ye(x){let b=f==null?void 0:f.find(B=>B.flowId===x);return b?b.flowState:null}function it(x){let b=W(x);return b.length===0?0:b.filter(V=>O(x,V.id)===ze).length}function nt(x){return W(x).length}function te(x){return JSON.parse(t.find(b=>b.slug===x).data)}function Te(x){if(v)return!0;if(x!=null&&x.targetingLogic&&f){let b=f.find(B=>B.flowId===x.slug);if(b)return b.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&n&&n.startsWith("guest_"))}function yt(x){return!Te(M(x))}return{getFlow:M,getFlowData:te,isLoading:v||U,getStepStatus:O,getFlowSteps:W,getCurrentStepIndex:St,markStepStarted:ae,markStepCompleted:H,markFlowNotStarted:Ae,markFlowStarted:we,markFlowCompleted:K,markFlowAborted:$,markStepNotStarted:ee,getFlowStatus:ye,getNumberOfStepsCompleted:it,getNumberOfSteps:nt,targetingLogicShouldHideFlow:Te,setCustomVariable:L,updateCustomVariables:z,customVariables:i,getStepOptionalProgress:Ne,getFlowMetadata:G,isStepBlocked:X,isStepHidden:Ie,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:yt}}var Tt=require("react");var Ut="guest_";function vo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:r}=(0,Tt.useContext)(J),{config:i}=qe(),{mutateUserFlowState:s}=Me(),p=Ot(),{verifySDKInitiated:d}=Dt();(0,Tt.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ut))return;let c=`frigade-user-registered-${e}`;localStorage.getItem(c)||(p(`${ve}users`,{...i,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(c,"true"))}},[e,r,t]);let l=(0,Tt.useCallback)(async c=>{d();let m={foreignId:e,properties:c};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(m)}),n(w=>({...w,...c})),s()},[e,i,r,s]),u=(0,Tt.useCallback)(async(c,m)=>{d();let T={foreignId:e,events:[{event:c,properties:m}]};await p(`${ve}users`,{...i,method:"POST",body:JSON.stringify(T)}),s()},[e,i,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:u}}var Ci=require("uuid");var Pe=h(require("react"));var _e=h(require("react")),ao=h(require("styled-components"));var vr=h(require("react")),Er=h(require("styled-components"));var kr="fr-",so="cfr-";function a(e,t){let o=`${kr}${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+" "+so+e}return o}function k(e){if(!e.className||e.className.indexOf(so)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(kr)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Ko(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ft(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ko(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Fe(...e){return e.filter(Boolean).join(" ")}function Pr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var hl=Er.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -54,6 +54,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
54
54
  left: 50%;
55
55
  top: 50%;
56
56
  transform: translate(-50%, -50%);
57
+ max-height: 90%;
57
58
 
58
59
  display: flex;
59
60
  flex-direction: column;
@@ -91,7 +92,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
91
92
  ::-webkit-scrollbar {
92
93
  display: none;
93
94
  }
94
- `,ct=({onClose:e,visible:t,headerContent:o=null,style:n=null,children:r,appearance:i,dismissible:s=!0})=>((0,_e.useEffect)(()=>{let p=d=>{d.key==="Escape"&&e()};return document.addEventListener("keydown",p),t?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset",document.removeEventListener("keydown",p)}},[e,t]),t?_e.default.createElement(Ir.Portal,null,_e.default.createElement(Br,{appearance:i,onClose:()=>{s&&e()}}),_e.default.createElement(Cl,{appearance:i,className:a("modalContainer",i),styleOverrides:n},s&&_e.default.createElement(yl,{className:a("modalClose",i),onClick:()=>e(),appearance:i},_e.default.createElement(Le,null)),o&&_e.default.createElement(Sl,null,o),_e.default.createElement(bl,null,r))):_e.default.createElement(_e.default.Fragment,null));var ze=h(require("react")),po=h(require("styled-components")),Nr=require("react-portal");var wl=po.default.div`
95
+ `,ct=({onClose:e,visible:t,headerContent:o=null,style:n=null,children:r,appearance:i,dismissible:s=!0})=>((0,_e.useEffect)(()=>{let p=d=>{d.key==="Escape"&&e()};return document.addEventListener("keydown",p),t?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset",document.removeEventListener("keydown",p)}},[e,t]),t?_e.default.createElement(Ir.Portal,null,_e.default.createElement(Br,{appearance:i,onClose:()=>{s&&e()}}),_e.default.createElement(Cl,{appearance:i,className:a("modalContainer",i),styleOverrides:n},s&&_e.default.createElement(yl,{className:a("modalClose",i),onClick:()=>e(),appearance:i},_e.default.createElement(Le,null)),o&&_e.default.createElement(Sl,null,o),_e.default.createElement(bl,null,r))):_e.default.createElement(_e.default.Fragment,null));var He=h(require("react")),po=h(require("styled-components")),Nr=require("react-portal");var wl=po.default.div`
95
96
  ${e=>k(e)} {
96
97
  // Anything inside this block will be ignored if the user provides a custom class
97
98
  background: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorBackground}};
@@ -128,7 +129,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
128
129
  ::-webkit-scrollbar {
129
130
  display: none;
130
131
  }
131
- `,Lr=({onClose:e,visible:t,headerContent:o=null,children:n,appearance:r})=>((0,ze.useEffect)(()=>{let i=s=>{s.key==="Escape"&&e()};return document.addEventListener("keydown",i),t?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset",document.removeEventListener("keydown",i)}},[e,t]),t?ze.default.createElement(Nr.Portal,null,ze.default.createElement(wl,{appearance:r,className:a("cornerModalContainer",r)},ze.default.createElement(Fl,{className:a("cornerModalClose",r),onClick:()=>e()},ze.default.createElement(Le,null)),o&&ze.default.createElement(Tl,null,o),ze.default.createElement(kl,null,n))):ze.default.createElement(ze.default.Fragment,null));var Or=require("react");function oe(){let{defaultAppearance:e}=(0,Or.useContext)(J);function t(o){let n=JSON.parse(JSON.stringify(e));return o?{styleOverrides:Object.assign(n.styleOverrides??{},o.styleOverrides??{}),theme:Object.assign(n.theme,o.theme??{})}:n}return{mergeAppearanceWithDefault:t}}var Xe=h(require("react")),Zo=h(require("styled-components"));var Ye=h(require("react")),Ao=h(require("styled-components"));var co=h(require("styled-components"));var Dr=co.default.label`
132
+ `,Lr=({onClose:e,visible:t,headerContent:o=null,children:n,appearance:r})=>((0,He.useEffect)(()=>{let i=s=>{s.key==="Escape"&&e()};return document.addEventListener("keydown",i),t?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset",document.removeEventListener("keydown",i)}},[e,t]),t?He.default.createElement(Nr.Portal,null,He.default.createElement(wl,{appearance:r,className:a("cornerModalContainer",r)},He.default.createElement(Fl,{className:a("cornerModalClose",r),onClick:()=>e()},He.default.createElement(Le,null)),o&&He.default.createElement(Tl,null,o),He.default.createElement(kl,null,n))):He.default.createElement(He.default.Fragment,null));var Or=require("react");function oe(){let{defaultAppearance:e}=(0,Or.useContext)(J);function t(o){let n=JSON.parse(JSON.stringify(e));return o?{styleOverrides:Object.assign(n.styleOverrides??{},o.styleOverrides??{}),theme:Object.assign(n.theme,o.theme??{})}:n}return{mergeAppearanceWithDefault:t}}var Xe=h(require("react")),Zo=h(require("styled-components"));var Ye=h(require("react")),Ao=h(require("styled-components"));var co=h(require("styled-components"));var Dr=co.default.label`
132
133
  ${e=>k(e)} {
133
134
  font-size: 14px;
134
135
  line-height: 20px;
@@ -192,7 +193,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
192
193
  min-height: 70px;
193
194
  box-sizing: border-box;
194
195
  margin-bottom: 10px;
195
- `;function Ur({formInput:e,customFormTypeProps:t,onSaveInputData:o,setFormValidationErrors:n,inputData:r}){let i=e,[s,p]=(0,Ye.useState)((r==null?void 0:r.text)||""),[d,l]=(0,Ye.useState)(!1),u=Yo;(0,Ye.useEffect)(()=>{s===""&&!d&&(l(!0),c(""))},[]);function c(w){if(p(w),i.required===!0&&w.trim()===""){n([{id:i.id,message:`${i.title} is required`}]);return}n([]),o({text:w})}i.multiline&&(u=vl);function m(){var w;switch((w=i==null?void 0:i.validation)==null?void 0:w.type){case"email":return"email";case"number":return"number";case"password":return"password"}return null}return Ye.default.createElement(Pl,null,Ye.default.createElement(st,{title:i.title,required:i.required,appearance:t.appearance}),Ye.default.createElement(u,{className:a("inputComponent",t.appearance),value:s,onChange:w=>{c(w.target.value)},appearance:t.appearance,placeholder:i.placeholder,type:m()}),Ye.default.createElement(_t,{title:i.subtitle,appearance:t.appearance}))}var ye=h(require("react")),Xo=h(require("styled-components"));var El=Xo.default.div`
196
+ `;function Ur({formInput:e,customFormTypeProps:t,onSaveInputData:o,setFormValidationErrors:n,inputData:r}){let i=e,[s,p]=(0,Ye.useState)((r==null?void 0:r.text)||""),[d,l]=(0,Ye.useState)(!1),u=Yo;(0,Ye.useEffect)(()=>{s===""&&!d&&(l(!0),c(""))},[]);function c(w){if(p(w),i.required===!0&&w.trim()===""){n([{id:i.id,message:`${i.title} is required`}]);return}n([]),o({text:w})}i.multiline&&(u=vl);function m(){var w;switch((w=i==null?void 0:i.validation)==null?void 0:w.type){case"email":return"email";case"number":return"number";case"password":return"password"}return null}return Ye.default.createElement(Pl,null,Ye.default.createElement(st,{title:i.title,required:i.required,appearance:t.appearance}),Ye.default.createElement(u,{className:a("inputComponent",t.appearance),value:s,onChange:w=>{c(w.target.value)},appearance:t.appearance,placeholder:i.placeholder,type:m()}),Ye.default.createElement(_t,{title:i.subtitle,appearance:t.appearance}))}var be=h(require("react")),Xo=h(require("styled-components"));var El=Xo.default.div`
196
197
  display: flex;
197
198
  flex-direction: column;
198
199
  width: 100%;
@@ -222,7 +223,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
222
223
  background-repeat: no-repeat;
223
224
  background-size: 1.5em 1.5em;
224
225
  -webkit-print-color-adjust: exact;
225
- `,Io="null";function _r({formInput:e,customFormTypeProps:t,onSaveInputData:o,inputData:n,setFormValidationErrors:r}){var u,c,m,w,T,y;let i=e,[s,p]=(0,ye.useState)(((u=n==null?void 0:n.choice)==null?void 0:u[0])||""),[d,l]=(0,ye.useState)(!1);return(0,ye.useEffect)(()=>{var f,v,F,A;if(s===""&&!d){if(l(!0),i.requireSelection){p(Io);return}if(i.defaultValue&&((f=i.props.options)!=null&&f.find(P=>P.id===i.defaultValue))){let P=(v=i.props.options)==null?void 0:v.find(g=>g.id===i.defaultValue);p(P.id),o({choice:[P.id]})}else p(((F=i.props.options)==null?void 0:F[0].id)||""),o({choice:[((A=i.props.options)==null?void 0:A[0].id)||""]})}},[]),(0,ye.useEffect)(()=>{i.requireSelection&&s===Io?r([{message:"Please select an option",id:i.id}]):r([])},[s]),ye.default.createElement(El,null,ye.default.createElement(st,{title:i.title,required:!1,appearance:t.appearance}),ye.default.createElement(Bl,{value:s,onChange:f=>{p(f.target.value),o({choice:[f.target.value]})},placeholder:i.placeholder,appearance:t.appearance,className:a("multipleChoiceSelect",t.appearance)},i.requireSelection&&ye.default.createElement("option",{key:Io,value:Io},"Select an option"),(c=i.props.options)==null?void 0:c.map(f=>ye.default.createElement("option",{key:f.id,value:f.id},f.title))),((w=(m=i.props.options)==null?void 0:m.find(f=>f.id===s))==null?void 0:w.isOpenEnded)&&ye.default.createElement(ye.default.Fragment,null,ye.default.createElement(st,{title:((y=(T=i.props.options)==null?void 0:T.find(f=>f.id===s))==null?void 0:y.openEndedLabel)??"Please specify",required:!1,appearance:t.appearance}),ye.default.createElement(Yo,{type:"text",placeholder:"Enter your answer here",onChange:f=>{o({choice:[f.target.value]})},appearance:t.appearance})),ye.default.createElement(_t,{title:i.subtitle,appearance:t.appearance}))}var He=h(require("react")),Jo=h(require("styled-components"));var Al=Jo.default.div`
226
+ `,Io="null";function _r({formInput:e,customFormTypeProps:t,onSaveInputData:o,inputData:n,setFormValidationErrors:r}){var u,c,m,w,T,y;let i=e,[s,p]=(0,be.useState)(((u=n==null?void 0:n.choice)==null?void 0:u[0])||""),[d,l]=(0,be.useState)(!1);return(0,be.useEffect)(()=>{var f,v,F,A;if(s===""&&!d){if(l(!0),i.requireSelection){p(Io);return}if(i.defaultValue&&((f=i.props.options)!=null&&f.find(P=>P.id===i.defaultValue))){let P=(v=i.props.options)==null?void 0:v.find(g=>g.id===i.defaultValue);p(P.id),o({choice:[P.id]})}else p(((F=i.props.options)==null?void 0:F[0].id)||""),o({choice:[((A=i.props.options)==null?void 0:A[0].id)||""]})}},[]),(0,be.useEffect)(()=>{i.requireSelection&&s===Io?r([{message:"Please select an option",id:i.id}]):r([])},[s]),be.default.createElement(El,null,be.default.createElement(st,{title:i.title,required:!1,appearance:t.appearance}),be.default.createElement(Bl,{value:s,onChange:f=>{p(f.target.value),o({choice:[f.target.value]})},placeholder:i.placeholder,appearance:t.appearance,className:a("multipleChoiceSelect",t.appearance)},i.requireSelection&&be.default.createElement("option",{key:Io,value:Io},"Select an option"),(c=i.props.options)==null?void 0:c.map(f=>be.default.createElement("option",{key:f.id,value:f.id},f.title))),((w=(m=i.props.options)==null?void 0:m.find(f=>f.id===s))==null?void 0:w.isOpenEnded)&&be.default.createElement(be.default.Fragment,null,be.default.createElement(st,{title:((y=(T=i.props.options)==null?void 0:T.find(f=>f.id===s))==null?void 0:y.openEndedLabel)??"Please specify",required:!1,appearance:t.appearance}),be.default.createElement(Yo,{type:"text",placeholder:"Enter your answer here",onChange:f=>{o({choice:[f.target.value]})},appearance:t.appearance})),be.default.createElement(_t,{title:i.subtitle,appearance:t.appearance}))}var je=h(require("react")),Jo=h(require("styled-components"));var Al=Jo.default.div`
226
227
  display: flex;
227
228
  flex-direction: column;
228
229
  width: 100%;
@@ -250,7 +251,7 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
250
251
  height: 60px;
251
252
  padding: 0 18px;
252
253
  margin-bottom: 10px;
253
- `;function Wr({formInput:e,customFormTypeProps:t,onSaveInputData:o,inputData:n}){var l;let r=e,[i,s]=(0,He.useState)((n==null?void 0:n.choice)||[]),[p,d]=(0,He.useState)(!1);return(0,He.useEffect)(()=>{i.length==0&&!p&&(d(!0),o({choice:[]}))},[]),(0,He.useEffect)(()=>{o({choice:i})},[i]),He.default.createElement(Al,null,He.default.createElement(st,{title:r.title,required:r.required,appearance:t.appearance}),(l=r.props.options)==null?void 0:l.map(u=>He.default.createElement(Il,{appearance:t.appearance,key:u.id,value:u.id,"data-selected":i.includes(u.id),onClick:()=>{if(i.includes(u.id)){s(i.filter(c=>c!==u.id));return}i.length<r.props.maxChoices?s([...i,u.id]):i.length==1&&r.props.maxChoices==1&&s([u.id])}},u.title)),He.default.createElement(_t,{title:r.subtitle,appearance:t.appearance}))}var mo=h(require("react"));var Qo=h(require("styled-components"));var zr=h(require("dompurify"));function xe(e){return{__html:zr.default.sanitize(e,{ALLOWED_TAGS:["b","i","a","span","div","p","pre","u","br","img"],ALLOWED_ATTR:["style","class","target","id","href","alt","src"]})}}var Nl=Qo.default.h1`
254
+ `;function Wr({formInput:e,customFormTypeProps:t,onSaveInputData:o,inputData:n}){var l;let r=e,[i,s]=(0,je.useState)((n==null?void 0:n.choice)||[]),[p,d]=(0,je.useState)(!1);return(0,je.useEffect)(()=>{i.length==0&&!p&&(d(!0),o({choice:[]}))},[]),(0,je.useEffect)(()=>{o({choice:i})},[i]),je.default.createElement(Al,null,je.default.createElement(st,{title:r.title,required:r.required,appearance:t.appearance}),(l=r.props.options)==null?void 0:l.map(u=>je.default.createElement(Il,{appearance:t.appearance,key:u.id,value:u.id,"data-selected":i.includes(u.id),onClick:()=>{if(i.includes(u.id)){s(i.filter(c=>c!==u.id));return}i.length<r.props.maxChoices?s([...i,u.id]):i.length==1&&r.props.maxChoices==1&&s([u.id])}},u.title)),je.default.createElement(_t,{title:r.subtitle,appearance:t.appearance}))}var mo=h(require("react"));var Qo=h(require("styled-components"));var zr=h(require("dompurify"));function xe(e){return{__html:zr.default.sanitize(e,{ALLOWED_TAGS:["b","i","a","span","div","p","pre","u","br","img"],ALLOWED_ATTR:["style","class","target","id","href","alt","src"]})}}var Nl=Qo.default.h1`
254
255
  ${e=>k(e)} {
255
256
  font-style: normal;
256
257
  font-weight: 600;
@@ -520,8 +521,8 @@ var sl=Object.create;var To=Object.defineProperty;var ll=Object.getOwnPropertyDe
520
521
  color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorText}};
521
522
  display: flex;
522
523
  align-self: center;
523
- `;var ui=({stepData:e,setCanContinue:t,onSaveData:o,appearance:n})=>{let r=e.props,[i,s]=(0,Ce.useState)([]),[p,d]=(0,Ce.useState)(!1),[l,u]=(0,Ce.useState)(e.id);return(0,Ce.useEffect)(()=>{i.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,Ce.useEffect)(()=>{l!==e.id&&(u(e.id),s([]))},[e]),(0,Ce.useEffect)(()=>{o({choice:i}),i.length>=r.minChoices?t(!0):t(!1)},[i]),Ce.default.createElement(ni,{className:a("selectListContainer",n)},Ce.default.createElement(si,null,Ce.default.createElement(li,{className:a("selectListTitle",n)},e.title),Ce.default.createElement(ai,{appearance:n,className:a("selectListSubtitle",n)},e.subtitle)),r.options.map((c,m)=>{let w=i.includes(c.id);return Ce.default.createElement(pi,{key:`select-item-${m}`,onClick:()=>{if(i.includes(c.id)){s(i.filter(T=>T!==c.id));return}i.length<r.maxChoices?s([...i,c.id]):i.length==1&&r.maxChoices==1&&s([c.id])},hideBottomBorder:m===r.options.length-1,className:a("selectListSelectItem",n)},Ce.default.createElement(di,{className:a("selectListItemImage",n)},c.imageUri&&Ce.default.createElement(ci,{src:c.imageUri,alt:`select-icon-${m}`}),Ce.default.createElement(mi,{appearance:n,className:a("selectListSelectItemText",n)},c.title)),Ce.default.createElement(ut,{appearance:n,value:w,primaryColor:n.theme.colorPrimary}))}))};var ne=h(require("react"));var $o=require("framer-motion"),da=({children:e,id:t,shouldWrap:o=!1})=>ne.default.createElement(ne.default.Fragment,null,o?ne.default.createElement($o.AnimatePresence,{initial:!1},ne.default.createElement($o.motion.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),Mo=({appearance:e,steps:t,selectedStep:o,customStepTypes:n,customVariables:r,onButtonClick:i,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:l,onComplete:u,setVisible:c,setShowModal:m,onDismiss:w,showPagination:T=!1,customFormElements:y,allowBackNavigation:f})=>{let F={...{linkCollection:ei,multiInput:Hr,callToAction:ti,selectList:ui},...n},{primaryCTAClickSideEffects:A,secondaryCTAClickSideEffects:P}=de(),[g,C]=(0,ne.useState)(!1),[S,E]=(0,ne.useState)({}),[U,M]=(0,ne.useState)(!1),W=t[o]??null,{markStepCompleted:N,markStepStarted:G,isLoading:L,updateCustomVariables:z,markFlowCompleted:ae}=Q();(0,ne.useEffect)(()=>{z(r)},[r,L]);function ee(){return{data:S[t[o].id]??{},stepId:t[o].id,customVariables:r}}function H($,pe,O){let X=o+1<t.length?t[o+1]:null;i&&i($,o,pe,X),s&&s($,O,X,S,ee())}function Ae($,pe){E(O=>{let X={};return X[$.id]=pe,{...O,...X}})}function be($){return $.selectedStep.imageUri?ne.default.createElement(Yr,{image:$.selectedStep.imageUri,appearance:e,className:a("formContainerSidebarImage",e)}):null}let K=ne.default.createElement(Jr,{step:t[o],canContinue:g||!U,formType:d,selectedStep:o,appearance:e,onPrimaryClick:async()=>{M(!0);let $={...ee()};await N(p,t[o].id,$),o+1<t.length&&await G(p,t[o+1].id),H(t[o],"primary",o),o+1>=t.length&&(u&&u(),w&&w(),l&&(c&&c(!1),m(!1)),await ae(p)),A(t[o]),M(!1)},onSecondaryClick:()=>{H(t[o],"secondary",o),P(t[o])},onBack:async()=>{o-1>=0&&(M(!0),await G(p,t[o-1].id),M(!1))},steps:t,allowBackNavigation:f});return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(Vr,{className:a("formContainer",e)},ne.default.createElement(Kr,null,ne.default.createElement(da,{id:o,shouldWrap:d==="large-modal"},ne.default.createElement(qr,{key:W.id,type:d,className:a("formContent",e)},t.map($=>{let pe=F[$.type];return W.id!==$.id?null:ne.default.createElement(pe,{key:$.id,stepData:$,canContinue:g,setCanContinue:C,onSaveData:O=>{Ae($,O)},appearance:e,customFormElements:y})}),T&&ne.default.createElement(Zr,{className:a("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),K))),d=="large-modal"&&ne.default.createElement(be,{selectedStep:t[o]})))};var Vt=h(require("react")),fi=require("styled-components");function le({appearance:e}){if(!e||!e.styleOverrides)return Vt.default.createElement(Vt.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([n,r])=>typeof r=="object");if(t.length===0)return Vt.default.createElement(Vt.default.Fragment,null);let o=fi.createGlobalStyle`
524
- ${n=>n.inlineStyles.map(([r,i])=>`.${so}${r}.${so}${r} { ${Object.entries(i).map(([s,p])=>`${Ko(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Vt.default.createElement(o,{inlineStyles:t})}var er=({flowId:e,customStepTypes:t={},type:o="inline",visible:n,setVisible:r,customVariables:i,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:l=!0,onStepCompletion:u,onButtonClick:c,dismissible:m=!0,endFlowOnDismiss:w=!1,modalPosition:T="center",repeatable:y=!1,onDismiss:f,showPagination:v=!1,allowBackNavigation:F=!1})=>{let{getFlow:A,getFlowSteps:P,isLoading:g,targetingLogicShouldHideFlow:C,getFlowStatus:S,getCurrentStepIndex:E,markFlowCompleted:U,markFlowNotStarted:M}=Q(),W=E(e),{mergeAppearanceWithDefault:N}=oe(),[G,L]=(0,Pe.useState)(!1),{setOpenFlowState:z,getOpenFlowState:ae}=Ee();d=N(d);let[ee,H]=n!==void 0&&r!==void 0?[n,r]:[ae(e,!0),$=>z(e,$)];if((0,Pe.useEffect)(()=>{!G&&!g&&(L(!0),S(e)===re&&y&&M(e),L(!0))},[G,L,g]),g)return null;let Ae=A(e);if(!Ae||C(Ae))return null;let be=P(e);if(!be||n!==void 0&&n===!1||S(e)===re&&l)return null;let K=()=>{H(!1),f&&f(),w===!0&&U(e)};if(T=="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",Pe.default.createElement(ct,{appearance:d,onClose:K,visible:ee,style:$,dismissible:m},Pe.default.createElement(le,{appearance:d}),Pe.default.createElement(Mo,{appearance:d,steps:be,selectedStep:W,customStepTypes:t,customVariables:i,onButtonClick:c,onStepCompletion:u,flowId:e,type:o,hideOnFlowCompletion:l,onComplete:p,setVisible:r,setShowModal:H,onDismiss:f,showPagination:v,customFormElements:s,allowBackNavigation:F}))}return o==="modal"&&T!=="center"?Pe.default.createElement(Lr,{appearance:d,onClose:K,visible:ee},Pe.default.createElement(le,{appearance:d}),Pe.default.createElement(Mo,{appearance:d,steps:be,selectedStep:W,customStepTypes:t,customVariables:i,onButtonClick:c,onStepCompletion:u,flowId:e,type:o,hideOnFlowCompletion:l,onComplete:p,setVisible:r,setShowModal:H,onDismiss:f,showPagination:v,customFormElements:s,allowBackNavigation:F})):Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement(le,{appearance:d}),Pe.default.createElement(Mo,{appearance:d,steps:be,selectedStep:W,customStepTypes:t,customVariables:i,onButtonClick:c,onStepCompletion:u,flowId:e,type:o,hideOnFlowCompletion:l,onComplete:p,setVisible:r,setShowModal:H,onDismiss:f,showPagination:v,customFormElements:s,allowBackNavigation:F}))},gi=er;var Et=require("react");function Uo(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Et.useContext)(J),{mutateUserFlowState:n}=Me(),{config:r}=qe(),i=Ot(),{verifySDKInitiated:s}=Dt();(0,Et.useEffect)(()=>{if(t&&e){if(t.startsWith(Ut))return;let l=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(l)||(i(`${ve}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(l,"true"))}},[t,e]);let p=(0,Et.useCallback)(async l=>{if(s(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let u={foreignUserId:t,foreignUserGroupId:e,properties:l};await i(`${ve}userGroups`,{...r,method:"POST",body:JSON.stringify(u)}),n()},[e,t,r,n]),d=(0,Et.useCallback)(async(l,u)=>{if(s(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let m={foreignUserId:t,foreignUserGroupId:e,events:[{event:l,properties:u}]};await i(`${ve}userGroups`,{...r,method:"POST",body:JSON.stringify(m)}),n()},[e,t,r,n]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:p,trackEventForOrganization:d}}var hi="xFrigade_guestUserId",xi="xFrigade_userId",Si=({})=>{let{setFlowResponses:e}=Mt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:n}=Me(),{userId:r,setUserId:i}=vo(),[s,p]=(0,me.useState)(null),{getFlowStatus:d}=Q(),{flows:l,userProperties:u,setIsNewGuestUser:c,flowResponses:m}=(0,me.useContext)(J),[w,T]=(0,me.useState)([]),[y,f]=(0,me.useState)([]),{organizationId:v}=Uo();(0,me.useEffect)(()=>{if(!o&&t)for(let g=0;g<t.length;g++){let C=t[g],S=l.find(E=>E.slug===(C==null?void 0:C.flowId));if(S&&C&&C.shouldTrigger===!0&&S.type=="FORM"&&S.triggerType==="AUTOMATIC"&&!y.includes(S.slug)){setTimeout(()=>{F(C.flowId)},500);break}}},[o,t]),(0,me.useEffect)(()=>{m.length>0&&n()},[m]);function F(g){let C=l.find(S=>S.slug===g);C&&C.triggerType==="AUTOMATIC"&&!y.includes(C.slug)&&(f([...y,C.slug]),T([C]))}function A(){if(!r){let g=localStorage.getItem(xi);if(g){i(g);return}let C=localStorage.getItem(hi);if(C){i(C);return}c(!0);let S=Ut+(0,Ci.v4)();try{localStorage.setItem(hi,S)}catch(E){console.log("Failed to save guest user id locally: Local storage unavailable",E)}i(E=>E||S)}}(0,me.useEffect)(()=>{try{if(l){let g=[];l.forEach(C=>{if(C.data){let S=C.data.match(/"imageUri":"(.*?)"/g);S&&S.forEach(E=>{let U=E.replace('"imageUri":"',"").replace('"',"");if(g.includes(U))return;let M=new Image;M.src=U,g.push(U)})}})}}catch{}},[l]),(0,me.useEffect)(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(Ut))try{localStorage.setItem(xi,r)}catch(g){console.log("Failed to save user id locally: Local storage available",g)}r===null&&setTimeout(()=>{r===null&&A()},50)},[r,l,u]);function P(){return me.default.createElement(me.default.Fragment,null,w.map(g=>d(g.slug)!==Ke?null:me.default.createElement("span",{key:g.slug},me.default.createElement(gi,{flowId:g.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return me.default.createElement(me.default.Fragment,null,me.default.createElement(P,null))};var bi=require("react-error-boundary"),J=(0,q.createContext)({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:jt,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{}}),wi=({publicApiKey:e,userId:t,organizationId:o,config:n,children:r})=>{var ae,ee;let[i,s]=(0,q.useState)(t||null),[p,d]=(0,q.useState)(o||null),[l,u]=(0,q.useState)([]),[c,m]=(0,q.useState)([]),[w,T]=(0,q.useState)([]),[y,f]=(0,q.useState)({}),[v,F]=(0,q.useState)({}),[A,P]=(0,q.useState)([]),[g,C]=(0,q.useState)({}),[S,E]=(0,q.useState)(!1),[U,M]=(0,q.useState)(!1),[W,N]=(0,q.useState)(!z(e)),G=(H,Ae)=>{if(Ae==="_blank"){window.open(H,"_blank");return}setTimeout(()=>{window.location.href=H},50)},L={theme:{...jt.theme,...((ae=n==null?void 0:n.defaultAppearance)==null?void 0:ae.theme)??{}},styleOverrides:{...jt.styleOverrides,...((ee=n==null?void 0:n.defaultAppearance)==null?void 0:ee.styleOverrides)??{}}};function z(H){return!!(H&&H.length>10&&H.substring(0,10)==="api_public")}return(0,q.useEffect)(()=>{t&&s(t)},[t]),(0,q.useEffect)(()=>{o&&d(o)},[o]),(0,q.useEffect)(()=>{if(z(e))N(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),N(!0);return}},[e,N]),W?q.default.createElement(J.Provider,{value:{publicApiKey:e,userId:i,setUserId:s,setFlows:u,flows:l,failedFlowResponses:c,setFailedFlowResponses:m,flowResponses:w,setFlowResponses:T,userProperties:y,setUserProperties:f,openFlowStates:v,setOpenFlowStates:F,completedFlowsToKeepOpenDuringSession:A,setCompletedFlowsToKeepOpenDuringSession:P,customVariables:g,setCustomVariables:C,isNewGuestUser:S,setIsNewGuestUser:E,hasActiveFullPageFlow:U,setHasActiveFullPageFlow:M,organizationId:p,setOrganizationId:d,navigate:n&&n.navigate?n.navigate:G,defaultAppearance:L,shouldGracefullyDegrade:W,setShouldGracefullyDegrade:N}},r):q.default.createElement(bi.ErrorBoundary,{fallback:q.default.createElement(q.default.Fragment,null,r)},q.default.createElement(J.Provider,{value:{publicApiKey:e,userId:i,setUserId:s,setFlows:u,flows:l,failedFlowResponses:c,setFailedFlowResponses:m,flowResponses:w,setFlowResponses:T,userProperties:y,setUserProperties:f,openFlowStates:v,setOpenFlowStates:F,completedFlowsToKeepOpenDuringSession:A,setCompletedFlowsToKeepOpenDuringSession:P,customVariables:g,setCustomVariables:C,isNewGuestUser:S,setIsNewGuestUser:E,hasActiveFullPageFlow:U,setHasActiveFullPageFlow:M,organizationId:p,setOrganizationId:d,navigate:n&&n.navigate?n.navigate:G,defaultAppearance:L,shouldGracefullyDegrade:W,setShouldGracefullyDegrade:N}},q.default.createElement(yi.ThemeProvider,{theme:L.theme},r,q.default.createElement(Si,null))))};var es=h(require("react"));var R=h(require("react"));var Be=h(require("react")),ht=h(require("styled-components"));var go=h(require("react"));var ft=h(require("react")),tr=h(require("styled-components"));var Ti=tr.default.span`
524
+ `;var ui=({stepData:e,setCanContinue:t,onSaveData:o,appearance:n})=>{let r=e.props,[i,s]=(0,Ce.useState)([]),[p,d]=(0,Ce.useState)(!1),[l,u]=(0,Ce.useState)(e.id);return(0,Ce.useEffect)(()=>{i.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,Ce.useEffect)(()=>{l!==e.id&&(u(e.id),s([]))},[e]),(0,Ce.useEffect)(()=>{o({choice:i}),i.length>=r.minChoices?t(!0):t(!1)},[i]),Ce.default.createElement(ni,{className:a("selectListContainer",n)},Ce.default.createElement(si,null,Ce.default.createElement(li,{className:a("selectListTitle",n)},e.title),Ce.default.createElement(ai,{appearance:n,className:a("selectListSubtitle",n)},e.subtitle)),r.options.map((c,m)=>{let w=i.includes(c.id);return Ce.default.createElement(pi,{key:`select-item-${m}`,onClick:()=>{if(i.includes(c.id)){s(i.filter(T=>T!==c.id));return}i.length<r.maxChoices?s([...i,c.id]):i.length==1&&r.maxChoices==1&&s([c.id])},hideBottomBorder:m===r.options.length-1,className:a("selectListSelectItem",n)},Ce.default.createElement(di,{className:a("selectListItemImage",n)},c.imageUri&&Ce.default.createElement(ci,{src:c.imageUri,alt:`select-icon-${m}`}),Ce.default.createElement(mi,{appearance:n,className:a("selectListSelectItemText",n)},c.title)),Ce.default.createElement(ut,{appearance:n,value:w,primaryColor:n.theme.colorPrimary}))}))};var ne=h(require("react"));var $o=require("framer-motion"),da=({children:e,id:t,shouldWrap:o=!1})=>ne.default.createElement(ne.default.Fragment,null,o?ne.default.createElement($o.AnimatePresence,{initial:!1},ne.default.createElement($o.motion.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),Mo=({appearance:e,steps:t,selectedStep:o,customStepTypes:n,customVariables:r,onButtonClick:i,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:l,onComplete:u,setVisible:c,setShowModal:m,onDismiss:w,showPagination:T=!1,customFormElements:y,allowBackNavigation:f})=>{let F={...{linkCollection:ei,multiInput:Hr,callToAction:ti,selectList:ui},...n},{primaryCTAClickSideEffects:A,secondaryCTAClickSideEffects:P}=de(),[g,C]=(0,ne.useState)(!1),[S,E]=(0,ne.useState)({}),[U,M]=(0,ne.useState)(!1),W=t[o]??null,{markStepCompleted:N,markStepStarted:G,isLoading:L,updateCustomVariables:z,markFlowCompleted:ae}=Q();(0,ne.useEffect)(()=>{z(r)},[r,L]);function ee(){return{data:S[t[o].id]??{},stepId:t[o].id,customVariables:r}}function H($,pe,O){let X=o+1<t.length?t[o+1]:null;i&&i($,o,pe,X),s&&s($,O,X,S,ee())}function Ae($,pe){E(O=>{let X={};return X[$.id]=pe,{...O,...X}})}function we($){return $.selectedStep.imageUri?ne.default.createElement(Yr,{image:$.selectedStep.imageUri,appearance:e,className:a("formContainerSidebarImage",e)}):null}let K=ne.default.createElement(Jr,{step:t[o],canContinue:g||!U,formType:d,selectedStep:o,appearance:e,onPrimaryClick:async()=>{M(!0);let $={...ee()};await N(p,t[o].id,$),o+1<t.length&&await G(p,t[o+1].id),H(t[o],"primary",o),o+1>=t.length&&(u&&u(),w&&w(),l&&(c&&c(!1),m(!1)),await ae(p)),A(t[o]),M(!1)},onSecondaryClick:()=>{H(t[o],"secondary",o),P(t[o])},onBack:async()=>{o-1>=0&&(M(!0),await G(p,t[o-1].id),M(!1))},steps:t,allowBackNavigation:f});return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(Vr,{className:a("formContainer",e)},ne.default.createElement(Kr,null,ne.default.createElement(da,{id:o,shouldWrap:d==="large-modal"},ne.default.createElement(qr,{key:W.id,type:d,className:a("formContent",e)},t.map($=>{let pe=F[$.type];return W.id!==$.id?null:ne.default.createElement(pe,{key:$.id,stepData:$,canContinue:g,setCanContinue:C,onSaveData:O=>{Ae($,O)},appearance:e,customFormElements:y})}),T&&ne.default.createElement(Zr,{className:a("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),K))),d=="large-modal"&&ne.default.createElement(we,{selectedStep:t[o]})))};var Vt=h(require("react")),fi=require("styled-components");function le({appearance:e}){if(!e||!e.styleOverrides)return Vt.default.createElement(Vt.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([n,r])=>typeof r=="object");if(t.length===0)return Vt.default.createElement(Vt.default.Fragment,null);let o=fi.createGlobalStyle`
525
+ ${n=>n.inlineStyles.map(([r,i])=>`.${so}${r}.${so}${r} { ${Object.entries(i).map(([s,p])=>`${Ko(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Vt.default.createElement(o,{inlineStyles:t})}var er=({flowId:e,customStepTypes:t={},type:o="inline",visible:n,setVisible:r,customVariables:i,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:l=!0,onStepCompletion:u,onButtonClick:c,dismissible:m=!0,endFlowOnDismiss:w=!1,modalPosition:T="center",repeatable:y=!1,onDismiss:f,showPagination:v=!1,allowBackNavigation:F=!1})=>{let{getFlow:A,getFlowSteps:P,isLoading:g,targetingLogicShouldHideFlow:C,getFlowStatus:S,getCurrentStepIndex:E,markFlowCompleted:U,markFlowNotStarted:M}=Q(),W=E(e),{mergeAppearanceWithDefault:N}=oe(),[G,L]=(0,Pe.useState)(!1),{setOpenFlowState:z,getOpenFlowState:ae}=Ee();d=N(d);let[ee,H]=n!==void 0&&r!==void 0?[n,r]:[ae(e,!0),$=>z(e,$)];if((0,Pe.useEffect)(()=>{!G&&!g&&(L(!0),S(e)===re&&y&&M(e),L(!0))},[G,L,g]),g)return null;let Ae=A(e);if(!Ae||C(Ae))return null;let we=P(e);if(!we||n!==void 0&&n===!1||S(e)===re&&l)return null;let K=()=>{H(!1),f&&f(),w===!0&&U(e)};if(T=="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",Pe.default.createElement(ct,{appearance:d,onClose:K,visible:ee,style:$,dismissible:m},Pe.default.createElement(le,{appearance:d}),Pe.default.createElement(Mo,{appearance:d,steps:we,selectedStep:W,customStepTypes:t,customVariables:i,onButtonClick:c,onStepCompletion:u,flowId:e,type:o,hideOnFlowCompletion:l,onComplete:p,setVisible:r,setShowModal:H,onDismiss:f,showPagination:v,customFormElements:s,allowBackNavigation:F}))}return o==="modal"&&T!=="center"?Pe.default.createElement(Lr,{appearance:d,onClose:K,visible:ee},Pe.default.createElement(le,{appearance:d}),Pe.default.createElement(Mo,{appearance:d,steps:we,selectedStep:W,customStepTypes:t,customVariables:i,onButtonClick:c,onStepCompletion:u,flowId:e,type:o,hideOnFlowCompletion:l,onComplete:p,setVisible:r,setShowModal:H,onDismiss:f,showPagination:v,customFormElements:s,allowBackNavigation:F})):Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement(le,{appearance:d}),Pe.default.createElement(Mo,{appearance:d,steps:we,selectedStep:W,customStepTypes:t,customVariables:i,onButtonClick:c,onStepCompletion:u,flowId:e,type:o,hideOnFlowCompletion:l,onComplete:p,setVisible:r,setShowModal:H,onDismiss:f,showPagination:v,customFormElements:s,allowBackNavigation:F}))},gi=er;var Et=require("react");function Uo(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Et.useContext)(J),{mutateUserFlowState:n}=Me(),{config:r}=qe(),i=Ot(),{verifySDKInitiated:s}=Dt();(0,Et.useEffect)(()=>{if(t&&e){if(t.startsWith(Ut))return;let l=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(l)||(i(`${ve}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(l,"true"))}},[t,e]);let p=(0,Et.useCallback)(async l=>{if(s(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let u={foreignUserId:t,foreignUserGroupId:e,properties:l};await i(`${ve}userGroups`,{...r,method:"POST",body:JSON.stringify(u)}),n()},[e,t,r,n]),d=(0,Et.useCallback)(async(l,u)=>{if(s(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let m={foreignUserId:t,foreignUserGroupId:e,events:[{event:l,properties:u}]};await i(`${ve}userGroups`,{...r,method:"POST",body:JSON.stringify(m)}),n()},[e,t,r,n]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:p,trackEventForOrganization:d}}var hi="xFrigade_guestUserId",xi="xFrigade_userId",Si=({})=>{let{setFlowResponses:e}=Mt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:n}=Me(),{userId:r,setUserId:i}=vo(),[s,p]=(0,me.useState)(null),{getFlowStatus:d}=Q(),{flows:l,userProperties:u,setIsNewGuestUser:c,flowResponses:m}=(0,me.useContext)(J),[w,T]=(0,me.useState)([]),[y,f]=(0,me.useState)([]),{organizationId:v}=Uo();(0,me.useEffect)(()=>{if(!o&&t)for(let g=0;g<t.length;g++){let C=t[g],S=l.find(E=>E.slug===(C==null?void 0:C.flowId));if(S&&C&&C.shouldTrigger===!0&&S.type=="FORM"&&S.triggerType==="AUTOMATIC"&&!y.includes(S.slug)){setTimeout(()=>{F(C.flowId)},500);break}}},[o,t]),(0,me.useEffect)(()=>{m.length>0&&n()},[m]);function F(g){let C=l.find(S=>S.slug===g);C&&C.triggerType==="AUTOMATIC"&&!y.includes(C.slug)&&(f([...y,C.slug]),T([C]))}function A(){if(!r){let g=localStorage.getItem(xi);if(g){i(g);return}let C=localStorage.getItem(hi);if(C){i(C);return}c(!0);let S=Ut+(0,Ci.v4)();try{localStorage.setItem(hi,S)}catch(E){console.log("Failed to save guest user id locally: Local storage unavailable",E)}i(E=>E||S)}}(0,me.useEffect)(()=>{try{if(l){let g=[];l.forEach(C=>{if(C.data){let S=C.data.match(/"imageUri":"(.*?)"/g);S&&S.forEach(E=>{let U=E.replace('"imageUri":"',"").replace('"',"");if(g.includes(U))return;let M=new Image;M.src=U,g.push(U)})}})}}catch{}},[l]),(0,me.useEffect)(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(Ut))try{localStorage.setItem(xi,r)}catch(g){console.log("Failed to save user id locally: Local storage available",g)}r===null&&setTimeout(()=>{r===null&&A()},50)},[r,l,u]);function P(){return me.default.createElement(me.default.Fragment,null,w.map(g=>d(g.slug)!==We?null:me.default.createElement("span",{key:g.slug},me.default.createElement(gi,{flowId:g.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return me.default.createElement(me.default.Fragment,null,me.default.createElement(P,null))};var bi=require("react-error-boundary"),J=(0,q.createContext)({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:jt,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{}}),wi=({publicApiKey:e,userId:t,organizationId:o,config:n,children:r})=>{var ae,ee;let[i,s]=(0,q.useState)(t||null),[p,d]=(0,q.useState)(o||null),[l,u]=(0,q.useState)([]),[c,m]=(0,q.useState)([]),[w,T]=(0,q.useState)([]),[y,f]=(0,q.useState)({}),[v,F]=(0,q.useState)({}),[A,P]=(0,q.useState)([]),[g,C]=(0,q.useState)({}),[S,E]=(0,q.useState)(!1),[U,M]=(0,q.useState)(!1),[W,N]=(0,q.useState)(!z(e)),G=(H,Ae)=>{if(Ae==="_blank"){window.open(H,"_blank");return}setTimeout(()=>{window.location.href=H},50)},L={theme:{...jt.theme,...((ae=n==null?void 0:n.defaultAppearance)==null?void 0:ae.theme)??{}},styleOverrides:{...jt.styleOverrides,...((ee=n==null?void 0:n.defaultAppearance)==null?void 0:ee.styleOverrides)??{}}};function z(H){return!!(H&&H.length>10&&H.substring(0,10)==="api_public")}return(0,q.useEffect)(()=>{t&&s(t)},[t]),(0,q.useEffect)(()=>{o&&d(o)},[o]),(0,q.useEffect)(()=>{if(z(e))N(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),N(!0);return}},[e,N]),W?q.default.createElement(J.Provider,{value:{publicApiKey:e,userId:i,setUserId:s,setFlows:u,flows:l,failedFlowResponses:c,setFailedFlowResponses:m,flowResponses:w,setFlowResponses:T,userProperties:y,setUserProperties:f,openFlowStates:v,setOpenFlowStates:F,completedFlowsToKeepOpenDuringSession:A,setCompletedFlowsToKeepOpenDuringSession:P,customVariables:g,setCustomVariables:C,isNewGuestUser:S,setIsNewGuestUser:E,hasActiveFullPageFlow:U,setHasActiveFullPageFlow:M,organizationId:p,setOrganizationId:d,navigate:n&&n.navigate?n.navigate:G,defaultAppearance:L,shouldGracefullyDegrade:W,setShouldGracefullyDegrade:N}},r):q.default.createElement(bi.ErrorBoundary,{fallback:q.default.createElement(q.default.Fragment,null,r)},q.default.createElement(J.Provider,{value:{publicApiKey:e,userId:i,setUserId:s,setFlows:u,flows:l,failedFlowResponses:c,setFailedFlowResponses:m,flowResponses:w,setFlowResponses:T,userProperties:y,setUserProperties:f,openFlowStates:v,setOpenFlowStates:F,completedFlowsToKeepOpenDuringSession:A,setCompletedFlowsToKeepOpenDuringSession:P,customVariables:g,setCustomVariables:C,isNewGuestUser:S,setIsNewGuestUser:E,hasActiveFullPageFlow:U,setHasActiveFullPageFlow:M,organizationId:p,setOrganizationId:d,navigate:n&&n.navigate?n.navigate:G,defaultAppearance:L,shouldGracefullyDegrade:W,setShouldGracefullyDegrade:N}},q.default.createElement(yi.ThemeProvider,{theme:L.theme},r,q.default.createElement(Si,null))))};var es=h(require("react"));var R=h(require("react"));var Be=h(require("react")),ht=h(require("styled-components"));var go=h(require("react"));var ft=h(require("react")),tr=h(require("styled-components"));var Ti=tr.default.span`
525
526
  font-weight: 400;
526
527
  font-size: 15px;
527
528
  line-height: 20px;
@@ -1127,7 +1128,7 @@ ${n=>n.inlineStyles.map(([r,i])=>`.${so}${r}.${so}${r} { ${Object.entries(i).map
1127
1128
  color: ${({theme:e})=>e.colorTextSecondary};
1128
1129
  ${e=>e.blocked||e.complete?"opacity: 0.4;":`
1129
1130
  `}
1130
- `;var Jn=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:n}=oe(),{primaryCTAClickSideEffects:r}=de(),{theme:i,styleOverrides:s}=n(o),{imageUri:p=null,subtitle:d=null,title:l=null,complete:u=!1,blocked:c=!1}=e,m=()=>{r(e)};return xt.default.createElement(zn,{className:a("carouselCard",o),onClick:c?null:m,style:t,blocked:c,complete:u},xt.default.createElement("div",{style:{alignItems:"flex-start",display:"flex",justifyContent:"space-between"}},p&&xt.default.createElement(Hn,{className:a("carouselCardImage",o),src:p,alt:l,style:{opacity:u||c?.4:1}}),u&&xt.default.createElement(Kn,{className:a("carouselCompletedPill",o)},xt.default.createElement(Xn,{style:{color:"#108E0B"}},"Complete"))),l&&xt.default.createElement(Yn,{blocked:c,complete:u,className:a("carouselCardTitle",o)},l),d&&xt.default.createElement(ot.Quiet,{blocked:c,complete:u,className:a("carouselCardSubtitle",o)},d))};var Rt=h(require("react"));var Qn=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let n=t>0?e/t:0,r=200,i=Math.min(r,Math.max(10,Math.round(r*n)));return Rt.default.createElement(Gn,{className:a("carouselProgressBar",o)},Rt.default.createElement(Vn,{as:ot.Loud,style:{marginRight:8}},e," of ",t),Rt.default.createElement("svg",{height:10,width:r},Rt.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),Rt.default.createElement("rect",{x:0,y:0,rx:5,width:i,height:10,fill:"currentColor"})))};var ja=()=>_.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),Zn=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[n,r]=(0,_.useState)(!1),[i,s]=(0,_.useState)(!1);(0,_.useEffect)(()=>{t===!0&&n===!1?r(!0):t===!1&&n===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},d=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return n?_.default.createElement(Un,{style:d,reversed:i,onAnimationEnd:i?p:null},_.default.createElement(_n,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},_.default.createElement(ja,null))):null},Rn=({flowId:e,appearance:t,customVariables:o,className:n})=>{let r=(0,_.useRef)(null),[i,s]=(0,_.useState)(!1),[p,d]=(0,_.useState)(!1),[l,u]=(0,_.useState)(null),[c,m]=(0,_.useState)([]),[w,T]=(0,_.useState)(0),{getFlowMetadata:y,getFlowSteps:f,getNumberOfStepsCompleted:v,updateCustomVariables:F,getFlowStatus:A,isLoading:P,targetingLogicShouldHideFlow:g,getFlow:C}=Q();(0,_.useEffect)(()=>{F(o)},[o,P]),(0,_.useEffect)(()=>{if(P)return;let N=y(e),G=v(e),L=f(e);u(N),N.data!==null&&(m(L.sort((z,ae)=>Number(z.complete)-Number(ae.complete))),d(L.length>3),T(G))},[P]);let S=[];for(let N=0;N<c.length;N+=3)S.push(c.slice(N,N+3));let E=N=>{let G=N.target,L=G.scrollWidth-G.clientWidth,z=Math.ceil(G.scrollLeft);z>0&&i===!1&&s(!0),z===0&&i===!0&&s(!1),z<L&&p===!1&&d(!0),z===L&&p===!0&&d(!1)},U=(N=!0)=>{let G=N?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*G,behavior:"smooth"})},M=null,W=N=>{M!==null?clearTimeout(M):E(N),M=setTimeout(()=>{E(N)},16)};return P?null:_.default.createElement(jn,{className:Fe(a("carouselContainer",t),n)},_.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},_.default.createElement("div",null,_.default.createElement(qn,{className:a("carouselTitle",t)},l==null?void 0:l.title),_.default.createElement(ot.Quiet,{className:a("carouselSubtitle",t)},l==null?void 0:l.subtitle)),_.default.createElement(Qn,{numberOfStepsCompleted:w,numberOfSteps:c.length})),_.default.createElement("div",{style:{position:"relative"}},_.default.createElement(Zn,{show:i,onClick:()=>U(!1)}),_.default.createElement(Zn,{side:"right",show:p,onClick:U}),_.default.createElement($n,{ref:r,onScroll:W},S.map((N,G)=>_.default.createElement(Mn,{key:G,style:{flex:`0 0 calc(100% - ${c.length>3?36:0}px)`}},N.map((L,z)=>_.default.createElement(Jn,{key:z,stepData:L,style:{flex:c.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))))};var Go=({flowId:e,title:t,subtitle:o,style:n,initialSelectedStep:r,className:i,type:s="inline",onDismiss:p,visible:d,customVariables:l,onStepCompletion:u,onButtonClick:c,appearance:m,hideOnFlowCompletion:w,setVisible:T,customStepTypes:y,checklistStyle:f="default",autoExpandFirstIncompleteStep:v,autoExpandNextStep:F,...A})=>{let{getFlow:P,getFlowSteps:g,markStepCompleted:C,getStepStatus:S,getNumberOfStepsCompleted:E,isLoading:U,targetingLogicShouldHideFlow:M,updateCustomVariables:W,getFlowMetadata:N,isStepBlocked:G,getFlowStatus:L,hasActiveFullPageFlow:z,setHasActiveFullPageFlow:ae}=Q(),{primaryCTAClickSideEffects:ee,secondaryCTAClickSideEffects:H}=de(),{getOpenFlowState:Ae,setOpenFlowState:be}=Ee(),[K,$]=(0,R.useState)(r||0),[pe,O]=(0,R.useState)(!1),X=d===void 0?Ae(e):d,Ie=s==="modal",{mergeAppearanceWithDefault:De}=oe(),{isLarge:Nt}=yn();if(m=De(m),(0,R.useEffect)(()=>{W(l)},[l,U]),(0,R.useEffect)(()=>{d!==void 0&&(Ie&&d===!0?ae(!0):Ie&&d===!1&&ae(!1))},[d,T,z]),U)return null;let St=P(e);if(!St||M(St))return null;let Ne=g(e);if(!Ne||w===!0&&L(e)===re)return null;let we=N(e);if(we!=null&&we.title&&(t=we.title),we!=null&&we.subtitle&&(o=we.subtitle),!pe&&r===void 0&&E(e)>0){let j=Math.min(E(e),Ne.length-1);$(j),O(!0)}function it(){if(K+1>=Ne.length){Ie&&be(e,!1);return}G(e,Ne[K+1].id)||$(K+1)}function nt(j,bt,wo){let Cr=K+1<Ne.length?Ne[K+1]:null;c&&c(j,K,bt,Cr)===!0&&Ie&&x(),u&&u(j,wo,Cr),!u&&!c&&(j.primaryButtonUri||j.secondaryButtonUri)&&Ie&&x()}function te(){return Ne.map((j,bt)=>({...j,handleSecondaryButtonClick:()=>{it(),H(j),j.skippable===!0&&C(e,j.id,{skipped:!0}),nt(j,"secondary",bt)},handlePrimaryButtonClick:()=>{(!j.completionCriteria&&(j.autoMarkCompleted||j.autoMarkCompleted===void 0)||j.completionCriteria&&j.autoMarkCompleted===!0)&&(C(e,j.id),it()),nt(j,"primary",bt),ee(j),S(e,j.id)===We&&it()}}))}function Te(){return R.default.createElement(le,{appearance:m})}let yt={steps:te(),title:t,subtitle:o,primaryColor:m.theme.colorPrimary,appearance:m,customStepTypes:y,type:s,className:i,autoExpandFirstIncompleteStep:v,autoExpandNextStep:F};function x(){be(e,!1),p&&p(),T&&T(!1)}function b(){return R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),R.default.createElement(Rn,{flowId:e,appearance:m,customVariables:l,className:i}))}function B(){return R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),R.default.createElement(ar,{visible:X,onClose:()=>{x()},selectedStep:K,setSelectedStep:$,autoExpandNextStep:!0,appearance:m,...yt}))}function V(){if(!Nt)return B();let j=A.guideFlowId,bt;return j&&P(j)&&(bt=g(j)),R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),R.default.createElement(lr,{visible:X,stepsTitle:we.stepsTitle?we.stepsTitle:"Your quick start guide",onClose:()=>{x()},selectedStep:K,setSelectedStep:$,guideData:bt,guideTitle:A.guideTitle??"Guide",appearance:m,title:t,subtitle:o,onGuideButtonClick:wo=>{nt(wo,"link",0)},customStepTypes:y,...yt}))}function he(){if(!Nt)return B();let j=R.default.createElement(ir,{flowId:e,style:n,selectedStep:K,setSelectedStep:$,appearance:m,type:s,...yt});return Ie?R.default.createElement(ct,{onClose:()=>{x()},visible:X,appearance:m,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},R.default.createElement(Te,null),j):R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),j)}switch(f){case"condensed":return B();case"with-guide":return V();case"default":return he();case"carousel":return b();default:return he()}};var ts=e=>es.default.createElement(Go,{type:"inline",...e});var Ge=h(require("react"));var je=h(require("react"));var yo=h(require("styled-components")),os=yo.default.div`
1131
+ `;var Jn=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:n}=oe(),{primaryCTAClickSideEffects:r}=de(),{theme:i,styleOverrides:s}=n(o),{imageUri:p=null,subtitle:d=null,title:l=null,complete:u=!1,blocked:c=!1}=e,m=()=>{r(e)};return xt.default.createElement(zn,{className:a("carouselCard",o),onClick:c?null:m,style:t,blocked:c,complete:u},xt.default.createElement("div",{style:{alignItems:"flex-start",display:"flex",justifyContent:"space-between"}},p&&xt.default.createElement(Hn,{className:a("carouselCardImage",o),src:p,alt:l,style:{opacity:u||c?.4:1}}),u&&xt.default.createElement(Kn,{className:a("carouselCompletedPill",o)},xt.default.createElement(Xn,{style:{color:"#108E0B"}},"Complete"))),l&&xt.default.createElement(Yn,{blocked:c,complete:u,className:a("carouselCardTitle",o)},l),d&&xt.default.createElement(ot.Quiet,{blocked:c,complete:u,className:a("carouselCardSubtitle",o)},d))};var Rt=h(require("react"));var Qn=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let n=t>0?e/t:0,r=200,i=Math.min(r,Math.max(10,Math.round(r*n)));return Rt.default.createElement(Gn,{className:a("carouselProgressBar",o)},Rt.default.createElement(Vn,{as:ot.Loud,style:{marginRight:8}},e," of ",t),Rt.default.createElement("svg",{height:10,width:r},Rt.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),Rt.default.createElement("rect",{x:0,y:0,rx:5,width:i,height:10,fill:"currentColor"})))};var ja=()=>_.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),Zn=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[n,r]=(0,_.useState)(!1),[i,s]=(0,_.useState)(!1);(0,_.useEffect)(()=>{t===!0&&n===!1?r(!0):t===!1&&n===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},d=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return n?_.default.createElement(Un,{style:d,reversed:i,onAnimationEnd:i?p:null},_.default.createElement(_n,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},_.default.createElement(ja,null))):null},Rn=({flowId:e,appearance:t,customVariables:o,className:n})=>{let r=(0,_.useRef)(null),[i,s]=(0,_.useState)(!1),[p,d]=(0,_.useState)(!1),[l,u]=(0,_.useState)(null),[c,m]=(0,_.useState)([]),[w,T]=(0,_.useState)(0),{getFlowMetadata:y,getFlowSteps:f,getNumberOfStepsCompleted:v,updateCustomVariables:F,getFlowStatus:A,isLoading:P,targetingLogicShouldHideFlow:g,getFlow:C}=Q();(0,_.useEffect)(()=>{F(o)},[o,P]),(0,_.useEffect)(()=>{if(P)return;let N=y(e),G=v(e),L=f(e);u(N),N.data!==null&&(m(L.sort((z,ae)=>Number(z.complete)-Number(ae.complete))),d(L.length>3),T(G))},[P]);let S=[];for(let N=0;N<c.length;N+=3)S.push(c.slice(N,N+3));let E=N=>{let G=N.target,L=G.scrollWidth-G.clientWidth,z=Math.ceil(G.scrollLeft);z>0&&i===!1&&s(!0),z===0&&i===!0&&s(!1),z<L&&p===!1&&d(!0),z===L&&p===!0&&d(!1)},U=(N=!0)=>{let G=N?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*G,behavior:"smooth"})},M=null,W=N=>{M!==null?clearTimeout(M):E(N),M=setTimeout(()=>{E(N)},16)};return P?null:_.default.createElement(jn,{className:Fe(a("carouselContainer",t),n)},_.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},_.default.createElement("div",null,_.default.createElement(qn,{className:a("carouselTitle",t)},l==null?void 0:l.title),_.default.createElement(ot.Quiet,{className:a("carouselSubtitle",t)},l==null?void 0:l.subtitle)),_.default.createElement(Qn,{numberOfStepsCompleted:w,numberOfSteps:c.length})),_.default.createElement("div",{style:{position:"relative"}},_.default.createElement(Zn,{show:i,onClick:()=>U(!1)}),_.default.createElement(Zn,{side:"right",show:p,onClick:U}),_.default.createElement($n,{ref:r,onScroll:W},S.map((N,G)=>_.default.createElement(Mn,{key:G,style:{flex:`0 0 calc(100% - ${c.length>3?36:0}px)`}},N.map((L,z)=>_.default.createElement(Jn,{key:z,stepData:L,style:{flex:c.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))))};var Go=({flowId:e,title:t,subtitle:o,style:n,initialSelectedStep:r,className:i,type:s="inline",onDismiss:p,visible:d,customVariables:l,onStepCompletion:u,onButtonClick:c,appearance:m,hideOnFlowCompletion:w,setVisible:T,customStepTypes:y,checklistStyle:f="default",autoExpandFirstIncompleteStep:v,autoExpandNextStep:F,...A})=>{let{getFlow:P,getFlowSteps:g,markStepCompleted:C,getStepStatus:S,getNumberOfStepsCompleted:E,isLoading:U,targetingLogicShouldHideFlow:M,updateCustomVariables:W,getFlowMetadata:N,isStepBlocked:G,getFlowStatus:L,hasActiveFullPageFlow:z,setHasActiveFullPageFlow:ae}=Q(),{primaryCTAClickSideEffects:ee,secondaryCTAClickSideEffects:H}=de(),{getOpenFlowState:Ae,setOpenFlowState:we}=Ee(),[K,$]=(0,R.useState)(r||0),[pe,O]=(0,R.useState)(!1),X=d===void 0?Ae(e):d,Ie=s==="modal",{mergeAppearanceWithDefault:De}=oe(),{isLarge:Nt}=yn();if(m=De(m),(0,R.useEffect)(()=>{W(l)},[l,U]),(0,R.useEffect)(()=>{d!==void 0&&(Ie&&d===!0?ae(!0):Ie&&d===!1&&ae(!1))},[d,T,z]),U)return null;let St=P(e);if(!St||M(St))return null;let Ne=g(e);if(!Ne||w===!0&&L(e)===re)return null;let ye=N(e);if(ye!=null&&ye.title&&(t=ye.title),ye!=null&&ye.subtitle&&(o=ye.subtitle),!pe&&r===void 0&&E(e)>0){let j=Math.min(E(e),Ne.length-1);$(j),O(!0)}function it(){if(K+1>=Ne.length){Ie&&we(e,!1);return}G(e,Ne[K+1].id)||$(K+1)}function nt(j,bt,wo){let Cr=K+1<Ne.length?Ne[K+1]:null;c&&c(j,K,bt,Cr)===!0&&Ie&&x(),u&&u(j,wo,Cr),!u&&!c&&(j.primaryButtonUri||j.secondaryButtonUri)&&Ie&&x()}function te(){return Ne.map((j,bt)=>({...j,handleSecondaryButtonClick:()=>{it(),H(j),j.skippable===!0&&C(e,j.id,{skipped:!0}),nt(j,"secondary",bt)},handlePrimaryButtonClick:()=>{(!j.completionCriteria&&(j.autoMarkCompleted||j.autoMarkCompleted===void 0)||j.completionCriteria&&j.autoMarkCompleted===!0)&&(C(e,j.id),it()),nt(j,"primary",bt),ee(j),S(e,j.id)===ze&&it()}}))}function Te(){return R.default.createElement(le,{appearance:m})}let yt={steps:te(),title:t,subtitle:o,primaryColor:m.theme.colorPrimary,appearance:m,customStepTypes:y,type:s,className:i,autoExpandFirstIncompleteStep:v,autoExpandNextStep:F};function x(){we(e,!1),p&&p(),T&&T(!1)}function b(){return R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),R.default.createElement(Rn,{flowId:e,appearance:m,customVariables:l,className:i}))}function B(){return R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),R.default.createElement(ar,{visible:X,onClose:()=>{x()},selectedStep:K,setSelectedStep:$,autoExpandNextStep:!0,appearance:m,...yt}))}function V(){if(!Nt)return B();let j=A.guideFlowId,bt;return j&&P(j)&&(bt=g(j)),R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),R.default.createElement(lr,{visible:X,stepsTitle:ye.stepsTitle?ye.stepsTitle:"Your quick start guide",onClose:()=>{x()},selectedStep:K,setSelectedStep:$,guideData:bt,guideTitle:A.guideTitle??"Guide",appearance:m,title:t,subtitle:o,onGuideButtonClick:wo=>{nt(wo,"link",0)},customStepTypes:y,...yt}))}function he(){if(!Nt)return B();let j=R.default.createElement(ir,{flowId:e,style:n,selectedStep:K,setSelectedStep:$,appearance:m,type:s,...yt});return Ie?R.default.createElement(ct,{onClose:()=>{x()},visible:X,appearance:m,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},R.default.createElement(Te,null),j):R.default.createElement(R.default.Fragment,null,R.default.createElement(Te,null),j)}switch(f){case"condensed":return B();case"with-guide":return V();case"default":return he();case"carousel":return b();default:return he()}};var ts=e=>es.default.createElement(Go,{type:"inline",...e});var Ve=h(require("react"));var Ge=h(require("react"));var yo=h(require("styled-components")),os=yo.default.div`
1131
1132
  border: 1px solid ${e=>e.appearance.theme.colorBorder};
1132
1133
  border-radius: 8px;
1133
1134
  padding: 6px 10px 6px 10px;
@@ -1154,7 +1155,7 @@ ${n=>n.inlineStyles.map(([r,i])=>`.${so}${r}.${so}${r} { ${Object.entries(i).map
1154
1155
  display: flex;
1155
1156
  height: 100%;
1156
1157
  align-items: center;
1157
- `;var ss=require("framer-motion");var ls=({title:e,count:t,total:o,onClick:n,style:r={},className:i,appearance:s,type:p="default"})=>je.default.createElement(je.default.Fragment,null,je.default.createElement(le,{appearance:s}),je.default.createElement(os,{as:ss.motion.div,whileHover:{opacity:.9},whileTap:{scale:.98},onClick:()=>n!==void 0&&n(),style:{...p=="condensed"?{display:"flex",justifyContent:"space-between"}:{},...r},className:Fe(i??"",a("progressRingContainer",s)),appearance:s},p=="condensed"&&o&&o!==0&&je.default.createElement(ns,{className:a("progressRingContainer",s)},je.default.createElement(vt,{size:19,percentage:t/o,fillColor:s.theme.colorPrimary,bgColor:s.theme.colorBackgroundSecondary})),je.default.createElement(rs,{type:p,className:a("badgeTitleContainer",s)},je.default.createElement(is,{type:p,appearance:s,className:a("badgeTitle",s)},e),n!==void 0&&je.default.createElement(Zt,{className:a("badgeChevron",s),color:s.theme.colorPrimary})),p=="default"&&o&&o!==0&&je.default.createElement(Qe,{display:"compact",count:t,total:o,fillColor:s.theme.colorPrimary,bgColor:s.theme.colorBackgroundSecondary,style:{width:"100%"},appearance:s})));var pt=h(require("react"));var eo=h(require("styled-components"));var as=eo.default.div`
1158
+ `;var ss=require("framer-motion");var ls=({title:e,count:t,total:o,onClick:n,style:r={},className:i,appearance:s,type:p="default"})=>Ge.default.createElement(Ge.default.Fragment,null,Ge.default.createElement(le,{appearance:s}),Ge.default.createElement(os,{as:ss.motion.div,whileHover:{opacity:.9},whileTap:{scale:.98},onClick:()=>n!==void 0&&n(),style:{...p=="condensed"?{display:"flex",justifyContent:"space-between"}:{},...r},className:Fe(i??"",a("progressRingContainer",s)),appearance:s},p=="condensed"&&o&&o!==0&&Ge.default.createElement(ns,{className:a("progressRingContainer",s)},Ge.default.createElement(vt,{size:19,percentage:t/o,fillColor:s.theme.colorPrimary,bgColor:s.theme.colorBackgroundSecondary})),Ge.default.createElement(rs,{type:p,className:a("badgeTitleContainer",s)},Ge.default.createElement(is,{type:p,appearance:s,className:a("badgeTitle",s)},e),n!==void 0&&Ge.default.createElement(Zt,{className:a("badgeChevron",s),color:s.theme.colorPrimary})),p=="default"&&o&&o!==0&&Ge.default.createElement(Qe,{display:"compact",count:t,total:o,fillColor:s.theme.colorPrimary,bgColor:s.theme.colorBackgroundSecondary,style:{width:"100%"},appearance:s})));var pt=h(require("react"));var eo=h(require("styled-components"));var as=eo.default.div`
1158
1159
  display: flex;
1159
1160
  flex-direction: row;
1160
1161
  width: 100%;
@@ -1192,7 +1193,7 @@ ${n=>n.inlineStyles.map(([r,i])=>`.${so}${r}.${so}${r} { ${Object.entries(i).map
1192
1193
  :hover {
1193
1194
  opacity: 0.8;
1194
1195
  }
1195
- `;var ms=({title:e,subtitle:t,icon:o,appearance:n,count:r,total:i,className:s,style:p})=>pt.default.createElement(pt.default.Fragment,null,pt.default.createElement(as,{appearance:n,className:Fe(a("fullWidthProgressBadgeContainer",n),s??""),style:p},o&&pt.default.createElement(ps,{className:a("fullWidthProgressBadgeIcon",n)},o),pt.default.createElement(ds,null,pt.default.createElement(ke,{size:"small",appearance:n,title:e,subtitle:t})),pt.default.createElement(cs,{className:a("fullWidthProgressBadgeProgressContainer",n)},pt.default.createElement(Qe,{count:r,total:i,display:"percent",textLocation:"top",fillColor:n.theme.colorPrimary}))));var us=({flowId:e,title:t,subtitle:o,icon:n,style:r,onClick:i,className:s,customVariables:p,hideOnFlowCompletion:d,appearance:l,type:u="default"})=>{let{getFlow:c,getFlowSteps:m,getFlowStatus:w,getNumberOfStepsCompleted:T,isLoading:y,targetingLogicShouldHideFlow:f,updateCustomVariables:v}=Q(),{mergeAppearanceWithDefault:F}=oe();l=F(l);let{setOpenFlowState:A,getOpenFlowState:P}=Ee();if((0,Ge.useEffect)(()=>{v(p)},[p,y]),y)return null;let g=c(e);if(!g||f(g)||d===!0&&w(e)===re)return null;let C=m(e),S=T(e);return u==="full-width"?Ge.default.createElement(Ge.default.Fragment,null,Ge.default.createElement(le,{appearance:l}),Ge.default.createElement(ms,{title:t,subtitle:o,count:S,total:C.length,style:r,className:s,appearance:l,icon:n,onClick:()=>{}})):Ge.default.createElement(Ge.default.Fragment,null,Ge.default.createElement(le,{appearance:l}),Ge.default.createElement(ls,{count:S,total:C.length,title:t,style:r,onClick:()=>{A(e,!0),i&&i()},type:u,className:s,appearance:l}))};var fs=h(require("react"));var gs=({flowId:e,style:t,appearance:o,...n})=>{let{getFlow:r,targetingLogicShouldHideFlow:i,getFlowSteps:s}=Q(),{mergeAppearanceWithDefault:p}=oe();o=p(o);let d=r(e);if(!d||i(d))return null;let l=s(e);return fs.default.createElement(So,{steps:l,style:t,appearance:o,...n})};var Ve=h(require("react"));var I=h(require("react"));var ro=h(require("styled-components"));var to=require("react"),pr=(e,t,o,n={x:20,y:20},r)=>{let i=r=="fixed"?0:window.scrollY,s=r=="fixed"?0:window.scrollX;return!e||!e.left||!e.top?{x:0,y:0}:t==="left"?{x:e.left-o+n.x+s,y:e.top-n.y+i}:t==="right"?{x:e.left+e.width+n.x+s,y:e.top-n.y+i}:{x:0,y:0}},hs={bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0};function Ga(e){let t=hs;return e&&(t=e.getBoundingClientRect()),t}function xs(e,t){let[o,n]=(0,to.useState)(hs),r=(0,to.useCallback)(()=>{e&&n(Ga(e))},[e]);return(0,to.useEffect)(()=>(r(),window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)),[e,t]),o}var dt=h(require("styled-components"));var Cs=dt.default.div`
1196
+ `;var ms=({title:e,subtitle:t,icon:o,appearance:n,count:r,total:i,className:s,style:p})=>pt.default.createElement(pt.default.Fragment,null,pt.default.createElement(as,{appearance:n,className:Fe(a("fullWidthProgressBadgeContainer",n),s??""),style:p},o&&pt.default.createElement(ps,{className:a("fullWidthProgressBadgeIcon",n)},o),pt.default.createElement(ds,null,pt.default.createElement(ke,{size:"small",appearance:n,title:e,subtitle:t})),pt.default.createElement(cs,{className:a("fullWidthProgressBadgeProgressContainer",n)},pt.default.createElement(Qe,{count:r,total:i,display:"percent",textLocation:"top",fillColor:n.theme.colorPrimary}))));var us=({flowId:e,title:t,subtitle:o,icon:n,style:r,onClick:i,className:s,customVariables:p,hideOnFlowCompletion:d,appearance:l,type:u="default"})=>{let{getFlow:c,getFlowSteps:m,getFlowStatus:w,getNumberOfStepsCompleted:T,isLoading:y,targetingLogicShouldHideFlow:f,updateCustomVariables:v}=Q(),{mergeAppearanceWithDefault:F}=oe();l=F(l);let{setOpenFlowState:A,getOpenFlowState:P}=Ee();if((0,Ve.useEffect)(()=>{v(p)},[p,y]),y)return null;let g=c(e);if(!g||f(g)||d===!0&&w(e)===re)return null;let C=m(e),S=T(e);return u==="full-width"?Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(le,{appearance:l}),Ve.default.createElement(ms,{title:t,subtitle:o,count:S,total:C.length,style:r,className:s,appearance:l,icon:n,onClick:()=>{}})):Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(le,{appearance:l}),Ve.default.createElement(ls,{count:S,total:C.length,title:t,style:r,onClick:()=>{A(e,!0),i&&i()},type:u,className:s,appearance:l}))};var fs=h(require("react"));var gs=({flowId:e,style:t,appearance:o,...n})=>{let{getFlow:r,targetingLogicShouldHideFlow:i,getFlowSteps:s}=Q(),{mergeAppearanceWithDefault:p}=oe();o=p(o);let d=r(e);if(!d||i(d))return null;let l=s(e);return fs.default.createElement(So,{steps:l,style:t,appearance:o,...n})};var Ke=h(require("react"));var I=h(require("react"));var ro=h(require("styled-components"));var to=require("react"),pr=(e,t,o,n={x:20,y:20},r)=>{let i=r=="fixed"?0:window.scrollY,s=r=="fixed"?0:window.scrollX;return!e||!e.left||!e.top?{x:0,y:0}:t==="left"?{x:e.left-o+n.x+s,y:e.top-n.y+i}:t==="right"?{x:e.left+e.width+n.x+s,y:e.top-n.y+i}:{x:0,y:0}},hs={bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0};function Ga(e){let t=hs;return e&&(t=e.getBoundingClientRect()),t}function xs(e,t){let[o,n]=(0,to.useState)(hs),r=(0,to.useCallback)(()=>{e&&n(Ga(e))},[e]);return(0,to.useEffect)(()=>(r(),window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)),[e,t]),o}var dt=h(require("styled-components"));var Cs=dt.default.div`
1196
1197
  ${e=>k(e)} {
1197
1198
  background: ${e=>e.appearance.theme.colorBackground};
1198
1199
  }
@@ -1299,7 +1300,7 @@ ${n=>n.inlineStyles.map(([r,i])=>`.${so}${r}.${so}${r} { ${Object.entries(i).map
1299
1300
  `,Xa=(0,ro.default)(Es)`
1300
1301
  width: ${oo+12}px;
1301
1302
  height: ${oo+12}px;
1302
- `,Ja=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:n="auto",showHighlight:r=!0,primaryColor:i="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:d={},selectedStep:l=0,customStepTypes:u,appearance:c,dismissible:m=!1,showHighlightOnly:w,showStepCount:T=!0,completedStepsCount:y=0})=>{var Ne,we,it,nt;let[f,v]=(0,I.useState)(),[F,A]=(0,I.useState)(new Date),P=(0,I.useRef)(null),[g,C]=(0,I.useState)(document.querySelector(e[l].selector)),S=xs(g,F),[E,U]=(0,I.useState)(),[M,W]=(0,I.useState)(!w),N=(we=(Ne=e[l])==null?void 0:Ne.props)!=null&&we.position?e[l].props.position:"absolute",G=((nt=(it=e[l])==null?void 0:it.props)==null?void 0:nt.zIndex)??90,L=(f==null?void 0:f.width)??Ps,z=(f==null?void 0:f.height)??vs;(0,I.useLayoutEffect)(()=>{P.current&&v({width:P.current.clientWidth,height:P.current.clientHeight})},[l,F,N]),(0,I.useEffect)(()=>{w||W(!0)},[l]);let ae=n==="auto"?"right":n,ee=pr(S,ae,L,s,N),H=S.right+L>(window.innerWidth||document.documentElement.clientWidth),Ae=S.bottom+vs>(window.innerHeight||document.documentElement.clientHeight);H&&n==="auto"&&(ee=pr(S,"left",L,s,N),ae="left");let be=window.location.pathname.split("/").pop(),K=()=>{let te=document.querySelector(e[l].selector);E&&E===JSON.stringify(te==null?void 0:te.getBoundingClientRect())||(C(te),A(new Date),te&&U(JSON.stringify(te.getBoundingClientRect())))};if((0,I.useEffect)(()=>{let te=new MutationObserver(K);return te.observe(document.body,{subtree:!0,childList:!0}),()=>te.disconnect()},[K]),(0,I.useEffect)(()=>{let te=new MutationObserver(K);return te.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>te.disconnect()},[K]),(0,I.useEffect)(()=>{let te=setInterval(()=>{K()},10);return()=>clearInterval(te)},[K]),(0,I.useLayoutEffect)(()=>{setTimeout(()=>{K()},Va),K()},[l,be]),g===null)return I.default.createElement(I.default.Fragment,null);if(ee.x==0&&ee.y==0)return I.default.createElement(I.default.Fragment,null);if(!p)return I.default.createElement(I.default.Fragment,null);let $=()=>{let te=()=>{if(e[l].handlePrimaryButtonClick&&(e[l].handlePrimaryButtonClick(),W(!1),setTimeout(()=>{K()},30)),y===e.length-1)return o()},Te=()=>{e[l].handleSecondaryButtonClick&&(e[l].handleSecondaryButtonClick(),w&&W(!1))};return I.default.createElement(I.default.Fragment,null,T&&I.default.createElement(Ts,null,I.default.createElement(ks,{className:a("tooltipStepCounter",c)},l+1," of ",e.length)),I.default.createElement(Fs,{showStepCount:T,className:a("tooltipCTAContainer",c)},e[l].secondaryButtonTitle&&I.default.createElement(ie,{title:e[l].secondaryButtonTitle,appearance:c,onClick:Te,size:"small",withMargin:!1,secondary:!0}),e[l].primaryButtonTitle&&I.default.createElement(ie,{title:e[l].primaryButtonTitle,appearance:c,onClick:te,withMargin:!1,size:"small"})))},pe=()=>I.default.createElement(I.default.Fragment,null,m&&I.default.createElement(Ss,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:a("tooltipClose",c)},I.default.createElement(Le,null)),e[l].imageUri&&I.default.createElement(ys,{dismissible:m,appearance:c,src:e[l].imageUri,className:a("tooltipImageContainer",c)}),e[l].videoUri&&!e[l].imageUri&&I.default.createElement(bs,{dismissible:m,appearance:c,className:a("tooltipVideoContainer",c)},I.default.createElement(zt,{appearance:c,videoUri:e[l].videoUri})),I.default.createElement(ke,{appearance:c,title:e[l].title,subtitle:e[l].subtitle,size:"small"}),I.default.createElement(ws,{className:a("tooltipFooter",c)},I.default.createElement($,null))),X={...{default:te=>{var Te;if((Te=e[l])!=null&&Te.StepContent){let yt=e[l].StepContent;return I.default.createElement("div",null,yt)}return I.default.createElement(pe,null)}},...u},Ie=()=>{var te;return e?!((te=e[l])!=null&&te.type)||!X[e[l].type]?X.default(e[l]):X[e[l].type]({stepData:e[l],primaryColor:i}):I.default.createElement(I.default.Fragment,null)};if(w&&e[l].complete===!0)return null;let De={top:(ee==null?void 0:ee.y)-oo,left:(ae=="left"?S.x+s.x:(ee==null?void 0:ee.x)-oo)??0,cursor:w?"pointer":"default",position:N},Nt=()=>{let Te=De.left+(ae=="left"?-L:24);return Math.min(Math.max(Te,20),window.innerWidth-L-20)},St=()=>{w&&(A(new Date),W(!M))};return I.default.createElement(Ya,null,I.default.createElement(Xa,{style:De,zIndex:G,className:a("tourHighlightContainer",c)},r&&e[l].showHighlight!==!1&&I.default.createElement(I.default.Fragment,null,I.default.createElement(qa,{style:{position:N},onClick:St,primaryColor:c.theme.colorPrimary}),I.default.createElement(Ka,{style:{position:"absolute"},onClick:St,primaryColor:c.theme.colorPrimary}))),I.default.createElement(Es,{style:{...De,left:Nt()},zIndex:G+1,className:a("tooltipContainerWrapper",c)},M&&I.default.createElement(Cs,{ref:P,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...d},appearance:c,className:a("tooltipContainer",c),maxWidth:Ps,zIndex:G+10},I.default.createElement(Ie,null))))},Vo=Ja;var Bs=require("react-portal");var As=({flowId:e,customVariables:t,appearance:o,onStepCompletion:n,onButtonClick:r,showTooltipsSimultaneously:i=!1,onDismiss:s,dismissible:p,tooltipPosition:d="auto",showHighlightOnly:l=!1,dismissBehavior:u="complete-flow",onComplete:c,...m})=>{let{getFlow:w,getFlowSteps:T,isLoading:y,targetingLogicShouldHideFlow:f,markStepCompleted:v,markStepStarted:F,markFlowCompleted:A,updateCustomVariables:P,getCurrentStepIndex:g,getStepStatus:C,isStepBlocked:S,getFlowStatus:E,getNumberOfStepsCompleted:U}=Q(),{isLoadingUserFlowStateData:M}=Me(),{primaryCTAClickSideEffects:W,secondaryCTAClickSideEffects:N}=de(),{hasOpenModals:G}=Ee(),L=g(e),{openFlowStates:z}=(0,Ve.useContext)(J),{mergeAppearanceWithDefault:ae}=oe();if(o=ae(o),(0,Ve.useEffect)(()=>{P(t)},[t,y]),M)return null;let ee=w(e);if(!ee||f(ee)||E(e)==re||G())return null;let H=T(e);if(Object.keys(z).length>0){let O=Object.keys(z).find(X=>z[X]===!0);if(O!==void 0&&O!==e)return Ve.default.createElement(Ve.default.Fragment,null)}async function Ae(O){if(await v(e,O.id),H.map(X=>C(e,X.id)).every(X=>X===We)){await A(e);return}if(!l&&L+1<H.length){if(S(e,H[L+1].id))return;await F(e,H[L+1].id)}}function be(O,X,Ie){let De=L+1<H.length?H[L+1]:null;r&&r(O,L,X,De),n&&n(O,Ie,De)}function K(){return H.map(O=>({...O,handleSecondaryButtonClick:async()=>{N(O),O.skippable===!0&&await v(e,O.id,{skipped:!0}),be(O,"secondary",L)},handlePrimaryButtonClick:async()=>{(!O.completionCriteria&&(O.autoMarkCompleted||O.autoMarkCompleted===void 0)||O.completionCriteria&&O.autoMarkCompleted===!0)&&await Ae(O),be(O,"primary",L),W(O)}}))}async function $(O){s&&s(),u==="complete-flow"?await A(e):await v(e,O.id)}function pe(){c&&c()}return Ve.default.createElement(Bs.Portal,null,Ve.default.createElement(le,{appearance:o}),i?H.map((O,X)=>Ve.default.createElement(Vo,{key:O.id,appearance:o,steps:K(),selectedStep:X,showTooltipsSimultaneously:i,dismissible:p,onDismiss:()=>$(O),tooltipPosition:d,showHighlightOnly:l,completedStepsCount:U(e),onComplete:pe,...m})):Ve.default.createElement(Vo,{appearance:o,steps:K(),selectedStep:L,showTooltipsSimultaneously:i,dismissible:p,onDismiss:()=>$(H[L]),tooltipPosition:d,completedStepsCount:U(e),showHighlightOnly:l,onComplete:pe,...m}))};var se=h(require("react"));var Ws=require("react-portal");var Ct=h(require("styled-components"));var Is=Ct.default.button`
1303
+ `,Ja=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:n="auto",showHighlight:r=!0,primaryColor:i="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:d={},selectedStep:l=0,customStepTypes:u,appearance:c,dismissible:m=!1,showHighlightOnly:w,showStepCount:T=!0,completedStepsCount:y=0})=>{var Ne,ye,it,nt;let[f,v]=(0,I.useState)(),[F,A]=(0,I.useState)(new Date),P=(0,I.useRef)(null),[g,C]=(0,I.useState)(document.querySelector(e[l].selector)),S=xs(g,F),[E,U]=(0,I.useState)(),[M,W]=(0,I.useState)(!w),N=(ye=(Ne=e[l])==null?void 0:Ne.props)!=null&&ye.position?e[l].props.position:"absolute",G=((nt=(it=e[l])==null?void 0:it.props)==null?void 0:nt.zIndex)??90,L=(f==null?void 0:f.width)??Ps,z=(f==null?void 0:f.height)??vs;(0,I.useLayoutEffect)(()=>{P.current&&v({width:P.current.clientWidth,height:P.current.clientHeight})},[l,F,N]),(0,I.useEffect)(()=>{w||W(!0)},[l]);let ae=n==="auto"?"right":n,ee=pr(S,ae,L,s,N),H=S.right+L>(window.innerWidth||document.documentElement.clientWidth),Ae=S.bottom+vs>(window.innerHeight||document.documentElement.clientHeight);H&&n==="auto"&&(ee=pr(S,"left",L,s,N),ae="left");let we=window.location.pathname.split("/").pop(),K=()=>{let te=document.querySelector(e[l].selector);E&&E===JSON.stringify(te==null?void 0:te.getBoundingClientRect())||(C(te),A(new Date),te&&U(JSON.stringify(te.getBoundingClientRect())))};if((0,I.useEffect)(()=>{let te=new MutationObserver(K);return te.observe(document.body,{subtree:!0,childList:!0}),()=>te.disconnect()},[K]),(0,I.useEffect)(()=>{let te=new MutationObserver(K);return te.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>te.disconnect()},[K]),(0,I.useEffect)(()=>{let te=setInterval(()=>{K()},10);return()=>clearInterval(te)},[K]),(0,I.useLayoutEffect)(()=>{setTimeout(()=>{K()},Va),K()},[l,we]),g===null)return I.default.createElement(I.default.Fragment,null);if(ee.x==0&&ee.y==0)return I.default.createElement(I.default.Fragment,null);if(!p)return I.default.createElement(I.default.Fragment,null);let $=()=>{let te=()=>{if(e[l].handlePrimaryButtonClick&&(e[l].handlePrimaryButtonClick(),W(!1),setTimeout(()=>{K()},30)),y===e.length-1)return o()},Te=()=>{e[l].handleSecondaryButtonClick&&(e[l].handleSecondaryButtonClick(),w&&W(!1))};return I.default.createElement(I.default.Fragment,null,T&&I.default.createElement(Ts,null,I.default.createElement(ks,{className:a("tooltipStepCounter",c)},l+1," of ",e.length)),I.default.createElement(Fs,{showStepCount:T,className:a("tooltipCTAContainer",c)},e[l].secondaryButtonTitle&&I.default.createElement(ie,{title:e[l].secondaryButtonTitle,appearance:c,onClick:Te,size:"small",withMargin:!1,secondary:!0}),e[l].primaryButtonTitle&&I.default.createElement(ie,{title:e[l].primaryButtonTitle,appearance:c,onClick:te,withMargin:!1,size:"small"})))},pe=()=>I.default.createElement(I.default.Fragment,null,m&&I.default.createElement(Ss,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:a("tooltipClose",c)},I.default.createElement(Le,null)),e[l].imageUri&&I.default.createElement(ys,{dismissible:m,appearance:c,src:e[l].imageUri,className:a("tooltipImageContainer",c)}),e[l].videoUri&&!e[l].imageUri&&I.default.createElement(bs,{dismissible:m,appearance:c,className:a("tooltipVideoContainer",c)},I.default.createElement(zt,{appearance:c,videoUri:e[l].videoUri})),I.default.createElement(ke,{appearance:c,title:e[l].title,subtitle:e[l].subtitle,size:"small"}),I.default.createElement(ws,{className:a("tooltipFooter",c)},I.default.createElement($,null))),X={...{default:te=>{var Te;if((Te=e[l])!=null&&Te.StepContent){let yt=e[l].StepContent;return I.default.createElement("div",null,yt)}return I.default.createElement(pe,null)}},...u},Ie=()=>{var te;return e?!((te=e[l])!=null&&te.type)||!X[e[l].type]?X.default(e[l]):X[e[l].type]({stepData:e[l],primaryColor:i}):I.default.createElement(I.default.Fragment,null)};if(w&&e[l].complete===!0)return null;let De={top:(ee==null?void 0:ee.y)-oo,left:(ae=="left"?S.x+s.x:(ee==null?void 0:ee.x)-oo)??0,cursor:w?"pointer":"default",position:N},Nt=()=>{let Te=De.left+(ae=="left"?-L:24);return Math.min(Math.max(Te,20),window.innerWidth-L-20)},St=()=>{w&&(A(new Date),W(!M))};return I.default.createElement(Ya,null,I.default.createElement(Xa,{style:De,zIndex:G,className:a("tourHighlightContainer",c)},r&&e[l].showHighlight!==!1&&I.default.createElement(I.default.Fragment,null,I.default.createElement(qa,{style:{position:N},onClick:St,primaryColor:c.theme.colorPrimary}),I.default.createElement(Ka,{style:{position:"absolute"},onClick:St,primaryColor:c.theme.colorPrimary}))),I.default.createElement(Es,{style:{...De,left:Nt()},zIndex:G+1,className:a("tooltipContainerWrapper",c)},M&&I.default.createElement(Cs,{ref:P,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...d},appearance:c,className:a("tooltipContainer",c),maxWidth:Ps,zIndex:G+10},I.default.createElement(Ie,null))))},Vo=Ja;var Bs=require("react-portal");var As=({flowId:e,customVariables:t,appearance:o,onStepCompletion:n,onButtonClick:r,showTooltipsSimultaneously:i=!1,onDismiss:s,dismissible:p,tooltipPosition:d="auto",showHighlightOnly:l=!1,dismissBehavior:u="complete-flow",onComplete:c,...m})=>{let{getFlow:w,getFlowSteps:T,isLoading:y,targetingLogicShouldHideFlow:f,markStepCompleted:v,markStepStarted:F,markFlowCompleted:A,updateCustomVariables:P,getCurrentStepIndex:g,getStepStatus:C,isStepBlocked:S,getFlowStatus:E,getNumberOfStepsCompleted:U}=Q(),{isLoadingUserFlowStateData:M}=Me(),{primaryCTAClickSideEffects:W,secondaryCTAClickSideEffects:N}=de(),{hasOpenModals:G}=Ee(),L=g(e),{openFlowStates:z}=(0,Ke.useContext)(J),{mergeAppearanceWithDefault:ae}=oe();if(o=ae(o),(0,Ke.useEffect)(()=>{P(t)},[t,y]),M)return null;let ee=w(e);if(!ee||f(ee)||E(e)==re||G())return null;let H=T(e);if(Object.keys(z).length>0){let O=Object.keys(z).find(X=>z[X]===!0);if(O!==void 0&&O!==e)return Ke.default.createElement(Ke.default.Fragment,null)}async function Ae(O){if(await v(e,O.id),H.map(X=>C(e,X.id)).every(X=>X===ze)){await A(e);return}if(!l&&L+1<H.length){if(S(e,H[L+1].id))return;await F(e,H[L+1].id)}}function we(O,X,Ie){let De=L+1<H.length?H[L+1]:null;r&&r(O,L,X,De),n&&n(O,Ie,De)}function K(){return H.map(O=>({...O,handleSecondaryButtonClick:async()=>{N(O),O.skippable===!0&&await v(e,O.id,{skipped:!0}),we(O,"secondary",L)},handlePrimaryButtonClick:async()=>{(!O.completionCriteria&&(O.autoMarkCompleted||O.autoMarkCompleted===void 0)||O.completionCriteria&&O.autoMarkCompleted===!0)&&await Ae(O),we(O,"primary",L),W(O)}}))}async function $(O){s&&s(),u==="complete-flow"?await A(e):await v(e,O.id)}function pe(){c&&c()}return Ke.default.createElement(Bs.Portal,null,Ke.default.createElement(le,{appearance:o}),i?H.map((O,X)=>Ke.default.createElement(Vo,{key:O.id,appearance:o,steps:K(),selectedStep:X,showTooltipsSimultaneously:i,dismissible:p,onDismiss:()=>$(O),tooltipPosition:d,showHighlightOnly:l,completedStepsCount:U(e),onComplete:pe,...m})):Ke.default.createElement(Vo,{appearance:o,steps:K(),selectedStep:L,showTooltipsSimultaneously:i,dismissible:p,onDismiss:()=>$(H[L]),tooltipPosition:d,completedStepsCount:U(e),showHighlightOnly:l,onComplete:pe,...m}))};var se=h(require("react"));var Ws=require("react-portal");var Ct=h(require("styled-components"));var Is=Ct.default.button`
1303
1304
  ${e=>k(e)} {
1304
1305
  // Anything inside this block will be ignored if the user provides a custom class
1305
1306