@frigade/react 1.33.3 → 1.33.4

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 Yl=Object.create;var Ao=Object.defineProperty;var Xl=Object.getOwnPropertyDescriptor;var Jl=Object.getOwnPropertyNames;var Ql=Object.getPrototypeOf,Zl=Object.prototype.hasOwnProperty;var Rl=(e,t)=>{for(var o in t)Ao(e,o,{get:t[o],enumerable:!0})},Wr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Jl(t))!Zl.call(e,r)&&r!==o&&Ao(e,r,{get:()=>t[r],enumerable:!(i=Xl(t,r))||i.enumerable});return e};var m=(e,t,o)=>(o=e!=null?Yl(Ql(e)):{},Wr(t||!e||!e.__esModule?Ao(o,"default",{value:e,enumerable:!0}):o,e)),ea=e=>Wr(Ao({},"__esModule",{value:!0}),e);var ed={};Rl(ed,{Box:()=>Xt,Button:()=>Kl,CheckBox:()=>et,FormLabel:()=>mt,FormTextField:()=>Ho,FrigadeBanner:()=>Ml,FrigadeChecklist:()=>sr,FrigadeDefaultAppearance:()=>Ze,FrigadeEmbeddedTip:()=>Il,FrigadeForm:()=>br,FrigadeGuide:()=>al,FrigadeHeroChecklist:()=>Ys,FrigadeNPSSurvey:()=>jl,FrigadeProgressBadge:()=>sl,FrigadeProvider:()=>gn,FrigadeSupportWidget:()=>Pl,FrigadeTour:()=>gl,ProgressRing:()=>At,Text:()=>ar,tokens:()=>Ro,useFlowOpens:()=>Ne,useFlowResponses:()=>Wt,useFlows:()=>Z,useOrganization:()=>Jo,useUser:()=>Vt});module.exports=ea(ed);var Y=m(require("react")),cn=require("styled-components");var Ce=m(require("react"));var He=require("react");var vt=m(require("react"));var Hr="1.33.3 ";var _e="NOT_STARTED_STEP",ne="COMPLETED_FLOW",Io="ABORTED_FLOW",Bt="STARTED_FLOW",Ve="NOT_STARTED_FLOW",je="COMPLETED_STEP",No="STARTED_STEP";function Qe(){let{publicApiKey:e,userId:t,apiUrl:o}=vt.default.useContext(K);return{config:(0,vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Hr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var ta="frigade-last-call-at-",oa="frigade-last-call-data-";function Ut(){let{shouldGracefullyDegrade:e,readonly:t}=vt.default.useContext(K);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Mt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Mt();let r=ta+o,n=oa+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Mt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Mt(p)}return s?s.ok?s:Mt(s.statusText):Mt()}}function Mt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function zt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=vt.default.useContext(K);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 po=require("react");var _t=require("react");var jr=m(require("swr"));var Vr=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=(0,Vr.useContext)(K);function n(c,g=!1){return e[c]??g}function s(c,g){t(S=>({...S,[c]:g}))}function p(c){t(g=>{let{[c]:S,...F}=g;return{...F}})}function d(c){r.includes(c)||i(g=>[...g,c])}function a(c){return r.includes(c)}function C(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:C,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}var Gr=m(require("swr/immutable")),ra="unknown";function We(){let{config:e,apiUrl:t}=Qe(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=(0,_t.useContext)(K),{resetOpenFlowState:d}=Ne(),[a,C]=(0,_t.useState)(!1),c={data:n.map(y=>({flowId:y.id,flowState:ne,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(E=>{if(E.ok)return E.json();throw new Error("Failed to fetch user flow states")}).catch(E=>(console.log(`Error fetching ${y}: ${E}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:F,isLoading:v,mutate:x,error:B}=p?(0,Gr.default)(S,g):(0,jr.default)(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),h=F==null?void 0:F.data;(0,_t.useEffect)(()=>{!a&&!v&&h&&C(!0)},[h,a,v]);async function k(y){if(h&&!p){let E=h.find(D=>D.flowId===y);E&&E.flowState!==ne&&(E.flowState=ne),await x(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function L(y,E,D){if(h){let z=h.find(O=>O.flowId===y);z&&(z.stepStates[E]=D,z.flowState=Bt),await x(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function b(y,E,D){if(h){let z=h.find(O=>O.flowId===y);z&&(z.lastStepId=E,z.stepStates[E]=D,z.flowState=Bt),await x({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function u(y){if(h){let E=h.find(D=>D.flowId===y);E&&E.flowState!==Ve&&(E.flowState=Ve,E.lastStepId=ra,Object.keys(E.stepStates).forEach(D=>{E.stepStates[D].actionType=_e,E.stepStates[D].createdAt=new Date().toISOString()}),await x({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1}),d(y))}}async function T(y,E){if(h){let D=h.find(z=>z.flowId===y);D&&D.stepStates[E]!==_e&&(D.stepStates[E]=_e),await x({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:h,isLoadingUserFlowStateData:!a,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:L,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:b,error:B}}function Wt(){let{config:e,apiUrl:t}=Qe(),{userFlowStatesData:o,mutateUserFlowState:i}=We(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=(0,po.useContext)(K),[d,a]=(0,po.useState)(new Set),[C,c]=(0,po.useState)(new Set),g=Ut();function S(x){let B=JSON.stringify(x);if(d.has(B))return null;d.add(B),a(d),C.add(x),c(C);let h=s==null?void 0:s.find(k=>k.flowSlug===x.flowSlug&&k.stepId===x.stepId&&k.actionType===x.actionType&&k.createdAt===x.createdAt);return g(`${t}flowResponses`,{...e,method:"POST",body:B}).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+x.stepId+". Will retry again later."),n([...r,x])):h||p(L=>[...L??[],x])})}async function F(x){x.foreignUserId&&(x.actionType===Bt||x.actionType===Ve?await S(x):x.actionType===ne?await S(x):x.actionType===No?await S(x):x.actionType===je?await S(x):x.actionType===Io?await S(x):x.actionType===_e&&await S(x))}function v(){let x=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let h in B.stepStates){let k=B.stepStates[h];x.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...x,...s]}return{addResponse:F,setFlowResponses:p,getFlowResponses:v}}var Kr=m(require("swr"));var ia=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,qr=e=>{let t=ia.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=na(i,"'","");n.startsWith("flow_")&&(o=n)}),o},na=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Qe(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:C,setShouldGracefullyDegrade:c,readonly:g}=(0,He.useContext)(K),S={data:[]},{verifySDKInitiated:F}=zt(),{addResponse:v,getFlowResponses:x}=Wt(),B=f=>fetch(f,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${f} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),S)).catch(w=>(console.log(`Error fetching ${f}: ${w}. Will gracefully degrade and hide Frigade`),c(!0),S)),{userFlowStatesData:h,isLoadingUserFlowStateData:k,optimisticallyMarkFlowCompleted:L,optimisticallyMarkFlowNotStarted:b,optimisticallyMarkStepCompleted:u,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:y}=We(),{data:E,error:D,isLoading:z}=(0,Kr.default)(n?`${t}flows${g?"?readonly=true":""}`:null,B,{keepPreviousData:!0});(0,He.useEffect)(()=>{if(D){console.error(D);return}E&&E.data&&i(E.data)},[E,D]);function O(f){if(z)return null;let w=o.find(A=>A.slug===f);return!w&&o.length>0&&!k&&!z?(console.log(`Flow with slug ${f} not found`),null):(w==null?void 0:w.active)===!1?null:w}function $(f){var I;if(!O(f))return[];let w=O(f).data;return w?(w=j(w),(((I=JSON.parse(w))==null?void 0:I.data)??[]).map(ie=>{let Pt=pt(ie);return{handleSecondaryButtonClick:()=>{ie.skippable===!0&&fe(f,ie.id,{skipped:!0})},...ie,complete:he(f,ie.id)===je||Pt>=1,blocked:W(f,ie.id),hidden:M(f,ie.id),handlePrimaryButtonClick:()=>{(!ie.completionCriteria&&(ie.autoMarkCompleted||ie.autoMarkCompleted===void 0)||ie.completionCriteria&&ie.autoMarkCompleted===!0)&&fe(f,ie.id)},progress:Pt}}).filter(ie=>ie.hidden!==!0)):[]}function j(f){return f.replaceAll(/\${(.*?)}/g,(w,A)=>s[A]===void 0?"":String(s[A]).replace(/[\u00A0-\u9999<>\&]/g,function(I){return"&#"+I.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function U(f){if(!O(f))return[];let w=O(f).data;return w?(w=j(w),JSON.parse(w)??{}):[]}function oe(f,w){p(A=>({...A,[f]:w}))}function se(f){!k&&!z&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(w=>{oe(w,f[w])})}let Q=(0,He.useCallback)(async(f,w,A)=>{F();let I={foreignUserId:r,flowSlug:f,stepId:w,actionType:No,data:A??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await y(f,w,I),v(I))},[r,h]),le=(0,He.useCallback)(async(f,w,A)=>{F();let I={foreignUserId:r,flowSlug:f,stepId:w,actionType:_e,data:A??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await T(f,w),v(I))},[r,h]),fe=(0,He.useCallback)(async(f,w,A)=>{F();let I={foreignUserId:r,flowSlug:f,stepId:w,actionType:je,data:A??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await u(f,w,I),v(I))},[r,h]),re=(0,He.useCallback)(async(f,w)=>{if(F(),Xe(f)===Ve)return;let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ve,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await b(f),J(A)&&v(A)},[r,h]),X=(0,He.useCallback)(async(f,w)=>{F();let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Bt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(A)&&v(A)},[r,h]),ve=(0,He.useCallback)(async(f,w)=>{F();let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ne,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(A)&&(await L(f),v(A))},[r,h]),De=(0,He.useCallback)(async(f,w)=>{F();let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Io,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(A)&&(await L(f),v(A))},[r,h]);function J(f){var w;if(!h&&f.actionType===_e)return!1;if(h){let A=h.find(I=>I.flowId===f.flowSlug);if(f.actionType===_e&&(!(A!=null&&A.stepStates[f.stepId])||A.stepStates[f.stepId].actionType===_e)||A&&((w=A.stepStates[f.stepId])==null?void 0:w.actionType)===f.actionType||A&&A.flowState===ne&&f.actionType===ne)return!1}return!0}function he(f,w){let A=pe(f,w);return k?null:A?A.actionType:_e}function W(f,w){let A=pe(f,w);return A?A.blocked:!1}function M(f,w){let A=pe(f,w);return A?A.hidden:!1}function pe(f,w){if(k)return null;let A=h==null?void 0:h.find(I=>I.flowId===f);return!A||!A.stepStates[w]?null:A.stepStates[w]??null}function q(f){var A;if(k||!h)return null;if(Xe(f)===Ve)return $(f)[0]??null;let w=(A=h.find(I=>I.flowId===f))==null?void 0:A.lastStepId;return w?$(f).find(I=>I.id===w):null}function de(f){let w=q(f);if(!w)return 0;let A=$(f).findIndex(I=>I.id===w.id)??0;return he(f,w.id)===je&&A<$(f).length-1?A+1:A}function pt(f){if(!f.completionCriteria)return;let w=qr(f.completionCriteria);if(w===null)return;let A=kt(w),I=V(w);return I===0?void 0:A/I}function Xe(f){let w=h==null?void 0:h.find(A=>A.flowId===f);return w?w.flowState:null}function kt(f){let w=$(f);return w.length===0?0:w.filter(I=>he(f,I.id)===je).length}function V(f){return $(f).length}function ze(f){return JSON.parse(o.find(w=>w.slug===f).data)}function Je(f){if(g)return!1;if(k)return!0;if(f!=null&&f.targetingLogic&&h){let w=h.find(A=>A.flowId===f.slug);if(w)return w.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function dr(f){return!Je(O(f))}return{getFlow:O,getFlowData:ze,isLoading:k||z,getStepStatus:he,getFlowSteps:$,getCurrentStepIndex:de,markStepStarted:Q,markStepCompleted:fe,markFlowNotStarted:re,markFlowStarted:X,markFlowCompleted:ve,markFlowAborted:De,markStepNotStarted:le,getFlowStatus:Xe,getNumberOfStepsCompleted:kt,getNumberOfSteps:V,targetingLogicShouldHideFlow:Je,setCustomVariable:oe,updateCustomVariables:se,customVariables:s,getStepOptionalProgress:pt,getFlowMetadata:U,isStepBlocked:W,isStepHidden:M,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:dr}}var Et=require("react");var Ht="guest_";function Vt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,Et.useContext)(K),{config:n,apiUrl:s}=Qe(),{mutateUserFlowState:p}=We(),d=Ut(),{verifySDKInitiated:a}=zt();(0,Et.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ht))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let C=(0,Et.useCallback)(async g=>{a();let S={foreignId:e,properties:g};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(F=>({...F,...g})),p()},[e,n,r,p]),c=(0,Et.useCallback)(async(g,S)=>{a();let v={foreignId:e,events:[{event:g,properties:S}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(v)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:C,trackEventForUser:c}}var Zi=require("uuid");var Ie=m(require("react"));var Le=m(require("react")),uo=m(require("styled-components"));var Xr=m(require("react")),Jr=m(require("styled-components"));var Yr="fr-",co="cfr-";function l(e,t){let o=`${Yr}${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+" "+co+e}return o}function P(e){if(!e.className||e.className.indexOf(co)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Yr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function cr(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function dt(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${cr(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ee(...e){return e.filter(Boolean).join(" ")}function mo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var sa=Jr.default.div`
2
+ var Yl=Object.create;var Ao=Object.defineProperty;var Xl=Object.getOwnPropertyDescriptor;var Jl=Object.getOwnPropertyNames;var Ql=Object.getPrototypeOf,Zl=Object.prototype.hasOwnProperty;var Rl=(e,t)=>{for(var o in t)Ao(e,o,{get:t[o],enumerable:!0})},Wr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Jl(t))!Zl.call(e,r)&&r!==o&&Ao(e,r,{get:()=>t[r],enumerable:!(i=Xl(t,r))||i.enumerable});return e};var m=(e,t,o)=>(o=e!=null?Yl(Ql(e)):{},Wr(t||!e||!e.__esModule?Ao(o,"default",{value:e,enumerable:!0}):o,e)),ea=e=>Wr(Ao({},"__esModule",{value:!0}),e);var ed={};Rl(ed,{Box:()=>Xt,Button:()=>Kl,CheckBox:()=>et,FormLabel:()=>mt,FormTextField:()=>Ho,FrigadeBanner:()=>Ml,FrigadeChecklist:()=>sr,FrigadeDefaultAppearance:()=>Ze,FrigadeEmbeddedTip:()=>Il,FrigadeForm:()=>br,FrigadeGuide:()=>al,FrigadeHeroChecklist:()=>Ys,FrigadeNPSSurvey:()=>jl,FrigadeProgressBadge:()=>sl,FrigadeProvider:()=>gn,FrigadeSupportWidget:()=>Pl,FrigadeTour:()=>gl,ProgressRing:()=>At,Text:()=>ar,tokens:()=>Ro,useFlowOpens:()=>Ne,useFlowResponses:()=>Wt,useFlows:()=>Z,useOrganization:()=>Jo,useUser:()=>Vt});module.exports=ea(ed);var Y=m(require("react")),cn=require("styled-components");var Ce=m(require("react"));var He=require("react");var vt=m(require("react"));var Hr="1.33.4 ";var _e="NOT_STARTED_STEP",ne="COMPLETED_FLOW",Io="ABORTED_FLOW",Bt="STARTED_FLOW",Ve="NOT_STARTED_FLOW",je="COMPLETED_STEP",No="STARTED_STEP";function Qe(){let{publicApiKey:e,userId:t,apiUrl:o}=vt.default.useContext(K);return{config:(0,vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Hr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var ta="frigade-last-call-at-",oa="frigade-last-call-data-";function Ut(){let{shouldGracefullyDegrade:e,readonly:t}=vt.default.useContext(K);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Mt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Mt();let r=ta+o,n=oa+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Mt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Mt(p)}return s?s.ok?s:Mt(s.statusText):Mt()}}function Mt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function zt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=vt.default.useContext(K);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 po=require("react");var _t=require("react");var jr=m(require("swr"));var Vr=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=(0,Vr.useContext)(K);function n(c,g=!1){return e[c]??g}function s(c,g){t(S=>({...S,[c]:g}))}function p(c){t(g=>{let{[c]:S,...F}=g;return{...F}})}function d(c){r.includes(c)||i(g=>[...g,c])}function a(c){return r.includes(c)}function C(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:C,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}var Gr=m(require("swr/immutable")),ra="unknown";function We(){let{config:e,apiUrl:t}=Qe(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=(0,_t.useContext)(K),{resetOpenFlowState:d}=Ne(),[a,C]=(0,_t.useState)(!1),c={data:n.map(y=>({flowId:y.id,flowState:ne,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(E=>{if(E.ok)return E.json();throw new Error("Failed to fetch user flow states")}).catch(E=>(console.log(`Error fetching ${y}: ${E}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:F,isLoading:v,mutate:x,error:B}=p?(0,Gr.default)(S,g):(0,jr.default)(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),h=F==null?void 0:F.data;(0,_t.useEffect)(()=>{!a&&!v&&h&&C(!0)},[h,a,v]);async function k(y){if(h&&!p){let E=h.find(D=>D.flowId===y);E&&E.flowState!==ne&&(E.flowState=ne),await x(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function L(y,E,D){if(h){let z=h.find(O=>O.flowId===y);z&&(z.stepStates[E]=D,z.flowState=Bt),await x(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function b(y,E,D){if(h){let z=h.find(O=>O.flowId===y);z&&(z.lastStepId=E,z.stepStates[E]=D,z.flowState=Bt),await x({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function u(y){if(h){let E=h.find(D=>D.flowId===y);E&&E.flowState!==Ve&&(E.flowState=Ve,E.lastStepId=ra,Object.keys(E.stepStates).forEach(D=>{E.stepStates[D].actionType=_e,E.stepStates[D].createdAt=new Date().toISOString()}),await x({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1}),d(y))}}async function T(y,E){if(h){let D=h.find(z=>z.flowId===y);D&&D.stepStates[E]!==_e&&(D.stepStates[E]=_e),await x({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:h,isLoadingUserFlowStateData:!a,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:L,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:b,error:B}}function Wt(){let{config:e,apiUrl:t}=Qe(),{userFlowStatesData:o,mutateUserFlowState:i}=We(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=(0,po.useContext)(K),[d,a]=(0,po.useState)(new Set),[C,c]=(0,po.useState)(new Set),g=Ut();function S(x){let B=JSON.stringify(x);if(d.has(B))return null;d.add(B),a(d),C.add(x),c(C);let h=s==null?void 0:s.find(k=>k.flowSlug===x.flowSlug&&k.stepId===x.stepId&&k.actionType===x.actionType&&k.createdAt===x.createdAt);return g(`${t}flowResponses`,{...e,method:"POST",body:B}).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+x.stepId+". Will retry again later."),n([...r,x])):h||p(L=>[...L??[],x])})}async function F(x){x.foreignUserId&&(x.actionType===Bt||x.actionType===Ve?await S(x):x.actionType===ne?await S(x):x.actionType===No?await S(x):x.actionType===je?await S(x):x.actionType===Io?await S(x):x.actionType===_e&&await S(x))}function v(){let x=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let h in B.stepStates){let k=B.stepStates[h];x.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...x,...s]}return{addResponse:F,setFlowResponses:p,getFlowResponses:v}}var Kr=m(require("swr"));var ia=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,qr=e=>{let t=ia.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=na(i,"'","");n.startsWith("flow_")&&(o=n)}),o},na=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Qe(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:C,setShouldGracefullyDegrade:c,readonly:g}=(0,He.useContext)(K),S={data:[]},{verifySDKInitiated:F}=zt(),{addResponse:v,getFlowResponses:x}=Wt(),B=f=>fetch(f,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${f} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),S)).catch(w=>(console.log(`Error fetching ${f}: ${w}. Will gracefully degrade and hide Frigade`),c(!0),S)),{userFlowStatesData:h,isLoadingUserFlowStateData:k,optimisticallyMarkFlowCompleted:L,optimisticallyMarkFlowNotStarted:b,optimisticallyMarkStepCompleted:u,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:y}=We(),{data:E,error:D,isLoading:z}=(0,Kr.default)(n?`${t}flows${g?"?readonly=true":""}`:null,B,{keepPreviousData:!0});(0,He.useEffect)(()=>{if(D){console.error(D);return}E&&E.data&&i(E.data)},[E,D]);function O(f){if(z)return null;let w=o.find(A=>A.slug===f);return!w&&o.length>0&&!k&&!z?(console.log(`Flow with slug ${f} not found`),null):(w==null?void 0:w.active)===!1?null:w}function $(f){var I;if(!O(f))return[];let w=O(f).data;return w?(w=j(w),(((I=JSON.parse(w))==null?void 0:I.data)??[]).map(ie=>{let Pt=pt(ie);return{handleSecondaryButtonClick:()=>{ie.skippable===!0&&fe(f,ie.id,{skipped:!0})},...ie,complete:he(f,ie.id)===je||Pt>=1,blocked:W(f,ie.id),hidden:M(f,ie.id),handlePrimaryButtonClick:()=>{(!ie.completionCriteria&&(ie.autoMarkCompleted||ie.autoMarkCompleted===void 0)||ie.completionCriteria&&ie.autoMarkCompleted===!0)&&fe(f,ie.id)},progress:Pt}}).filter(ie=>ie.hidden!==!0)):[]}function j(f){return f.replaceAll(/\${(.*?)}/g,(w,A)=>s[A]===void 0?"":String(s[A]).replace(/[\u00A0-\u9999<>\&]/g,function(I){return"&#"+I.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function U(f){if(!O(f))return[];let w=O(f).data;return w?(w=j(w),JSON.parse(w)??{}):[]}function oe(f,w){p(A=>({...A,[f]:w}))}function se(f){!k&&!z&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(w=>{oe(w,f[w])})}let Q=(0,He.useCallback)(async(f,w,A)=>{F();let I={foreignUserId:r,flowSlug:f,stepId:w,actionType:No,data:A??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await y(f,w,I),v(I))},[r,h]),le=(0,He.useCallback)(async(f,w,A)=>{F();let I={foreignUserId:r,flowSlug:f,stepId:w,actionType:_e,data:A??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await T(f,w),v(I))},[r,h]),fe=(0,He.useCallback)(async(f,w,A)=>{F();let I={foreignUserId:r,flowSlug:f,stepId:w,actionType:je,data:A??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await u(f,w,I),v(I))},[r,h]),re=(0,He.useCallback)(async(f,w)=>{if(F(),Xe(f)===Ve)return;let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ve,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await b(f),J(A)&&v(A)},[r,h]),X=(0,He.useCallback)(async(f,w)=>{F();let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Bt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(A)&&v(A)},[r,h]),ve=(0,He.useCallback)(async(f,w)=>{F();let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ne,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(A)&&(await L(f),v(A))},[r,h]),De=(0,He.useCallback)(async(f,w)=>{F();let A={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Io,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(A)&&(await L(f),v(A))},[r,h]);function J(f){var w;if(!h&&f.actionType===_e)return!1;if(h){let A=h.find(I=>I.flowId===f.flowSlug);if(f.actionType===_e&&(!(A!=null&&A.stepStates[f.stepId])||A.stepStates[f.stepId].actionType===_e)||A&&((w=A.stepStates[f.stepId])==null?void 0:w.actionType)===f.actionType||A&&A.flowState===ne&&f.actionType===ne)return!1}return!0}function he(f,w){let A=pe(f,w);return k?null:A?A.actionType:_e}function W(f,w){let A=pe(f,w);return A?A.blocked:!1}function M(f,w){let A=pe(f,w);return A?A.hidden:!1}function pe(f,w){if(k)return null;let A=h==null?void 0:h.find(I=>I.flowId===f);return!A||!A.stepStates[w]?null:A.stepStates[w]??null}function q(f){var A;if(k||!h)return null;if(Xe(f)===Ve)return $(f)[0]??null;let w=(A=h.find(I=>I.flowId===f))==null?void 0:A.lastStepId;return w?$(f).find(I=>I.id===w):null}function de(f){let w=q(f);if(!w)return 0;let A=$(f).findIndex(I=>I.id===w.id)??0;return he(f,w.id)===je&&A<$(f).length-1?A+1:A}function pt(f){if(!f.completionCriteria)return;let w=qr(f.completionCriteria);if(w===null)return;let A=kt(w),I=V(w);return I===0?void 0:A/I}function Xe(f){let w=h==null?void 0:h.find(A=>A.flowId===f);return w?w.flowState:null}function kt(f){let w=$(f);return w.length===0?0:w.filter(I=>he(f,I.id)===je).length}function V(f){return $(f).length}function ze(f){return JSON.parse(o.find(w=>w.slug===f).data)}function Je(f){if(g)return!1;if(k)return!0;if(f!=null&&f.targetingLogic&&h){let w=h.find(A=>A.flowId===f.slug);if(w)return w.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function dr(f){return!Je(O(f))}return{getFlow:O,getFlowData:ze,isLoading:k||z,getStepStatus:he,getFlowSteps:$,getCurrentStepIndex:de,markStepStarted:Q,markStepCompleted:fe,markFlowNotStarted:re,markFlowStarted:X,markFlowCompleted:ve,markFlowAborted:De,markStepNotStarted:le,getFlowStatus:Xe,getNumberOfStepsCompleted:kt,getNumberOfSteps:V,targetingLogicShouldHideFlow:Je,setCustomVariable:oe,updateCustomVariables:se,customVariables:s,getStepOptionalProgress:pt,getFlowMetadata:U,isStepBlocked:W,isStepHidden:M,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:dr}}var Et=require("react");var Ht="guest_";function Vt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,Et.useContext)(K),{config:n,apiUrl:s}=Qe(),{mutateUserFlowState:p}=We(),d=Ut(),{verifySDKInitiated:a}=zt();(0,Et.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ht))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let C=(0,Et.useCallback)(async g=>{a();let S={foreignId:e,properties:g};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(F=>({...F,...g})),p()},[e,n,r,p]),c=(0,Et.useCallback)(async(g,S)=>{a();let v={foreignId:e,events:[{event:g,properties:S}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(v)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:C,trackEventForUser:c}}var Zi=require("uuid");var Ie=m(require("react"));var Le=m(require("react")),uo=m(require("styled-components"));var Xr=m(require("react")),Jr=m(require("styled-components"));var Yr="fr-",co="cfr-";function l(e,t){let o=`${Yr}${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+" "+co+e}return o}function P(e){if(!e.className||e.className.indexOf(co)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Yr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function cr(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function dt(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${cr(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ee(...e){return e.filter(Boolean).join(" ")}function mo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var sa=Jr.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -1237,7 +1237,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${co}${r}.${co}${r} { ${Object.entries(n).map
1237
1237
  color: ${({theme:e})=>e.colorTextSecondary};
1238
1238
  ${e=>e.blocked||e.complete?"opacity: 0.4;":`
1239
1239
  `}
1240
- `;var Vs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=ae(),{primaryCTAClickSideEffects:r}=ge();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:a=!1}=e,C=e.primaryButtonTitle||e.secondaryButtonTitle,c=()=>{r(e)};return Dt.default.createElement(Os,{className:l("carouselCard",o),onClick:a?null:c,style:t,blocked:a,complete:d},n&&Dt.default.createElement(Ds,{className:l("carouselCardImage",o),src:n,alt:p,style:{opacity:d||a?.4:1}}),(d||!0)&&Dt.default.createElement(zs,{className:l("carouselCompletedPill",o)},Dt.default.createElement(Hs,{style:{color:"#108E0B"}},"Complete")),p&&Dt.default.createElement(Ws,{blocked:a,complete:d,className:l("carouselCardTitle",o)},p),s&&Dt.default.createElement(lt.Quiet,{blocked:a,complete:d,className:l("carouselCardSubtitle",o)},s))};var ro=m(require("react"));var js=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,r=200,n=Math.min(r,Math.max(10,Math.round(r*i)));return ro.default.createElement(Ms,{className:l("carouselProgressBar",o)},ro.default.createElement(Us,{as:lt.Loud,style:{marginRight:8}},e," of ",t),ro.default.createElement("svg",{height:10,width:r},ro.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),ro.default.createElement("rect",{x:0,y:0,rx:5,width:n,height:10,fill:"currentColor"})))};var jp=()=>H.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},H.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),H.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),H.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),Gs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=(0,H.useState)(!1),[n,s]=(0,H.useState)(!1);(0,H.useEffect)(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!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 i?H.default.createElement(Is,{style:d,reversed:n,onAnimationEnd:n?p:null},H.default.createElement(Ns,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},H.default.createElement(jp,null))):null},qs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=(0,H.useRef)(null),[n,s]=(0,H.useState)(!1),[p,d]=(0,H.useState)(!1),[a,C]=(0,H.useState)(null),[c,g]=(0,H.useState)([]),[S,F]=(0,H.useState)(0),{getFlowMetadata:v,getFlowSteps:x,getNumberOfStepsCompleted:B,updateCustomVariables:h,getFlowStatus:k,isLoading:L,targetingLogicShouldHideFlow:b,getFlow:u}=Z();(0,H.useEffect)(()=>{h(o)},[o,L]),(0,H.useEffect)(()=>{if(L)return;let O=v(e),$=B(e),j=x(e);C(O),O.data!==null&&(g(j.sort((U,oe)=>Number(U.complete)-Number(oe.complete))),d(j.length>3),F($))},[L]);let T=[];for(let O=0;O<c.length;O+=3)T.push(c.slice(O,O+3));let y=O=>{let $=O.target,j=$.scrollWidth-$.clientWidth,U=Math.ceil($.scrollLeft);U>0&&n===!1&&s(!0),U===0&&n===!0&&s(!1),U<j&&p===!1&&d(!0),U===j&&p===!0&&d(!1)},E=(O=!0)=>{let $=O?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*$,behavior:"smooth"})},D=null,z=O=>{D!==null?clearTimeout(D):y(O),D=setTimeout(()=>{y(O)},16)};return L?null:H.default.createElement($s,{className:Ee(l("carouselContainer",t),i)},H.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},H.default.createElement("div",null,H.default.createElement(_s,{className:l("carouselTitle",t)},a==null?void 0:a.title),H.default.createElement(lt.Quiet,{className:l("carouselSubtitle",t)},a==null?void 0:a.subtitle)),H.default.createElement(js,{numberOfStepsCompleted:S,numberOfSteps:c.length})),H.default.createElement("div",{style:{position:"relative"}},H.default.createElement(Gs,{show:n,onClick:()=>E(!1)}),H.default.createElement(Gs,{side:"right",show:p,onClick:E}),H.default.createElement(Es,{ref:r,onScroll:z},T.map((O,$)=>H.default.createElement(As,{key:$,style:{flex:`0 0 calc(100% - ${c.length>3?36:0}px)`}},O.map((j,U)=>H.default.createElement(Vs,{key:U,stepData:j,style:{flex:c.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))),H.default.createElement(me,{appearance:t}))};var sr=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:r,className:n,type:s="inline",onDismiss:p,visible:d,customVariables:a,onStepCompletion:C,onButtonClick:c,appearance:g,hideOnFlowCompletion:S,setVisible:F,customStepTypes:v,checklistStyle:x="default",autoExpandFirstIncompleteStep:B,autoExpandNextStep:h,...k})=>{let{getFlow:L,getFlowSteps:b,markStepCompleted:u,getStepStatus:T,getNumberOfStepsCompleted:y,isLoading:E,targetingLogicShouldHideFlow:D,updateCustomVariables:z,getFlowMetadata:O,isStepBlocked:$,getFlowStatus:j,hasActiveFullPageFlow:U,setHasActiveFullPageFlow:oe}=Z(),{primaryCTAClickSideEffects:se,secondaryCTAClickSideEffects:Q}=ge(),{getOpenFlowState:le,setOpenFlowState:fe}=Ne(),[re,X]=(0,te.useState)(r||0),[ve,De]=(0,te.useState)(!1),J=d===void 0?le(e):d,he=s==="modal",{mergeAppearanceWithDefault:W}=ae(),{isLarge:M}=us();if(g=W(g),(0,te.useEffect)(()=>{z(a)},[a,E]),(0,te.useEffect)(()=>{d!==void 0&&(he&&d===!0?oe(!0):he&&d===!1&&oe(!1))},[d,F,U]),E)return null;let pe=L(e);if(!pe||D(pe))return null;let q=b(e);if(!q||S===!0&&j(e)===ne)return null;let de=O(e);if(de!=null&&de.title&&(t=de.title),de!=null&&de.subtitle&&(o=de.subtitle),!ve&&r===void 0&&y(e)>0){let I=q.findIndex(ie=>ie.complete===!1);X(I>-1?I:q.length-1),De(!0)}function pt(){if(re+1>=q.length){he&&fe(e,!1);return}$(e,q[re+1].id)||X(re+1)}function Xe(I,ie,Pt){let _r=re+1<q.length?q[re+1]:null;c&&c(I,re,ie,_r)===!0&&he&&Je(),C&&C(I,Pt,_r),!C&&!c&&(I.primaryButtonUri||I.secondaryButtonUri)&&he&&Je()}function kt(){return q.map((I,ie)=>({...I,handleSecondaryButtonClick:()=>{pt(),Q(I),I.skippable===!0&&u(e,I.id,{skipped:!0}),Xe(I,"secondary",ie)},handlePrimaryButtonClick:()=>{(!I.completionCriteria&&(I.autoMarkCompleted||I.autoMarkCompleted===void 0)||I.completionCriteria&&I.autoMarkCompleted===!0)&&(u(e,I.id),pt()),Xe(I,"primary",ie),se(I),T(e,I.id)===je&&pt()}}))}function V(){return te.default.createElement(me,{appearance:g})}let ze={steps:kt(),title:t,subtitle:o,primaryColor:g.theme.colorPrimary,appearance:g,customStepTypes:v,type:s,className:n,autoExpandFirstIncompleteStep:B,autoExpandNextStep:h};function Je(){fe(e,!1),p&&p(),F&&F(!1)}function dr(){return te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),te.default.createElement(qs,{flowId:e,appearance:g,customVariables:a,className:n}))}function f(){return te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),te.default.createElement(Er,{visible:J,onClose:()=>{Je()},selectedStep:re,setSelectedStep:X,autoExpandNextStep:!0,appearance:g,...ze}))}function w(){if(!M)return f();let I=k.guideFlowId,ie;return I&&L(I)&&(ie=b(I)),te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),te.default.createElement(Br,{visible:J,stepsTitle:de.stepsTitle?de.stepsTitle:"Your quick start guide",onClose:()=>{Je()},selectedStep:re,setSelectedStep:X,guideData:ie,guideTitle:k.guideTitle??"Guide",appearance:g,title:t,subtitle:o,onGuideButtonClick:Pt=>{Xe(Pt,"link",0)},customStepTypes:v,...ze}))}function A(){if(!M)return f();let I=te.default.createElement(kr,{flowId:e,style:i,selectedStep:re,setSelectedStep:X,appearance:g,type:s,...ze});return he?te.default.createElement(ht,{onClose:()=>{Je()},visible:J,appearance:g,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},te.default.createElement(V,null),I):te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),I)}switch(x){case"condensed":return f();case"with-guide":return w();case"default":return A();case"carousel":return dr();default:return A()}};var Ys=e=>Ks.default.createElement(sr,{type:"inline",...e});var Ke=m(require("react"));var qe=m(require("react"));var Bo=m(require("styled-components")),Xs=Bo.default.div`
1240
+ `;var Vs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=ae(),{primaryCTAClickSideEffects:r}=ge();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:a=!1}=e,C=e.primaryButtonTitle||e.secondaryButtonTitle,c=()=>{r(e)};return Dt.default.createElement(Os,{className:l("carouselCard",o),onClick:a?null:c,style:t,blocked:a,complete:d},n&&Dt.default.createElement(Ds,{className:l("carouselCardImage",o),src:n,alt:p,style:{opacity:d||a?.4:1}}),d&&Dt.default.createElement(zs,{className:l("carouselCompletedPill",o)},Dt.default.createElement(Hs,{style:{color:"#108E0B"}},"Complete")),p&&Dt.default.createElement(Ws,{blocked:a,complete:d,className:l("carouselCardTitle",o)},p),s&&Dt.default.createElement(lt.Quiet,{blocked:a,complete:d,className:l("carouselCardSubtitle",o)},s))};var ro=m(require("react"));var js=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,r=200,n=Math.min(r,Math.max(10,Math.round(r*i)));return ro.default.createElement(Ms,{className:l("carouselProgressBar",o)},ro.default.createElement(Us,{as:lt.Loud,style:{marginRight:8}},e," of ",t),ro.default.createElement("svg",{height:10,width:r},ro.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),ro.default.createElement("rect",{x:0,y:0,rx:5,width:n,height:10,fill:"currentColor"})))};var jp=()=>H.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},H.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),H.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),H.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),Gs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=(0,H.useState)(!1),[n,s]=(0,H.useState)(!1);(0,H.useEffect)(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!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 i?H.default.createElement(Is,{style:d,reversed:n,onAnimationEnd:n?p:null},H.default.createElement(Ns,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},H.default.createElement(jp,null))):null},qs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=(0,H.useRef)(null),[n,s]=(0,H.useState)(!1),[p,d]=(0,H.useState)(!1),[a,C]=(0,H.useState)(null),[c,g]=(0,H.useState)([]),[S,F]=(0,H.useState)(0),{getFlowMetadata:v,getFlowSteps:x,getNumberOfStepsCompleted:B,updateCustomVariables:h,getFlowStatus:k,isLoading:L,targetingLogicShouldHideFlow:b,getFlow:u}=Z();(0,H.useEffect)(()=>{h(o)},[o,L]),(0,H.useEffect)(()=>{if(L)return;let O=v(e),$=B(e),j=x(e);C(O),O.data!==null&&(g(j.sort((U,oe)=>Number(U.complete)-Number(oe.complete))),d(j.length>3),F($))},[L]);let T=[];for(let O=0;O<c.length;O+=3)T.push(c.slice(O,O+3));let y=O=>{let $=O.target,j=$.scrollWidth-$.clientWidth,U=Math.ceil($.scrollLeft);U>0&&n===!1&&s(!0),U===0&&n===!0&&s(!1),U<j&&p===!1&&d(!0),U===j&&p===!0&&d(!1)},E=(O=!0)=>{let $=O?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*$,behavior:"smooth"})},D=null,z=O=>{D!==null?clearTimeout(D):y(O),D=setTimeout(()=>{y(O)},16)};return L?null:H.default.createElement($s,{className:Ee(l("carouselContainer",t),i)},H.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},H.default.createElement("div",null,H.default.createElement(_s,{className:l("carouselTitle",t)},a==null?void 0:a.title),H.default.createElement(lt.Quiet,{className:l("carouselSubtitle",t)},a==null?void 0:a.subtitle)),H.default.createElement(js,{numberOfStepsCompleted:S,numberOfSteps:c.length})),H.default.createElement("div",{style:{position:"relative"}},H.default.createElement(Gs,{show:n,onClick:()=>E(!1)}),H.default.createElement(Gs,{side:"right",show:p,onClick:E}),H.default.createElement(Es,{ref:r,onScroll:z},T.map((O,$)=>H.default.createElement(As,{key:$,style:{flex:`0 0 calc(100% - ${c.length>3?36:0}px)`}},O.map((j,U)=>H.default.createElement(Vs,{key:U,stepData:j,style:{flex:c.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))),H.default.createElement(me,{appearance:t}))};var sr=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:r,className:n,type:s="inline",onDismiss:p,visible:d,customVariables:a,onStepCompletion:C,onButtonClick:c,appearance:g,hideOnFlowCompletion:S,setVisible:F,customStepTypes:v,checklistStyle:x="default",autoExpandFirstIncompleteStep:B,autoExpandNextStep:h,...k})=>{let{getFlow:L,getFlowSteps:b,markStepCompleted:u,getStepStatus:T,getNumberOfStepsCompleted:y,isLoading:E,targetingLogicShouldHideFlow:D,updateCustomVariables:z,getFlowMetadata:O,isStepBlocked:$,getFlowStatus:j,hasActiveFullPageFlow:U,setHasActiveFullPageFlow:oe}=Z(),{primaryCTAClickSideEffects:se,secondaryCTAClickSideEffects:Q}=ge(),{getOpenFlowState:le,setOpenFlowState:fe}=Ne(),[re,X]=(0,te.useState)(r||0),[ve,De]=(0,te.useState)(!1),J=d===void 0?le(e):d,he=s==="modal",{mergeAppearanceWithDefault:W}=ae(),{isLarge:M}=us();if(g=W(g),(0,te.useEffect)(()=>{z(a)},[a,E]),(0,te.useEffect)(()=>{d!==void 0&&(he&&d===!0?oe(!0):he&&d===!1&&oe(!1))},[d,F,U]),E)return null;let pe=L(e);if(!pe||D(pe))return null;let q=b(e);if(!q||S===!0&&j(e)===ne)return null;let de=O(e);if(de!=null&&de.title&&(t=de.title),de!=null&&de.subtitle&&(o=de.subtitle),!ve&&r===void 0&&y(e)>0){let I=q.findIndex(ie=>ie.complete===!1);X(I>-1?I:q.length-1),De(!0)}function pt(){if(re+1>=q.length){he&&fe(e,!1);return}$(e,q[re+1].id)||X(re+1)}function Xe(I,ie,Pt){let _r=re+1<q.length?q[re+1]:null;c&&c(I,re,ie,_r)===!0&&he&&Je(),C&&C(I,Pt,_r),!C&&!c&&(I.primaryButtonUri||I.secondaryButtonUri)&&he&&Je()}function kt(){return q.map((I,ie)=>({...I,handleSecondaryButtonClick:()=>{pt(),Q(I),I.skippable===!0&&u(e,I.id,{skipped:!0}),Xe(I,"secondary",ie)},handlePrimaryButtonClick:()=>{(!I.completionCriteria&&(I.autoMarkCompleted||I.autoMarkCompleted===void 0)||I.completionCriteria&&I.autoMarkCompleted===!0)&&(u(e,I.id),pt()),Xe(I,"primary",ie),se(I),T(e,I.id)===je&&pt()}}))}function V(){return te.default.createElement(me,{appearance:g})}let ze={steps:kt(),title:t,subtitle:o,primaryColor:g.theme.colorPrimary,appearance:g,customStepTypes:v,type:s,className:n,autoExpandFirstIncompleteStep:B,autoExpandNextStep:h};function Je(){fe(e,!1),p&&p(),F&&F(!1)}function dr(){return te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),te.default.createElement(qs,{flowId:e,appearance:g,customVariables:a,className:n}))}function f(){return te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),te.default.createElement(Er,{visible:J,onClose:()=>{Je()},selectedStep:re,setSelectedStep:X,autoExpandNextStep:!0,appearance:g,...ze}))}function w(){if(!M)return f();let I=k.guideFlowId,ie;return I&&L(I)&&(ie=b(I)),te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),te.default.createElement(Br,{visible:J,stepsTitle:de.stepsTitle?de.stepsTitle:"Your quick start guide",onClose:()=>{Je()},selectedStep:re,setSelectedStep:X,guideData:ie,guideTitle:k.guideTitle??"Guide",appearance:g,title:t,subtitle:o,onGuideButtonClick:Pt=>{Xe(Pt,"link",0)},customStepTypes:v,...ze}))}function A(){if(!M)return f();let I=te.default.createElement(kr,{flowId:e,style:i,selectedStep:re,setSelectedStep:X,appearance:g,type:s,...ze});return he?te.default.createElement(ht,{onClose:()=>{Je()},visible:J,appearance:g,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},te.default.createElement(V,null),I):te.default.createElement(te.default.Fragment,null,te.default.createElement(V,null),I)}switch(x){case"condensed":return f();case"with-guide":return w();case"default":return A();case"carousel":return dr();default:return A()}};var Ys=e=>Ks.default.createElement(sr,{type:"inline",...e});var Ke=m(require("react"));var qe=m(require("react"));var Bo=m(require("styled-components")),Xs=Bo.default.div`
1241
1241
  border: 1px solid ${e=>e.appearance.theme.colorBorder};
1242
1242
  border-radius: 8px;
1243
1243
  padding: 6px 10px 6px 10px;