@frigade/react 1.38.27 → 1.38.28

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/dist/index.js CHANGED
@@ -39,7 +39,7 @@ var Ca__default = /*#__PURE__*/_interopDefault(Ca);
39
39
  var wo__default = /*#__PURE__*/_interopDefault(wo);
40
40
  var mp__default = /*#__PURE__*/_interopDefault(mp);
41
41
 
42
- var la=Object.defineProperty,aa=Object.defineProperties;var pa=Object.getOwnPropertyDescriptors;var Ho=Object.getOwnPropertySymbols;var ui=Object.prototype.hasOwnProperty,fi=Object.prototype.propertyIsEnumerable;var mi=(e,t,o)=>t in e?la(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))ui.call(t,o)&&mi(e,o,t[o]);if(Ho)for(var o of Ho(t))fi.call(t,o)&&mi(e,o,t[o]);return e},j=(e,t)=>aa(e,pa(t));var gi=e=>typeof e=="symbol"?e:e+"",$e=(e,t)=>{var o={};for(var i in e)ui.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Ho)for(var i of Ho(e))t.indexOf(i)<0&&fi.call(e,i)&&(o[i]=e[i]);return o};var L=(e,t,o)=>new Promise((i,n)=>{var r=d=>{try{p(o.next(d));}catch(s){n(s);}},l=d=>{try{p(o.throw(d));}catch(s){n(s);}},p=d=>d.done?i(d.value):Promise.resolve(d.value).then(r,l);p((o=o.apply(e,t)).next());});var hi="1.38.27";var st="NOT_STARTED_STEP",de="COMPLETED_FLOW",Nt="SKIPPED_FLOW",Ot="STARTED_FLOW",Ue="NOT_STARTED_FLOW",_e="COMPLETED_STEP",So="STARTED_STEP";function Re(){let{publicApiKey:e,userId:t,apiUrl:o}=q__namespace.default.useContext(ie);return {config:q.useMemo(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":hi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:q.useMemo(()=>`${o}/v1/public/`,[o])}}var da="frigade-last-call-at-",ca="frigade-last-call-data-";function Kt(){let{shouldGracefullyDegrade:e,readonly:t}=q__namespace.default.useContext(ie);return (o,i)=>L(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Gt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Gt();let n=da+o,r=ca+o;if(typeof window!="undefined"&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(n),d=window.localStorage.getItem(r);if(p&&d&&d==i.body){let s=new Date(p);if(new Date().getTime()-s.getTime()<1e3)return Gt()}typeof window!="undefined"&&(window.localStorage.setItem(n,new Date().toISOString()),window.localStorage.setItem(r,i.body));}let l;try{l=yield fetch(o,i);}catch(p){return Gt(p)}return l?l.ok?l:Gt(l.statusText):Gt()})}function Gt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function qt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=q__namespace.default.useContext(ie);function o(){return t?!1:e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return {verifySDKInitiated:o}}function ma(e){return new Promise(t=>setTimeout(t,e))}function bo(e,t,o,i={}){function n(r){let l=o-1;if(!l)throw r;return ma(t).then(()=>bo(e,t,l,i))}return fetch(e,i).catch(n)}function Ie(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=q.useContext(ie);function r(c,g=!1){var S;return (S=e[c])!=null?S:g}function l(c,g){t(S=>j(w({},S),{[c]:g}));}function p(c){t(g=>{let h=g,k=$e(h,[gi(c)]);return w({},k)});}function d(c){n.includes(c)||i(g=>[...g,c]);}function s(c){return n.includes(c)}function u(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return {getOpenFlowState:r,setOpenFlowState:l,resetOpenFlowState:p,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:s}}function Tr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ue(...e){let t=e.shift(),o=e.length===1?e[0]:ue(...e);if(!Tr(t)||!Tr(o))throw new Error("deepmerge can only merge Objects");let i=wo__default.default(t);return Object.entries(o).forEach(([n,r])=>{Tr(r)?i[n]!==void 0?Object.assign(i,{[n]:ue(i[n],wo__default.default(r))}):Object.assign(i,{[n]:wo__default.default(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...wo__default.default(r)]}):Object.assign(i,{[n]:wo__default.default(r)}):Object.assign(i,{[n]:r});}),i}function Yt(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var ya="unknown";function ze(){let{config:e,apiUrl:t}=Re(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:l,readonly:p}=q.useContext(ie),{resetOpenFlowState:d}=Ie(),[s,u]=q.useState(!1),c={data:r.map(F=>({flowId:F.id,flowState:de,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=F=>bo(F,100,2,e).then(I=>{if(I.ok)return I.json();throw new Error("Failed to fetch user flow states")}).catch(I=>(console.error(`Error fetching ${F}: ${I}. Will gracefully degrade and hide Frigade`),l(!0),c)),S=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:k,isLoading:h,mutate:x,error:T}=p?Ca__default.default(S,g):xa__default.default(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),b=k==null?void 0:k.data;q.useEffect(()=>{!s&&!h&&b&&u(!0);},[b,s,h]);function v(F){return L(this,null,function*(){if(b&&!p){let I=b.find(N=>N.flowId===F);I&&I.flowState!==de&&(I.flowState=de),yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1});}})}function $(F){return L(this,null,function*(){if(b&&!p){let I=b.find(N=>N.flowId===F);I&&I.flowState!==Nt&&(I.flowState=Nt),yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1});}})}function E(F,I,N){return L(this,null,function*(){var D,W,J;if(b){let _=b.find(Y=>Y.flowId===F);if(_){let Y=r.find(R=>R.slug===F),G=Yt(Y==null?void 0:Y.data),O=(W=(D=G==null?void 0:G.steps)!=null?D:G==null?void 0:G.data)!=null?W:[],te=O.findIndex(R=>R.id===I),K=O&&O.length>te+1?O[te+1]:null;K&&((J=_.stepStates[K.id])!=null&&J.hidden||(_.lastStepId=K.id)),_.stepStates[I]=N,_.flowState=Ot;}p||(yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1}));}})}function f(F,I,N){return L(this,null,function*(){if(b){let D=b.find(W=>W.flowId===F);D&&(D.lastStepId=I,D.stepStates[I]=N,D.flowState=Ot),p||(yield x(ue(k,{data:b}),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1}));}})}function A(F){return L(this,null,function*(){if(b){let I=b.find(N=>N.flowId===F);I&&I.flowState!==Ue&&(I.flowState=Ue,I.lastStepId=ya,Object.keys(I.stepStates).forEach(N=>{I.stepStates[N].actionType=st,I.stepStates[N].createdAt=new Date().toISOString();}),yield x(ue(k,{data:b}),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1}),d(F));}})}function y(F,I,N){return L(this,null,function*(){if(b){let D=b.find(W=>W.flowId===F);D&&(D.stepStates[I]=N),yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1});}})}return {userFlowStatesData:b,isLoadingUserFlowStateData:!s,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowSkipped:$,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:E,optimisticallyMarkStepNotStarted:y,optimisticallyMarkStepStarted:f,error:T}}function To(){let{config:e,apiUrl:t}=Re(),{userFlowStatesData:o,mutateUserFlowState:i}=ze(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:l,setFlowResponses:p}=q.useContext(ie),[d,s]=q.useState(new Set),[u,c]=q.useState(new Set),g=Kt();function S(x){let T=JSON.stringify(x);if(d.has(T))return null;d.add(T),s(d),u.add(x),c(u);let b=l==null?void 0:l.find(v=>v.flowSlug===x.flowSlug&&v.stepId===x.stepId&&v.actionType===x.actionType&&v.createdAt===x.createdAt);return g(`${t}flowResponses`,j(w({},e),{method:"POST",body:T})).then(v=>{v.status!==200&&v.status!==201?(console.log("Failed to send flow response for step "+x.stepId+". Will retry again later."),r([...n,x])):b||p($=>[...$!=null?$:[],x]);})}function k(x){return L(this,null,function*(){x.foreignUserId&&(x.actionType===Ot||x.actionType===Ue?yield S(x):x.actionType===de?yield S(x):x.actionType===So?yield S(x):x.actionType===_e?yield S(x):x.actionType===Nt?yield S(x):x.actionType===st&&(yield S(x)));})}function h(){let x=[];return o==null||o.forEach(T=>{if(T&&T.stepStates&&Object.keys(T.stepStates).length!==0)for(let b in T.stepStates){let v=T.stepStates[b];x.push({foreignUserId:T.foreignUserId,flowSlug:T.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden});}}),[...x,...l]}return {addResponse:k,setFlowResponses:p,getFlowResponses:h}}var ba=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,yi=e=>{let t=ba.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=wa(i,"'","");r.startsWith("flow_")&&(o=r);}),o},wa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};var Fr=(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))(Fr||{});function se(){let{config:e,apiUrl:t}=Re(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:l,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:u,setFlowResponses:c,setShouldGracefullyDegrade:g,shouldGracefullyDegrade:S,readonly:k,flowDataOverrides:h}=q.useContext(ie),x={data:[]},{verifySDKInitiated:T}=qt(),{addResponse:b,getFlowResponses:v}=To(),$=m=>bo(m,100,2,e).then(C=>C.ok?C.json():(console.log(`Error fetching ${m} (${C.status}): ${C.statusText}. Will gracefully degrade and hide Frigade`),g(!0),x)).catch(C=>(console.log(`Error fetching ${m}: ${C}. Will gracefully degrade and hide Frigade`),g(!0),x)),{mutateUserFlowState:E,userFlowStatesData:f,isLoadingUserFlowStateData:A,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowSkipped:F,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:D,optimisticallyMarkStepStarted:W}=ze(),{data:J,error:_,isLoading:Y}=xa__default.default(l?`${t}flows${k?"?readonly=true":""}`:null,$,{keepPreviousData:!0});q.useEffect(()=>{if(_){console.error(_);return}J&&J.data&&i(J.data);},[J,_]);function G(m){if(Y)return null;let C=o.find(P=>P.slug===m);return !C&&o.length>0&&!A&&!Y?(console.log(`Flow with id ${m} not found`),null):(C&&h&&h[m]&&(C.data=h[m]),(C==null?void 0:C.active)===!1&&!k?null:C)}function O(m){var z,Be,Et,At,It;if(!G(m))return [];let C=(z=G(m))==null?void 0:z.data;return C?(C=te(C),((It=(At=(Be=Yt(C))==null?void 0:Be.data)!=null?At:(Et=Yt(C))==null?void 0:Et.steps)!=null?It:[]).map(ge=>{let Co=Ke(ge);return j(w({handleSecondaryButtonClick:()=>{ge.skippable===!0&&U(m,ge.id,{skipped:!0});}},ge),{complete:V(m,ge.id)===_e||Co>=1,started:V(m,ge.id)===So||V(m,ge.id)===_e,currentlyActive:f==null?void 0:f.some(yo=>yo.flowId==m&&yo.lastStepId===ge.id),blocked:X(m,ge.id),hidden:oe(m,ge.id),handlePrimaryButtonClick:()=>{(!ge.completionCriteria&&(ge.autoMarkCompleted||ge.autoMarkCompleted===void 0)||ge.completionCriteria&&ge.autoMarkCompleted===!0)&&U(m,ge.id);},progress:Co})}).filter(ge=>ge.hidden!==!0)):[]}function te(m){return m.replaceAll(/\${(.*?)}/g,(C,P)=>p[P]===void 0?"":String(p[P]).replace(/[\u00A0-\u9999<>\&]/g,function(z){return "&#"+z.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 K(m){var P;if(!G(m))return [];let C=G(m).data;return C?(C=te(C),(P=JSON.parse(C))!=null?P:{}):[]}function R(m,C){d(P=>j(w({},P),{[m]:C}));}function Se(m){!A&&!Y&&m&&JSON.stringify(p)!=JSON.stringify(w(w({},p),m))&&Object.keys(m).forEach(C=>{R(C,m[C]);});}let ke=q.useCallback((m,C,P)=>L(this,null,function*(){if(!T())return;let z={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:So,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};pe(z)&&(yield W(m,C,z),b(z));}),[n,r,f]),ee=q.useCallback((m,C,P)=>L(this,null,function*(){if(!T())return;let z={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:st,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};pe(z)&&(yield D(m,C,z),b(z));}),[n,r,f]),U=q.useCallback((m,C,P)=>L(this,null,function*(){if(!T())return;let z={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:_e,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};pe(z)&&(yield N(m,C,z),b(z));}),[n,r,f]),ne=q.useCallback((m,C)=>L(this,null,function*(){if(!T()||xt(m)===Ue)return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ue,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};yield I(m),pe(P)&&b(P);}),[n,r,f]),Pe=q.useCallback((m,C)=>L(this,null,function*(){if(!T())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ot,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};pe(P)&&b(P);}),[n,r,f]),Ge=q.useCallback((m,C)=>L(this,null,function*(){if(!T())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:de,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};pe(P)&&(yield y(m),b(P));}),[n,r,f]),ve=q.useCallback((m,C)=>L(this,null,function*(){if(!T())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Nt,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};pe(P)&&(yield F(m),b(P));}),[n,r,f]);function pe(m){var C;if(f===void 0)return !1;if(f){let P=f.find(z=>z.flowId===m.flowSlug);if(m.actionType===st&&(!(P!=null&&P.stepStates[m.stepId])||P.stepStates[m.stepId].actionType===st))return !1;if(P&&((C=P.stepStates[m.stepId])==null?void 0:C.actionType)===m.actionType){if(m.actionType===_e&&(!m.data||JSON.stringify(m.data)===JSON.stringify({})))return !1;let z=Object.keys(P.stepStates).sort((Be,Et)=>{let At=new Date(P.stepStates[Be].createdAt),It=new Date(P.stepStates[Et].createdAt);return At.getTime()-It.getTime()});if(P.stepStates[z[z.length-1]].actionType===m.actionType&&m.stepId===z[z.length-1])return !1}if(P&&P.flowState===de&&m.actionType===de)return !1}return !0}function V(m,C){let P=M(m,C);return A?null:P?P.actionType:st}function X(m,C){let P=M(m,C);return P?P.blocked:!1}function oe(m,C){let P=M(m,C);return P?P.hidden:!1}function M(m,C){var z;if(A)return null;let P=f==null?void 0:f.find(Be=>Be.flowId===m);return !P||!P.stepStates[C]?null:(z=P.stepStates[C])!=null?z:null}function Z(m){var P,z;if(A||!f)return null;if(xt(m)===Ue)return (P=O(m)[0])!=null?P:null;let C=(z=f.find(Be=>Be.flowId===m))==null?void 0:z.lastStepId;return C?O(m).find(Be=>Be.id===C):null}function we(m){var z;let C=Z(m);if(!C)return 0;let P=(z=O(m).findIndex(Be=>Be.id===C.id))!=null?z:0;return V(m,C.id)===_e&&P<O(m).length-1?P+1:P}function Ke(m){if(!m.completionCriteria)return;let C=yi(m.completionCriteria);if(C===null)return;let P=Je(C),z=nt(C);return z===0?void 0:P/z}function xt(m){let C=f==null?void 0:f.find(P=>P.flowId===m);return C?C.flowState:null}function Je(m){let C=O(m);return C.length===0?0:C.filter(z=>V(m,z.id)===_e).length}function nt(m){return O(m).length}function Ze(m){let C=o.find(P=>P.slug===m);return C?(h&&h[m]&&(C.data=h[m]),Yt(C.data)):null}function vt(m){if(k)return !1;if(A||S)return !0;if(m!=null&&m.targetingLogic&&f){let C=f.find(P=>P.flowId===m.slug);if(C)return C.shouldTrigger===!1}return !!(m!=null&&m.targetingLogic&&n&&n.startsWith("guest_"))}function Vt(m){let C=G(m);return (C==null?void 0:C.active)===!1?!1:!vt(G(m))}function jt(){n&&E();}function Bt(){return o}return {getAllFlows:Bt,getFlow:G,getFlowData:Ze,isLoading:A||Y,getStepStatus:V,getFlowSteps:O,getCurrentStepIndex:we,markStepStarted:ke,markStepCompleted:U,markFlowNotStarted:ne,markFlowStarted:Pe,markFlowCompleted:Ge,markFlowSkipped:ve,markStepNotStarted:ee,getFlowStatus:xt,getNumberOfStepsCompleted:Je,getNumberOfSteps:nt,targetingLogicShouldHideFlow:vt,setCustomVariable:R,updateCustomVariables:Se,customVariables:p,getStepOptionalProgress:Ke,getFlowMetadata:K,isStepBlocked:X,isStepHidden:oe,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:u,isFlowAvailableToUser:Vt,refresh:jt,isDegraded:S}}var Jt="guest_";function Fo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=q.useContext(ie),{config:r,apiUrl:l}=Re(),{mutateUserFlowState:p}=ze(),d=Kt(),{verifySDKInitiated:s}=qt();function u(h){return `frigade-user-registered-${h}`}q.useEffect(()=>{if(e&&!t){if(e.startsWith(Jt))return;let h=u(e);localStorage.getItem(h)||(d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(h,"true"));}},[e,n,t]);let c=q.useCallback(h=>L(this,null,function*(){if(!s())return;let x={foreignId:e,properties:h};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(x)})),i(T=>w(w({},T),h)),p();}),[e,r,n,p]),g=q.useCallback((h,x)=>L(this,null,function*(){if(!s())return;let b={foreignId:e,events:[{event:h,properties:x}]};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(b)})),p();}),[e,r,p]),S=q.useCallback((h,x)=>L(this,null,function*(){if(s())if(x&&Object.keys(x).length>0){let T=u(h);localStorage.setItem(T,"true"),o(h);let b={foreignId:h,properties:x};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(b)})),i(v=>w(w({},v),x)),p();}else o(h);}),[r,n,p]),k=q.useCallback(h=>L(this,null,function*(){if(!s())return;let x=typeof window!="undefined"?localStorage.getItem(Xt):null;if(!x)return;let T={foreignId:h,linkGuestId:x};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(T)})),p();}),[r,n,p]);return {userId:e,setUserId:o,setUserIdWithProperties:S,addPropertiesToUser:c,trackEventForUser:g,linkExistingGuestSessionToUser:k}}var Si="fr-",ko="cfr-";function a(e,t){let o=`${Si}${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 B(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(Si)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function jo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ee(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${jo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Te(...e){return e.filter(Boolean).join(" ")}function Po(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Aa=xe__default.default.div`
42
+ var la=Object.defineProperty,aa=Object.defineProperties;var pa=Object.getOwnPropertyDescriptors;var Ho=Object.getOwnPropertySymbols;var ui=Object.prototype.hasOwnProperty,fi=Object.prototype.propertyIsEnumerable;var mi=(e,t,o)=>t in e?la(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))ui.call(t,o)&&mi(e,o,t[o]);if(Ho)for(var o of Ho(t))fi.call(t,o)&&mi(e,o,t[o]);return e},j=(e,t)=>aa(e,pa(t));var gi=e=>typeof e=="symbol"?e:e+"",$e=(e,t)=>{var o={};for(var i in e)ui.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Ho)for(var i of Ho(e))t.indexOf(i)<0&&fi.call(e,i)&&(o[i]=e[i]);return o};var L=(e,t,o)=>new Promise((i,n)=>{var r=d=>{try{p(o.next(d));}catch(s){n(s);}},l=d=>{try{p(o.throw(d));}catch(s){n(s);}},p=d=>d.done?i(d.value):Promise.resolve(d.value).then(r,l);p((o=o.apply(e,t)).next());});var hi="1.38.28";var st="NOT_STARTED_STEP",de="COMPLETED_FLOW",Nt="SKIPPED_FLOW",Ot="STARTED_FLOW",Ue="NOT_STARTED_FLOW",_e="COMPLETED_STEP",So="STARTED_STEP";function Re(){let{publicApiKey:e,userId:t,apiUrl:o}=q__namespace.default.useContext(ie);return {config:q.useMemo(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":hi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:q.useMemo(()=>`${o}/v1/public/`,[o])}}var da="frigade-last-call-at-",ca="frigade-last-call-data-";function Kt(){let{shouldGracefullyDegrade:e,readonly:t}=q__namespace.default.useContext(ie);return (o,i)=>L(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Gt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Gt();let n=da+o,r=ca+o;if(typeof window!="undefined"&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(n),d=window.localStorage.getItem(r);if(p&&d&&d==i.body){let s=new Date(p);if(new Date().getTime()-s.getTime()<1e3)return Gt()}typeof window!="undefined"&&(window.localStorage.setItem(n,new Date().toISOString()),window.localStorage.setItem(r,i.body));}let l;try{l=yield fetch(o,i);}catch(p){return Gt(p)}return l?l.ok?l:Gt(l.statusText):Gt()})}function Gt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function qt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=q__namespace.default.useContext(ie);function o(){return t?!1:e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return {verifySDKInitiated:o}}function ma(e){return new Promise(t=>setTimeout(t,e))}function bo(e,t,o,i={}){function n(r){let l=o-1;if(!l)throw r;return ma(t).then(()=>bo(e,t,l,i))}return fetch(e,i).catch(n)}function Ie(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=q.useContext(ie);function r(c,g=!1){var S;return (S=e[c])!=null?S:g}function l(c,g){t(S=>j(w({},S),{[c]:g}));}function p(c){t(g=>{let h=g,k=$e(h,[gi(c)]);return w({},k)});}function d(c){n.includes(c)||i(g=>[...g,c]);}function s(c){return n.includes(c)}function u(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return {getOpenFlowState:r,setOpenFlowState:l,resetOpenFlowState:p,hasOpenModals:u,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:s}}function Tr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ue(...e){let t=e.shift(),o=e.length===1?e[0]:ue(...e);if(!Tr(t)||!Tr(o))throw new Error("deepmerge can only merge Objects");let i=wo__default.default(t);return Object.entries(o).forEach(([n,r])=>{Tr(r)?i[n]!==void 0?Object.assign(i,{[n]:ue(i[n],wo__default.default(r))}):Object.assign(i,{[n]:wo__default.default(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...wo__default.default(r)]}):Object.assign(i,{[n]:wo__default.default(r)}):Object.assign(i,{[n]:r});}),i}function Yt(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var ya="unknown";function ze(){let{config:e,apiUrl:t}=Re(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:l,readonly:p}=q.useContext(ie),{resetOpenFlowState:d}=Ie(),[s,u]=q.useState(!1),c={data:r.map(F=>({flowId:F.id,flowState:de,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=F=>bo(F,100,2,e).then(I=>{if(I.ok)return I.json();throw new Error("Failed to fetch user flow states")}).catch(I=>(console.error(`Error fetching ${F}: ${I}. Will gracefully degrade and hide Frigade`),l(!0),c)),S=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:k,isLoading:h,mutate:x,error:T}=p?Ca__default.default(S,g):xa__default.default(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),b=k==null?void 0:k.data;q.useEffect(()=>{!s&&!h&&b&&u(!0);},[b,s,h]);function v(F){return L(this,null,function*(){if(b&&!p){let I=b.find(N=>N.flowId===F);I&&I.flowState!==de&&(I.flowState=de),yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1});}})}function $(F){return L(this,null,function*(){if(b&&!p){let I=b.find(N=>N.flowId===F);I&&I.flowState!==Nt&&(I.flowState=Nt),yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1});}})}function E(F,I,N){return L(this,null,function*(){var D,W,J;if(b){let _=b.find(Y=>Y.flowId===F);if(_){let Y=r.find(R=>R.slug===F),G=Yt(Y==null?void 0:Y.data),O=(W=(D=G==null?void 0:G.steps)!=null?D:G==null?void 0:G.data)!=null?W:[],te=O.findIndex(R=>R.id===I),K=O&&O.length>te+1?O[te+1]:null;K&&((J=_.stepStates[K.id])!=null&&J.hidden||(_.lastStepId=K.id)),_.stepStates[I]=N,_.flowState=Ot;}p||(yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1}));}})}function f(F,I,N){return L(this,null,function*(){if(b){let D=b.find(W=>W.flowId===F);D&&(D.lastStepId=I,D.stepStates[I]=N,D.flowState=Ot),p||(yield x(ue(k,{data:b}),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1}));}})}function A(F){return L(this,null,function*(){if(b){let I=b.find(N=>N.flowId===F);I&&I.flowState!==Ue&&(I.flowState=Ue,I.lastStepId=ya,Object.keys(I.stepStates).forEach(N=>{I.stepStates[N].actionType=st,I.stepStates[N].createdAt=new Date().toISOString();}),yield x(ue(k,{data:b}),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1}),d(F));}})}function y(F,I,N){return L(this,null,function*(){if(b){let D=b.find(W=>W.flowId===F);D&&(D.stepStates[I]=N),yield x(Promise.resolve(ue(k,{data:b})),{optimisticData:ue(k,{data:b}),revalidate:!1,rollbackOnError:!1});}})}return {userFlowStatesData:b,isLoadingUserFlowStateData:!s,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowSkipped:$,optimisticallyMarkFlowNotStarted:A,optimisticallyMarkStepCompleted:E,optimisticallyMarkStepNotStarted:y,optimisticallyMarkStepStarted:f,error:T}}function To(){let{config:e,apiUrl:t}=Re(),{userFlowStatesData:o,mutateUserFlowState:i}=ze(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:l,setFlowResponses:p}=q.useContext(ie),[d,s]=q.useState(new Set),[u,c]=q.useState(new Set),g=Kt();function S(x){let T=JSON.stringify(x);if(d.has(T))return null;d.add(T),s(d),u.add(x),c(u);let b=l==null?void 0:l.find(v=>v.flowSlug===x.flowSlug&&v.stepId===x.stepId&&v.actionType===x.actionType&&v.createdAt===x.createdAt);return g(`${t}flowResponses`,j(w({},e),{method:"POST",body:T})).then(v=>{v.status!==200&&v.status!==201?(console.log("Failed to send flow response for step "+x.stepId+". Will retry again later."),r([...n,x])):b||p($=>[...$!=null?$:[],x]);})}function k(x){return L(this,null,function*(){x.foreignUserId&&(x.actionType===Ot||x.actionType===Ue?yield S(x):x.actionType===de?yield S(x):x.actionType===So?yield S(x):x.actionType===_e?yield S(x):x.actionType===Nt?yield S(x):x.actionType===st&&(yield S(x)));})}function h(){let x=[];return o==null||o.forEach(T=>{if(T&&T.stepStates&&Object.keys(T.stepStates).length!==0)for(let b in T.stepStates){let v=T.stepStates[b];x.push({foreignUserId:T.foreignUserId,flowSlug:T.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden});}}),[...x,...l]}return {addResponse:k,setFlowResponses:p,getFlowResponses:h}}var ba=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,yi=e=>{let t=ba.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=wa(i,"'","");r.startsWith("flow_")&&(o=r);}),o},wa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};var Fr=(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))(Fr||{});function se(){let{config:e,apiUrl:t}=Re(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:l,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:u,setFlowResponses:c,setShouldGracefullyDegrade:g,shouldGracefullyDegrade:S,readonly:k,flowDataOverrides:h}=q.useContext(ie),x={data:[]},{verifySDKInitiated:T}=qt(),{addResponse:b,getFlowResponses:v}=To(),$=m=>bo(m,100,2,e).then(C=>C.ok?C.json():(console.log(`Error fetching ${m} (${C.status}): ${C.statusText}. Will gracefully degrade and hide Frigade`),g(!0),x)).catch(C=>(console.log(`Error fetching ${m}: ${C}. Will gracefully degrade and hide Frigade`),g(!0),x)),{mutateUserFlowState:E,userFlowStatesData:f,isLoadingUserFlowStateData:A,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowSkipped:F,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:D,optimisticallyMarkStepStarted:W}=ze(),{data:J,error:_,isLoading:Y}=xa__default.default(l?`${t}flows${k?"?readonly=true":""}`:null,$,{keepPreviousData:!0});q.useEffect(()=>{if(_){console.error(_);return}J&&J.data&&i(J.data);},[J,_]);function G(m){if(Y)return null;let C=o.find(P=>P.slug===m);return !C&&o.length>0&&!A&&!Y?(console.log(`Flow with id ${m} not found`),null):(C&&h&&h[m]&&(C.data=h[m]),(C==null?void 0:C.active)===!1&&!k?null:C)}function O(m){var z,Be,Et,At,It;if(!G(m))return [];let C=(z=G(m))==null?void 0:z.data;return C?(C=te(C),((It=(At=(Be=Yt(C))==null?void 0:Be.data)!=null?At:(Et=Yt(C))==null?void 0:Et.steps)!=null?It:[]).map(ge=>{let Co=Ke(ge);return j(w({handleSecondaryButtonClick:()=>{ge.skippable===!0&&U(m,ge.id,{skipped:!0});}},ge),{complete:V(m,ge.id)===_e||Co>=1,started:V(m,ge.id)===So||V(m,ge.id)===_e,currentlyActive:f==null?void 0:f.some(yo=>yo.flowId==m&&yo.lastStepId===ge.id),blocked:X(m,ge.id),hidden:oe(m,ge.id),handlePrimaryButtonClick:()=>{(!ge.completionCriteria&&(ge.autoMarkCompleted||ge.autoMarkCompleted===void 0)||ge.completionCriteria&&ge.autoMarkCompleted===!0)&&U(m,ge.id);},progress:Co})}).filter(ge=>ge.hidden!==!0)):[]}function te(m){return m.replaceAll(/\${(.*?)}/g,(C,P)=>p[P]===void 0?"":String(p[P]).replace(/[\u00A0-\u9999<>\&]/g,function(z){return "&#"+z.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 K(m){var P;if(!G(m))return [];let C=G(m).data;return C?(C=te(C),(P=JSON.parse(C))!=null?P:{}):[]}function R(m,C){d(P=>j(w({},P),{[m]:C}));}function Se(m){!A&&!Y&&m&&JSON.stringify(p)!=JSON.stringify(w(w({},p),m))&&Object.keys(m).forEach(C=>{R(C,m[C]);});}let ke=q.useCallback((m,C,P)=>L(this,null,function*(){if(!T())return;let z={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:So,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};pe(z)&&(yield W(m,C,z),b(z));}),[n,r,f]),ee=q.useCallback((m,C,P)=>L(this,null,function*(){if(!T())return;let z={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:st,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};pe(z)&&(yield D(m,C,z),b(z));}),[n,r,f]),U=q.useCallback((m,C,P)=>L(this,null,function*(){if(!T())return;let z={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:C,actionType:_e,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};pe(z)&&(yield N(m,C,z),b(z));}),[n,r,f]),ne=q.useCallback((m,C)=>L(this,null,function*(){if(!T()||xt(m)===Ue)return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ue,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};yield I(m),pe(P)&&b(P);}),[n,r,f]),Pe=q.useCallback((m,C)=>L(this,null,function*(){if(!T())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Ot,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};pe(P)&&b(P);}),[n,r,f]),Ge=q.useCallback((m,C)=>L(this,null,function*(){if(!T())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:de,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};pe(P)&&(yield y(m),b(P));}),[n,r,f]),ve=q.useCallback((m,C)=>L(this,null,function*(){if(!T())return;let P={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:m,stepId:"unknown",actionType:Nt,data:C!=null?C:{},createdAt:new Date,blocked:!1,hidden:!1};pe(P)&&(yield F(m),b(P));}),[n,r,f]);function pe(m){var C;if(f===void 0)return !1;if(f){let P=f.find(z=>z.flowId===m.flowSlug);if(m.actionType===st&&(!(P!=null&&P.stepStates[m.stepId])||P.stepStates[m.stepId].actionType===st))return !1;if(P&&((C=P.stepStates[m.stepId])==null?void 0:C.actionType)===m.actionType){if(m.actionType===_e&&(!m.data||JSON.stringify(m.data)===JSON.stringify({})))return !1;let z=Object.keys(P.stepStates).sort((Be,Et)=>{let At=new Date(P.stepStates[Be].createdAt),It=new Date(P.stepStates[Et].createdAt);return At.getTime()-It.getTime()});if(P.stepStates[z[z.length-1]].actionType===m.actionType&&m.stepId===z[z.length-1])return !1}if(P&&P.flowState===de&&m.actionType===de)return !1}return !0}function V(m,C){let P=M(m,C);return A?null:P?P.actionType:st}function X(m,C){let P=M(m,C);return P?P.blocked:!1}function oe(m,C){let P=M(m,C);return P?P.hidden:!1}function M(m,C){var z;if(A)return null;let P=f==null?void 0:f.find(Be=>Be.flowId===m);return !P||!P.stepStates[C]?null:(z=P.stepStates[C])!=null?z:null}function Z(m){var P,z;if(A||!f)return null;if(xt(m)===Ue)return (P=O(m)[0])!=null?P:null;let C=(z=f.find(Be=>Be.flowId===m))==null?void 0:z.lastStepId;return C?O(m).find(Be=>Be.id===C):null}function we(m){var z;let C=Z(m);if(!C)return 0;let P=(z=O(m).findIndex(Be=>Be.id===C.id))!=null?z:0;return V(m,C.id)===_e&&P<O(m).length-1?P+1:P}function Ke(m){if(!m.completionCriteria)return;let C=yi(m.completionCriteria);if(C===null)return;let P=Je(C),z=nt(C);return z===0?void 0:P/z}function xt(m){let C=f==null?void 0:f.find(P=>P.flowId===m);return C?C.flowState:null}function Je(m){let C=O(m);return C.length===0?0:C.filter(z=>V(m,z.id)===_e).length}function nt(m){return O(m).length}function Ze(m){let C=o.find(P=>P.slug===m);return C?(h&&h[m]&&(C.data=h[m]),Yt(C.data)):null}function vt(m){if(k)return !1;if(A||S)return !0;if(m!=null&&m.targetingLogic&&f){let C=f.find(P=>P.flowId===m.slug);if(C)return C.shouldTrigger===!1}return !!(m!=null&&m.targetingLogic&&n&&n.startsWith("guest_"))}function Vt(m){let C=G(m);return (C==null?void 0:C.active)===!1?!1:!vt(G(m))}function jt(){n&&E();}function Bt(){return o}return {getAllFlows:Bt,getFlow:G,getFlowData:Ze,isLoading:A||Y,getStepStatus:V,getFlowSteps:O,getCurrentStepIndex:we,markStepStarted:ke,markStepCompleted:U,markFlowNotStarted:ne,markFlowStarted:Pe,markFlowCompleted:Ge,markFlowSkipped:ve,markStepNotStarted:ee,getFlowStatus:xt,getNumberOfStepsCompleted:Je,getNumberOfSteps:nt,targetingLogicShouldHideFlow:vt,setCustomVariable:R,updateCustomVariables:Se,customVariables:p,getStepOptionalProgress:Ke,getFlowMetadata:K,isStepBlocked:X,isStepHidden:oe,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:u,isFlowAvailableToUser:Vt,refresh:jt,isDegraded:S}}var Jt="guest_";function Fo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=q.useContext(ie),{config:r,apiUrl:l}=Re(),{mutateUserFlowState:p}=ze(),d=Kt(),{verifySDKInitiated:s}=qt();function u(h){return `frigade-user-registered-${h}`}q.useEffect(()=>{if(e&&!t){if(e.startsWith(Jt))return;let h=u(e);localStorage.getItem(h)||(d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(h,"true"));}},[e,n,t]);let c=q.useCallback(h=>L(this,null,function*(){if(!s())return;let x={foreignId:e,properties:h};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(x)})),i(T=>w(w({},T),h)),p();}),[e,r,n,p]),g=q.useCallback((h,x)=>L(this,null,function*(){if(!s())return;let b={foreignId:e,events:[{event:h,properties:x}]};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(b)})),p();}),[e,r,p]),S=q.useCallback((h,x)=>L(this,null,function*(){if(s())if(x&&Object.keys(x).length>0){let T=u(h);localStorage.setItem(T,"true"),o(h);let b={foreignId:h,properties:x};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(b)})),i(v=>w(w({},v),x)),p();}else o(h);}),[r,n,p]),k=q.useCallback(h=>L(this,null,function*(){if(!s())return;let x=typeof window!="undefined"?localStorage.getItem(Xt):null;if(!x)return;let T={foreignId:h,linkGuestId:x};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(T)})),p();}),[r,n,p]);return {userId:e,setUserId:o,setUserIdWithProperties:S,addPropertiesToUser:c,trackEventForUser:g,linkExistingGuestSessionToUser:k}}var Si="fr-",ko="cfr-";function a(e,t){let o=`${Si}${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 B(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(Si)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function jo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ee(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${jo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Te(...e){return e.filter(Boolean).join(" ")}function Po(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Aa=xe__default.default.div`
43
43
  display: flex;
44
44
  justify-content: center;
45
45
  position: fixed;
@@ -1846,7 +1846,7 @@ ${e=>e.inlineStyles.map(([t,o])=>`.${ko}${t}.${ko}${t} { ${Object.entries(o).map
1846
1846
  opacity: 0.8;
1847
1847
  }
1848
1848
  }
1849
- `;var em=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:l,type:p="modal"})=>{let {getFlow:d,markFlowCompleted:s,markFlowSkipped:u,markStepCompleted:c,getNumberOfStepsCompleted:g,isLoading:S,targetingLogicShouldHideFlow:k,updateCustomVariables:h,getFlowSteps:x,getFlowStatus:T,getFlowMetadata:b}=se();fe();let {mergeAppearanceWithDefault:$}=ce(),[E,f]=q__namespace.default.useState(null),[A,y]=q__namespace.default.useState(""),F=b(e),{hasOpenModals:I,setKeepCompletedFlowOpenDuringSession:N,shouldKeepCompletedFlowOpenDuringSession:D}=Ie();if(qe(e),n=$(n),q.useEffect(()=>{h(o);},[o,S]),S)return null;let W=d(e);if(!W||k(W)||T(e)===de||g(e)===1&&!D(e)||I())return null;let _=x(e)[g(e)];function Y(){var te,K;return q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(di,null,q__namespace.default.createElement(Oe,{size:"large",appearance:n,title:_.title,subtitle:_.subtitle})),q__namespace.default.createElement(ai,{className:a("npsNumberButtonContainer",n),appearance:n},Array.from(Array(10).keys()).map(R=>q__namespace.default.createElement(ea,{className:a("npsNumberButton",n),selected:E===R+1,key:R,onClick:()=>L(this,null,function*(){N(e),f(R+1),yield c(e,_.id,{score:R+1});}),appearance:n},R+1))),q__namespace.default.createElement(ta,{appearance:n},q__namespace.default.createElement(pi,{appearance:n},(te=F==null?void 0:F.negativeLabel)!=null?te:"Not likely at all"),q__namespace.default.createElement(pi,{appearance:n},(K=F==null?void 0:F.positiveLabel)!=null?K:"Extremely likely")))}function G(){var te;return q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(di,null,q__namespace.default.createElement(Oe,{appearance:n,title:(te=_.title)!=null?te:"Why did you choose this score?",size:"large"})),q__namespace.default.createElement(oa,{appearance:n,value:A,onChange:K=>{y(K.target.value);},placeholder:"Add your optional feedback here..."}),q__namespace.default.createElement(ai,{appearance:n,className:a("npsNumberButtonContainer",n)},q__namespace.default.createElement(le,{size:"large",withMargin:!1,onClick:()=>L(this,null,function*(){yield s(e),i&&i(_,1,"primary");}),appearance:n,title:_.secondaryButtonTitle||"Skip",secondary:!0}),q__namespace.default.createElement(le,{size:"large",withMargin:!1,onClick:()=>L(this,null,function*(){yield c(e,_.id,{feedbackText:A}),yield s(e),i&&i(_,1,"primary");}),appearance:n,title:_.primaryButtonTitle||"Submit"})))}function O(){return g(e)>=2?null:q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(ae,{appearance:n}),q__namespace.default.createElement(Rl,{appearance:n,className:Te(a("npsSurveyContainer",n),r),style:l,type:p},q__namespace.default.createElement(ra,{onClick:()=>L(this,null,function*(){yield u(e),t&&t();}),className:a("npsSurveyDismissButton",n)},q__namespace.default.createElement(Ne,null)),g(e)==0&&Y(),g(e)==1&&G()))}return p==="inline"?O():q__namespace.default.createElement(reactPortal.Portal,null,O())};var om=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:l,dismissible:p=!0,modalPosition:d="center",showPagination:s=!0,allowBackNavigation:u})=>{let{getFlow:c,markFlowCompleted:g,markFlowSkipped:S,markStepCompleted:k,markStepStarted:h,isLoading:x,targetingLogicShouldHideFlow:T,updateCustomVariables:b,getFlowSteps:v,getFlowStatus:$,getCurrentStepIndex:E}=se(),{primaryCTAClickSideEffects:f,secondaryCTAClickSideEffects:A}=fe(),{mergeAppearanceWithDefault:y}=ce(),{setOpenFlowState:F,getOpenFlowState:I,hasOpenModals:N}=Ie();qe(e);let[D,W]=[I(e,!0),Se=>F(e,Se)];if(n=y(n),q.useEffect(()=>{b(o);},[o,x]),x)return null;let J=c(e);if(!J||T(J)||$(e)===de||N())return null;let _=v(e),Y=E(e),G=_.length,O=_[Y],te=()=>L(void 0,null,function*(){W(!1),yield S(e),t&&t();});function K(){var Se;return q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(ae,{appearance:n}),q__namespace.default.createElement(zl,{appearance:n,className:Te(a("announcementContainer",n),r),style:l},(p===!0||O.dismissible)&&d=="inline"&&q__namespace.default.createElement(jl,{onClick:()=>L(this,null,function*(){yield S(e),t&&t();}),className:a("announcementDismissButton",n)},q__namespace.default.createElement(Ne,null)),q__namespace.default.createElement(Wl,{className:a("announcementTextContainer",n)},q__namespace.default.createElement(Gl,{appearance:n,className:a("announcementTitle",n),dangerouslySetInnerHTML:H(O.title)}),O.subtitle&&q__namespace.default.createElement(Kl,{appearance:n,className:a("announcementSubtitle",n),dangerouslySetInnerHTML:H(O.subtitle)})),(O.imageUri||O.videoUri)&&q__namespace.default.createElement(yr,{className:a("announcementMediaContainer",n)},q__namespace.default.createElement(Sr,{appearance:n,stepData:O})),s&&G>1&&q__namespace.default.createElement(Hl,{className:a("announcementPaginationContainer",n)},q__namespace.default.createElement(or,{className:a("announcementPagination",n),appearance:n,stepCount:G,currentStep:Y})),(O.primaryButtonTitle||O.secondaryButtonTitle)&&q__namespace.default.createElement(Vl,{allowBackNavigation:u,className:a("announcementCTAContainer",n)},u&&Y>0&&q__namespace.default.createElement(le,{classPrefix:"announcementBack",title:(Se=O.backButtonTitle)!=null?Se:"Back",appearance:n,withMargin:!1,size:"small",type:"full-width",onClick:()=>L(this,null,function*(){i&&i(O,E(e),"back"),yield h(e,_[Y-1].id);}),secondary:!0}),O.secondaryButtonTitle&&q__namespace.default.createElement(le,{classPrefix:"announcement",title:O.secondaryButtonTitle,appearance:n,withMargin:!1,size:"small",type:"full-width",onClick:()=>L(this,null,function*(){O.handleSecondaryButtonClick(),A(O),i&&i(O,E(e),"secondary");}),secondary:!0}),O.primaryButtonTitle&&q__namespace.default.createElement(le,{classPrefix:"announcement",title:O.primaryButtonTitle,appearance:n,withMargin:!1,size:"small",type:"full-width",onClick:()=>L(this,null,function*(){f(O),!(i&&i(O,E(e),"primary")===!1)&&(E(e)===G-1?(O.handlePrimaryButtonClick(),yield g(e)):O.handlePrimaryButtonClick());})}))))}let R={padding:"24px",maxWidth:"400px"};return d==="inline"?K():d!=="center"?q__namespace.default.createElement(Jo,{modalPosition:d,onClose:te,visible:D,dismissible:p,appearance:n},K()):q__namespace.default.createElement(et,{appearance:n,onClose:te,visible:D,style:R,dismissible:p},K())};var na=n=>{var r=n,{as:e="span",children:t,variant:o="Body1"}=r,i=$e(r,["as","children","variant"]);return q__namespace.default.createElement(In,w({color:"neutral.foreground",fontFamily:"default",forwardedAs:e,variant:o},i),t)},rm=Object.fromEntries(Object.keys(lr).map(e=>{let t=["H1","H2","H3","H4"].includes(e)?e.toLowerCase():void 0,o=i=>q__namespace.default.createElement(na,j(w({as:t},i),{variant:e}),i.children);return o.displayName=`Text.${e}`,[e,o]})),ci=Object.assign(na,rm);var sa=l=>{var p=l,{as:e="button",className:t,size:o="md",title:i,variant:n="Primary"}=p,r=$e(p,["as","className","size","title","variant"]);var d;return q__namespace.createElement(An,w({className:`fr-button-${n.toLowerCase()}${t?` ${t}`:""}`,forwardedAs:e,variant:n,size:o,borderRadius:"md"},r),q__namespace.createElement(ci,{color:(d=Oo[n])==null?void 0:d.color,fontWeight:"semibold"},i))},im=Object.fromEntries(Object.keys(Oo).map(e=>{let t=o=>q__namespace.createElement(sa,j(w({},o),{variant:e}));return t.displayName=`Button.${e}`,[e,t]})),nm=Object.assign(sa,im);String.prototype.replaceAll||(String.prototype.replaceAll=function(e,t){return Object.prototype.toString.call(e).toLowerCase()==="[object regexp]"?this.replace(e,t):this.replace(new RegExp(e,"g"),t)});
1849
+ `;var em=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:l,type:p="modal"})=>{let {getFlow:d,markFlowCompleted:s,markFlowSkipped:u,markStepCompleted:c,getNumberOfStepsCompleted:g,isLoading:S,targetingLogicShouldHideFlow:k,updateCustomVariables:h,getFlowSteps:x,getFlowStatus:T,getFlowMetadata:b}=se();fe();let {mergeAppearanceWithDefault:$}=ce(),[E,f]=q__namespace.default.useState(null),[A,y]=q__namespace.default.useState(""),F=b(e),{hasOpenModals:I,setKeepCompletedFlowOpenDuringSession:N,shouldKeepCompletedFlowOpenDuringSession:D}=Ie();if(qe(e),n=$(n),q.useEffect(()=>{h(o);},[o,S]),S)return null;let W=d(e);if(!W||k(W)||T(e)===de||g(e)===1&&!D(e)||I())return null;let _=x(e)[g(e)];function Y(){var te,K;return q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(di,null,q__namespace.default.createElement(Oe,{size:"large",appearance:n,title:_.title,subtitle:_.subtitle})),q__namespace.default.createElement(ai,{className:a("npsNumberButtonContainer",n),appearance:n},Array.from(Array(10).keys()).map(R=>q__namespace.default.createElement(ea,{className:a("npsNumberButton",n),selected:E===R+1,key:R,onClick:()=>L(this,null,function*(){N(e),f(R+1),yield c(e,_.id,{score:R+1});}),appearance:n},R+1))),q__namespace.default.createElement(ta,{appearance:n},q__namespace.default.createElement(pi,{appearance:n},(te=F==null?void 0:F.negativeLabel)!=null?te:"Not likely at all"),q__namespace.default.createElement(pi,{appearance:n},(K=F==null?void 0:F.positiveLabel)!=null?K:"Extremely likely")))}function G(){var te;return q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(di,null,q__namespace.default.createElement(Oe,{appearance:n,title:(te=_.title)!=null?te:"Why did you choose this score?",size:"large"})),q__namespace.default.createElement(oa,{appearance:n,value:A,onChange:K=>{y(K.target.value);},placeholder:"Add your optional feedback here..."}),q__namespace.default.createElement(ai,{appearance:n,className:a("npsNumberButtonContainer",n)},q__namespace.default.createElement(le,{size:"large",withMargin:!1,onClick:()=>L(this,null,function*(){yield s(e),i&&i(_,1,"primary");}),appearance:n,title:_.secondaryButtonTitle||"Skip",secondary:!0}),q__namespace.default.createElement(le,{size:"large",withMargin:!1,onClick:()=>L(this,null,function*(){yield c(e,_.id,{feedbackText:A}),yield s(e),i&&i(_,1,"primary");}),appearance:n,title:_.primaryButtonTitle||"Submit"})))}function O(){return g(e)>=2?null:q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(ae,{appearance:n}),q__namespace.default.createElement(Rl,{appearance:n,className:Te(a("npsSurveyContainer",n),r),style:l,type:p},q__namespace.default.createElement(ra,{onClick:()=>L(this,null,function*(){yield u(e),t&&t();}),className:a("npsSurveyDismissButton",n)},q__namespace.default.createElement(Ne,null)),g(e)==0&&Y(),g(e)==1&&G()))}return p==="inline"?O():q__namespace.default.createElement(reactPortal.Portal,null,O())};var om=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:l,dismissible:p=!0,modalPosition:d="center",showPagination:s=!0,allowBackNavigation:u})=>{let{getFlow:c,markFlowCompleted:g,markFlowSkipped:S,markStepCompleted:k,markStepStarted:h,isLoading:x,targetingLogicShouldHideFlow:T,updateCustomVariables:b,getFlowSteps:v,getFlowStatus:$,getCurrentStepIndex:E}=se(),{primaryCTAClickSideEffects:f,secondaryCTAClickSideEffects:A}=fe(),{mergeAppearanceWithDefault:y}=ce(),{setOpenFlowState:F,getOpenFlowState:I,hasOpenModals:N}=Ie();qe(e);let[D,W]=[I(e,!0),Se=>F(e,Se)];if(n=y(n),q.useEffect(()=>{b(o);},[o,x]),x)return null;let J=c(e);if(!J||T(J)||$(e)===de||N())return null;let _=v(e),Y=E(e),G=_.length,O=_[Y];if(!O)return null;let te=()=>L(void 0,null,function*(){W(!1),yield S(e),t&&t();});function K(){var Se;return q__namespace.default.createElement(q__namespace.default.Fragment,null,q__namespace.default.createElement(ae,{appearance:n}),q__namespace.default.createElement(zl,{appearance:n,className:Te(a("announcementContainer",n),r),style:l},(p===!0||O.dismissible)&&d=="inline"&&q__namespace.default.createElement(jl,{onClick:()=>L(this,null,function*(){yield S(e),t&&t();}),className:a("announcementDismissButton",n)},q__namespace.default.createElement(Ne,null)),q__namespace.default.createElement(Wl,{className:a("announcementTextContainer",n)},q__namespace.default.createElement(Gl,{appearance:n,className:a("announcementTitle",n),dangerouslySetInnerHTML:H(O.title)}),O.subtitle&&q__namespace.default.createElement(Kl,{appearance:n,className:a("announcementSubtitle",n),dangerouslySetInnerHTML:H(O.subtitle)})),(O.imageUri||O.videoUri)&&q__namespace.default.createElement(yr,{className:a("announcementMediaContainer",n)},q__namespace.default.createElement(Sr,{appearance:n,stepData:O})),s&&G>1&&q__namespace.default.createElement(Hl,{className:a("announcementPaginationContainer",n)},q__namespace.default.createElement(or,{className:a("announcementPagination",n),appearance:n,stepCount:G,currentStep:Y})),(O.primaryButtonTitle||O.secondaryButtonTitle)&&q__namespace.default.createElement(Vl,{allowBackNavigation:u,className:a("announcementCTAContainer",n)},u&&Y>0&&q__namespace.default.createElement(le,{classPrefix:"announcementBack",title:(Se=O.backButtonTitle)!=null?Se:"Back",appearance:n,withMargin:!1,size:"small",type:"full-width",onClick:()=>L(this,null,function*(){i&&i(O,E(e),"back"),yield h(e,_[Y-1].id);}),secondary:!0}),O.secondaryButtonTitle&&q__namespace.default.createElement(le,{classPrefix:"announcement",title:O.secondaryButtonTitle,appearance:n,withMargin:!1,size:"small",type:"full-width",onClick:()=>L(this,null,function*(){O.handleSecondaryButtonClick(),A(O),i&&i(O,E(e),"secondary");}),secondary:!0}),O.primaryButtonTitle&&q__namespace.default.createElement(le,{classPrefix:"announcement",title:O.primaryButtonTitle,appearance:n,withMargin:!1,size:"small",type:"full-width",onClick:()=>L(this,null,function*(){f(O),!(i&&i(O,E(e),"primary")===!1)&&(E(e)===G-1?(O.handlePrimaryButtonClick(),yield g(e)):O.handlePrimaryButtonClick());})}))))}let R={padding:"24px",maxWidth:"400px"};return d==="inline"?K():d!=="center"?q__namespace.default.createElement(Jo,{modalPosition:d,onClose:te,visible:D,dismissible:p,appearance:n},K()):q__namespace.default.createElement(et,{appearance:n,onClose:te,visible:D,style:R,dismissible:p},K())};var na=n=>{var r=n,{as:e="span",children:t,variant:o="Body1"}=r,i=$e(r,["as","children","variant"]);return q__namespace.default.createElement(In,w({color:"neutral.foreground",fontFamily:"default",forwardedAs:e,variant:o},i),t)},rm=Object.fromEntries(Object.keys(lr).map(e=>{let t=["H1","H2","H3","H4"].includes(e)?e.toLowerCase():void 0,o=i=>q__namespace.default.createElement(na,j(w({as:t},i),{variant:e}),i.children);return o.displayName=`Text.${e}`,[e,o]})),ci=Object.assign(na,rm);var sa=l=>{var p=l,{as:e="button",className:t,size:o="md",title:i,variant:n="Primary"}=p,r=$e(p,["as","className","size","title","variant"]);var d;return q__namespace.createElement(An,w({className:`fr-button-${n.toLowerCase()}${t?` ${t}`:""}`,forwardedAs:e,variant:n,size:o,borderRadius:"md"},r),q__namespace.createElement(ci,{color:(d=Oo[n])==null?void 0:d.color,fontWeight:"semibold"},i))},im=Object.fromEntries(Object.keys(Oo).map(e=>{let t=o=>q__namespace.createElement(sa,j(w({},o),{variant:e}));return t.displayName=`Button.${e}`,[e,t]})),nm=Object.assign(sa,im);String.prototype.replaceAll||(String.prototype.replaceAll=function(e,t){return Object.prototype.toString.call(e).toLowerCase()==="[object regexp]"?this.replace(e,t):this.replace(new RegExp(e,"g"),t)});
1850
1850
 
1851
1851
  exports.Box = No;
1852
1852
  exports.Button = nm;