@frigade/react 1.36.7 → 1.36.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var ia=Object.defineProperty,na=Object.defineProperties;var sa=Object.getOwnPropertyDescriptors;var Ao=Object.getOwnPropertySymbols;var si=Object.prototype.hasOwnProperty,li=Object.prototype.propertyIsEnumerable;var ni=(e,t,o)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,b=(e,t)=>{for(var o in t||(t={}))si.call(t,o)&&ni(e,o,t[o]);if(Ao)for(var o of Ao(t))li.call(t,o)&&ni(e,o,t[o]);return e},j=(e,t)=>na(e,sa(t));var ai=e=>typeof e=="symbol"?e:e+"",Le=(e,t)=>{var o={};for(var i in e)si.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Ao)for(var i of Ao(e))t.indexOf(i)<0&&li.call(e,i)&&(o[i]=e[i]);return o};var U=(e,t,o)=>new Promise((i,n)=>{var r=d=>{try{p(o.next(d))}catch(l){n(l)}},s=d=>{try{p(o.throw(d))}catch(l){n(l)}},p=d=>d.done?i(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});import Ot,{createContext as wd,useEffect as Jo,useState as Ge}from"react";import{ThemeProvider as Td}from"styled-components";import At,{useContext as Qp,useEffect as Qt,useState as So}from"react";import{useCallback as Pt,useContext as ya,useEffect as Sa}from"react";import ar,{useMemo as di}from"react";var pi="1.36.7 ";var nt="NOT_STARTED_STEP",ee="COMPLETED_FLOW",Oo="ABORTED_FLOW",kt="STARTED_FLOW",Ue="NOT_STARTED_FLOW",$e="COMPLETED_STEP",po="STARTED_STEP";function Xe(){let{publicApiKey:e,userId:t,apiUrl:o}=ar.useContext(Y);return{config:di(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":pi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:di(()=>`${o}/v1/public/`,[o])}}var la="frigade-last-call-at-",aa="frigade-last-call-data-";function Ht(){let{shouldGracefullyDegrade:e,readonly:t}=ar.useContext(Y);return(o,i)=>U(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return _t();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),_t();let n=la+o,r=aa+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 l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return _t()}typeof window!="undefined"&&(window.localStorage.setItem(n,new Date().toISOString()),window.localStorage.setItem(r,i.body))}let s;try{s=yield fetch(o,i)}catch(p){return _t(p)}return s?s.ok?s:_t(s.statusText):_t()})}function _t(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Vt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=ar.useContext(Y);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}import{useContext as ha,useState as ci}from"react";import{useContext as da,useEffect as ca,useState as ma}from"react";import ua from"swr";import{useContext as pa}from"react";function Oe(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=pa(Y);function r(c,f=!1){var C;return(C=e[c])!=null?C:f}function s(c,f){t(C=>j(b({},C),{[c]:f}))}function p(c){t(f=>{let x=f,{[c]:C}=x,w=Le(x,[ai(c)]);return b({},w)})}function d(c){n.includes(c)||i(f=>[...f,c])}function l(c){return n.includes(c)}function m(c){return Object.entries(e).some(([f,C])=>C&&f!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}import fa from"swr/immutable";import co from"core-js-pure/actual/structured-clone";function pr(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(!pr(t)||!pr(o))throw new Error("deepmerge can only merge Objects");let i=co(t);return Object.entries(o).forEach(([n,r])=>{pr(r)?i[n]!==void 0?Object.assign(i,{[n]:Ce(i[n],co(r))}):Object.assign(i,{[n]:co(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...co(r)]}):Object.assign(i,{[n]:co(r)}):Object.assign(i,{[n]:r})}),i}var ga="unknown";function We(){let{config:e,apiUrl:t}=Xe(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:s,readonly:p}=da(Y),{resetOpenFlowState:d}=Oe(),[l,m]=ma(!1),c={data:r.map(S=>({flowId:S.id,flowState:ee,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},f=S=>fetch(S,e).then(F=>{if(F.ok)return F.json();throw new Error("Failed to fetch user flow states")}).catch(F=>(console.log(`Error fetching ${S}: ${F}. Will gracefully degrade and hide Frigade`),s(!0),c)),C=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:w,isLoading:x,mutate:g,error:A}=p?fa(C,f):ua(C,f,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),T=w==null?void 0:w.data;ca(()=>{!l&&!x&&T&&m(!0)},[T,l,x]);function k(S){return U(this,null,function*(){if(T&&!p){let F=T.find(M=>M.flowId===S);F&&F.flowState!==ee&&(F.flowState=ee),yield g(Promise.resolve(Ce(w,{data:T})),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}function P(S,F,M){return U(this,null,function*(){if(T){let O=T.find(I=>I.flowId===S);O&&(O.stepStates[F]=M,O.flowState=kt),yield g(Promise.resolve(Ce(w,{data:T})),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}function v(S,F,M){return U(this,null,function*(){if(T){let O=T.find(I=>I.flowId===S);O&&(O.lastStepId=F,O.stepStates[F]=M,O.flowState=kt),yield g(Ce(w,{data:T}),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}function u(S){return U(this,null,function*(){if(T){let F=T.find(M=>M.flowId===S);F&&F.flowState!==Ue&&(F.flowState=Ue,F.lastStepId=ga,Object.keys(F.stepStates).forEach(M=>{F.stepStates[M].actionType=nt,F.stepStates[M].createdAt=new Date().toISOString()}),yield g(Ce(w,{data:T}),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1}),d(S))}})}function L(S,F,M){return U(this,null,function*(){if(T){let O=T.find(I=>I.flowId===S);O&&(O.stepStates[F]=M),yield g(Promise.resolve(Ce(w,{data:T})),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:T,isLoadingUserFlowStateData:!l,mutateUserFlowState:g,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:P,optimisticallyMarkStepNotStarted:L,optimisticallyMarkStepStarted:v,error:A}}function mo(){let{config:e,apiUrl:t}=Xe(),{userFlowStatesData:o,mutateUserFlowState:i}=We(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=ha(Y),[d,l]=ci(new Set),[m,c]=ci(new Set),f=Ht();function C(g){let A=JSON.stringify(g);if(d.has(A))return null;d.add(A),l(d),m.add(g),c(m);let T=s==null?void 0:s.find(k=>k.flowSlug===g.flowSlug&&k.stepId===g.stepId&&k.actionType===g.actionType&&k.createdAt===g.createdAt);return f(`${t}flowResponses`,j(b({},e),{method:"POST",body:A})).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+g.stepId+". Will retry again later."),r([...n,g])):T||p(P=>[...P!=null?P:[],g])})}function w(g){return U(this,null,function*(){g.foreignUserId&&(g.actionType===kt||g.actionType===Ue?yield C(g):g.actionType===ee?yield C(g):g.actionType===po?yield C(g):g.actionType===$e?yield C(g):g.actionType===Oo?yield C(g):g.actionType===nt&&(yield C(g)))})}function x(){let g=[];return o==null||o.forEach(A=>{if(A&&A.stepStates&&Object.keys(A.stepStates).length!==0)for(let T in A.stepStates){let k=A.stepStates[T];g.push({foreignUserId:A.foreignUserId,flowSlug:A.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...g,...s]}return{addResponse:w,setFlowResponses:p,getFlowResponses:x}}import ba from"swr";var xa=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,mi=e=>{let t=xa.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=Ca(i,"'","");r.startsWith("flow_")&&(o=r)}),o},Ca=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function dr(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var cr=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(cr||{});function J(){let{config:e,apiUrl:t}=Xe(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:f,readonly:C}=ya(Y),w={data:[]},{verifySDKInitiated:x}=Vt(),{addResponse:g,getFlowResponses:A}=mo(),T=h=>fetch(h,e).then(y=>y.ok?y.json():(console.log(`Error fetching ${h} (${y.status}): ${y.statusText}. Will gracefully degrade and hide Frigade`),f(!0),w)).catch(y=>(console.log(`Error fetching ${h}: ${y}. Will gracefully degrade and hide Frigade`),f(!0),w)),{mutateUserFlowState:k,userFlowStatesData:P,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:u,optimisticallyMarkFlowNotStarted:L,optimisticallyMarkStepCompleted:S,optimisticallyMarkStepNotStarted:F,optimisticallyMarkStepStarted:M}=We(),{data:O,error:I,isLoading:V}=ba(s?`${t}flows${C?"?readonly=true":""}`:null,T,{keepPreviousData:!0});Sa(()=>{if(I){console.error(I);return}O&&O.data&&i(O.data)},[O,I]);function W(h){if(V)return null;let y=o.find(B=>B.slug===h);return!y&&o.length>0&&!v&&!V?(console.log(`Flow with id ${h} not found`),null):(y==null?void 0:y.active)===!1&&!C?null:y}function q(h){var N,ne;if(!W(h))return[];let y=W(h).data;return y?(y=X(y),((ne=(N=dr(y))==null?void 0:N.data)!=null?ne:[]).map(Q=>{let De=R(Q);return j(b({handleSecondaryButtonClick:()=>{Q.skippable===!0&&ie(h,Q.id,{skipped:!0})}},Q),{complete:Pe(h,Q.id)===$e||De>=1,started:Pe(h,Q.id)===po||Pe(h,Q.id)===$e,currentlyActive:P==null?void 0:P.some(ht=>ht.flowId==h&&ht.lastStepId===Q.id),blocked:Ae(h,Q.id),hidden:be(h,Q.id),handlePrimaryButtonClick:()=>{(!Q.completionCriteria&&(Q.autoMarkCompleted||Q.autoMarkCompleted===void 0)||Q.completionCriteria&&Q.autoMarkCompleted===!0)&&ie(h,Q.id)},progress:De})}).filter(Q=>Q.hidden!==!0)):[]}function X(h){return h.replaceAll(/\${(.*?)}/g,(y,B)=>p[B]===void 0?"":String(p[B]).replace(/[\u00A0-\u9999<>\&]/g,function(N){return"&#"+N.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 ce(h){var B;if(!W(h))return[];let y=W(h).data;return y?(y=X(y),(B=JSON.parse(y))!=null?B:{}):[]}function H(h,y){d(B=>j(b({},B),{[h]:y}))}function ae(h){!v&&!V&&h&&JSON.stringify(p)!=JSON.stringify(b(b({},p),h))&&Object.keys(h).forEach(y=>{H(y,h[y])})}let fe=Pt((h,y,B)=>U(this,null,function*(){if(!x())return;let N={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:y,actionType:po,data:B!=null?B:{},createdAt:new Date,blocked:!1,hidden:!1};xe(N)&&(yield M(h,y,N),g(N))}),[n,r,P]),Te=Pt((h,y,B)=>U(this,null,function*(){if(!x())return;let N={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:y,actionType:nt,data:B!=null?B:{},createdAt:new Date,blocked:!1,hidden:!1};xe(N)&&(yield F(h,y,N),g(N))}),[n,r,P]),ie=Pt((h,y,B)=>U(this,null,function*(){if(!x())return;let N={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:y,actionType:$e,data:B!=null?B:{},createdAt:new Date,blocked:!1,hidden:!1};xe(N)&&(yield S(h,y,N),g(N))}),[n,r,P]),Z=Pt((h,y)=>U(this,null,function*(){if(!x()||me(h)===Ue)return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Ue,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};yield L(h),xe(B)&&g(B)}),[n,r,P]),he=Pt((h,y)=>U(this,null,function*(){if(!x())return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:kt,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};xe(B)&&g(B)}),[n,r,P]),D=Pt((h,y)=>U(this,null,function*(){if(!x())return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:ee,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};xe(B)&&(yield u(h),g(B))}),[n,r,P]),Se=Pt((h,y)=>U(this,null,function*(){if(!x())return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Oo,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};xe(B)&&(yield u(h),g(B))}),[n,r,P]);function xe(h){var y;if(P===void 0)return!1;if(P){let B=P.find(N=>N.flowId===h.flowSlug);if(h.actionType===nt&&(!(B!=null&&B.stepStates[h.stepId])||B.stepStates[h.stepId].actionType===nt))return!1;if(B&&((y=B.stepStates[h.stepId])==null?void 0:y.actionType)===h.actionType){if(h.actionType===$e&&(!h.data||JSON.stringify(h.data)===JSON.stringify({})))return!1;let N=Object.keys(B.stepStates).sort((ne,Q)=>{let De=new Date(B.stepStates[ne].createdAt),ht=new Date(B.stepStates[Q].createdAt);return De.getTime()-ht.getTime()});if(B.stepStates[N[N.length-1]].actionType===h.actionType&&h.stepId===N[N.length-1])return!1}if(B&&B.flowState===ee&&h.actionType===ee)return!1}return!0}function Pe(h,y){let B=_(h,y);return v?null:B?B.actionType:nt}function Ae(h,y){let B=_(h,y);return B?B.blocked:!1}function be(h,y){let B=_(h,y);return B?B.hidden:!1}function _(h,y){var N;if(v)return null;let B=P==null?void 0:P.find(ne=>ne.flowId===h);return!B||!B.stepStates[y]?null:(N=B.stepStates[y])!=null?N:null}function $(h){var B,N;if(v||!P)return null;if(me(h)===Ue)return(B=q(h)[0])!=null?B:null;let y=(N=P.find(ne=>ne.flowId===h))==null?void 0:N.lastStepId;return y?q(h).find(ne=>ne.id===y):null}function z(h){var N;let y=$(h);if(!y)return 0;let B=(N=q(h).findIndex(ne=>ne.id===y.id))!=null?N:0;return Pe(h,y.id)===$e&&B<q(h).length-1?B+1:B}function R(h){if(!h.completionCriteria)return;let y=mi(h.completionCriteria);if(y===null)return;let B=rt(y),N=it(y);return N===0?void 0:B/N}function me(h){let y=P==null?void 0:P.find(B=>B.flowId===h);return y?y.flowState:null}function rt(h){let y=q(h);return y.length===0?0:y.filter(N=>Pe(h,N.id)===$e).length}function it(h){return q(h).length}function Wt(h){let y=o.find(B=>B.slug===h);return y?dr(y.data):null}function Ke(h){if(C)return!1;if(v)return!0;if(h!=null&&h.targetingLogic&&P){let y=P.find(B=>B.flowId===h.slug);if(y)return y.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&n&&n.startsWith("guest_"))}function gt(h){return!Ke(W(h))}function Je(){n&&k()}function zt(){return o}return{getAllFlows:zt,getFlow:W,getFlowData:Wt,isLoading:v||V,getStepStatus:Pe,getFlowSteps:q,getCurrentStepIndex:z,markStepStarted:fe,markStepCompleted:ie,markFlowNotStarted:Z,markFlowStarted:he,markFlowCompleted:D,markFlowAborted:Se,markStepNotStarted:Te,getFlowStatus:me,getNumberOfStepsCompleted:rt,getNumberOfSteps:it,targetingLogicShouldHideFlow:Ke,setCustomVariable:H,updateCustomVariables:ae,customVariables:p,getStepOptionalProgress:R,getFlowMetadata:ce,isStepBlocked:Ae,isStepHidden:be,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:gt,refresh:Je}}import{useCallback as mr,useContext as wa,useEffect as Ta}from"react";var jt="guest_";function uo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=wa(Y),{config:r,apiUrl:s}=Xe(),{mutateUserFlowState:p}=We(),d=Ht(),{verifySDKInitiated:l}=Vt();function m(w){return`frigade-user-registered-${w}`}Ta(()=>{if(e&&!t){if(e.startsWith(jt))return;let w=m(e);localStorage.getItem(w)||(d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(w,"true"))}},[e,n,t]);let c=mr(w=>U(this,null,function*(){if(!l())return;let x={foreignId:e,properties:w};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(x)})),i(g=>b(b({},g),w)),p()}),[e,r,n,p]),f=mr((w,x)=>U(this,null,function*(){if(!l())return;let A={foreignId:e,events:[{event:w,properties:x}]};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(A)})),p()}),[e,r,p]),C=mr((w,x)=>U(this,null,function*(){if(l())if(x){let g=m(w);localStorage.setItem(g,"true"),o(w);let A={foreignId:w,properties:x};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(A)})),i(T=>b(b({},T),x)),p()}else o(w)}),[r,n,p]);return{userId:e,setUserId:o,setUserIdWithProperties:C,addPropertiesToUser:c,trackEventForUser:f}}import{v4 as Zp}from"uuid";import et,{useEffect as hn,useState as Yp}from"react";import qe,{useEffect as hr,useState as Na}from"react";import $o from"styled-components";import Fa from"react";import ka from"styled-components";var ui="fr-",fo="cfr-";function a(e,t){let o=`${ui}${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+" "+fo+e}return o}function E(e){if(!e.className||e.className.indexOf(fo)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(ui)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function No(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ve(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${No(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Fe(...e){return e.filter(Boolean).join(" ")}function go(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Pa=ka.div`
|
|
2
|
+
var ia=Object.defineProperty,na=Object.defineProperties;var sa=Object.getOwnPropertyDescriptors;var Ao=Object.getOwnPropertySymbols;var si=Object.prototype.hasOwnProperty,li=Object.prototype.propertyIsEnumerable;var ni=(e,t,o)=>t in e?ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,b=(e,t)=>{for(var o in t||(t={}))si.call(t,o)&&ni(e,o,t[o]);if(Ao)for(var o of Ao(t))li.call(t,o)&&ni(e,o,t[o]);return e},j=(e,t)=>na(e,sa(t));var ai=e=>typeof e=="symbol"?e:e+"",Le=(e,t)=>{var o={};for(var i in e)si.call(e,i)&&t.indexOf(i)<0&&(o[i]=e[i]);if(e!=null&&Ao)for(var i of Ao(e))t.indexOf(i)<0&&li.call(e,i)&&(o[i]=e[i]);return o};var U=(e,t,o)=>new Promise((i,n)=>{var r=d=>{try{p(o.next(d))}catch(l){n(l)}},s=d=>{try{p(o.throw(d))}catch(l){n(l)}},p=d=>d.done?i(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});import Ot,{createContext as wd,useEffect as Jo,useState as Ge}from"react";import{ThemeProvider as Td}from"styled-components";import At,{useContext as Qp,useEffect as Qt,useState as So}from"react";import{useCallback as Pt,useContext as ya,useEffect as Sa}from"react";import ar,{useMemo as di}from"react";var pi="1.36.8 ";var nt="NOT_STARTED_STEP",ee="COMPLETED_FLOW",Oo="ABORTED_FLOW",kt="STARTED_FLOW",Ue="NOT_STARTED_FLOW",$e="COMPLETED_STEP",po="STARTED_STEP";function Xe(){let{publicApiKey:e,userId:t,apiUrl:o}=ar.useContext(Y);return{config:di(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":pi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:di(()=>`${o}/v1/public/`,[o])}}var la="frigade-last-call-at-",aa="frigade-last-call-data-";function Ht(){let{shouldGracefullyDegrade:e,readonly:t}=ar.useContext(Y);return(o,i)=>U(this,null,function*(){if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return _t();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),_t();let n=la+o,r=aa+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 l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return _t()}typeof window!="undefined"&&(window.localStorage.setItem(n,new Date().toISOString()),window.localStorage.setItem(r,i.body))}let s;try{s=yield fetch(o,i)}catch(p){return _t(p)}return s?s.ok?s:_t(s.statusText):_t()})}function _t(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Vt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=ar.useContext(Y);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}import{useContext as ha,useState as ci}from"react";import{useContext as da,useEffect as ca,useState as ma}from"react";import ua from"swr";import{useContext as pa}from"react";function Oe(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=pa(Y);function r(c,f=!1){var C;return(C=e[c])!=null?C:f}function s(c,f){t(C=>j(b({},C),{[c]:f}))}function p(c){t(f=>{let x=f,{[c]:C}=x,w=Le(x,[ai(c)]);return b({},w)})}function d(c){n.includes(c)||i(f=>[...f,c])}function l(c){return n.includes(c)}function m(c){return Object.entries(e).some(([f,C])=>C&&f!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}import fa from"swr/immutable";import co from"core-js-pure/actual/structured-clone";function pr(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(!pr(t)||!pr(o))throw new Error("deepmerge can only merge Objects");let i=co(t);return Object.entries(o).forEach(([n,r])=>{pr(r)?i[n]!==void 0?Object.assign(i,{[n]:Ce(i[n],co(r))}):Object.assign(i,{[n]:co(r)}):Array.isArray(r)?i[n]!==void 0?Object.assign(i,{[n]:[...i[n],...co(r)]}):Object.assign(i,{[n]:co(r)}):Object.assign(i,{[n]:r})}),i}var ga="unknown";function We(){let{config:e,apiUrl:t}=Xe(),{publicApiKey:o,userId:i,organizationId:n,flows:r,setShouldGracefullyDegrade:s,readonly:p}=da(Y),{resetOpenFlowState:d}=Oe(),[l,m]=ma(!1),c={data:r.map(S=>({flowId:S.id,flowState:ee,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},f=S=>fetch(S,e).then(F=>{if(F.ok)return F.json();throw new Error("Failed to fetch user flow states")}).catch(F=>(console.log(`Error fetching ${S}: ${F}. Will gracefully degrade and hide Frigade`),s(!0),c)),C=o&&r&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${n?`&foreignUserGroupId=${encodeURIComponent(n)}`:""}`:null,{data:w,isLoading:x,mutate:g,error:A}=p?fa(C,f):ua(C,f,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),T=w==null?void 0:w.data;ca(()=>{!l&&!x&&T&&m(!0)},[T,l,x]);function k(S){return U(this,null,function*(){if(T&&!p){let F=T.find(M=>M.flowId===S);F&&F.flowState!==ee&&(F.flowState=ee),yield g(Promise.resolve(Ce(w,{data:T})),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}function P(S,F,M){return U(this,null,function*(){if(T){let O=T.find(I=>I.flowId===S);O&&(O.stepStates[F]=M,O.flowState=kt),yield g(Promise.resolve(Ce(w,{data:T})),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}function v(S,F,M){return U(this,null,function*(){if(T){let O=T.find(I=>I.flowId===S);O&&(O.lastStepId=F,O.stepStates[F]=M,O.flowState=kt),yield g(Ce(w,{data:T}),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}function u(S){return U(this,null,function*(){if(T){let F=T.find(M=>M.flowId===S);F&&F.flowState!==Ue&&(F.flowState=Ue,F.lastStepId=ga,Object.keys(F.stepStates).forEach(M=>{F.stepStates[M].actionType=nt,F.stepStates[M].createdAt=new Date().toISOString()}),yield g(Ce(w,{data:T}),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1}),d(S))}})}function L(S,F,M){return U(this,null,function*(){if(T){let O=T.find(I=>I.flowId===S);O&&(O.stepStates[F]=M),yield g(Promise.resolve(Ce(w,{data:T})),{optimisticData:Ce(w,{data:T}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:T,isLoadingUserFlowStateData:!l,mutateUserFlowState:g,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:P,optimisticallyMarkStepNotStarted:L,optimisticallyMarkStepStarted:v,error:A}}function mo(){let{config:e,apiUrl:t}=Xe(),{userFlowStatesData:o,mutateUserFlowState:i}=We(),{failedFlowResponses:n,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=ha(Y),[d,l]=ci(new Set),[m,c]=ci(new Set),f=Ht();function C(g){let A=JSON.stringify(g);if(d.has(A))return null;d.add(A),l(d),m.add(g),c(m);let T=s==null?void 0:s.find(k=>k.flowSlug===g.flowSlug&&k.stepId===g.stepId&&k.actionType===g.actionType&&k.createdAt===g.createdAt);return f(`${t}flowResponses`,j(b({},e),{method:"POST",body:A})).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+g.stepId+". Will retry again later."),r([...n,g])):T||p(P=>[...P!=null?P:[],g])})}function w(g){return U(this,null,function*(){g.foreignUserId&&(g.actionType===kt||g.actionType===Ue?yield C(g):g.actionType===ee?yield C(g):g.actionType===po?yield C(g):g.actionType===$e?yield C(g):g.actionType===Oo?yield C(g):g.actionType===nt&&(yield C(g)))})}function x(){let g=[];return o==null||o.forEach(A=>{if(A&&A.stepStates&&Object.keys(A.stepStates).length!==0)for(let T in A.stepStates){let k=A.stepStates[T];g.push({foreignUserId:A.foreignUserId,flowSlug:A.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...g,...s]}return{addResponse:w,setFlowResponses:p,getFlowResponses:x}}import ba from"swr";var xa=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,mi=e=>{let t=xa.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=Ca(i,"'","");r.startsWith("flow_")&&(o=r)}),o},Ca=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function dr(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var cr=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(cr||{});function J(){let{config:e,apiUrl:t}=Xe(),{flows:o,setFlows:i,userId:n,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:f,readonly:C}=ya(Y),w={data:[]},{verifySDKInitiated:x}=Vt(),{addResponse:g,getFlowResponses:A}=mo(),T=h=>fetch(h,e).then(y=>y.ok?y.json():(console.log(`Error fetching ${h} (${y.status}): ${y.statusText}. Will gracefully degrade and hide Frigade`),f(!0),w)).catch(y=>(console.log(`Error fetching ${h}: ${y}. Will gracefully degrade and hide Frigade`),f(!0),w)),{mutateUserFlowState:k,userFlowStatesData:P,isLoadingUserFlowStateData:v,optimisticallyMarkFlowCompleted:u,optimisticallyMarkFlowNotStarted:L,optimisticallyMarkStepCompleted:S,optimisticallyMarkStepNotStarted:F,optimisticallyMarkStepStarted:M}=We(),{data:O,error:I,isLoading:V}=ba(s?`${t}flows${C?"?readonly=true":""}`:null,T,{keepPreviousData:!0});Sa(()=>{if(I){console.error(I);return}O&&O.data&&i(O.data)},[O,I]);function W(h){if(V)return null;let y=o.find(B=>B.slug===h);return!y&&o.length>0&&!v&&!V?(console.log(`Flow with id ${h} not found`),null):(y==null?void 0:y.active)===!1&&!C?null:y}function q(h){var N,ne;if(!W(h))return[];let y=W(h).data;return y?(y=X(y),((ne=(N=dr(y))==null?void 0:N.data)!=null?ne:[]).map(Q=>{let De=R(Q);return j(b({handleSecondaryButtonClick:()=>{Q.skippable===!0&&ie(h,Q.id,{skipped:!0})}},Q),{complete:Pe(h,Q.id)===$e||De>=1,started:Pe(h,Q.id)===po||Pe(h,Q.id)===$e,currentlyActive:P==null?void 0:P.some(ht=>ht.flowId==h&&ht.lastStepId===Q.id),blocked:Ae(h,Q.id),hidden:be(h,Q.id),handlePrimaryButtonClick:()=>{(!Q.completionCriteria&&(Q.autoMarkCompleted||Q.autoMarkCompleted===void 0)||Q.completionCriteria&&Q.autoMarkCompleted===!0)&&ie(h,Q.id)},progress:De})}).filter(Q=>Q.hidden!==!0)):[]}function X(h){return h.replaceAll(/\${(.*?)}/g,(y,B)=>p[B]===void 0?"":String(p[B]).replace(/[\u00A0-\u9999<>\&]/g,function(N){return"&#"+N.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 ce(h){var B;if(!W(h))return[];let y=W(h).data;return y?(y=X(y),(B=JSON.parse(y))!=null?B:{}):[]}function H(h,y){d(B=>j(b({},B),{[h]:y}))}function ae(h){!v&&!V&&h&&JSON.stringify(p)!=JSON.stringify(b(b({},p),h))&&Object.keys(h).forEach(y=>{H(y,h[y])})}let fe=Pt((h,y,B)=>U(this,null,function*(){if(!x())return;let N={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:y,actionType:po,data:B!=null?B:{},createdAt:new Date,blocked:!1,hidden:!1};xe(N)&&(yield M(h,y,N),g(N))}),[n,r,P]),Te=Pt((h,y,B)=>U(this,null,function*(){if(!x())return;let N={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:y,actionType:nt,data:B!=null?B:{},createdAt:new Date,blocked:!1,hidden:!1};xe(N)&&(yield F(h,y,N),g(N))}),[n,r,P]),ie=Pt((h,y,B)=>U(this,null,function*(){if(!x())return;let N={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:y,actionType:$e,data:B!=null?B:{},createdAt:new Date,blocked:!1,hidden:!1};xe(N)&&(yield S(h,y,N),g(N))}),[n,r,P]),Z=Pt((h,y)=>U(this,null,function*(){if(!x()||me(h)===Ue)return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Ue,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};yield L(h),xe(B)&&g(B)}),[n,r,P]),he=Pt((h,y)=>U(this,null,function*(){if(!x())return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:kt,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};xe(B)&&g(B)}),[n,r,P]),D=Pt((h,y)=>U(this,null,function*(){if(!x())return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:ee,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};xe(B)&&(yield u(h),g(B))}),[n,r,P]),Se=Pt((h,y)=>U(this,null,function*(){if(!x())return;let B={foreignUserId:n,foreignUserGroupId:r!=null?r:null,flowSlug:h,stepId:"unknown",actionType:Oo,data:y!=null?y:{},createdAt:new Date,blocked:!1,hidden:!1};xe(B)&&(yield u(h),g(B))}),[n,r,P]);function xe(h){var y;if(P===void 0)return!1;if(P){let B=P.find(N=>N.flowId===h.flowSlug);if(h.actionType===nt&&(!(B!=null&&B.stepStates[h.stepId])||B.stepStates[h.stepId].actionType===nt))return!1;if(B&&((y=B.stepStates[h.stepId])==null?void 0:y.actionType)===h.actionType){if(h.actionType===$e&&(!h.data||JSON.stringify(h.data)===JSON.stringify({})))return!1;let N=Object.keys(B.stepStates).sort((ne,Q)=>{let De=new Date(B.stepStates[ne].createdAt),ht=new Date(B.stepStates[Q].createdAt);return De.getTime()-ht.getTime()});if(B.stepStates[N[N.length-1]].actionType===h.actionType&&h.stepId===N[N.length-1])return!1}if(B&&B.flowState===ee&&h.actionType===ee)return!1}return!0}function Pe(h,y){let B=_(h,y);return v?null:B?B.actionType:nt}function Ae(h,y){let B=_(h,y);return B?B.blocked:!1}function be(h,y){let B=_(h,y);return B?B.hidden:!1}function _(h,y){var N;if(v)return null;let B=P==null?void 0:P.find(ne=>ne.flowId===h);return!B||!B.stepStates[y]?null:(N=B.stepStates[y])!=null?N:null}function $(h){var B,N;if(v||!P)return null;if(me(h)===Ue)return(B=q(h)[0])!=null?B:null;let y=(N=P.find(ne=>ne.flowId===h))==null?void 0:N.lastStepId;return y?q(h).find(ne=>ne.id===y):null}function z(h){var N;let y=$(h);if(!y)return 0;let B=(N=q(h).findIndex(ne=>ne.id===y.id))!=null?N:0;return Pe(h,y.id)===$e&&B<q(h).length-1?B+1:B}function R(h){if(!h.completionCriteria)return;let y=mi(h.completionCriteria);if(y===null)return;let B=rt(y),N=it(y);return N===0?void 0:B/N}function me(h){let y=P==null?void 0:P.find(B=>B.flowId===h);return y?y.flowState:null}function rt(h){let y=q(h);return y.length===0?0:y.filter(N=>Pe(h,N.id)===$e).length}function it(h){return q(h).length}function Wt(h){let y=o.find(B=>B.slug===h);return y?dr(y.data):null}function Ke(h){if(C)return!1;if(v)return!0;if(h!=null&&h.targetingLogic&&P){let y=P.find(B=>B.flowId===h.slug);if(y)return y.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&n&&n.startsWith("guest_"))}function gt(h){return!Ke(W(h))}function Je(){n&&k()}function zt(){return o}return{getAllFlows:zt,getFlow:W,getFlowData:Wt,isLoading:v||V,getStepStatus:Pe,getFlowSteps:q,getCurrentStepIndex:z,markStepStarted:fe,markStepCompleted:ie,markFlowNotStarted:Z,markFlowStarted:he,markFlowCompleted:D,markFlowAborted:Se,markStepNotStarted:Te,getFlowStatus:me,getNumberOfStepsCompleted:rt,getNumberOfSteps:it,targetingLogicShouldHideFlow:Ke,setCustomVariable:H,updateCustomVariables:ae,customVariables:p,getStepOptionalProgress:R,getFlowMetadata:ce,isStepBlocked:Ae,isStepHidden:be,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:gt,refresh:Je}}import{useCallback as mr,useContext as wa,useEffect as Ta}from"react";var jt="guest_";function uo(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=wa(Y),{config:r,apiUrl:s}=Xe(),{mutateUserFlowState:p}=We(),d=Ht(),{verifySDKInitiated:l}=Vt();function m(w){return`frigade-user-registered-${w}`}Ta(()=>{if(e&&!t){if(e.startsWith(jt))return;let w=m(e);localStorage.getItem(w)||(d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(w,"true"))}},[e,n,t]);let c=mr(w=>U(this,null,function*(){if(!l())return;let x={foreignId:e,properties:w};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(x)})),i(g=>b(b({},g),w)),p()}),[e,r,n,p]),f=mr((w,x)=>U(this,null,function*(){if(!l())return;let A={foreignId:e,events:[{event:w,properties:x}]};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(A)})),p()}),[e,r,p]),C=mr((w,x)=>U(this,null,function*(){if(l())if(x){let g=m(w);localStorage.setItem(g,"true"),o(w);let A={foreignId:w,properties:x};yield d(`${s}users`,j(b({},r),{method:"POST",body:JSON.stringify(A)})),i(T=>b(b({},T),x)),p()}else o(w)}),[r,n,p]);return{userId:e,setUserId:o,setUserIdWithProperties:C,addPropertiesToUser:c,trackEventForUser:f}}import{v4 as Zp}from"uuid";import et,{useEffect as hn,useState as Yp}from"react";import qe,{useEffect as hr,useState as Na}from"react";import $o from"styled-components";import Fa from"react";import ka from"styled-components";var ui="fr-",fo="cfr-";function a(e,t){let o=`${ui}${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+" "+fo+e}return o}function E(e){if(!e.className||e.className.indexOf(fo)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(ui)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function No(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ve(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${No(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Fe(...e){return e.filter(Boolean).join(" ")}function go(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Pa=ka.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -1717,7 +1717,7 @@ ${e=>e.inlineStyles.map(([t,o])=>`.${fo}${t}.${fo}${t} { ${Object.entries(o).map
|
|
|
1717
1717
|
opacity: 0.8;
|
|
1718
1718
|
}
|
|
1719
1719
|
}
|
|
1720
|
-
`;var Yc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:s,type:p="modal"})=>{let{getFlow:d,markFlowCompleted:l,markStepCompleted:m,getNumberOfStepsCompleted:c,isLoading:f,targetingLogicShouldHideFlow:C,updateCustomVariables:w,getFlowSteps:x,getFlowStatus:g,getFlowMetadata:A}=J(),{primaryCTAClickSideEffects:T}=de(),{mergeAppearanceWithDefault:k}=te(),[P,v]=re.useState(null),[u,L]=re.useState(""),S=A(e),{hasOpenModals:F,setKeepCompletedFlowOpenDuringSession:M,shouldKeepCompletedFlowOpenDuringSession:O}=Oe();if(je(e),n=k(n),Kc(()=>{w(o)},[o,f]),f)return null;let I=d(e);if(!I||C(I)||g(e)===ee||c(e)===1&&!O(e)||F())return null;let W=x(e)[c(e)];function q(){var H,ae;return re.createElement(re.Fragment,null,re.createElement(Zr,null,re.createElement(Ie,{size:"large",appearance:n,title:W.title,subtitle:W.subtitle})),re.createElement(Xr,{className:a("npsNumberButtonContainer",n),appearance:n},Array.from(Array(10).keys()).map(fe=>re.createElement(_l,{className:a("npsNumberButton",n),selected:P===fe+1,key:fe,onClick:()=>U(this,null,function*(){M(e),v(fe+1),yield m(e,W.id,{score:fe+1})}),appearance:n},fe+1))),re.createElement(Hl,{appearance:n},re.createElement(Qr,{appearance:n},(H=S==null?void 0:S.negativeLabel)!=null?H:"Not likely at all"),re.createElement(Qr,{appearance:n},(ae=S==null?void 0:S.positiveLabel)!=null?ae:"Extremely likely")))}function X(){var H;return re.createElement(re.Fragment,null,re.createElement(Zr,null,re.createElement(Ie,{appearance:n,title:(H=W.title)!=null?H:"Why did you choose this score?",size:"large"})),re.createElement(Vl,{appearance:n,value:u,onChange:ae=>{L(ae.target.value)},
|
|
1720
|
+
`;var Yc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:s,type:p="modal"})=>{let{getFlow:d,markFlowCompleted:l,markStepCompleted:m,getNumberOfStepsCompleted:c,isLoading:f,targetingLogicShouldHideFlow:C,updateCustomVariables:w,getFlowSteps:x,getFlowStatus:g,getFlowMetadata:A}=J(),{primaryCTAClickSideEffects:T}=de(),{mergeAppearanceWithDefault:k}=te(),[P,v]=re.useState(null),[u,L]=re.useState(""),S=A(e),{hasOpenModals:F,setKeepCompletedFlowOpenDuringSession:M,shouldKeepCompletedFlowOpenDuringSession:O}=Oe();if(je(e),n=k(n),Kc(()=>{w(o)},[o,f]),f)return null;let I=d(e);if(!I||C(I)||g(e)===ee||c(e)===1&&!O(e)||F())return null;let W=x(e)[c(e)];function q(){var H,ae;return re.createElement(re.Fragment,null,re.createElement(Zr,null,re.createElement(Ie,{size:"large",appearance:n,title:W.title,subtitle:W.subtitle})),re.createElement(Xr,{className:a("npsNumberButtonContainer",n),appearance:n},Array.from(Array(10).keys()).map(fe=>re.createElement(_l,{className:a("npsNumberButton",n),selected:P===fe+1,key:fe,onClick:()=>U(this,null,function*(){M(e),v(fe+1),yield m(e,W.id,{score:fe+1})}),appearance:n},fe+1))),re.createElement(Hl,{appearance:n},re.createElement(Qr,{appearance:n},(H=S==null?void 0:S.negativeLabel)!=null?H:"Not likely at all"),re.createElement(Qr,{appearance:n},(ae=S==null?void 0:S.positiveLabel)!=null?ae:"Extremely likely")))}function X(){var H;return re.createElement(re.Fragment,null,re.createElement(Zr,null,re.createElement(Ie,{appearance:n,title:(H=W.title)!=null?H:"Why did you choose this score?",size:"large"})),re.createElement(Vl,{appearance:n,value:u,onChange:ae=>{L(ae.target.value)},placeholder:"Add your optional feedback here..."}),re.createElement(Xr,{appearance:n,className:a("npsNumberButtonContainer",n)},re.createElement(oe,{size:"large",withMargin:!1,onClick:()=>U(this,null,function*(){yield l(e),i&&i(W,1,"primary")}),appearance:n,title:W.secondaryButtonTitle||"Skip",secondary:!0}),re.createElement(oe,{size:"large",withMargin:!1,onClick:()=>U(this,null,function*(){yield m(e,W.id,{feedbackText:u}),yield l(e),i&&i(W,1,"primary")}),appearance:n,title:W.primaryButtonTitle||"Submit"})))}function ce(){return c(e)>=2?null:re.createElement(re.Fragment,null,re.createElement(se,{appearance:n}),re.createElement(zl,{appearance:n,className:Fe(a("npsSurveyContainer",n),r),style:s,type:p},re.createElement(jl,{onClick:()=>U(this,null,function*(){yield l(e),t&&t()}),className:a("npsSurveyDismissButton",n)},re.createElement(Ne,null)),c(e)==0&&q(),c(e)==1&&X()))}return p==="inline"?ce():re.createElement(qc,null,ce())};import Ee,{useEffect as Qc}from"react";import Ut from"styled-components";var Gl=Ut.div`
|
|
1721
1721
|
${e=>E(e)} {
|
|
1722
1722
|
display: flex;
|
|
1723
1723
|
flex-direction: column;
|