@frigade/react 1.37.17 → 1.37.18
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 +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var na=Object.defineProperty,sa=Object.defineProperties;var la=Object.getOwnPropertyDescriptors;var Mo=Object.getOwnPropertySymbols;var li=Object.prototype.hasOwnProperty,ai=Object.prototype.propertyIsEnumerable;var si=(e,t,o)=>t in e?na(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))li.call(t,o)&&si(e,o,t[o]);if(Mo)for(var o of Mo(t))ai.call(t,o)&&si(e,o,t[o]);return e},j=(e,t)=>sa(e,la(t));var pi=e=>typeof e=="symbol"?e:e+"",Ie=(e,t)=>{var o={};for(var i in e)li.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Mo)for(var i of Mo(e))t.indexOf(i)<0&&ai.call(e,i)&&(o[i]=e[i]);return o};var M=(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())});import Eo,{createContext as Td,useEffect as rr,useState as je}from"react";import{ThemeProvider as An}from"styled-components";import Lt,{useContext as Zp,useEffect as Rt,useState as ko}from"react";import{useCallback as At,useContext as Sa,useEffect as ba}from"react";import hr,{useMemo as ci}from"react";var di="1.37.17";var nt="NOT_STARTED_STEP",ie="COMPLETED_FLOW",Do="ABORTED_FLOW",Et="STARTED_FLOW",Me="NOT_STARTED_FLOW",Le="COMPLETED_STEP",go="STARTED_STEP";function Ze(){let{publicApiKey:e,userId:t,apiUrl:o}=hr.useContext(Q);return{config:ci(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":di,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:ci(()=>`${o}/v1/public/`,[o])}}var aa="frigade-last-call-at-",pa="frigade-last-call-data-";function jt(){let{shouldGracefullyDegrade:e,readonly:t}=hr.useContext(Q);return(o,i)=>M(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Vt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Vt();let n=aa+o,r=pa+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 Vt()}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 Vt(p)}return l?l.ok?l:Vt(l.statusText):Vt()})}function Vt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Gt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=hr.useContext(Q);function o(){return t?!1:e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}import{useContext as xa,useState as mi}from"react";import{useContext as ca,useEffect as ma,useState as ua}from"react";import fa from"swr";import{useContext as da}from"react";function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=da(Q);function r(c,g=!1){var y;return(y=e[c])!=null?y:g}function l(c,g){t(y=>j(w({},y),{[c]:g}))}function p(c){t(g=>{let C=g,{[c]:y}=C,S=Ie(C,[pi(c)]);return w({},S)})}function d(c){n.includes(c)||i(g=>[...g,c])}function s(c){return n.includes(c)}function m(c){return Object.entries(e).some(([g,y])=>y&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:l,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:s}}import ga from"swr/immutable";import ho from"core-js-pure/actual/structured-clone";function xr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ce(...e){let t=e.shift(),o=e.length===1?e[0]:Ce(...e);if(!xr(t)||!xr(o))throw new Error("deepmerge can only merge Objects");let i=ho(t);return Object.entries(o).forEach(([n,r])=>{xr(r)?i[n]!==void 0?Object.assign(i,{[n]:Ce(i[n],ho(r))}):Object.assign(i,{[n]:ho(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...ho(r)]}):Object.assign(i,{[n]:ho(r)}):Object.assign(i,{[n]:r})}),i}var ha="unknown";function De(){let{config:e,apiUrl:t}=Ze(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:l,readonly:p}=ca(Q),{resetOpenFlowState:d}=Ee(),[s,m]=ua(!1),c={data:r.map(T=>({flowId:T.id,flowState:ie,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=T=>fetch(T,e).then(k=>{if(k.ok)return k.json();throw new Error("Failed to fetch user flow states")}).catch(k=>(console.log(`Error fetching ${T}: ${k}. Will gracefully degrade and hide Frigade`),l(!0),c)),y=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:S,isLoading:C,mutate:x,error:P}=p?ga(y,g):fa(y,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),b=S==null?void 0:S.data;ma(()=>{!s&&!C&&b&&m(!0)},[b,s,C]);function v(T){return M(this,null,function*(){if(b&&!p){let k=b.find(I=>I.flowId===T);k&&k.flowState!==ie&&(k.flowState=ie),yield x(Promise.resolve(Ce(S,{data:b})),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}function $(T,k,I){return M(this,null,function*(){if(b){let N=b.find(A=>A.flowId===T);N&&(N.stepStates[k]=I,N.flowState=Et),yield x(Promise.resolve(Ce(S,{data:b})),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}function B(T,k,I){return M(this,null,function*(){if(b){let N=b.find(A=>A.flowId===T);N&&(N.lastStepId=k,N.stepStates[k]=I,N.flowState=Et),yield x(Ce(S,{data:b}),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}function u(T){return M(this,null,function*(){if(b){let k=b.find(I=>I.flowId===T);k&&k.flowState!==Me&&(k.flowState=Me,k.lastStepId=ha,Object.keys(k.stepStates).forEach(I=>{k.stepStates[I].actionType=nt,k.stepStates[I].createdAt=new Date().toISOString()}),yield x(Ce(S,{data:b}),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1}),d(T))}})}function O(T,k,I){return M(this,null,function*(){if(b){let N=b.find(A=>A.flowId===T);N&&(N.stepStates[k]=I),yield x(Promise.resolve(Ce(S,{data:b})),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:b,isLoadingUserFlowStateData:!s,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:$,optimisticallyMarkStepNotStarted:O,optimisticallyMarkStepStarted:B,error:P}}function xo(){let{config:e,apiUrl:t}=Ze(),{userFlowStatesData:o,mutateUserFlowState:i}=De(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:l,setFlowResponses:p}=xa(Q),[d,s]=mi(new Set),[m,c]=mi(new Set),g=jt();function y(x){let P=JSON.stringify(x);if(d.has(P))return null;d.add(P),s(d),m.add(x),c(m);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:P})).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 S(x){return M(this,null,function*(){x.foreignUserId&&(x.actionType===Et||x.actionType===Me?yield y(x):x.actionType===ie?yield y(x):x.actionType===go?yield y(x):x.actionType===Le?yield y(x):x.actionType===Do?yield y(x):x.actionType===nt&&(yield y(x)))})}function C(){let x=[];return o==null||o.forEach(P=>{if(P&&P.stepStates&&Object.keys(P.stepStates).length!==0)for(let b in P.stepStates){let v=P.stepStates[b];x.push({foreignUserId:P.foreignUserId,flowSlug:P.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden})}}),[...x,...l]}return{addResponse:S,setFlowResponses:p,getFlowResponses:C}}import wa from"swr";var Ca=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,ui=e=>{let t=Ca.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=ya(i,"'","");r.startsWith("flow_")&&(o=r)}),o},ya=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Uo(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Cr=(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))(Cr||{});function R(){let{config:e,apiUrl:t}=Ze(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:l,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,shouldGracefullyDegrade:y,readonly:S,flowDataOverrides:C}=Sa(Q),x={data:[]},{verifySDKInitiated:P}=Gt(),{addResponse:b,getFlowResponses:v}=xo(),$=h=>fetch(h,e).then(f=>f.ok?f.json():(console.log(`Error fetching ${h} (${f.status}): ${f.statusText}. Will gracefully degrade and hide Frigade`),g(!0),x)).catch(f=>(console.log(`Error fetching ${h}: ${f}. Will gracefully degrade and hide Frigade`),g(!0),x)),{mutateUserFlowState:B,userFlowStatesData:u,isLoadingUserFlowStateData:O,optimisticallyMarkFlowCompleted:T,optimisticallyMarkFlowNotStarted:k,optimisticallyMarkStepCompleted:I,optimisticallyMarkStepNotStarted:N,optimisticallyMarkStepStarted:A}=De(),{data:H,error:U,isLoading:te}=wa(l?`${t}flows${S?"?readonly=true":""}`:null,$,{keepPreviousData:!0});ba(()=>{if(U){console.error(U);return}H&&H.data&&i(H.data)},[H,U]);function X(h){if(te)return null;let f=o.find(F=>F.slug===h);return!f&&o.length>0&&!O&&!te?(console.log(`Flow with id ${h} not found`),null):(f&&C&&C[h]&&(f.data=C[h]),(f==null?void 0:f.active)===!1&&!S?null:f)}function q(h){var _,ge,xt,vt,Bt;if(!X(h))return[];let f=(_=X(h))==null?void 0:_.data;return f?(f=J(f),((Bt=(vt=(ge=Uo(f))==null?void 0:ge.data)!=null?vt:(xt=Uo(f))==null?void 0:xt.steps)!=null?Bt:[]).map(he=>{let uo=Ge(he);return j(w({handleSecondaryButtonClick:()=>{he.skippable===!0&&Z(h,he.id,{skipped:!0})}},he),{complete:me(h,he.id)===Le||uo>=1,started:me(h,he.id)===go||me(h,he.id)===Le,currentlyActive:u==null?void 0:u.some(fo=>fo.flowId==h&&fo.lastStepId===he.id),blocked:V(h,he.id),hidden:z(h,he.id),handlePrimaryButtonClick:()=>{(!he.completionCriteria&&(he.autoMarkCompleted||he.autoMarkCompleted===void 0)||he.completionCriteria&&he.autoMarkCompleted===!0)&&Z(h,he.id)},progress:uo})}).filter(he=>he.hidden!==!0)):[]}function J(h){return h.replaceAll(/\${(.*?)}/g,(f,F)=>p[F]===void 0?"":String(p[F]).replace(/[\u00A0-\u9999<>\&]/g,function(_){return"&#"+_.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 Y(h){var F;if(!X(h))return[];let f=X(h).data;return f?(f=J(f),(F=JSON.parse(f))!=null?F:{}):[]}function de(h,f){d(F=>j(w({},F),{[h]:f}))}function we(h){!O&&!te&&h&&JSON.stringify(p)!=JSON.stringify(w(w({},p),h))&&Object.keys(h).forEach(f=>{de(f,h[f])})}let Ne=At((h,f,F)=>M(this,null,function*(){if(!P())return;let _={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:f,actionType:go,data:F!=null?F:{},createdAt:new Date,blocked:!1,hidden:!1};ue(_)&&(yield A(h,f,_),b(_))}),[n,r,u]),ce=At((h,f,F)=>M(this,null,function*(){if(!P())return;let _={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:f,actionType:nt,data:F!=null?F:{},createdAt:new Date,blocked:!1,hidden:!1};ue(_)&&(yield N(h,f,_),b(_))}),[n,r,u]),Z=At((h,f,F)=>M(this,null,function*(){if(!P())return;let _={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:f,actionType:Le,data:F!=null?F:{},createdAt:new Date,blocked:!1,hidden:!1};ue(_)&&(yield I(h,f,_),b(_))}),[n,r,u]),D=At((h,f)=>M(this,null,function*(){if(!P()||Xe(h)===Me)return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Me,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};yield k(h),ue(F)&&b(F)}),[n,r,u]),ee=At((h,f)=>M(this,null,function*(){if(!P())return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Et,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};ue(F)&&b(F)}),[n,r,u]),ke=At((h,f)=>M(this,null,function*(){if(!P())return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:ie,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};ue(F)&&(yield T(h),b(F))}),[n,r,u]),He=At((h,f)=>M(this,null,function*(){if(!P())return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Do,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};ue(F)&&(yield T(h),b(F))}),[n,r,u]);function ue(h){var f;if(u===void 0)return!1;if(u){let F=u.find(_=>_.flowId===h.flowSlug);if(h.actionType===nt&&(!(F!=null&&F.stepStates[h.stepId])||F.stepStates[h.stepId].actionType===nt))return!1;if(F&&((f=F.stepStates[h.stepId])==null?void 0:f.actionType)===h.actionType){if(h.actionType===Le&&(!h.data||JSON.stringify(h.data)===JSON.stringify({})))return!1;let _=Object.keys(F.stepStates).sort((ge,xt)=>{let vt=new Date(F.stepStates[ge].createdAt),Bt=new Date(F.stepStates[xt].createdAt);return vt.getTime()-Bt.getTime()});if(F.stepStates[_[_.length-1]].actionType===h.actionType&&h.stepId===_[_.length-1])return!1}if(F&&F.flowState===ie&&h.actionType===ie)return!1}return!0}function me(h,f){let F=L(h,f);return O?null:F?F.actionType:nt}function V(h,f){let F=L(h,f);return F?F.blocked:!1}function z(h,f){let F=L(h,f);return F?F.hidden:!1}function L(h,f){var _;if(O)return null;let F=u==null?void 0:u.find(ge=>ge.flowId===h);return!F||!F.stepStates[f]?null:(_=F.stepStates[f])!=null?_:null}function W(h){var F,_;if(O||!u)return null;if(Xe(h)===Me)return(F=q(h)[0])!=null?F:null;let f=(_=u.find(ge=>ge.flowId===h))==null?void 0:_.lastStepId;return f?q(h).find(ge=>ge.id===f):null}function re(h){var _;let f=W(h);if(!f)return 0;let F=(_=q(h).findIndex(ge=>ge.id===f.id))!=null?_:0;return me(h,f.id)===Le&&F<q(h).length-1?F+1:F}function Ge(h){if(!h.completionCriteria)return;let f=ui(h.completionCriteria);if(f===null)return;let F=Pt(f),_=Ke(f);return _===0?void 0:F/_}function Xe(h){let f=u==null?void 0:u.find(F=>F.flowId===h);return f?f.flowState:null}function Pt(h){let f=q(h);return f.length===0?0:f.filter(_=>me(h,_.id)===Le).length}function Ke(h){return q(h).length}function ht(h){let f=o.find(F=>F.slug===h);return f?(C&&C[h]&&(f.data=C[h]),Uo(f.data)):null}function qe(h){if(S)return!1;if(O||y)return!0;if(h!=null&&h.targetingLogic&&u){let f=u.find(F=>F.flowId===h.slug);if(f)return f.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&n&&n.startsWith("guest_"))}function Wt(h){return!qe(X(h))}function zt(){n&&B()}function Ht(){return o}return{getAllFlows:Ht,getFlow:X,getFlowData:ht,isLoading:O||te,getStepStatus:me,getFlowSteps:q,getCurrentStepIndex:re,markStepStarted:Ne,markStepCompleted:Z,markFlowNotStarted:D,markFlowStarted:ee,markFlowCompleted:ke,markFlowAborted:He,markStepNotStarted:ce,getFlowStatus:Xe,getNumberOfStepsCompleted:Pt,getNumberOfSteps:Ke,targetingLogicShouldHideFlow:qe,setCustomVariable:de,updateCustomVariables:we,customVariables:p,getStepOptionalProgress:Ge,getFlowMetadata:Y,isStepBlocked:V,isStepHidden:z,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Wt,refresh:zt}}import{useCallback as yr,useContext as Ta,useEffect as Fa}from"react";var Kt="guest_";function Co(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=Ta(Q),{config:r,apiUrl:l}=Ze(),{mutateUserFlowState:p}=De(),d=jt(),{verifySDKInitiated:s}=Gt();function m(S){return`frigade-user-registered-${S}`}Fa(()=>{if(e&&!t){if(e.startsWith(Kt))return;let S=m(e);localStorage.getItem(S)||(d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(S,"true"))}},[e,n,t]);let c=yr(S=>M(this,null,function*(){if(!s())return;let C={foreignId:e,properties:S};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(C)})),i(x=>w(w({},x),S)),p()}),[e,r,n,p]),g=yr((S,C)=>M(this,null,function*(){if(!s())return;let P={foreignId:e,events:[{event:S,properties:C}]};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(P)})),p()}),[e,r,p]),y=yr((S,C)=>M(this,null,function*(){if(s())if(C){let x=m(S);localStorage.setItem(x,"true"),o(S);let P={foreignId:S,properties:C};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(P)})),i(b=>w(w({},b),C)),p()}else o(S)}),[r,n,p]);return{userId:e,setUserId:o,setUserIdWithProperties:y,addPropertiesToUser:c,trackEventForUser:g}}import{v4 as Rp}from"uuid";import ot,{useEffect as xn,useState as Jp}from"react";import Ye,{useEffect as Tr,useState as Ia}from"react";import Ho from"styled-components";import ka from"react";import Pa from"styled-components";var fi="fr-",yo="cfr-";function a(e,t){let o=`${fi}${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+" "+yo+e}return o}function E(e){if(!e.className||e.className.indexOf(yo)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(fi)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function _o(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Pe(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${_o(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Te(...e){return e.filter(Boolean).join(" ")}function So(e){return e.charAt(0).toUpperCase()+e.slice(1)}var va=Pa.div`
|
|
2
|
+
var na=Object.defineProperty,sa=Object.defineProperties;var la=Object.getOwnPropertyDescriptors;var Mo=Object.getOwnPropertySymbols;var li=Object.prototype.hasOwnProperty,ai=Object.prototype.propertyIsEnumerable;var si=(e,t,o)=>t in e?na(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))li.call(t,o)&&si(e,o,t[o]);if(Mo)for(var o of Mo(t))ai.call(t,o)&&si(e,o,t[o]);return e},j=(e,t)=>sa(e,la(t));var pi=e=>typeof e=="symbol"?e:e+"",Ie=(e,t)=>{var o={};for(var i in e)li.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Mo)for(var i of Mo(e))t.indexOf(i)<0&&ai.call(e,i)&&(o[i]=e[i]);return o};var M=(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())});import Eo,{createContext as Td,useEffect as rr,useState as je}from"react";import{ThemeProvider as An}from"styled-components";import Lt,{useContext as Zp,useEffect as Rt,useState as ko}from"react";import{useCallback as At,useContext as Sa,useEffect as ba}from"react";import hr,{useMemo as ci}from"react";var di="1.37.18";var nt="NOT_STARTED_STEP",ie="COMPLETED_FLOW",Do="ABORTED_FLOW",Et="STARTED_FLOW",Me="NOT_STARTED_FLOW",Le="COMPLETED_STEP",go="STARTED_STEP";function Ze(){let{publicApiKey:e,userId:t,apiUrl:o}=hr.useContext(Q);return{config:ci(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":di,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:ci(()=>`${o}/v1/public/`,[o])}}var aa="frigade-last-call-at-",pa="frigade-last-call-data-";function jt(){let{shouldGracefullyDegrade:e,readonly:t}=hr.useContext(Q);return(o,i)=>M(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Vt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Vt();let n=aa+o,r=pa+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 Vt()}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 Vt(p)}return l?l.ok?l:Vt(l.statusText):Vt()})}function Vt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Gt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=hr.useContext(Q);function o(){return t?!1:e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}import{useContext as xa,useState as mi}from"react";import{useContext as ca,useEffect as ma,useState as ua}from"react";import fa from"swr";import{useContext as da}from"react";function Ee(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=da(Q);function r(c,g=!1){var y;return(y=e[c])!=null?y:g}function l(c,g){t(y=>j(w({},y),{[c]:g}))}function p(c){t(g=>{let C=g,{[c]:y}=C,S=Ie(C,[pi(c)]);return w({},S)})}function d(c){n.includes(c)||i(g=>[...g,c])}function s(c){return n.includes(c)}function m(c){return Object.entries(e).some(([g,y])=>y&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:l,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:s}}import ga from"swr/immutable";import ho from"core-js-pure/actual/structured-clone";function xr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ce(...e){let t=e.shift(),o=e.length===1?e[0]:Ce(...e);if(!xr(t)||!xr(o))throw new Error("deepmerge can only merge Objects");let i=ho(t);return Object.entries(o).forEach(([n,r])=>{xr(r)?i[n]!==void 0?Object.assign(i,{[n]:Ce(i[n],ho(r))}):Object.assign(i,{[n]:ho(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...ho(r)]}):Object.assign(i,{[n]:ho(r)}):Object.assign(i,{[n]:r})}),i}var ha="unknown";function De(){let{config:e,apiUrl:t}=Ze(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:l,readonly:p}=ca(Q),{resetOpenFlowState:d}=Ee(),[s,m]=ua(!1),c={data:r.map(T=>({flowId:T.id,flowState:ie,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=T=>fetch(T,e).then(k=>{if(k.ok)return k.json();throw new Error("Failed to fetch user flow states")}).catch(k=>(console.log(`Error fetching ${T}: ${k}. Will gracefully degrade and hide Frigade`),l(!0),c)),y=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:S,isLoading:C,mutate:x,error:P}=p?ga(y,g):fa(y,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),b=S==null?void 0:S.data;ma(()=>{!s&&!C&&b&&m(!0)},[b,s,C]);function v(T){return M(this,null,function*(){if(b&&!p){let k=b.find(I=>I.flowId===T);k&&k.flowState!==ie&&(k.flowState=ie),yield x(Promise.resolve(Ce(S,{data:b})),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}function $(T,k,I){return M(this,null,function*(){if(b){let N=b.find(A=>A.flowId===T);N&&(N.stepStates[k]=I,N.flowState=Et),yield x(Promise.resolve(Ce(S,{data:b})),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}function B(T,k,I){return M(this,null,function*(){if(b){let N=b.find(A=>A.flowId===T);N&&(N.lastStepId=k,N.stepStates[k]=I,N.flowState=Et),yield x(Ce(S,{data:b}),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}function u(T){return M(this,null,function*(){if(b){let k=b.find(I=>I.flowId===T);k&&k.flowState!==Me&&(k.flowState=Me,k.lastStepId=ha,Object.keys(k.stepStates).forEach(I=>{k.stepStates[I].actionType=nt,k.stepStates[I].createdAt=new Date().toISOString()}),yield x(Ce(S,{data:b}),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1}),d(T))}})}function O(T,k,I){return M(this,null,function*(){if(b){let N=b.find(A=>A.flowId===T);N&&(N.stepStates[k]=I),yield x(Promise.resolve(Ce(S,{data:b})),{optimisticData:Ce(S,{data:b}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:b,isLoadingUserFlowStateData:!s,mutateUserFlowState:x,optimisticallyMarkFlowCompleted:v,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:$,optimisticallyMarkStepNotStarted:O,optimisticallyMarkStepStarted:B,error:P}}function xo(){let{config:e,apiUrl:t}=Ze(),{userFlowStatesData:o,mutateUserFlowState:i}=De(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:l,setFlowResponses:p}=xa(Q),[d,s]=mi(new Set),[m,c]=mi(new Set),g=jt();function y(x){let P=JSON.stringify(x);if(d.has(P))return null;d.add(P),s(d),m.add(x),c(m);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:P})).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 S(x){return M(this,null,function*(){x.foreignUserId&&(x.actionType===Et||x.actionType===Me?yield y(x):x.actionType===ie?yield y(x):x.actionType===go?yield y(x):x.actionType===Le?yield y(x):x.actionType===Do?yield y(x):x.actionType===nt&&(yield y(x)))})}function C(){let x=[];return o==null||o.forEach(P=>{if(P&&P.stepStates&&Object.keys(P.stepStates).length!==0)for(let b in P.stepStates){let v=P.stepStates[b];x.push({foreignUserId:P.foreignUserId,flowSlug:P.flowId,stepId:v.stepId,actionType:v.actionType,data:{},createdAt:new Date(v.createdAt),blocked:v.blocked,hidden:v.hidden})}}),[...x,...l]}return{addResponse:S,setFlowResponses:p,getFlowResponses:C}}import wa from"swr";var Ca=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,ui=e=>{let t=Ca.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=ya(i,"'","");r.startsWith("flow_")&&(o=r)}),o},ya=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Uo(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Cr=(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))(Cr||{});function R(){let{config:e,apiUrl:t}=Ze(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:l,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,shouldGracefullyDegrade:y,readonly:S,flowDataOverrides:C}=Sa(Q),x={data:[]},{verifySDKInitiated:P}=Gt(),{addResponse:b,getFlowResponses:v}=xo(),$=h=>fetch(h,e).then(f=>f.ok?f.json():(console.log(`Error fetching ${h} (${f.status}): ${f.statusText}. Will gracefully degrade and hide Frigade`),g(!0),x)).catch(f=>(console.log(`Error fetching ${h}: ${f}. Will gracefully degrade and hide Frigade`),g(!0),x)),{mutateUserFlowState:B,userFlowStatesData:u,isLoadingUserFlowStateData:O,optimisticallyMarkFlowCompleted:T,optimisticallyMarkFlowNotStarted:k,optimisticallyMarkStepCompleted:I,optimisticallyMarkStepNotStarted:N,optimisticallyMarkStepStarted:A}=De(),{data:H,error:U,isLoading:te}=wa(l?`${t}flows${S?"?readonly=true":""}`:null,$,{keepPreviousData:!0});ba(()=>{if(U){console.error(U);return}H&&H.data&&i(H.data)},[H,U]);function X(h){if(te)return null;let f=o.find(F=>F.slug===h);return!f&&o.length>0&&!O&&!te?(console.log(`Flow with id ${h} not found`),null):(f&&C&&C[h]&&(f.data=C[h]),(f==null?void 0:f.active)===!1&&!S?null:f)}function q(h){var _,ge,xt,vt,Bt;if(!X(h))return[];let f=(_=X(h))==null?void 0:_.data;return f?(f=J(f),((Bt=(vt=(ge=Uo(f))==null?void 0:ge.data)!=null?vt:(xt=Uo(f))==null?void 0:xt.steps)!=null?Bt:[]).map(he=>{let uo=Ge(he);return j(w({handleSecondaryButtonClick:()=>{he.skippable===!0&&Z(h,he.id,{skipped:!0})}},he),{complete:me(h,he.id)===Le||uo>=1,started:me(h,he.id)===go||me(h,he.id)===Le,currentlyActive:u==null?void 0:u.some(fo=>fo.flowId==h&&fo.lastStepId===he.id),blocked:V(h,he.id),hidden:z(h,he.id),handlePrimaryButtonClick:()=>{(!he.completionCriteria&&(he.autoMarkCompleted||he.autoMarkCompleted===void 0)||he.completionCriteria&&he.autoMarkCompleted===!0)&&Z(h,he.id)},progress:uo})}).filter(he=>he.hidden!==!0)):[]}function J(h){return h.replaceAll(/\${(.*?)}/g,(f,F)=>p[F]===void 0?"":String(p[F]).replace(/[\u00A0-\u9999<>\&]/g,function(_){return"&#"+_.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 Y(h){var F;if(!X(h))return[];let f=X(h).data;return f?(f=J(f),(F=JSON.parse(f))!=null?F:{}):[]}function de(h,f){d(F=>j(w({},F),{[h]:f}))}function we(h){!O&&!te&&h&&JSON.stringify(p)!=JSON.stringify(w(w({},p),h))&&Object.keys(h).forEach(f=>{de(f,h[f])})}let Ne=At((h,f,F)=>M(this,null,function*(){if(!P())return;let _={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:f,actionType:go,data:F!=null?F:{},createdAt:new Date,blocked:!1,hidden:!1};ue(_)&&(yield A(h,f,_),b(_))}),[n,r,u]),ce=At((h,f,F)=>M(this,null,function*(){if(!P())return;let _={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:f,actionType:nt,data:F!=null?F:{},createdAt:new Date,blocked:!1,hidden:!1};ue(_)&&(yield N(h,f,_),b(_))}),[n,r,u]),Z=At((h,f,F)=>M(this,null,function*(){if(!P())return;let _={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:f,actionType:Le,data:F!=null?F:{},createdAt:new Date,blocked:!1,hidden:!1};ue(_)&&(yield I(h,f,_),b(_))}),[n,r,u]),D=At((h,f)=>M(this,null,function*(){if(!P()||Xe(h)===Me)return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Me,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};yield k(h),ue(F)&&b(F)}),[n,r,u]),ee=At((h,f)=>M(this,null,function*(){if(!P())return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Et,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};ue(F)&&b(F)}),[n,r,u]),ke=At((h,f)=>M(this,null,function*(){if(!P())return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:ie,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};ue(F)&&(yield T(h),b(F))}),[n,r,u]),He=At((h,f)=>M(this,null,function*(){if(!P())return;let F={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Do,data:f!=null?f:{},createdAt:new Date,blocked:!1,hidden:!1};ue(F)&&(yield T(h),b(F))}),[n,r,u]);function ue(h){var f;if(u===void 0)return!1;if(u){let F=u.find(_=>_.flowId===h.flowSlug);if(h.actionType===nt&&(!(F!=null&&F.stepStates[h.stepId])||F.stepStates[h.stepId].actionType===nt))return!1;if(F&&((f=F.stepStates[h.stepId])==null?void 0:f.actionType)===h.actionType){if(h.actionType===Le&&(!h.data||JSON.stringify(h.data)===JSON.stringify({})))return!1;let _=Object.keys(F.stepStates).sort((ge,xt)=>{let vt=new Date(F.stepStates[ge].createdAt),Bt=new Date(F.stepStates[xt].createdAt);return vt.getTime()-Bt.getTime()});if(F.stepStates[_[_.length-1]].actionType===h.actionType&&h.stepId===_[_.length-1])return!1}if(F&&F.flowState===ie&&h.actionType===ie)return!1}return!0}function me(h,f){let F=L(h,f);return O?null:F?F.actionType:nt}function V(h,f){let F=L(h,f);return F?F.blocked:!1}function z(h,f){let F=L(h,f);return F?F.hidden:!1}function L(h,f){var _;if(O)return null;let F=u==null?void 0:u.find(ge=>ge.flowId===h);return!F||!F.stepStates[f]?null:(_=F.stepStates[f])!=null?_:null}function W(h){var F,_;if(O||!u)return null;if(Xe(h)===Me)return(F=q(h)[0])!=null?F:null;let f=(_=u.find(ge=>ge.flowId===h))==null?void 0:_.lastStepId;return f?q(h).find(ge=>ge.id===f):null}function re(h){var _;let f=W(h);if(!f)return 0;let F=(_=q(h).findIndex(ge=>ge.id===f.id))!=null?_:0;return me(h,f.id)===Le&&F<q(h).length-1?F+1:F}function Ge(h){if(!h.completionCriteria)return;let f=ui(h.completionCriteria);if(f===null)return;let F=Pt(f),_=Ke(f);return _===0?void 0:F/_}function Xe(h){let f=u==null?void 0:u.find(F=>F.flowId===h);return f?f.flowState:null}function Pt(h){let f=q(h);return f.length===0?0:f.filter(_=>me(h,_.id)===Le).length}function Ke(h){return q(h).length}function ht(h){let f=o.find(F=>F.slug===h);return f?(C&&C[h]&&(f.data=C[h]),Uo(f.data)):null}function qe(h){if(S)return!1;if(O||y)return!0;if(h!=null&&h.targetingLogic&&u){let f=u.find(F=>F.flowId===h.slug);if(f)return f.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&n&&n.startsWith("guest_"))}function Wt(h){return!qe(X(h))}function zt(){n&&B()}function Ht(){return o}return{getAllFlows:Ht,getFlow:X,getFlowData:ht,isLoading:O||te,getStepStatus:me,getFlowSteps:q,getCurrentStepIndex:re,markStepStarted:Ne,markStepCompleted:Z,markFlowNotStarted:D,markFlowStarted:ee,markFlowCompleted:ke,markFlowAborted:He,markStepNotStarted:ce,getFlowStatus:Xe,getNumberOfStepsCompleted:Pt,getNumberOfSteps:Ke,targetingLogicShouldHideFlow:qe,setCustomVariable:de,updateCustomVariables:we,customVariables:p,getStepOptionalProgress:Ge,getFlowMetadata:Y,isStepBlocked:V,isStepHidden:z,hasActiveFullPageFlow:s,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Wt,refresh:zt}}import{useCallback as yr,useContext as Ta,useEffect as Fa}from"react";var Kt="guest_";function Co(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=Ta(Q),{config:r,apiUrl:l}=Ze(),{mutateUserFlowState:p}=De(),d=jt(),{verifySDKInitiated:s}=Gt();function m(S){return`frigade-user-registered-${S}`}Fa(()=>{if(e&&!t){if(e.startsWith(Kt))return;let S=m(e);localStorage.getItem(S)||(d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(S,"true"))}},[e,n,t]);let c=yr(S=>M(this,null,function*(){if(!s())return;let C={foreignId:e,properties:S};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(C)})),i(x=>w(w({},x),S)),p()}),[e,r,n,p]),g=yr((S,C)=>M(this,null,function*(){if(!s())return;let P={foreignId:e,events:[{event:S,properties:C}]};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(P)})),p()}),[e,r,p]),y=yr((S,C)=>M(this,null,function*(){if(s())if(C){let x=m(S);localStorage.setItem(x,"true"),o(S);let P={foreignId:S,properties:C};yield d(`${l}users`,j(w({},r),{method:"POST",body:JSON.stringify(P)})),i(b=>w(w({},b),C)),p()}else o(S)}),[r,n,p]);return{userId:e,setUserId:o,setUserIdWithProperties:y,addPropertiesToUser:c,trackEventForUser:g}}import{v4 as Rp}from"uuid";import ot,{useEffect as xn,useState as Jp}from"react";import Ye,{useEffect as Tr,useState as Ia}from"react";import Ho from"styled-components";import ka from"react";import Pa from"styled-components";var fi="fr-",yo="cfr-";function a(e,t){let o=`${fi}${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+" "+yo+e}return o}function E(e){if(!e.className||e.className.indexOf(yo)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(fi)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function _o(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Pe(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${_o(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Te(...e){return e.filter(Boolean).join(" ")}function So(e){return e.charAt(0).toUpperCase()+e.slice(1)}var va=Pa.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -691,7 +691,7 @@ var na=Object.defineProperty,sa=Object.defineProperties;var la=Object.getOwnProp
|
|
|
691
691
|
display: flex;
|
|
692
692
|
align-self: center;
|
|
693
693
|
`;var gn=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let n=e.props,[r,l]=_r([]),[p,d]=_r(!1),[s,m]=_r(e.id);return Ur(()=>{r.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),Ur(()=>{s!==e.id&&(m(e.id),l([]))},[e]),Ur(()=>{o({choice:r}),r.length>=n.minChoices?t(!0):t(!1)},[r]),pt.createElement(ln,{className:a("selectListContainer",i)},pt.createElement(an,null,pt.createElement(pn,{className:a("selectListTitle",i)},e.title),pt.createElement(dn,{appearance:i,className:a("selectListSubtitle",i)},e.subtitle)),n.options.map((c,g)=>{let y=r.includes(c.id);return pt.createElement(cn,{key:`select-item-${g}`,onClick:()=>{if(r.includes(c.id)){l(r.filter(S=>S!==c.id));return}r.length<n.maxChoices?l([...r,c.id]):r.length==1&&n.maxChoices==1&&l([c.id])},hideBottomBorder:g===n.options.length-1,className:a("selectListSelectItem",i)},pt.createElement(mn,{className:a("selectListItemImage",i)},c.imageUri&&pt.createElement(un,{src:c.imageUri,alt:`select-icon-${g}`}),pt.createElement(fn,{appearance:i,className:a("selectListSelectItemText",i)},c.title)),pt.createElement(at,{appearance:i,value:y,primaryColor:i.theme.colorPrimary}))}))};import Ue,{useEffect as hn,useState as Ro}from"react";var jp=({children:e,id:t,shouldWrap:o=!1})=>Ue.createElement(Ue.Fragment,null,o?Ue.createElement("div",{key:t,style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e):e),er=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:n,onButtonClick:r,onStepCompletion:l,flowId:p,type:d,hideOnFlowCompletion:s,onComplete:m,setVisible:c,setShowModal:g,onDismiss:y,showPagination:S=!1,customFormElements:C,allowBackNavigation:x,validationHandler:P,onFormDataChange:b,showFooter:v,prefillData:$,updateUrlOnPageChange:B,repeatable:u})=>{var me;let T=w(w({},{linkCollection:nn,multiInput:Ki,callToAction:sn,selectList:gn}),i),{primaryCTAClickSideEffects:k,secondaryCTAClickSideEffects:I}=fe(),[N,A]=Ro(!1),[H,U]=Ro({}),[te,X]=Ro(!1),[q,J]=Ro(null),Y=(me=t[o])!=null?me:null,{markStepCompleted:de,markStepStarted:we,isLoading:Ne,updateCustomVariables:ce,markFlowCompleted:Z}=R();hn(()=>{ce(n)},[n,Ne]),hn(()=>{b&&b(H,D(),t[o],o)},[H]);function D(){var z;return{data:(z=H[t[o].id])!=null?z:{},stepId:t[o].id,customVariables:n}}function ee(V,z,L){let W=o+1<t.length?t[o+1]:null;return l&&l(V,L,W,H,D()),r?r(V,o,z,W):!0}function ke(V,z){U(L=>{let W={};return W[V.id]=z,w(w({},L),W)})}function He(V){return V.selectedStep.imageUri?Ue.createElement(Zi,{image:V.selectedStep.imageUri,appearance:e,className:a("formContainerSidebarImage",e)}):null}let ue=v&&Ue.createElement(on,{step:t[o],canContinue:N&&!te,formType:d,selectedStep:o,appearance:e,onPrimaryClick:()=>M(void 0,null,function*(){if(X(!0),P){let L=yield P(t[o],o,t[o+1],H,D());if(L!==!0){J(typeof L=="string"?L:null),X(!1);return}else J(null)}let V=w({},D());yield de(p,t[o].id,V),o+1<t.length&&!x&&(yield we(p,t[o+1].id));let z=ee(t[o],"primary",o);if(o+1>=t.length&&(m&&m(),y&&y(),s&&z&&(c&&c(!1),g(!1)),yield Z(p),u&&(yield we(p,t[0].id),typeof window!="undefined"&&window.localStorage&&Object.keys(window.localStorage).forEach(W=>{W.startsWith($r)&&window.localStorage.removeItem(W)}))),k(t[o]),X(!1),typeof window!="undefined"&&!x&&B&&o+1<t.length){let L=new URL(window.location.href);L.searchParams.set("p",t[o+1].id),window.history.pushState({},"",L.toString())}}),onSecondaryClick:()=>{ee(t[o],"secondary",o),I(t[o])},onBack:()=>M(void 0,null,function*(){o-1>=0&&(X(!0),yield we(p,t[o-1].id),X(!1))}),steps:t,allowBackNavigation:x,errorMessage:q,isSaving:te});return Ue.createElement(Ue.Fragment,null,Ue.createElement(Xi,{className:a("formContainer",e)},Ue.createElement(jp,{id:o,shouldWrap:d==="large-modal"},Ue.createElement(Qi,{key:Y.id,type:d,className:a("formContent",e)},t.map(V=>{var L;let z=T[(L=V.type)!=null?L:"multiInput"];return Y.id!==V.id?null:typeof z!="function"?z:Ue.createElement(z,{key:V.id,stepData:V,canContinue:N,setCanContinue:A,onSaveData:W=>{ke(V,W)},appearance:e,customFormElements:C,flowId:p,prefillData:$})}),S&&Ue.createElement(rn,{className:a("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),ue)),d=="large-modal"&&Ue.createElement(He,{selectedStep:t[o]})))};import Fo from"react";import{createGlobalStyle as Gp}from"styled-components";var Kp=Gp`
|
|
694
|
-
${e=>e.inlineStyles.map(([t,o])=>`.${yo}${t}.${yo}${t} { ${Object.entries(o).map(([i,n])=>typeof n=="object"?`${i} { ${Object.entries(n).map(([l,p])=>`${_o(l)}: ${p};`).join(" ")} }`:`${_o(i)}: ${n};`).join(" ")} }`).join(" ")}`;function pe({appearance:e}){if(!e||!e.styleOverrides)return Fo.createElement(Fo.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([o,i])=>typeof i=="object");return t.length===0?Fo.createElement(Fo.Fragment,null):Fo.createElement(Kp,{inlineStyles:t})}import{useEffect as qp,useState as Yp}from"react";function Ve(e,t=!0){let[o,i]=Yp(!1),{markStepStarted:n,isLoading:r,getFlowStatus:l,getFlowSteps:p,getCurrentStepIndex:d,targetingLogicShouldHideFlow:s,getFlow:m}=R(),c=p(e);function g(){return M(this,null,function*(){!o&&!r&&l(e)===Me&&s(m(e))===!1&&t&&(i(!0),yield n(e,c[d(e)].id))})}return qp(()=>{g()},[r,e,t]),{}}var Cn=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:n,customVariables:r,customFormElements:l,onComplete:p,appearance:d,hideOnFlowCompletion:s=!0,onStepCompletion:m,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:y=!1,modalPosition:S="center",repeatable:C=!1,onDismiss:x,showPagination:P=!1,allowBackNavigation:b=!1,validationHandler:v,showFrigadeBranding:$=!1,onFormDataChange:B,showFooter:u=!0,prefillData:O={},updateUrlOnPageChange:T=!1})=>{let{getFlow:k,getFlowSteps:I,isLoading:N,targetingLogicShouldHideFlow:A,getFlowStatus:H,getCurrentStepIndex:U,markFlowCompleted:te,markFlowNotStarted:X,markStepStarted:q}=R(),J=U(e),{mergeAppearanceWithDefault:Y}=ne(),[de,we]=Jp(null),{setOpenFlowState:Ne,getOpenFlowState:ce,hasOpenModals:Z}=Ee();Ve(e,i);let D=I(e);d=Y(d);let[ee,ke]=i!==void 0&&n!==void 0?[i,n]:[ce(e,!0),V=>Ne(e,V)],He=typeof window!="undefined"?window.location.hash:null;if(xn(()=>{var V;if(D&&D.length>0&&b){let z=typeof window!="undefined"&&((V=window==null?void 0:window.location)!=null&&V.hash)?window.location.hash.replace("#",""):"";if(D&&(D==null?void 0:D.length)>0){let L=-1;if(z){let W=z;L=D.findIndex(re=>re.id===W),de===z&&(L=-1)}L!==-1&&(we(z),q(e,D[L].id))}}},[He]),xn(()=>{!N&&D&&D.length&&typeof window!="undefined"&&b&&(we(D[J].id),window.location.hash=D[J].id)},[N,J,D]),N)return null;let ue=k(e);if(!ue||A(ue)||!D||i!==void 0&&i===!1||H(e)===ie&&s&&!C||(o=="modal"||o=="corner-modal")&&Z(e))return null;let me=()=>{ke(!1),x&&x(),y===!0&&te(e)};if(S=="center"&&o==="modal"||o==="large-modal"){let V={padding:"24px"};return o==="large-modal"?(V.width="85%",V.height="90%",V.maxHeight="800px",V.minHeight="500px",V.padding="0"):V.width="400px",ot.createElement(Re,{appearance:d,onClose:me,visible:ee,style:V,dismissible:g,showFrigadeBranding:$},ot.createElement(pe,{appearance:d}),ot.createElement(er,{appearance:d,steps:D,selectedStep:J,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:n,setShowModal:ke,onDismiss:x,showPagination:P,customFormElements:l,allowBackNavigation:b,validationHandler:v,onFormDataChange:B,showFooter:u,prefillData:O,updateUrlOnPageChange:T,repeatable:C}))}return o==="modal"&&S!=="center"?ot.createElement(jo,{appearance:d,onClose:me,visible:ee,modalPosition:S},ot.createElement(pe,{appearance:d}),ot.createElement(er,{appearance:d,steps:D,selectedStep:J,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:n,setShowModal:ke,onDismiss:x,showPagination:P,customFormElements:l,allowBackNavigation:b,validationHandler:v,onFormDataChange:B,showFooter:u,prefillData:O,updateUrlOnPageChange:T,repeatable:C})):ot.createElement(ot.Fragment,null,ot.createElement(pe,{appearance:d}),ot.createElement(er,{appearance:d,steps:D,selectedStep:J,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:n,setShowModal:ke,onDismiss:x,showPagination:P,customFormElements:l,allowBackNavigation:b,validationHandler:v,onFormDataChange:B,showFooter:u,prefillData:O,updateUrlOnPageChange:T,repeatable:C}))},yn=Cn;import{useCallback as Wr,useContext as Xp,useEffect as Qp}from"react";function zr(){let{organizationId:e,userId:t,setOrganizationId:o}=Xp(Q),{mutateUserFlowState:i}=De(),{config:n,apiUrl:r}=Ze(),l=jt(),{verifySDKInitiated:p}=Gt();function d(g,y){return`frigade-user-group-registered-${g}-${y}`}Qp(()=>{if(t&&e){if(t.startsWith(Kt))return;let g=d(t,e);localStorage.getItem(g)||(l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})})),localStorage.setItem(g,"true"))}},[t,e]);let s=Wr(g=>M(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 y={foreignUserId:t,foreignUserGroupId:e,properties:g};yield l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify(y)})),i()}),[e,t,n,i]),m=Wr((g,y)=>M(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 C={foreignUserId:t,foreignUserGroupId:e,events:[{event:g,properties:y}]};yield l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify(C)})),i()}),[e,t,n,i]),c=Wr((g,y)=>M(this,null,function*(){if(p())if(y){let S=d(t,g);localStorage.setItem(S,"true"),o(g);let C={foreignUserId:t,foreignUserGroupId:g,properties:y};yield l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify(C)})),i()}else o(g)}),[t,n,i]);return{organizationId:e,setOrganizationId:o,setOrganizationIdWithProperties:c,addPropertiesToOrganization:s,trackEventForOrganization:m}}var Sn="frigade-xFrigade_guestUserId",Po="frigade-xFrigade_userId",bn=({})=>{let{setFlowResponses:e}=xo(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=De(),{userId:n,setUserId:r}=Co(),[l,p]=ko(n),{getFlowStatus:d}=R(),{flows:s,userProperties:m,setIsNewGuestUser:c,flowResponses:g}=Zp(Q),[y,S]=ko([]),[C,x]=ko([]),{organizationId:P}=zr(),[b,v]=ko(P),[$,B]=ko(!1);Rt(()=>{if(!o&&t)for(let k=0;k<t.length;k++){let I=t[k],N=s.find(A=>A.slug===(I==null?void 0:I.flowId));if(N&&I&&I.shouldTrigger===!0&&N.type=="FORM"&&N.triggerType==="AUTOMATIC"&&!C.includes(N.slug)){setTimeout(()=>{u(I.flowId)},500);break}}},[o,t]),Rt(()=>{g.length>0&&i()},[g]),Rt(()=>{$||(B(!0),i())},[o,B]);function u(k){let I=s.find(N=>N.slug===k);I&&I.triggerType==="AUTOMATIC"&&!C.includes(I.slug)&&(x([...C,I.slug]),S([I]))}function O(){if(!n){let k=localStorage.getItem(Po);if(k){r(k);return}let I=localStorage.getItem(Sn);if(I){r(I);return}c(!0);let N=Kt+Rp();try{localStorage.setItem(Sn,N)}catch(A){console.log("Failed to save guest user id locally: Local storage unavailable",A)}r(A=>A||N)}}Rt(()=>{try{if(s){let k=[];s.forEach(I=>{if(I.data){let N=I.data.match(/"imageUri":"(.*?)"/g);N&&N.forEach(A=>{let H=A.replace('"imageUri":"',"").replace('"',"");if(k.includes(H))return;let U=new Image;U.src=H,k.push(H)})}})}}catch(k){}},[s]),Rt(()=>{if(n!==l&&(e([]),i()),p(n),n&&!n.startsWith(Kt))try{localStorage.setItem(Po,n)}catch(k){console.log("Failed to save user id locally: Local storage available",k)}n===null&&setTimeout(()=>{n===null&&O()},50)},[n,s,m]),Rt(()=>{P!=b&&(v(P),e([]),i())},[P,b,v]);function T(){return Lt.createElement(Lt.Fragment,null,y.map(k=>d(k.slug)!==Me?null:Lt.createElement("span",{key:k.slug},Lt.createElement(yn,{flowId:k.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return Lt.createElement(Lt.Fragment,null,Lt.createElement(T,null))};var wn={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 ed(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(wn[o]){let n=wn[o].split("."),r=t;n.forEach((l,p)=>{r[l]||(r[l]=p===n.length-1?i:{}),r=r[l]})}}),t}function td(e){if(!e)return;let t=Ce({},e),o={};return Object.keys(t).forEach(i=>{let n=`.fr-${i}`;o[n]=t[i]}),o}function Tn(e){let{theme:t,styleOverrides:o}=e,i=ed(t),n=td(o);return{overrides:i,css:n}}import gd from"styled-components";import{compose as hd,variant as kn}from"styled-system";import Fn from"react";import od,{ThemeProvider as rd,useTheme as id}from"styled-components";import{border as nd,color as sd,compose as ld,get as ad,shadow as pd,space as dd,system as cd,typography as md}from"styled-system";var ud={width:{property:"width",scale:"sizes",transform:(e,t)=>ad(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},fd=od("div")(({css:e})=>e,ld(nd,sd,pd,dd,md,cd(ud))),vo=n=>{var r=n,{as:e,children:t,overrides:o}=r,i=Ie(r,["as","children","overrides"]);let l=id(),p={border:"none",boxSizing:"border-box",m:0,p:0},d=()=>Fn.createElement(fd,w(w({as:e},p),i),t);if(o!==void 0){let s=Ce(l,o);return Fn.createElement(rd,{theme:s},d())}return d()};var Bo={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"}},xd={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},Pn=gd(vo)(()=>({whiteSpace:"nowrap"}),hd(kn({scale:"components.Button",variants:"components.Button"}),kn({prop:"size",variants:xd})));import Cd from"styled-components";import{variant as yd,system as Sd}from"styled-system";var tr={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 vn=Cd(vo)(yd({scale:"components.Text",variants:"components.Text"}),Sd({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Bn=4,En="px",bd=20,wd=Object.fromEntries(Array.from(Array(bd+1),(e,t)=>t===0?[.5,`${.5*Bn}${En}`]:[t,`${t*Bn}${En}`])),eo={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"},or={colors:j(w({},eo),{neutral:{foreground:eo.gray300},primary:{background:eo.blue500,foreground:eo.white,inverted:eo.blue500},negative:{foreground:eo.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:wd,components:{Button:Bo,Text:tr}};var On="https://api.frigade.com",Q=Td({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:lt,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:On,readonly:!1,debug:!1});function Fd(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var kd=({publicApiKey:e,userId:t,organizationId:o,config:i,children:n})=>{var J,Y,de,we,Ne,ce;let[r,l]=je(t||null),[p,d]=je(o||null),[s,m]=je([]),[c,g]=je([]),[y,S]=je([]),[C,x]=je({}),[P,b]=je({}),[v,$]=je([]),[B,u]=je({}),[O,T]=je(!1),[k,I]=je(!1),[N,A]=je(!te(e)),H=(Z,D)=>{if(D==="_blank"){window.open(Z,"_blank");return}setTimeout(()=>{window.location.href=Z},50)},U={theme:w(w({},lt.theme),(Y=(J=i==null?void 0:i.defaultAppearance)==null?void 0:J.theme)!=null?Y:{}),styleOverrides:w(w({},lt.styleOverrides),(we=(de=i==null?void 0:i.defaultAppearance)==null?void 0:de.styleOverrides)!=null?we:{})};function te(Z){return!!(Z&&Z.length>10&&Z.substring(0,10)==="api_public")}rr(()=>{t&&l(t)},[t]),rr(()=>{r&&typeof window!="undefined"&&window.localStorage&&window.localStorage.getItem(Po)&&window.localStorage.getItem(Po)!==r&&Fd()},[r]),rr(()=>{o&&d(o)},[o]),rr(()=>{if(te(e))A(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),A(!0);return}},[e,A]);let X={publicApiKey:e,userId:r,setUserId:l,setFlows:m,flows:s,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:y,setFlowResponses:S,userProperties:C,setUserProperties:x,openFlowStates:P,setOpenFlowStates:b,completedFlowsToKeepOpenDuringSession:v,setCompletedFlowsToKeepOpenDuringSession:$,customVariables:B,setCustomVariables:u,isNewGuestUser:O,setIsNewGuestUser:T,hasActiveFullPageFlow:k,setHasActiveFullPageFlow:I,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:H,defaultAppearance:U,shouldGracefullyDegrade:N,setShouldGracefullyDegrade:A,apiUrl:i&&i.apiUrl?i.apiUrl:On,readonly:i&&i.readonly?i.readonly:!1,debug:i&&i.debug?i.debug:!1,flowDataOverrides:i&&i.__internal__?i.__internal__:void 0},{overrides:q}=Tn(U);return N?Eo.createElement(Q.Provider,{value:X},Eo.createElement(An,{theme:Ce(U.theme,or,q!=null?q:{},(Ne=i==null?void 0:i.theme)!=null?Ne:{})},n)):Eo.createElement(Q.Provider,{value:X},Eo.createElement(An,{theme:Ce(U.theme,or,q!=null?q:{},(ce=i==null?void 0:i.theme)!=null?ce:{})},n,Eo.createElement(bn,null)))};import hc from"react";import Se,{useEffect as mr,useState as il}from"react";import Je,{useState as Vd}from"react";import wt from"styled-components";import sr from"react";import $t from"react";import In from"styled-components";var Nn=In.span`
|
|
694
|
+
${e=>e.inlineStyles.map(([t,o])=>`.${yo}${t}.${yo}${t} { ${Object.entries(o).map(([i,n])=>typeof n=="object"?`${i} { ${Object.entries(n).map(([l,p])=>`${_o(l)}: ${p};`).join(" ")} }`:`${_o(i)}: ${n};`).join(" ")} }`).join(" ")}`;function pe({appearance:e}){if(!e||!e.styleOverrides)return Fo.createElement(Fo.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([o,i])=>typeof i=="object");return t.length===0?Fo.createElement(Fo.Fragment,null):Fo.createElement(Kp,{inlineStyles:t})}import{useEffect as qp,useState as Yp}from"react";function Ve(e,t=!0){let[o,i]=Yp(!1),{markStepStarted:n,isLoading:r,getFlowStatus:l,getFlowSteps:p,getCurrentStepIndex:d,targetingLogicShouldHideFlow:s,getFlow:m}=R(),c=p(e);function g(){return M(this,null,function*(){!o&&!r&&l(e)===Me&&s(m(e))===!1&&t&&c&&c.length>0&&(i(!0),yield n(e,c[d(e)].id))})}return qp(()=>{g()},[r,e,t]),{}}var Cn=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:n,customVariables:r,customFormElements:l,onComplete:p,appearance:d,hideOnFlowCompletion:s=!0,onStepCompletion:m,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:y=!1,modalPosition:S="center",repeatable:C=!1,onDismiss:x,showPagination:P=!1,allowBackNavigation:b=!1,validationHandler:v,showFrigadeBranding:$=!1,onFormDataChange:B,showFooter:u=!0,prefillData:O={},updateUrlOnPageChange:T=!1})=>{let{getFlow:k,getFlowSteps:I,isLoading:N,targetingLogicShouldHideFlow:A,getFlowStatus:H,getCurrentStepIndex:U,markFlowCompleted:te,markFlowNotStarted:X,markStepStarted:q}=R(),J=U(e),{mergeAppearanceWithDefault:Y}=ne(),[de,we]=Jp(null),{setOpenFlowState:Ne,getOpenFlowState:ce,hasOpenModals:Z}=Ee();Ve(e,i);let D=I(e);d=Y(d);let[ee,ke]=i!==void 0&&n!==void 0?[i,n]:[ce(e,!0),V=>Ne(e,V)],He=typeof window!="undefined"?window.location.hash:null;if(xn(()=>{var V;if(D&&D.length>0&&b){let z=typeof window!="undefined"&&((V=window==null?void 0:window.location)!=null&&V.hash)?window.location.hash.replace("#",""):"";if(D&&(D==null?void 0:D.length)>0){let L=-1;if(z){let W=z;L=D.findIndex(re=>re.id===W),de===z&&(L=-1)}L!==-1&&(we(z),q(e,D[L].id))}}},[He]),xn(()=>{!N&&D&&D.length&&typeof window!="undefined"&&b&&(we(D[J].id),window.location.hash=D[J].id)},[N,J,D]),N)return null;let ue=k(e);if(!ue||A(ue)||!D||i!==void 0&&i===!1||H(e)===ie&&s&&!C||(o=="modal"||o=="corner-modal")&&Z(e))return null;let me=()=>{ke(!1),x&&x(),y===!0&&te(e)};if(S=="center"&&o==="modal"||o==="large-modal"){let V={padding:"24px"};return o==="large-modal"?(V.width="85%",V.height="90%",V.maxHeight="800px",V.minHeight="500px",V.padding="0"):V.width="400px",ot.createElement(Re,{appearance:d,onClose:me,visible:ee,style:V,dismissible:g,showFrigadeBranding:$},ot.createElement(pe,{appearance:d}),ot.createElement(er,{appearance:d,steps:D,selectedStep:J,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:n,setShowModal:ke,onDismiss:x,showPagination:P,customFormElements:l,allowBackNavigation:b,validationHandler:v,onFormDataChange:B,showFooter:u,prefillData:O,updateUrlOnPageChange:T,repeatable:C}))}return o==="modal"&&S!=="center"?ot.createElement(jo,{appearance:d,onClose:me,visible:ee,modalPosition:S},ot.createElement(pe,{appearance:d}),ot.createElement(er,{appearance:d,steps:D,selectedStep:J,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:n,setShowModal:ke,onDismiss:x,showPagination:P,customFormElements:l,allowBackNavigation:b,validationHandler:v,onFormDataChange:B,showFooter:u,prefillData:O,updateUrlOnPageChange:T,repeatable:C})):ot.createElement(ot.Fragment,null,ot.createElement(pe,{appearance:d}),ot.createElement(er,{appearance:d,steps:D,selectedStep:J,customStepTypes:t,customVariables:r,onButtonClick:c,onStepCompletion:m,flowId:e,type:o,hideOnFlowCompletion:s,onComplete:p,setVisible:n,setShowModal:ke,onDismiss:x,showPagination:P,customFormElements:l,allowBackNavigation:b,validationHandler:v,onFormDataChange:B,showFooter:u,prefillData:O,updateUrlOnPageChange:T,repeatable:C}))},yn=Cn;import{useCallback as Wr,useContext as Xp,useEffect as Qp}from"react";function zr(){let{organizationId:e,userId:t,setOrganizationId:o}=Xp(Q),{mutateUserFlowState:i}=De(),{config:n,apiUrl:r}=Ze(),l=jt(),{verifySDKInitiated:p}=Gt();function d(g,y){return`frigade-user-group-registered-${g}-${y}`}Qp(()=>{if(t&&e){if(t.startsWith(Kt))return;let g=d(t,e);localStorage.getItem(g)||(l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})})),localStorage.setItem(g,"true"))}},[t,e]);let s=Wr(g=>M(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 y={foreignUserId:t,foreignUserGroupId:e,properties:g};yield l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify(y)})),i()}),[e,t,n,i]),m=Wr((g,y)=>M(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 C={foreignUserId:t,foreignUserGroupId:e,events:[{event:g,properties:y}]};yield l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify(C)})),i()}),[e,t,n,i]),c=Wr((g,y)=>M(this,null,function*(){if(p())if(y){let S=d(t,g);localStorage.setItem(S,"true"),o(g);let C={foreignUserId:t,foreignUserGroupId:g,properties:y};yield l(`${r}userGroups`,j(w({},n),{method:"POST",body:JSON.stringify(C)})),i()}else o(g)}),[t,n,i]);return{organizationId:e,setOrganizationId:o,setOrganizationIdWithProperties:c,addPropertiesToOrganization:s,trackEventForOrganization:m}}var Sn="frigade-xFrigade_guestUserId",Po="frigade-xFrigade_userId",bn=({})=>{let{setFlowResponses:e}=xo(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=De(),{userId:n,setUserId:r}=Co(),[l,p]=ko(n),{getFlowStatus:d}=R(),{flows:s,userProperties:m,setIsNewGuestUser:c,flowResponses:g}=Zp(Q),[y,S]=ko([]),[C,x]=ko([]),{organizationId:P}=zr(),[b,v]=ko(P),[$,B]=ko(!1);Rt(()=>{if(!o&&t)for(let k=0;k<t.length;k++){let I=t[k],N=s.find(A=>A.slug===(I==null?void 0:I.flowId));if(N&&I&&I.shouldTrigger===!0&&N.type=="FORM"&&N.triggerType==="AUTOMATIC"&&!C.includes(N.slug)){setTimeout(()=>{u(I.flowId)},500);break}}},[o,t]),Rt(()=>{g.length>0&&i()},[g]),Rt(()=>{$||(B(!0),i())},[o,B]);function u(k){let I=s.find(N=>N.slug===k);I&&I.triggerType==="AUTOMATIC"&&!C.includes(I.slug)&&(x([...C,I.slug]),S([I]))}function O(){if(!n){let k=localStorage.getItem(Po);if(k){r(k);return}let I=localStorage.getItem(Sn);if(I){r(I);return}c(!0);let N=Kt+Rp();try{localStorage.setItem(Sn,N)}catch(A){console.log("Failed to save guest user id locally: Local storage unavailable",A)}r(A=>A||N)}}Rt(()=>{try{if(s){let k=[];s.forEach(I=>{if(I.data){let N=I.data.match(/"imageUri":"(.*?)"/g);N&&N.forEach(A=>{let H=A.replace('"imageUri":"',"").replace('"',"");if(k.includes(H))return;let U=new Image;U.src=H,k.push(H)})}})}}catch(k){}},[s]),Rt(()=>{if(n!==l&&(e([]),i()),p(n),n&&!n.startsWith(Kt))try{localStorage.setItem(Po,n)}catch(k){console.log("Failed to save user id locally: Local storage available",k)}n===null&&setTimeout(()=>{n===null&&O()},50)},[n,s,m]),Rt(()=>{P!=b&&(v(P),e([]),i())},[P,b,v]);function T(){return Lt.createElement(Lt.Fragment,null,y.map(k=>d(k.slug)!==Me?null:Lt.createElement("span",{key:k.slug},Lt.createElement(yn,{flowId:k.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return Lt.createElement(Lt.Fragment,null,Lt.createElement(T,null))};var wn={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 ed(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(wn[o]){let n=wn[o].split("."),r=t;n.forEach((l,p)=>{r[l]||(r[l]=p===n.length-1?i:{}),r=r[l]})}}),t}function td(e){if(!e)return;let t=Ce({},e),o={};return Object.keys(t).forEach(i=>{let n=`.fr-${i}`;o[n]=t[i]}),o}function Tn(e){let{theme:t,styleOverrides:o}=e,i=ed(t),n=td(o);return{overrides:i,css:n}}import gd from"styled-components";import{compose as hd,variant as kn}from"styled-system";import Fn from"react";import od,{ThemeProvider as rd,useTheme as id}from"styled-components";import{border as nd,color as sd,compose as ld,get as ad,shadow as pd,space as dd,system as cd,typography as md}from"styled-system";var ud={width:{property:"width",scale:"sizes",transform:(e,t)=>ad(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},fd=od("div")(({css:e})=>e,ld(nd,sd,pd,dd,md,cd(ud))),vo=n=>{var r=n,{as:e,children:t,overrides:o}=r,i=Ie(r,["as","children","overrides"]);let l=id(),p={border:"none",boxSizing:"border-box",m:0,p:0},d=()=>Fn.createElement(fd,w(w({as:e},p),i),t);if(o!==void 0){let s=Ce(l,o);return Fn.createElement(rd,{theme:s},d())}return d()};var Bo={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"}},xd={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},Pn=gd(vo)(()=>({whiteSpace:"nowrap"}),hd(kn({scale:"components.Button",variants:"components.Button"}),kn({prop:"size",variants:xd})));import Cd from"styled-components";import{variant as yd,system as Sd}from"styled-system";var tr={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 vn=Cd(vo)(yd({scale:"components.Text",variants:"components.Text"}),Sd({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Bn=4,En="px",bd=20,wd=Object.fromEntries(Array.from(Array(bd+1),(e,t)=>t===0?[.5,`${.5*Bn}${En}`]:[t,`${t*Bn}${En}`])),eo={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"},or={colors:j(w({},eo),{neutral:{foreground:eo.gray300},primary:{background:eo.blue500,foreground:eo.white,inverted:eo.blue500},negative:{foreground:eo.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:wd,components:{Button:Bo,Text:tr}};var On="https://api.frigade.com",Q=Td({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:lt,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:On,readonly:!1,debug:!1});function Fd(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var kd=({publicApiKey:e,userId:t,organizationId:o,config:i,children:n})=>{var J,Y,de,we,Ne,ce;let[r,l]=je(t||null),[p,d]=je(o||null),[s,m]=je([]),[c,g]=je([]),[y,S]=je([]),[C,x]=je({}),[P,b]=je({}),[v,$]=je([]),[B,u]=je({}),[O,T]=je(!1),[k,I]=je(!1),[N,A]=je(!te(e)),H=(Z,D)=>{if(D==="_blank"){window.open(Z,"_blank");return}setTimeout(()=>{window.location.href=Z},50)},U={theme:w(w({},lt.theme),(Y=(J=i==null?void 0:i.defaultAppearance)==null?void 0:J.theme)!=null?Y:{}),styleOverrides:w(w({},lt.styleOverrides),(we=(de=i==null?void 0:i.defaultAppearance)==null?void 0:de.styleOverrides)!=null?we:{})};function te(Z){return!!(Z&&Z.length>10&&Z.substring(0,10)==="api_public")}rr(()=>{t&&l(t)},[t]),rr(()=>{r&&typeof window!="undefined"&&window.localStorage&&window.localStorage.getItem(Po)&&window.localStorage.getItem(Po)!==r&&Fd()},[r]),rr(()=>{o&&d(o)},[o]),rr(()=>{if(te(e))A(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),A(!0);return}},[e,A]);let X={publicApiKey:e,userId:r,setUserId:l,setFlows:m,flows:s,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:y,setFlowResponses:S,userProperties:C,setUserProperties:x,openFlowStates:P,setOpenFlowStates:b,completedFlowsToKeepOpenDuringSession:v,setCompletedFlowsToKeepOpenDuringSession:$,customVariables:B,setCustomVariables:u,isNewGuestUser:O,setIsNewGuestUser:T,hasActiveFullPageFlow:k,setHasActiveFullPageFlow:I,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:H,defaultAppearance:U,shouldGracefullyDegrade:N,setShouldGracefullyDegrade:A,apiUrl:i&&i.apiUrl?i.apiUrl:On,readonly:i&&i.readonly?i.readonly:!1,debug:i&&i.debug?i.debug:!1,flowDataOverrides:i&&i.__internal__?i.__internal__:void 0},{overrides:q}=Tn(U);return N?Eo.createElement(Q.Provider,{value:X},Eo.createElement(An,{theme:Ce(U.theme,or,q!=null?q:{},(Ne=i==null?void 0:i.theme)!=null?Ne:{})},n)):Eo.createElement(Q.Provider,{value:X},Eo.createElement(An,{theme:Ce(U.theme,or,q!=null?q:{},(ce=i==null?void 0:i.theme)!=null?ce:{})},n,Eo.createElement(bn,null)))};import hc from"react";import Se,{useEffect as mr,useState as il}from"react";import Je,{useState as Vd}from"react";import wt from"styled-components";import sr from"react";import $t from"react";import In from"styled-components";var Nn=In.span`
|
|
695
695
|
font-weight: 600;
|
|
696
696
|
font-size: 14px;
|
|
697
697
|
font-style: normal;
|