@frigade/react 1.35.47 → 1.35.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -457,7 +457,7 @@ interface FrigadeFormProps extends DefaultFrigadeFlowProps {
457
457
  * Map of custom components. The key must match the `type` property of the step defined in `config.yml`
458
458
  */
459
459
  customStepTypes?: {
460
- [key: string]: (params: {
460
+ [key: string]: ((params: {
461
461
  flowId: string;
462
462
  stepData: StepData;
463
463
  canContinue: boolean;
@@ -468,7 +468,7 @@ interface FrigadeFormProps extends DefaultFrigadeFlowProps {
468
468
  customFormElements?: {
469
469
  [key: string]: (params: FormInputProps) => React__default.ReactNode;
470
470
  };
471
- }) => React__default.ReactNode;
471
+ }) => React__default.ReactNode) | React__default.ReactNode;
472
472
  };
473
473
  /**
474
474
  * Map of custom form components. Can only be used with a step of type `multiInput` (defined in `config.yml`).
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- var Fa=Object.create;var To=Object.defineProperty,ka=Object.defineProperties,Pa=Object.getOwnPropertyDescriptor,va=Object.getOwnPropertyDescriptors,Ba=Object.getOwnPropertyNames,Go=Object.getOwnPropertySymbols,Ea=Object.getPrototypeOf,Pr=Object.prototype.hasOwnProperty,ui=Object.prototype.propertyIsEnumerable;var mi=(e,t,o)=>t in e?To(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,T=(e,t)=>{for(var o in t||(t={}))Pr.call(t,o)&&mi(e,o,t[o]);if(Go)for(var o of Go(t))ui.call(t,o)&&mi(e,o,t[o]);return e},V=(e,t)=>ka(e,va(t));var fi=e=>typeof e=="symbol"?e:e+"",Ke=(e,t)=>{var o={};for(var n in e)Pr.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Go)for(var n of Go(e))t.indexOf(n)<0&&ui.call(e,n)&&(o[n]=e[n]);return o};var Aa=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},gi=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ba(t))!Pr.call(e,i)&&i!==o&&To(e,i,{get:()=>t[i],enumerable:!(n=Pa(t,i))||n.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Fa(Ea(e)):{},gi(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),Oa=e=>gi(To({},"__esModule",{value:!0}),e);var W=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(s){i(s)}},l=d=>{try{p(o.throw(d))}catch(s){i(s)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,l);p((o=o.apply(e,t)).next())});var Id={};Aa(Id,{Box:()=>po,Button:()=>wa,CheckBox:()=>gt,FlowType:()=>Yo,FormLabel:()=>Tt,FormTextField:()=>sr,FrigadeAnnouncement:()=>ya,FrigadeBanner:()=>oa,FrigadeChecklist:()=>br,FrigadeDefaultAppearance:()=>ft,FrigadeEmbeddedTip:()=>Jl,FrigadeForm:()=>zr,FrigadeGuide:()=>vl,FrigadeHeroChecklist:()=>fl,FrigadeNPSSurvey:()=>pa,FrigadeProgressBadge:()=>kl,FrigadeProvider:()=>Wn,FrigadeSupportWidget:()=>Gl,FrigadeTour:()=>Ll,ProgressBar:()=>Ye,ProgressRing:()=>_t,Text:()=>Fr,tokens:()=>gr,useFlowOpens:()=>We,useFlowResponses:()=>to,useFlows:()=>oe,useOrganization:()=>mr,useUser:()=>ro,useUserFlowStates:()=>qe});module.exports=Oa(Id);var re=f(require("react")),Mn=require("styled-components");var ue=f(require("react"));var ot=require("react");var Wt=f(require("react"));var hi="1.35.47 ";var tt="NOT_STARTED_STEP",te="COMPLETED_FLOW",Ko="ABORTED_FLOW",zt="STARTED_FLOW",Ze="NOT_STARTED_FLOW",lt="COMPLETED_STEP",qo="STARTED_STEP";function ct(){let{publicApiKey:e,userId:t,apiUrl:o}=Wt.default.useContext(R);return{config:(0,Wt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":hi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,Wt.useMemo)(()=>`${o}/v1/public/`,[o])}}var Ia="frigade-last-call-at-",Na="frigade-last-call-data-";function Qt(){let{shouldGracefullyDegrade:e,readonly:t}=Wt.default.useContext(R);return(o,n)=>W(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return Jt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Jt();let i=Ia+o,r=Na+o;if(window&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let s=new Date(p);if(new Date().getTime()-s.getTime()<1e3)return Jt()}window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body)}let l;try{l=yield fetch(o,n)}catch(p){return Jt(p)}return l?l.ok?l:Jt(l.statusText):Jt()})}function Jt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Zt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Wt.default.useContext(R);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var Fo=require("react");var eo=require("react");var Ci=f(require("swr"));var xi=require("react");function We(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,xi.useContext)(R);function r(c,g=!1){var S;return(S=e[c])!=null?S:g}function l(c,g){t(S=>V(T({},S),{[c]:g}))}function p(c){t(g=>{let b=g,{[c]:S}=b,F=Ke(b,[fi(c)]);return T({},F)})}function d(c){i.includes(c)||n(g=>[...g,c])}function s(c){return i.includes(c)}function m(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:l,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:s}}var yi=f(require("swr/immutable"));var Rt=f(require("core-js-pure/actual/structured-clone"));function vr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(...e){let t=e.shift(),o=e.length===1?e[0]:ke(...e);if(!vr(t)||!vr(o))throw new Error("deepmerge can only merge Objects");let n=(0,Rt.default)(t);return Object.entries(o).forEach(([i,r])=>{vr(r)?n[i]!==void 0?Object.assign(n,{[i]:ke(n[i],(0,Rt.default)(r))}):Object.assign(n,{[i]:(0,Rt.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,Rt.default)(r)]}):Object.assign(n,{[i]:(0,Rt.default)(r)}):Object.assign(n,{[i]:r})}),n}var La="unknown";function qe(){let{config:e,apiUrl:t}=ct(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:l,readonly:p}=(0,eo.useContext)(R),{resetOpenFlowState:d}=We(),[s,m]=(0,eo.useState)(!1),c={data:r.map(x=>({flowId:x.id,flowState:te,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},g=x=>fetch(x,e).then(w=>{if(w.ok)return w.json();throw new Error("Failed to fetch user flow states")}).catch(w=>(console.log(`Error fetching ${x}: ${w}. Will gracefully degrade and hide Frigade`),l(!0),c)),S=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:F,isLoading:b,mutate:h,error:B}=p?(0,yi.default)(S,g):(0,Ci.default)(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),v=F==null?void 0:F.data;(0,eo.useEffect)(()=>{!s&&!b&&v&&m(!0)},[v,s,b]);function k(x){return W(this,null,function*(){if(v&&!p){let w=v.find(L=>L.flowId===x);w&&w.flowState!==te&&(w.flowState=te),yield h(Promise.resolve(ke(F,{data:v})),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}function O(x,w,L){return W(this,null,function*(){if(v){let $=v.find(I=>I.flowId===x);$&&($.stepStates[w]=L,$.flowState=zt),yield h(Promise.resolve(ke(F,{data:v})),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}function N(x,w,L){return W(this,null,function*(){if(v){let $=v.find(I=>I.flowId===x);$&&($.lastStepId=w,$.stepStates[w]=L,$.flowState=zt),yield h(ke(F,{data:v}),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}function C(x){return W(this,null,function*(){if(v){let w=v.find(L=>L.flowId===x);w&&w.flowState!==Ze&&(w.flowState=Ze,w.lastStepId=La,Object.keys(w.stepStates).forEach(L=>{w.stepStates[L].actionType=tt,w.stepStates[L].createdAt=new Date().toISOString()}),yield h(ke(F,{data:v}),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1}),d(x))}})}function E(x,w){return W(this,null,function*(){if(v){let L=v.find($=>$.flowId===x);L&&L.stepStates[w]!==tt&&(L.stepStates[w]=tt),yield h(ke(F,{data:v}),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:v,isLoadingUserFlowStateData:!s,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:C,optimisticallyMarkStepCompleted:O,optimisticallyMarkStepNotStarted:E,optimisticallyMarkStepStarted:N,error:B}}function to(){let{config:e,apiUrl:t}=ct(),{userFlowStatesData:o,mutateUserFlowState:n}=qe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:l,setFlowResponses:p}=(0,Fo.useContext)(R),[d,s]=(0,Fo.useState)(new Set),[m,c]=(0,Fo.useState)(new Set),g=Qt();function S(h){let B=JSON.stringify(h);if(d.has(B))return null;d.add(B),s(d),m.add(h),c(m);let v=l==null?void 0:l.find(k=>k.flowSlug===h.flowSlug&&k.stepId===h.stepId&&k.actionType===h.actionType&&k.createdAt===h.createdAt);return g(`${t}flowResponses`,V(T({},e),{method:"POST",body:B})).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):v||p(O=>[...O!=null?O:[],h])})}function F(h){return W(this,null,function*(){h.foreignUserId&&(h.actionType===zt||h.actionType===Ze?yield S(h):h.actionType===te?yield S(h):h.actionType===qo?yield S(h):h.actionType===lt?yield S(h):h.actionType===Ko?yield S(h):h.actionType===tt&&(yield S(h)))})}function b(){let h=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let v in B.stepStates){let k=B.stepStates[v];h.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})}}),[...h,...l]}return{addResponse:F,setFlowResponses:p,getFlowResponses:b}}var bi=f(require("swr"));var $a=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Si=e=>{let t=$a.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=Ma(n,"'","");r.startsWith("flow_")&&(o=r)}),o},Ma=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Br(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Yo=(s=>(s.CHECKLIST="CHECKLIST",s.FORM="FORM",s.TOUR="TOUR",s.SUPPORT="SUPPORT",s.CUSTOM="CUSTOM",s.BANNER="BANNER",s.EMBEDDED_TIP="EMBEDDED_TIP",s.NPS_SURVEY="NPS_SURVEY",s.ANNOUNCEMENT="ANNOUNCEMENT",s))(Yo||{});function oe(){let{config:e,apiUrl:t}=ct(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:l,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,readonly:S}=(0,ot.useContext)(R),F={data:[]},{verifySDKInitiated:b}=Zt(),{addResponse:h,getFlowResponses:B}=to(),v=y=>fetch(y,e).then(u=>u.ok?u.json():(console.log(`Error fetching ${y} (${u.status}): ${u.statusText}. Will gracefully degrade and hide Frigade`),g(!0),F)).catch(u=>(console.log(`Error fetching ${y}: ${u}. Will gracefully degrade and hide Frigade`),g(!0),F)),{mutateUserFlowState:k,userFlowStatesData:O,isLoadingUserFlowStateData:N,optimisticallyMarkFlowCompleted:C,optimisticallyMarkFlowNotStarted:E,optimisticallyMarkStepCompleted:x,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:L}=qe(),{data:$,error:I,isLoading:G}=(0,bi.default)(l?`${t}flows${S?"?readonly=true":""}`:null,v,{keepPreviousData:!0});(0,ot.useEffect)(()=>{if(I){console.error(I);return}$&&$.data&&n($.data)},[$,I]);function U(y){if(G)return null;let u=o.find(P=>P.slug===y);return!u&&o.length>0&&!N&&!G?(console.log(`Flow with id ${y} not found`),null):(u==null?void 0:u.active)===!1&&!S?null:u}function K(y){var j,Te;if(!U(y))return[];let u=U(y).data;return u?(u=fe(u),((Te=(j=Br(u))==null?void 0:j.data)!=null?Te:[]).map(Fe=>{let wo=Z(Fe);return V(T({handleSecondaryButtonClick:()=>{Fe.skippable===!0&&q(y,Fe.id,{skipped:!0})}},Fe),{complete:Se(y,Fe.id)===lt||wo>=1,blocked:Ge(y,Fe.id),hidden:Le(y,Fe.id),handlePrimaryButtonClick:()=>{(!Fe.completionCriteria&&(Fe.autoMarkCompleted||Fe.autoMarkCompleted===void 0)||Fe.completionCriteria&&Fe.autoMarkCompleted===!0)&&q(y,Fe.id)},progress:wo})}).filter(Fe=>Fe.hidden!==!0)):[]}function fe(y){return y.replaceAll(/\${(.*?)}/g,(u,P)=>p[P]===void 0?"":String(p[P]).replace(/[\u00A0-\u9999<>\&]/g,function(j){return"&#"+j.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 he(y){var P;if(!U(y))return[];let u=U(y).data;return u?(u=fe(u),(P=JSON.parse(u))!=null?P:{}):[]}function X(y,u){d(P=>V(T({},P),{[y]:u}))}function ce(y){!N&&!G&&y&&JSON.stringify(p)!=JSON.stringify(T(T({},p),y))&&Object.keys(y).forEach(u=>{X(u,y[u])})}let xe=(0,ot.useCallback)((y,u,P)=>W(this,null,function*(){if(!b())return;let j={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:qo,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};Q(j)&&(yield L(y,u,j),h(j))}),[i,r,O]),Ne=(0,ot.useCallback)((y,u,P)=>W(this,null,function*(){if(!b())return;let j={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:tt,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};Q(j)&&(yield w(y,u),h(j))}),[i,r,O]),q=(0,ot.useCallback)((y,u,P)=>W(this,null,function*(){if(!b())return;let j={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:lt,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};Q(j)&&(yield x(y,u,j),h(j))}),[i,r,O]),J=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b()||be(y)===Ze)return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ze,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};yield E(y),Q(P)&&h(P)}),[i,r,O]),ne=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:zt,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};Q(P)&&h(P)}),[i,r,O]),nt=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:te,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};Q(P)&&(yield C(y),h(P))}),[i,r,O]),Je=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ko,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};Q(P)&&(yield C(y),h(P))}),[i,r,O]);function Q(y){var u;if(!O&&y.actionType===tt)return!1;if(O){let P=O.find(j=>j.flowId===y.flowSlug);if(y.actionType===tt&&(!(P!=null&&P.stepStates[y.stepId])||P.stepStates[y.stepId].actionType===tt)||P&&((u=P.stepStates[y.stepId])==null?void 0:u.actionType)===y.actionType||P&&P.flowState===te&&y.actionType===te)return!1}return!0}function Se(y,u){let P=z(y,u);return N?null:P?P.actionType:tt}function Ge(y,u){let P=z(y,u);return P?P.blocked:!1}function Le(y,u){let P=z(y,u);return P?P.hidden:!1}function z(y,u){var j;if(N)return null;let P=O==null?void 0:O.find(Te=>Te.flowId===y);return!P||!P.stepStates[u]?null:(j=P.stepStates[u])!=null?j:null}function M(y){var P,j;if(N||!O)return null;if(be(y)===Ze)return(P=K(y)[0])!=null?P:null;let u=(j=O.find(Te=>Te.flowId===y))==null?void 0:j.lastStepId;return u?K(y).find(Te=>Te.id===u):null}function _(y){var j;let u=M(y);if(!u)return 0;let P=(j=K(y).findIndex(Te=>Te.id===u.id))!=null?j:0;return Se(y,u.id)===lt&&P<K(y).length-1?P+1:P}function Z(y){if(!y.completionCriteria)return;let u=Si(y.completionCriteria);if(u===null)return;let P=Qe(u),j=st(u);return j===0?void 0:P/j}function be(y){let u=O==null?void 0:O.find(P=>P.flowId===y);return u?u.flowState:null}function Qe(y){let u=K(y);return u.length===0?0:u.filter(j=>Se(y,j.id)===lt).length}function st(y){return K(y).length}function dt(y){let u=o.find(P=>P.slug===y);return u?Br(u.data):null}function Ut(y){if(S)return!1;if(N)return!0;if(y!=null&&y.targetingLogic&&O){let u=O.find(P=>P.flowId===y.slug);if(u)return u.shouldTrigger===!1}return!!(y!=null&&y.targetingLogic&&i&&i.startsWith("guest_"))}function Yt(y){return!Ut(U(y))}function Xt(){i&&k()}return{getFlow:U,getFlowData:dt,isLoading:N||G,getStepStatus:Se,getFlowSteps:K,getCurrentStepIndex:_,markStepStarted:xe,markStepCompleted:q,markFlowNotStarted:J,markFlowStarted:ne,markFlowCompleted:nt,markFlowAborted:Je,markStepNotStarted:Ne,getFlowStatus:be,getNumberOfStepsCompleted:Qe,getNumberOfSteps:st,targetingLogicShouldHideFlow:Ut,setCustomVariable:X,updateCustomVariables:ce,customVariables:p,getStepOptionalProgress:Z,getFlowMetadata:he,isStepBlocked:Ge,isStepHidden:Le,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Yt,refresh:Xt}}var Et=require("react");var oo="guest_";function ro(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,Et.useContext)(R),{config:r,apiUrl:l}=ct(),{mutateUserFlowState:p}=qe(),d=Qt(),{verifySDKInitiated:s}=Zt();function m(F){return`frigade-user-registered-${F}`}(0,Et.useEffect)(()=>{if(e&&!t){if(e.startsWith(oo))return;let F=m(e);localStorage.getItem(F)||(d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(F,"true"))}},[e,i,t]);let c=(0,Et.useCallback)(F=>W(this,null,function*(){if(!s())return;let b={foreignId:e,properties:F};yield d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify(b)})),n(h=>T(T({},h),F)),p()}),[e,r,i,p]),g=(0,Et.useCallback)((F,b)=>W(this,null,function*(){if(!s())return;let B={foreignId:e,events:[{event:F,properties:b}]};yield d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify(B)})),p()}),[e,r,p]),S=(0,Et.useCallback)((F,b)=>W(this,null,function*(){if(s())if(b){let h=m(F);localStorage.setItem(h,"true"),o(F);let B={foreignId:F,properties:b};yield d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify(B)})),n(v=>T(T({},v),b)),p()}else o(F)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:S,addPropertiesToUser:c,trackEventForUser:g}}var Pn=require("uuid");var Ue=f(require("react"));var Ee=f(require("react")),vo=f(require("styled-components"));var Ti=f(require("react")),Fi=f(require("styled-components"));var wi="fr-",ko="cfr-";function a(e,t){let o=`${wi}${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+" "+ko+e}return o}function A(e){if(!e.className||e.className.indexOf(ko)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(wi)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Xo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ze(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Xo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function $e(...e){return e.filter(Boolean).join(" ")}function Po(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Da=Fi.default.div`
2
+ var Fa=Object.create;var To=Object.defineProperty,ka=Object.defineProperties,Pa=Object.getOwnPropertyDescriptor,va=Object.getOwnPropertyDescriptors,Ba=Object.getOwnPropertyNames,Go=Object.getOwnPropertySymbols,Ea=Object.getPrototypeOf,Pr=Object.prototype.hasOwnProperty,ui=Object.prototype.propertyIsEnumerable;var mi=(e,t,o)=>t in e?To(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,T=(e,t)=>{for(var o in t||(t={}))Pr.call(t,o)&&mi(e,o,t[o]);if(Go)for(var o of Go(t))ui.call(t,o)&&mi(e,o,t[o]);return e},V=(e,t)=>ka(e,va(t));var fi=e=>typeof e=="symbol"?e:e+"",Ke=(e,t)=>{var o={};for(var n in e)Pr.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Go)for(var n of Go(e))t.indexOf(n)<0&&ui.call(e,n)&&(o[n]=e[n]);return o};var Aa=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},gi=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ba(t))!Pr.call(e,i)&&i!==o&&To(e,i,{get:()=>t[i],enumerable:!(n=Pa(t,i))||n.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Fa(Ea(e)):{},gi(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),Oa=e=>gi(To({},"__esModule",{value:!0}),e);var W=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(s){i(s)}},l=d=>{try{p(o.throw(d))}catch(s){i(s)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,l);p((o=o.apply(e,t)).next())});var Id={};Aa(Id,{Box:()=>po,Button:()=>wa,CheckBox:()=>gt,FlowType:()=>Yo,FormLabel:()=>Tt,FormTextField:()=>sr,FrigadeAnnouncement:()=>ya,FrigadeBanner:()=>oa,FrigadeChecklist:()=>br,FrigadeDefaultAppearance:()=>ft,FrigadeEmbeddedTip:()=>Jl,FrigadeForm:()=>zr,FrigadeGuide:()=>vl,FrigadeHeroChecklist:()=>fl,FrigadeNPSSurvey:()=>pa,FrigadeProgressBadge:()=>kl,FrigadeProvider:()=>Wn,FrigadeSupportWidget:()=>Gl,FrigadeTour:()=>Ll,ProgressBar:()=>Ye,ProgressRing:()=>_t,Text:()=>Fr,tokens:()=>gr,useFlowOpens:()=>We,useFlowResponses:()=>to,useFlows:()=>oe,useOrganization:()=>mr,useUser:()=>ro,useUserFlowStates:()=>qe});module.exports=Oa(Id);var re=f(require("react")),Mn=require("styled-components");var ue=f(require("react"));var ot=require("react");var Wt=f(require("react"));var hi="1.35.48 ";var tt="NOT_STARTED_STEP",te="COMPLETED_FLOW",Ko="ABORTED_FLOW",zt="STARTED_FLOW",Ze="NOT_STARTED_FLOW",lt="COMPLETED_STEP",qo="STARTED_STEP";function ct(){let{publicApiKey:e,userId:t,apiUrl:o}=Wt.default.useContext(R);return{config:(0,Wt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":hi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,Wt.useMemo)(()=>`${o}/v1/public/`,[o])}}var Ia="frigade-last-call-at-",Na="frigade-last-call-data-";function Qt(){let{shouldGracefullyDegrade:e,readonly:t}=Wt.default.useContext(R);return(o,n)=>W(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return Jt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Jt();let i=Ia+o,r=Na+o;if(window&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let s=new Date(p);if(new Date().getTime()-s.getTime()<1e3)return Jt()}window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body)}let l;try{l=yield fetch(o,n)}catch(p){return Jt(p)}return l?l.ok?l:Jt(l.statusText):Jt()})}function Jt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Zt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Wt.default.useContext(R);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var Fo=require("react");var eo=require("react");var Ci=f(require("swr"));var xi=require("react");function We(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,xi.useContext)(R);function r(c,g=!1){var S;return(S=e[c])!=null?S:g}function l(c,g){t(S=>V(T({},S),{[c]:g}))}function p(c){t(g=>{let b=g,{[c]:S}=b,F=Ke(b,[fi(c)]);return T({},F)})}function d(c){i.includes(c)||n(g=>[...g,c])}function s(c){return i.includes(c)}function m(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:l,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:s}}var yi=f(require("swr/immutable"));var Rt=f(require("core-js-pure/actual/structured-clone"));function vr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(...e){let t=e.shift(),o=e.length===1?e[0]:ke(...e);if(!vr(t)||!vr(o))throw new Error("deepmerge can only merge Objects");let n=(0,Rt.default)(t);return Object.entries(o).forEach(([i,r])=>{vr(r)?n[i]!==void 0?Object.assign(n,{[i]:ke(n[i],(0,Rt.default)(r))}):Object.assign(n,{[i]:(0,Rt.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,Rt.default)(r)]}):Object.assign(n,{[i]:(0,Rt.default)(r)}):Object.assign(n,{[i]:r})}),n}var La="unknown";function qe(){let{config:e,apiUrl:t}=ct(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:l,readonly:p}=(0,eo.useContext)(R),{resetOpenFlowState:d}=We(),[s,m]=(0,eo.useState)(!1),c={data:r.map(x=>({flowId:x.id,flowState:te,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},g=x=>fetch(x,e).then(w=>{if(w.ok)return w.json();throw new Error("Failed to fetch user flow states")}).catch(w=>(console.log(`Error fetching ${x}: ${w}. Will gracefully degrade and hide Frigade`),l(!0),c)),S=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:F,isLoading:b,mutate:h,error:B}=p?(0,yi.default)(S,g):(0,Ci.default)(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),v=F==null?void 0:F.data;(0,eo.useEffect)(()=>{!s&&!b&&v&&m(!0)},[v,s,b]);function k(x){return W(this,null,function*(){if(v&&!p){let w=v.find(L=>L.flowId===x);w&&w.flowState!==te&&(w.flowState=te),yield h(Promise.resolve(ke(F,{data:v})),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}function O(x,w,L){return W(this,null,function*(){if(v){let $=v.find(I=>I.flowId===x);$&&($.stepStates[w]=L,$.flowState=zt),yield h(Promise.resolve(ke(F,{data:v})),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}function N(x,w,L){return W(this,null,function*(){if(v){let $=v.find(I=>I.flowId===x);$&&($.lastStepId=w,$.stepStates[w]=L,$.flowState=zt),yield h(ke(F,{data:v}),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}function C(x){return W(this,null,function*(){if(v){let w=v.find(L=>L.flowId===x);w&&w.flowState!==Ze&&(w.flowState=Ze,w.lastStepId=La,Object.keys(w.stepStates).forEach(L=>{w.stepStates[L].actionType=tt,w.stepStates[L].createdAt=new Date().toISOString()}),yield h(ke(F,{data:v}),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1}),d(x))}})}function E(x,w){return W(this,null,function*(){if(v){let L=v.find($=>$.flowId===x);L&&L.stepStates[w]!==tt&&(L.stepStates[w]=tt),yield h(ke(F,{data:v}),{optimisticData:ke(F,{data:v}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:v,isLoadingUserFlowStateData:!s,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:C,optimisticallyMarkStepCompleted:O,optimisticallyMarkStepNotStarted:E,optimisticallyMarkStepStarted:N,error:B}}function to(){let{config:e,apiUrl:t}=ct(),{userFlowStatesData:o,mutateUserFlowState:n}=qe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:l,setFlowResponses:p}=(0,Fo.useContext)(R),[d,s]=(0,Fo.useState)(new Set),[m,c]=(0,Fo.useState)(new Set),g=Qt();function S(h){let B=JSON.stringify(h);if(d.has(B))return null;d.add(B),s(d),m.add(h),c(m);let v=l==null?void 0:l.find(k=>k.flowSlug===h.flowSlug&&k.stepId===h.stepId&&k.actionType===h.actionType&&k.createdAt===h.createdAt);return g(`${t}flowResponses`,V(T({},e),{method:"POST",body:B})).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):v||p(O=>[...O!=null?O:[],h])})}function F(h){return W(this,null,function*(){h.foreignUserId&&(h.actionType===zt||h.actionType===Ze?yield S(h):h.actionType===te?yield S(h):h.actionType===qo?yield S(h):h.actionType===lt?yield S(h):h.actionType===Ko?yield S(h):h.actionType===tt&&(yield S(h)))})}function b(){let h=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let v in B.stepStates){let k=B.stepStates[v];h.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})}}),[...h,...l]}return{addResponse:F,setFlowResponses:p,getFlowResponses:b}}var bi=f(require("swr"));var $a=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Si=e=>{let t=$a.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=Ma(n,"'","");r.startsWith("flow_")&&(o=r)}),o},Ma=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Br(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Yo=(s=>(s.CHECKLIST="CHECKLIST",s.FORM="FORM",s.TOUR="TOUR",s.SUPPORT="SUPPORT",s.CUSTOM="CUSTOM",s.BANNER="BANNER",s.EMBEDDED_TIP="EMBEDDED_TIP",s.NPS_SURVEY="NPS_SURVEY",s.ANNOUNCEMENT="ANNOUNCEMENT",s))(Yo||{});function oe(){let{config:e,apiUrl:t}=ct(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:l,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,readonly:S}=(0,ot.useContext)(R),F={data:[]},{verifySDKInitiated:b}=Zt(),{addResponse:h,getFlowResponses:B}=to(),v=y=>fetch(y,e).then(u=>u.ok?u.json():(console.log(`Error fetching ${y} (${u.status}): ${u.statusText}. Will gracefully degrade and hide Frigade`),g(!0),F)).catch(u=>(console.log(`Error fetching ${y}: ${u}. Will gracefully degrade and hide Frigade`),g(!0),F)),{mutateUserFlowState:k,userFlowStatesData:O,isLoadingUserFlowStateData:N,optimisticallyMarkFlowCompleted:C,optimisticallyMarkFlowNotStarted:E,optimisticallyMarkStepCompleted:x,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:L}=qe(),{data:$,error:I,isLoading:G}=(0,bi.default)(l?`${t}flows${S?"?readonly=true":""}`:null,v,{keepPreviousData:!0});(0,ot.useEffect)(()=>{if(I){console.error(I);return}$&&$.data&&n($.data)},[$,I]);function U(y){if(G)return null;let u=o.find(P=>P.slug===y);return!u&&o.length>0&&!N&&!G?(console.log(`Flow with id ${y} not found`),null):(u==null?void 0:u.active)===!1&&!S?null:u}function K(y){var j,Te;if(!U(y))return[];let u=U(y).data;return u?(u=fe(u),((Te=(j=Br(u))==null?void 0:j.data)!=null?Te:[]).map(Fe=>{let wo=Z(Fe);return V(T({handleSecondaryButtonClick:()=>{Fe.skippable===!0&&q(y,Fe.id,{skipped:!0})}},Fe),{complete:Se(y,Fe.id)===lt||wo>=1,blocked:Ge(y,Fe.id),hidden:Le(y,Fe.id),handlePrimaryButtonClick:()=>{(!Fe.completionCriteria&&(Fe.autoMarkCompleted||Fe.autoMarkCompleted===void 0)||Fe.completionCriteria&&Fe.autoMarkCompleted===!0)&&q(y,Fe.id)},progress:wo})}).filter(Fe=>Fe.hidden!==!0)):[]}function fe(y){return y.replaceAll(/\${(.*?)}/g,(u,P)=>p[P]===void 0?"":String(p[P]).replace(/[\u00A0-\u9999<>\&]/g,function(j){return"&#"+j.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 he(y){var P;if(!U(y))return[];let u=U(y).data;return u?(u=fe(u),(P=JSON.parse(u))!=null?P:{}):[]}function X(y,u){d(P=>V(T({},P),{[y]:u}))}function ce(y){!N&&!G&&y&&JSON.stringify(p)!=JSON.stringify(T(T({},p),y))&&Object.keys(y).forEach(u=>{X(u,y[u])})}let xe=(0,ot.useCallback)((y,u,P)=>W(this,null,function*(){if(!b())return;let j={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:qo,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};Q(j)&&(yield L(y,u,j),h(j))}),[i,r,O]),Ne=(0,ot.useCallback)((y,u,P)=>W(this,null,function*(){if(!b())return;let j={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:tt,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};Q(j)&&(yield w(y,u),h(j))}),[i,r,O]),q=(0,ot.useCallback)((y,u,P)=>W(this,null,function*(){if(!b())return;let j={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:lt,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};Q(j)&&(yield x(y,u,j),h(j))}),[i,r,O]),J=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b()||be(y)===Ze)return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ze,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};yield E(y),Q(P)&&h(P)}),[i,r,O]),ne=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:zt,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};Q(P)&&h(P)}),[i,r,O]),nt=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:te,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};Q(P)&&(yield C(y),h(P))}),[i,r,O]),Je=(0,ot.useCallback)((y,u)=>W(this,null,function*(){if(!b())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ko,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};Q(P)&&(yield C(y),h(P))}),[i,r,O]);function Q(y){var u;if(!O&&y.actionType===tt)return!1;if(O){let P=O.find(j=>j.flowId===y.flowSlug);if(y.actionType===tt&&(!(P!=null&&P.stepStates[y.stepId])||P.stepStates[y.stepId].actionType===tt)||P&&((u=P.stepStates[y.stepId])==null?void 0:u.actionType)===y.actionType||P&&P.flowState===te&&y.actionType===te)return!1}return!0}function Se(y,u){let P=z(y,u);return N?null:P?P.actionType:tt}function Ge(y,u){let P=z(y,u);return P?P.blocked:!1}function Le(y,u){let P=z(y,u);return P?P.hidden:!1}function z(y,u){var j;if(N)return null;let P=O==null?void 0:O.find(Te=>Te.flowId===y);return!P||!P.stepStates[u]?null:(j=P.stepStates[u])!=null?j:null}function M(y){var P,j;if(N||!O)return null;if(be(y)===Ze)return(P=K(y)[0])!=null?P:null;let u=(j=O.find(Te=>Te.flowId===y))==null?void 0:j.lastStepId;return u?K(y).find(Te=>Te.id===u):null}function _(y){var j;let u=M(y);if(!u)return 0;let P=(j=K(y).findIndex(Te=>Te.id===u.id))!=null?j:0;return Se(y,u.id)===lt&&P<K(y).length-1?P+1:P}function Z(y){if(!y.completionCriteria)return;let u=Si(y.completionCriteria);if(u===null)return;let P=Qe(u),j=st(u);return j===0?void 0:P/j}function be(y){let u=O==null?void 0:O.find(P=>P.flowId===y);return u?u.flowState:null}function Qe(y){let u=K(y);return u.length===0?0:u.filter(j=>Se(y,j.id)===lt).length}function st(y){return K(y).length}function dt(y){let u=o.find(P=>P.slug===y);return u?Br(u.data):null}function Ut(y){if(S)return!1;if(N)return!0;if(y!=null&&y.targetingLogic&&O){let u=O.find(P=>P.flowId===y.slug);if(u)return u.shouldTrigger===!1}return!!(y!=null&&y.targetingLogic&&i&&i.startsWith("guest_"))}function Yt(y){return!Ut(U(y))}function Xt(){i&&k()}return{getFlow:U,getFlowData:dt,isLoading:N||G,getStepStatus:Se,getFlowSteps:K,getCurrentStepIndex:_,markStepStarted:xe,markStepCompleted:q,markFlowNotStarted:J,markFlowStarted:ne,markFlowCompleted:nt,markFlowAborted:Je,markStepNotStarted:Ne,getFlowStatus:be,getNumberOfStepsCompleted:Qe,getNumberOfSteps:st,targetingLogicShouldHideFlow:Ut,setCustomVariable:X,updateCustomVariables:ce,customVariables:p,getStepOptionalProgress:Z,getFlowMetadata:he,isStepBlocked:Ge,isStepHidden:Le,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Yt,refresh:Xt}}var Et=require("react");var oo="guest_";function ro(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,Et.useContext)(R),{config:r,apiUrl:l}=ct(),{mutateUserFlowState:p}=qe(),d=Qt(),{verifySDKInitiated:s}=Zt();function m(F){return`frigade-user-registered-${F}`}(0,Et.useEffect)(()=>{if(e&&!t){if(e.startsWith(oo))return;let F=m(e);localStorage.getItem(F)||(d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(F,"true"))}},[e,i,t]);let c=(0,Et.useCallback)(F=>W(this,null,function*(){if(!s())return;let b={foreignId:e,properties:F};yield d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify(b)})),n(h=>T(T({},h),F)),p()}),[e,r,i,p]),g=(0,Et.useCallback)((F,b)=>W(this,null,function*(){if(!s())return;let B={foreignId:e,events:[{event:F,properties:b}]};yield d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify(B)})),p()}),[e,r,p]),S=(0,Et.useCallback)((F,b)=>W(this,null,function*(){if(s())if(b){let h=m(F);localStorage.setItem(h,"true"),o(F);let B={foreignId:F,properties:b};yield d(`${l}users`,V(T({},r),{method:"POST",body:JSON.stringify(B)})),n(v=>T(T({},v),b)),p()}else o(F)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:S,addPropertiesToUser:c,trackEventForUser:g}}var Pn=require("uuid");var Ue=f(require("react"));var Ee=f(require("react")),vo=f(require("styled-components"));var Ti=f(require("react")),Fi=f(require("styled-components"));var wi="fr-",ko="cfr-";function a(e,t){let o=`${wi}${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+" "+ko+e}return o}function A(e){if(!e.className||e.className.indexOf(ko)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(wi)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Xo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ze(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Xo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function $e(...e){return e.filter(Boolean).join(" ")}function Po(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Da=Fi.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -677,7 +677,7 @@ var Fa=Object.create;var To=Object.defineProperty,ka=Object.defineProperties,Pa=
677
677
  color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorText}};
678
678
  display: flex;
679
679
  align-self: center;
680
- `;var wn=({stepData:e,setCanContinue:t,onSaveData:o,appearance:n})=>{let i=e.props,[r,l]=(0,Ae.useState)([]),[p,d]=(0,Ae.useState)(!1),[s,m]=(0,Ae.useState)(e.id);return(0,Ae.useEffect)(()=>{r.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,Ae.useEffect)(()=>{s!==e.id&&(m(e.id),l([]))},[e]),(0,Ae.useEffect)(()=>{o({choice:r}),r.length>=i.minChoices?t(!0):t(!1)},[r]),Ae.default.createElement(fn,{className:a("selectListContainer",n)},Ae.default.createElement(gn,null,Ae.default.createElement(hn,{className:a("selectListTitle",n)},e.title),Ae.default.createElement(xn,{appearance:n,className:a("selectListSubtitle",n)},e.subtitle)),i.options.map((c,g)=>{let S=r.includes(c.id);return Ae.default.createElement(Cn,{key:`select-item-${g}`,onClick:()=>{if(r.includes(c.id)){l(r.filter(F=>F!==c.id));return}r.length<i.maxChoices?l([...r,c.id]):r.length==1&&i.maxChoices==1&&l([c.id])},hideBottomBorder:g===i.options.length-1,className:a("selectListSelectItem",n)},Ae.default.createElement(yn,{className:a("selectListItemImage",n)},c.imageUri&&Ae.default.createElement(Sn,{src:c.imageUri,alt:`select-icon-${g}`}),Ae.default.createElement(bn,{appearance:n,className:a("selectListSelectItemText",n)},c.title)),Ae.default.createElement(gt,{appearance:n,value:S,primaryColor:n.theme.colorPrimary}))}))};var me=f(require("react"));var Dp=({children:e,id:t,shouldWrap:o=!1})=>me.default.createElement(me.default.Fragment,null,o?me.default.createElement("div",{key:t,style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e):e),cr=({appearance:e,steps:t,selectedStep:o,customStepTypes:n,customVariables:i,onButtonClick:r,onStepCompletion:l,flowId:p,type:d,hideOnFlowCompletion:s,onComplete:m,setVisible:c,setShowModal:g,onDismiss:S,showPagination:F=!1,customFormElements:b,allowBackNavigation:h,validationHandler:B,onFormDataChange:v,showFooter:k,prefillData:O,updateUrlOnPageChange:N})=>{var z;let E=T(T({},{linkCollection:mn,multiInput:Zi,callToAction:un,selectList:wn}),n),{primaryCTAClickSideEffects:x,secondaryCTAClickSideEffects:w}=ge(),[L,$]=(0,me.useState)(!1),[I,G]=(0,me.useState)({}),[U,K]=(0,me.useState)(!1),[fe,he]=(0,me.useState)(!1),[X,ce]=(0,me.useState)(null),xe=(z=t[o])!=null?z:null,{markStepCompleted:Ne,markStepStarted:q,isLoading:J,updateCustomVariables:ne,markFlowCompleted:nt}=oe();(0,me.useEffect)(()=>{ne(i)},[i,J]),(0,me.useEffect)(()=>{v&&v(I,Je(),t[o],o)},[I]);function Je(){var _;return{data:(_=I[t[o].id])!=null?_:{},stepId:t[o].id,customVariables:i}}function Q(M,_,Z){let be=o+1<t.length?t[o+1]:null;return l&&l(M,Z,be,I,Je()),r?r(M,o,_,be):!0}function Se(M,_){G(Z=>{let be={};return be[M.id]=_,T(T({},Z),be)})}function Ge(M){return M.selectedStep.imageUri?me.default.createElement(nn,{image:M.selectedStep.imageUri,appearance:e,className:a("formContainerSidebarImage",e)}):null}let Le=k&&me.default.createElement(an,{step:t[o],canContinue:L&&!U,formType:d,selectedStep:o,appearance:e,onPrimaryClick:()=>W(void 0,null,function*(){if(K(!0),B){let Z=yield B(t[o],o,t[o+1],I,Je());if(Z!==!0){ce(typeof Z=="string"?Z:null),K(!1);return}else ce(null)}let M=T({},Je());yield Ne(p,t[o].id,M),o+1<t.length&&!h&&(yield q(p,t[o+1].id));let _=Q(t[o],"primary",o);if(o+1>=t.length&&(m&&m(),S&&S(),s&&_&&(c&&c(!1),g(!1)),yield nt(p)),x(t[o]),K(!1),h&&o+1<t.length&&(window.location.hash=t[o+1].id),window&&!h&&N&&o+1<t.length){let Z=new URL(window.location.href);Z.searchParams.set("p",t[o+1].id),window.history.pushState({},"",Z.toString())}}),onSecondaryClick:()=>{Q(t[o],"secondary",o),w(t[o])},onBack:()=>W(void 0,null,function*(){o-1>=0&&(K(!0),h&&(window.location.hash=t[o-1].id),yield q(p,t[o-1].id),K(!1))}),steps:t,allowBackNavigation:h,errorMessage:X,isSaving:U});return me.default.createElement(me.default.Fragment,null,me.default.createElement(on,{className:a("formContainer",e)},me.default.createElement(Dp,{id:o,shouldWrap:d==="large-modal"},me.default.createElement(rn,{key:xe.id,type:d,className:a("formContent",e)},t.map(M=>{let _=E[M.type];return xe.id!==M.id?null:me.default.createElement(_,{key:M.id,stepData:M,canContinue:L,setCanContinue:$,onSaveData:Z=>{Se(M,Z)},appearance:e,customFormElements:b,flowId:p,prefillData:O})}),F&&me.default.createElement(dn,{className:a("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),Le)),d=="large-modal"&&me.default.createElement(Ge,{selectedStep:t[o]})))};var lo=f(require("react")),Tn=require("styled-components");var Up=Tn.createGlobalStyle`
680
+ `;var wn=({stepData:e,setCanContinue:t,onSaveData:o,appearance:n})=>{let i=e.props,[r,l]=(0,Ae.useState)([]),[p,d]=(0,Ae.useState)(!1),[s,m]=(0,Ae.useState)(e.id);return(0,Ae.useEffect)(()=>{r.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,Ae.useEffect)(()=>{s!==e.id&&(m(e.id),l([]))},[e]),(0,Ae.useEffect)(()=>{o({choice:r}),r.length>=i.minChoices?t(!0):t(!1)},[r]),Ae.default.createElement(fn,{className:a("selectListContainer",n)},Ae.default.createElement(gn,null,Ae.default.createElement(hn,{className:a("selectListTitle",n)},e.title),Ae.default.createElement(xn,{appearance:n,className:a("selectListSubtitle",n)},e.subtitle)),i.options.map((c,g)=>{let S=r.includes(c.id);return Ae.default.createElement(Cn,{key:`select-item-${g}`,onClick:()=>{if(r.includes(c.id)){l(r.filter(F=>F!==c.id));return}r.length<i.maxChoices?l([...r,c.id]):r.length==1&&i.maxChoices==1&&l([c.id])},hideBottomBorder:g===i.options.length-1,className:a("selectListSelectItem",n)},Ae.default.createElement(yn,{className:a("selectListItemImage",n)},c.imageUri&&Ae.default.createElement(Sn,{src:c.imageUri,alt:`select-icon-${g}`}),Ae.default.createElement(bn,{appearance:n,className:a("selectListSelectItemText",n)},c.title)),Ae.default.createElement(gt,{appearance:n,value:S,primaryColor:n.theme.colorPrimary}))}))};var me=f(require("react"));var Dp=({children:e,id:t,shouldWrap:o=!1})=>me.default.createElement(me.default.Fragment,null,o?me.default.createElement("div",{key:t,style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e):e),cr=({appearance:e,steps:t,selectedStep:o,customStepTypes:n,customVariables:i,onButtonClick:r,onStepCompletion:l,flowId:p,type:d,hideOnFlowCompletion:s,onComplete:m,setVisible:c,setShowModal:g,onDismiss:S,showPagination:F=!1,customFormElements:b,allowBackNavigation:h,validationHandler:B,onFormDataChange:v,showFooter:k,prefillData:O,updateUrlOnPageChange:N})=>{var z;let E=T(T({},{linkCollection:mn,multiInput:Zi,callToAction:un,selectList:wn}),n),{primaryCTAClickSideEffects:x,secondaryCTAClickSideEffects:w}=ge(),[L,$]=(0,me.useState)(!1),[I,G]=(0,me.useState)({}),[U,K]=(0,me.useState)(!1),[fe,he]=(0,me.useState)(!1),[X,ce]=(0,me.useState)(null),xe=(z=t[o])!=null?z:null,{markStepCompleted:Ne,markStepStarted:q,isLoading:J,updateCustomVariables:ne,markFlowCompleted:nt}=oe();(0,me.useEffect)(()=>{ne(i)},[i,J]),(0,me.useEffect)(()=>{v&&v(I,Je(),t[o],o)},[I]);function Je(){var _;return{data:(_=I[t[o].id])!=null?_:{},stepId:t[o].id,customVariables:i}}function Q(M,_,Z){let be=o+1<t.length?t[o+1]:null;return l&&l(M,Z,be,I,Je()),r?r(M,o,_,be):!0}function Se(M,_){G(Z=>{let be={};return be[M.id]=_,T(T({},Z),be)})}function Ge(M){return M.selectedStep.imageUri?me.default.createElement(nn,{image:M.selectedStep.imageUri,appearance:e,className:a("formContainerSidebarImage",e)}):null}let Le=k&&me.default.createElement(an,{step:t[o],canContinue:L&&!U,formType:d,selectedStep:o,appearance:e,onPrimaryClick:()=>W(void 0,null,function*(){if(K(!0),B){let Z=yield B(t[o],o,t[o+1],I,Je());if(Z!==!0){ce(typeof Z=="string"?Z:null),K(!1);return}else ce(null)}let M=T({},Je());yield Ne(p,t[o].id,M),o+1<t.length&&!h&&(yield q(p,t[o+1].id));let _=Q(t[o],"primary",o);if(o+1>=t.length&&(m&&m(),S&&S(),s&&_&&(c&&c(!1),g(!1)),yield nt(p)),x(t[o]),K(!1),h&&o+1<t.length&&(window.location.hash=t[o+1].id),window&&!h&&N&&o+1<t.length){let Z=new URL(window.location.href);Z.searchParams.set("p",t[o+1].id),window.history.pushState({},"",Z.toString())}}),onSecondaryClick:()=>{Q(t[o],"secondary",o),w(t[o])},onBack:()=>W(void 0,null,function*(){o-1>=0&&(K(!0),h&&(window.location.hash=t[o-1].id),yield q(p,t[o-1].id),K(!1))}),steps:t,allowBackNavigation:h,errorMessage:X,isSaving:U});return me.default.createElement(me.default.Fragment,null,me.default.createElement(on,{className:a("formContainer",e)},me.default.createElement(Dp,{id:o,shouldWrap:d==="large-modal"},me.default.createElement(rn,{key:xe.id,type:d,className:a("formContent",e)},t.map(M=>{let _=E[M.type];return typeof _!="function"?_:xe.id!==M.id?null:me.default.createElement(_,{key:M.id,stepData:M,canContinue:L,setCanContinue:$,onSaveData:Z=>{Se(M,Z)},appearance:e,customFormElements:b,flowId:p,prefillData:O})}),F&&me.default.createElement(dn,{className:a("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),Le)),d=="large-modal"&&me.default.createElement(Ge,{selectedStep:t[o]})))};var lo=f(require("react")),Tn=require("styled-components");var Up=Tn.createGlobalStyle`
681
681
  ${e=>e.inlineStyles.map(([t,o])=>`.${ko}${t}.${ko}${t} { ${Object.entries(o).map(([n,i])=>typeof i=="object"?`${n} { ${Object.entries(i).map(([l,p])=>`${Xo(l)}: ${p};`).join(" ")} }`:`${Xo(n)}: ${i};`).join(" ")} }`).join(" ")}`;function pe({appearance:e}){if(!e||!e.styleOverrides)return lo.default.createElement(lo.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([o,n])=>typeof n=="object");return t.length===0?lo.default.createElement(lo.default.Fragment,null):lo.default.createElement(Up,{inlineStyles:t})}var zr=({flowId:e,customStepTypes:t={},type:o="inline",visible:n,setVisible:i,customVariables:r,customFormElements:l,onComplete:p,appearance:d,hideOnFlowCompletion:s=!0,onStepCompletion:m,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:S=!1,modalPosition:F="center",repeatable:b=!1,onDismiss:h,showPagination:B=!1,allowBackNavigation:v=!1,validationHandler:k,showFrigadeBranding:O=!1,onFormDataChange:N,showFooter:C=!0,prefillData:E={},updateUrlOnPageChange:x=!1})=>{var M;let{getFlow:w,getFlowSteps:L,isLoading:$,targetingLogicShouldHideFlow:I,getFlowStatus:G,getCurrentStepIndex:U,markFlowCompleted:K,markFlowNotStarted:fe,markStepStarted:he}=oe(),X=U(e),{mergeAppearanceWithDefault:ce}=se(),[xe,Ne]=(0,Ue.useState)(!1),[q,J]=(0,Ue.useState)(""),{setOpenFlowState:ne,getOpenFlowState:nt,hasOpenModals:Je}=We(),Q=L(e);d=ce(d);let[Se,Ge]=n!==void 0&&i!==void 0?[n,i]:[nt(e,!0),_=>ne(e,_)];if((0,Ue.useEffect)(()=>{!xe&&!$&&(Ne(!0),(G(e)===te&&b||G(e)===Ze)&&(G(e)===te&&b&&fe(e),window&&window.localStorage&&Object.keys(window.localStorage).forEach(Z=>{Z.startsWith(Dr)&&window.localStorage.removeItem(Z)})),Ne(!0))},[xe,Ne,$]),(0,Ue.useEffect)(()=>{var Z;let _=(Z=window==null?void 0:window.location)!=null&&Z.hash?window.location.hash.replace("#",""):"";if(_!=q&&Q&&(Q==null?void 0:Q.length)>0){let be=-1;if(_){let Qe=_;be=Q.findIndex(st=>st.id===Qe),q===_&&(be=-1),J(_)}else be=0,J("");be!==-1&&he(e,Q[be].id)}},[Q,(M=window==null?void 0:window.location)==null?void 0:M.hash]),$)return null;let Le=w(e);if(!Le||I(Le)||!Q||n!==void 0&&n===!1||G(e)===te&&s||(o=="modal"||o=="corner-modal")&&Je(e))return null;let z=()=>{Ge(!1),h&&h(),S===!0&&K(e)};if(F=="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",Ue.default.createElement(ut,{appearance:d,onClose:z,visible:Se,style:_,dismissible:g,showFrigadeBranding:O},Ue.default.createElement(pe,{appearance:d}),Ue.default.createElement(cr,{appearance:d,steps:Q,selectedStep:X,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:i,setShowModal:Ge,onDismiss:h,showPagination:B,customFormElements:l,allowBackNavigation:v,validationHandler:k,onFormDataChange:N,showFooter:C,prefillData:E,updateUrlOnPageChange:x}))}return o==="modal"&&F!=="center"?Ue.default.createElement(tr,{appearance:d,onClose:z,visible:Se,modalPosition:F},Ue.default.createElement(pe,{appearance:d}),Ue.default.createElement(cr,{appearance:d,steps:Q,selectedStep:X,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:i,setShowModal:Ge,onDismiss:h,showPagination:B,customFormElements:l,allowBackNavigation:v,validationHandler:k,onFormDataChange:N,showFooter:C,prefillData:E,updateUrlOnPageChange:x})):Ue.default.createElement(Ue.default.Fragment,null,Ue.default.createElement(pe,{appearance:d}),Ue.default.createElement(cr,{appearance:d,steps:Q,selectedStep:X,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:i,setShowModal:Ge,onDismiss:h,showPagination:B,customFormElements:l,allowBackNavigation:v,validationHandler:k,onFormDataChange:N,showFooter:C,prefillData:E,updateUrlOnPageChange:x}))},Fn=zr;var Ot=require("react");function mr(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Ot.useContext)(R),{mutateUserFlowState:n}=qe(),{config:i,apiUrl:r}=ct(),l=Qt(),{verifySDKInitiated:p}=Zt();function d(g,S){return`frigade-user-group-registered-${g}-${S}`}(0,Ot.useEffect)(()=>{if(t&&e){if(t.startsWith(oo))return;let g=d(t,e);localStorage.getItem(g)||(l(`${r}userGroups`,V(T({},i),{method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})})),localStorage.setItem(g,"true"))}},[t,e]);let s=(0,Ot.useCallback)(g=>W(this,null,function*(){if(!p())return;if(!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationIdInternal:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,properties:g};yield l(`${r}userGroups`,V(T({},i),{method:"POST",body:JSON.stringify(S)})),n()}),[e,t,i,n]),m=(0,Ot.useCallback)((g,S)=>W(this,null,function*(){if(!p())return;if(!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationIdInternal:e,userId:t});return}let b={foreignUserId:t,foreignUserGroupId:e,events:[{event:g,properties:S}]};yield l(`${r}userGroups`,V(T({},i),{method:"POST",body:JSON.stringify(b)})),n()}),[e,t,i,n]),c=(0,Ot.useCallback)((g,S)=>W(this,null,function*(){if(p())if(S){let F=d(t,g);localStorage.setItem(F,"true"),o(g);let b={foreignUserId:t,foreignUserGroupId:g,properties:S};yield l(`${r}userGroups`,V(T({},i),{method:"POST",body:JSON.stringify(b)})),n()}else o(g)}),[t,i,n]);return{organizationId:e,setOrganizationId:o,setOrganizationIdWithProperties:c,addPropertiesToOrganization:s,trackEventForOrganization:m}}var kn="frigade-xFrigade_guestUserId",Lo="frigade-xFrigade_userId",vn=({})=>{let{setFlowResponses:e}=to(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:n}=qe(),{userId:i,setUserId:r}=ro(),[l,p]=(0,ue.useState)(i),{getFlowStatus:d}=oe(),{flows:s,userProperties:m,setIsNewGuestUser:c,flowResponses:g}=(0,ue.useContext)(R),[S,F]=(0,ue.useState)([]),[b,h]=(0,ue.useState)([]),{organizationId:B}=mr(),[v,k]=(0,ue.useState)(B),[O,N]=(0,ue.useState)(!1);(0,ue.useEffect)(()=>{if(!o&&t)for(let w=0;w<t.length;w++){let L=t[w],$=s.find(I=>I.slug===(L==null?void 0:L.flowId));if($&&L&&L.shouldTrigger===!0&&$.type=="FORM"&&$.triggerType==="AUTOMATIC"&&!b.includes($.slug)){setTimeout(()=>{C(L.flowId)},500);break}}},[o,t]),(0,ue.useEffect)(()=>{g.length>0&&n()},[g]),(0,ue.useEffect)(()=>{O||(N(!0),n())},[o,N]);function C(w){let L=s.find($=>$.slug===w);L&&L.triggerType==="AUTOMATIC"&&!b.includes(L.slug)&&(h([...b,L.slug]),F([L]))}function E(){if(!i){let w=localStorage.getItem(Lo);if(w){r(w);return}let L=localStorage.getItem(kn);if(L){r(L);return}c(!0);let $=oo+(0,Pn.v4)();try{localStorage.setItem(kn,$)}catch(I){console.log("Failed to save guest user id locally: Local storage unavailable",I)}r(I=>I||$)}}(0,ue.useEffect)(()=>{try{if(s){let w=[];s.forEach(L=>{if(L.data){let $=L.data.match(/"imageUri":"(.*?)"/g);$&&$.forEach(I=>{let G=I.replace('"imageUri":"',"").replace('"',"");if(w.includes(G))return;let U=new Image;U.src=G,w.push(G)})}})}}catch(w){}},[s]),(0,ue.useEffect)(()=>{if(i!==l&&(e([]),n()),p(i),i&&!i.startsWith(oo))try{localStorage.setItem(Lo,i)}catch(w){console.log("Failed to save user id locally: Local storage available",w)}i===null&&setTimeout(()=>{i===null&&E()},50)},[i,s,m]),(0,ue.useEffect)(()=>{B!=v&&(k(B),e([]),n())},[B,v,k]);function x(){return ue.default.createElement(ue.default.Fragment,null,S.map(w=>d(w.slug)!==Ze?null:ue.default.createElement("span",{key:w.slug},ue.default.createElement(Fn,{flowId:w.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return ue.default.createElement(ue.default.Fragment,null,ue.default.createElement(x,null))};var Dn=require("react-error-boundary");var Bn={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function Wp(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,n])=>{if(Bn[o]){let i=Bn[o].split("."),r=t;i.forEach((l,p)=>{r[l]||(r[l]=p===i.length-1?n:{}),r=r[l]})}}),t}function zp(e){if(!e)return;let t=ke({},e),o={};return Object.keys(t).forEach(n=>{let i=`.fr-${n}`;o[i]=t[n]}),o}function En(e){let{theme:t,styleOverrides:o}=e,n=Wp(t),i=zp(o);return{overrides:n,css:i}}var An=f(require("styled-components")),$o=require("styled-system");var _r=f(require("react")),ao=f(require("styled-components")),_e=require("styled-system");var _p={width:{property:"width",scale:"sizes",transform:(e,t)=>(0,_e.get)(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},Hp=(0,ao.default)("div")(({css:e})=>e,(0,_e.compose)(_e.border,_e.color,_e.shadow,_e.space,_e.typography,(0,_e.system)(_p))),po=i=>{var r=i,{as:e,children:t,overrides:o}=r,n=Ke(r,["as","children","overrides"]);let l=(0,ao.useTheme)(),p={border:"none",boxSizing:"border-box",m:0,p:0},d=()=>_r.default.createElement(Hp,T(T({as:e},p),n),t);if(o!==void 0){let s=ke(l,o);return _r.default.createElement(ao.ThemeProvider,{theme:s},d())}return d()};var Mo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},jp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},On=(0,An.default)(po)(()=>({whiteSpace:"nowrap"}),(0,$o.compose)((0,$o.variant)({scale:"components.Button",variants:"components.Button"}),(0,$o.variant)({prop:"size",variants:jp})));var In=f(require("styled-components")),ur=require("styled-system");var fr={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var Nn=(0,In.default)(po)((0,ur.variant)({scale:"components.Text",variants:"components.Text"}),(0,ur.system)({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Ln=4,$n="px",Vp=20,Gp=Object.fromEntries(Array.from(Array(Vp+1),(e,t)=>t===0?[.5,`${.5*Ln}${$n}`]:[t,`${t*Ln}${$n}`])),co={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},gr={colors:V(T({},co),{neutral:{foreground:co.gray300},primary:{background:co.blue500,foreground:co.white,inverted:co.blue500},negative:{foreground:co.red500}}),fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:Gp,components:{Button:Mo,Text:fr}};var Un="https://api.frigade.com",R=(0,re.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:ft,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:Un,readonly:!1,debug:!1});function Kp(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Wn=({publicApiKey:e,userId:t,organizationId:o,config:n,children:i})=>{var X,ce,xe,Ne,q;let[r,l]=(0,re.useState)(t||null),[p,d]=(0,re.useState)(o||null),[s,m]=(0,re.useState)([]),[c,g]=(0,re.useState)([]),[S,F]=(0,re.useState)([]),[b,h]=(0,re.useState)({}),[B,v]=(0,re.useState)({}),[k,O]=(0,re.useState)([]),[N,C]=(0,re.useState)({}),[E,x]=(0,re.useState)(!1),[w,L]=(0,re.useState)(!1),[$,I]=(0,re.useState)(!K(e)),G=(J,ne)=>{if(ne==="_blank"){window.open(J,"_blank");return}setTimeout(()=>{window.location.href=J},50)},U={theme:T(T({},ft.theme),(ce=(X=n==null?void 0:n.defaultAppearance)==null?void 0:X.theme)!=null?ce:{}),styleOverrides:T(T({},ft.styleOverrides),(Ne=(xe=n==null?void 0:n.defaultAppearance)==null?void 0:xe.styleOverrides)!=null?Ne:{})};function K(J){return!!(J&&J.length>10&&J.substring(0,10)==="api_public")}(0,re.useEffect)(()=>{t&&l(t)},[t]),(0,re.useEffect)(()=>{r&&window&&window.localStorage&&window.localStorage.getItem(Lo)&&window.localStorage.getItem(Lo)!==r&&Kp()},[r]),(0,re.useEffect)(()=>{o&&d(o)},[o]),(0,re.useEffect)(()=>{if(K(e))I(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),I(!0);return}},[e,I]);let fe={publicApiKey:e,userId:r,setUserId:l,setFlows:m,flows:s,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:S,setFlowResponses:F,userProperties:b,setUserProperties:h,openFlowStates:B,setOpenFlowStates:v,completedFlowsToKeepOpenDuringSession:k,setCompletedFlowsToKeepOpenDuringSession:O,customVariables:N,setCustomVariables:C,isNewGuestUser:E,setIsNewGuestUser:x,hasActiveFullPageFlow:w,setHasActiveFullPageFlow:L,organizationId:p,setOrganizationId:d,navigate:n&&n.navigate?n.navigate:G,defaultAppearance:U,shouldGracefullyDegrade:$,setShouldGracefullyDegrade:I,apiUrl:n&&n.apiUrl?n.apiUrl:Un,readonly:n&&n.readonly?n.readonly:!1,debug:n&&n.debug?n.debug:!1};if($)return re.default.createElement(R.Provider,{value:fe},i);let{overrides:he}=En(U);return re.default.createElement(Dn.ErrorBoundary,{fallback:re.default.createElement(re.default.Fragment,null,i)},re.default.createElement(R.Provider,{value:fe},re.default.createElement(Mn.ThemeProvider,{theme:ke(U.theme,gr,he!=null?he:{},(q=n==null?void 0:n.theme)!=null?q:{})},i,re.default.createElement(vn,null))))};var ul=f(require("react"));var ae=f(require("react"));var Xe=f(require("react")),Lt=f(require("styled-components"));var Do=f(require("react"));var It=f(require("react")),Hr=f(require("styled-components"));var zn=Hr.default.span`
682
682
  font-weight: 600;
683
683
  font-size: 14px;