@frigade/react 1.32.17 → 1.32.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/lib/index.js +7 -7
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +6 -6
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var Gs=Object.create;var fo=Object.defineProperty;var js=Object.getOwnPropertyDescriptor;var Vs=Object.getOwnPropertyNames;var qs=Object.getPrototypeOf,Ks=Object.prototype.hasOwnProperty;var Ys=(e,t)=>{for(var o in t)fo(e,o,{get:t[o],enumerable:!0})},pr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Vs(t))!Ks.call(e,r)&&r!==o&&fo(e,r,{get:()=>t[r],enumerable:!(i=js(t,r))||i.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Gs(qs(e)):{},pr(t||!e||!e.__esModule?fo(o,"default",{value:e,enumerable:!0}):o,e)),Xs=e=>pr(fo({},"__esModule",{value:!0}),e);var La={};Ys(La,{FrigadeBanner:()=>zs,FrigadeChecklist:()=>$o,FrigadeEmbeddedTip:()=>Ms,FrigadeForm:()=>Ko,FrigadeGuide:()=>ns,FrigadeHeroChecklist:()=>Vn,FrigadeProgressBadge:()=>rs,FrigadeProvider:()=>mi,FrigadeSupportWidget:()=>Bs,FrigadeTour:()=>ys,useFlowOpens:()=>Ie,useFlowResponses:()=>It,useFlows:()=>Z,useOrganization:()=>Ao,useUser:()=>Co});module.exports=Xs(La);var Y=f(require("react")),di=require("styled-components");var ae=f(require("react"));var Be=require("react");var kt=f(require("react"));var dr="1.32.17 ";var Te="https://api.frigade.com/v1/public/",Ee="NOT_STARTED_STEP",ie="COMPLETED_FLOW",ho="ABORTED_FLOW",ht="STARTED_FLOW",ze="NOT_STARTED_FLOW",Ne="COMPLETED_STEP",xo="STARTED_STEP";function Ge(){let{publicApiKey:e,userId:t}=kt.default.useContext(K);return{config:(0,kt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":dr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function Pt(){let{shouldGracefullyDegrade:e}=kt.default.useContext(K);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),go();let i;try{i=await fetch(t,o)}catch(r){return go(r)}return i?i.ok?i:go(i.statusText):go()}}function go(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function vt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=kt.default.useContext(K);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var Jt=require("react");var Et=require("react");var mr=f(require("swr"));var cr=require("react");function Ie(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o}=(0,cr.useContext)(K);function i(p,d=!1){return e[p]??d}function r(p,d){t(l=>({...l,[p]:d}))}function n(p){t(d=>{let{[p]:l,...x}=d;return{...x}})}function s(){return Object.values(e).some(p=>p)||o}return{getOpenFlowState:i,setOpenFlowState:r,resetOpenFlowState:n,hasOpenModals:s}}var Js="unknown";function Ae(){let{config:e}=Ge(),{publicApiKey:t,userId:o,flows:i,setShouldGracefullyDegrade:r}=(0,Et.useContext)(K),{resetOpenFlowState:n}=Ie(),[s,p]=(0,Et.useState)(!1),d={data:i.map(v=>({flowId:v.id,flowState:ie,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=v=>fetch(v,e).then(c=>{if(c.ok)return c.json();throw new Error("Failed to fetch user flow states")}).catch(c=>(console.log(`Error fetching ${v}: ${c}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:x,isLoading:m,mutate:u,error:w}=(0,mr.default)(t&&i&&o?`${Te}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),C=x==null?void 0:x.data;(0,Et.useEffect)(()=>{!s&&!m&&C&&p(!0)},[C,s,m]);async function S(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==ie&&(c.flowState=ie),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function y(v,c,g){if(C){let T=C.find(I=>I.flowId===v);T&&(T.stepStates[c]=g,T.flowState=ht),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function A(v,c,g){if(C){let T=C.find(I=>I.flowId===v);T&&(T.lastStepId=c,T.stepStates[c]=g,T.flowState=ht),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function k(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==ze&&(c.flowState=ze,c.lastStepId=Js,Object.keys(c.stepStates).forEach(g=>{c.stepStates[g].actionType=Ee,c.stepStates[g].createdAt=new Date().toISOString()}),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1}),n(v))}}async function O(v,c){if(C){let g=C.find(T=>T.flowId===v);g&&g.stepStates[c]!==Ee&&(g.stepStates[c]=Ee),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:C,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:S,optimisticallyMarkFlowNotStarted:k,optimisticallyMarkStepCompleted:y,optimisticallyMarkStepNotStarted:O,optimisticallyMarkStepStarted:A,error:w}}function It(){let{config:e}=Ge(),{userFlowStatesData:t,mutateUserFlowState:o}=Ae(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:n,setFlowResponses:s}=(0,Jt.useContext)(K),[p,d]=(0,Jt.useState)(new Set),[l,x]=(0,Jt.useState)(new Set),m=Pt();function u(S){let y=JSON.stringify(S);if(p.has(y))return null;p.add(y),d(p),l.add(S),x(l);let A=n==null?void 0:n.find(k=>k.flowSlug===S.flowSlug&&k.stepId===S.stepId&&k.actionType===S.actionType&&k.createdAt===S.createdAt);return m(`${Te}flowResponses`,{...e,method:"POST",body:y}).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+S.stepId+". Will retry again later."),r([...i,S])):A||s(O=>[...O??[],S])})}async function w(S){S.foreignUserId&&(S.actionType===ht||S.actionType===ze?await u(S):S.actionType===ie?await u(S):S.actionType===xo?await u(S):S.actionType===Ne?await u(S):S.actionType===ho?await u(S):S.actionType===Ee&&await u(S))}function C(){let S=[];return t==null||t.forEach(y=>{if(y&&y.stepStates&&Object.keys(y.stepStates).length!==0)for(let A in y.stepStates){let k=y.stepStates[A];S.push({foreignUserId:y.foreignUserId,flowSlug:y.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...S,...n]}return{addResponse:w,setFlowResponses:s,getFlowResponses:C}}var fr=f(require("swr"));var Qs=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,ur=e=>{let t=Qs.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Zs(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Zs=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e}=Ge(),{flows:t,setFlows:o,userId:i,publicApiKey:r,customVariables:n,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:x}=(0,Be.useContext)(K),m={data:[]},{verifySDKInitiated:u}=vt(),{addResponse:w,getFlowResponses:C}=It(),S=h=>fetch(h,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${h} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),x(!0),m)).catch(b=>(console.log(`Error fetching ${h}: ${b}. Will gracefully degrade and hide Frigade`),x(!0),m)),{userFlowStatesData:y,isLoadingUserFlowStateData:A,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:O,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:c,optimisticallyMarkStepStarted:g}=Ae(),{data:T,error:I,isLoading:_}=(0,fr.default)(r?`${Te}flows`:null,S,{keepPreviousData:!0});(0,Be.useEffect)(()=>{if(I){console.error(I);return}T&&T.data&&(T.data=o(T.data))},[T,I]);function W(h){let b=t.find(P=>P.slug===h);return!b&&t.length>0&&!A&&!_?(console.log(`Flow with slug ${h} not found`),null):b.active===!1?null:b}function z(h){var E;if(!W(h))return[];let b=W(h).data;return b?(b=L(b),(((E=JSON.parse(b))==null?void 0:E.data)??[]).map(R=>{let gt=et(R);return{handleSecondaryButtonClick:()=>{R.skippable===!0&&$(h,R.id,{skipped:!0})},...R,complete:D(h,R.id)===Ne||gt>=1,blocked:ce(h,R.id),hidden:Re(h,R.id),handlePrimaryButtonClick:()=>{(!R.completionCriteria&&(R.autoMarkCompleted||R.autoMarkCompleted===void 0)||R.completionCriteria&&R.autoMarkCompleted===!0)&&$(h,R.id)},progress:gt}}).filter(R=>R.hidden!==!0)):[]}function L(h){return h.replace(/\${(.*?)}/g,(b,P)=>n[P]!==void 0?String(n[P]):"")}function G(h){if(!W(h))return[];let b=W(h).data;return b?(b=L(b),JSON.parse(b)??{}):[]}function M(h,b){s(P=>({...P,[h]:b}))}function Q(h){!A&&!_&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(b=>{M(b,h[b])})}let j=(0,Be.useCallback)(async(h,b,P)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:b,actionType:xo,data:P??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(E)&&(await g(h,b,E),w(E))},[i,y]),V=(0,Be.useCallback)(async(h,b,P)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:b,actionType:Ee,data:P??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(E)&&(await c(h,b),w(E))},[i,y]),$=(0,Be.useCallback)(async(h,b,P)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:b,actionType:Ne,data:P??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(E)&&(await v(h,b,E),w(E))},[i,y]),re=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ze,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await O(h),Ce(P)&&w(P)},[i,y]),q=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ht,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(P)&&w(P)},[i,y]),ee=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(P)&&(await k(h),w(P))},[i,y]),lt=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ho,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(P)&&(await k(h),w(P))},[i,y]);function Ce(h){var b;if(!y&&h.actionType===Ee)return!1;if(y){let P=y.find(E=>E.flowId===h.flowSlug);if(h.actionType===Ee&&(!(P!=null&&P.stepStates[h.stepId])||P.stepStates[h.stepId].actionType===Ee)||P&&((b=P.stepStates[h.stepId])==null?void 0:b.actionType)===h.actionType)return!1}return!0}function D(h,b){let P=Fe(h,b);return A?null:P?P.actionType:Ee}function ce(h,b){let P=Fe(h,b);return P?P.blocked:!1}function Re(h,b){let P=Fe(h,b);return P?P.hidden:!1}function Fe(h,b){if(A)return null;let P=y==null?void 0:y.find(E=>E.flowId===h);return!P||!P.stepStates[b]?null:P.stepStates[b]??null}function ve(h){var P;if(A||!y)return null;if(tt(h)===ze)return z(h)[0]??null;let b=(P=y.find(E=>E.flowId===h))==null?void 0:P.lastStepId;return b?z(h).find(E=>E.id===b):null}function ye(h){let b=ve(h);if(!b)return 0;let P=z(h).findIndex(E=>E.id===b.id)??0;return D(h,b.id)===Ne&&P<z(h).length-1?P+1:P}function et(h){if(!h.completionCriteria)return;let b=ur(h.completionCriteria);if(b===null)return;let P=ft(b),E=H(b);return E===0?void 0:P/E}function tt(h){let b=y==null?void 0:y.find(P=>P.flowId===h);return b?b.flowState:null}function ft(h){let b=z(h);return b.length===0?0:b.filter(E=>D(h,E.id)===Ne).length}function H(h){return z(h).length}function We(h){return JSON.parse(t.find(b=>b.slug===h).data)}function He(h){if(A)return!0;if(h!=null&&h.targetingLogic&&y){let b=y.find(P=>P.flowId===h.slug);if(b)return b.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&i&&i.startsWith("guest_"))}function _o(h){return!He(W(h))}return{getFlow:W,getFlowData:We,isLoading:A||_,getStepStatus:D,getFlowSteps:z,getCurrentStepIndex:ye,markStepStarted:j,markStepCompleted:$,markFlowNotStarted:re,markFlowStarted:q,markFlowCompleted:ee,markFlowAborted:lt,markStepNotStarted:V,getFlowStatus:tt,getNumberOfStepsCompleted:ft,getNumberOfSteps:H,targetingLogicShouldHideFlow:He,setCustomVariable:M,updateCustomVariables:Q,customVariables:n,getStepOptionalProgress:et,getFlowMetadata:G,isStepBlocked:ce,isStepHidden:Re,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:_o}}var xt=require("react");var At="guest_";function Co(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,xt.useContext)(K),{config:n}=Ge(),{mutateUserFlowState:s}=Ae(),p=Pt(),{verifySDKInitiated:d}=vt();(0,xt.useEffect)(()=>{if(e&&!t){if(e.startsWith(At))return;let m=`frigade-user-registered-${e}`;localStorage.getItem(m)||(p(`${Te}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(m,"true"))}},[e,r,t]);let l=(0,xt.useCallback)(async m=>{d();let u={foreignId:e,properties:m};await p(`${Te}users`,{...n,method:"POST",body:JSON.stringify(u)}),i(w=>({...w,...m})),s()},[e,n,r,s]),x=(0,xt.useCallback)(async(m,u)=>{d();let C={foreignId:e,events:[{event:m,properties:u}]};await p(`${Te}users`,{...n,method:"POST",body:JSON.stringify(C)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:x}}var ai=require("uuid");var be=f(require("react"));var Oe=f(require("react")),Rt=f(require("styled-components"));var xr=f(require("react")),Cr=f(require("styled-components"));var gr="fr-",Qt="cfr-";function a(e,t){let o=`${gr}${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+" "+Qt+e}return o}function F(e){if(!e.className||e.className.indexOf(Qt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(gr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Wo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ct(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Wo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ke(...e){return e.filter(Boolean).join(" ")}function hr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Rs=Cr.default.div`
|
|
2
|
+
var Gs=Object.create;var fo=Object.defineProperty;var js=Object.getOwnPropertyDescriptor;var Vs=Object.getOwnPropertyNames;var qs=Object.getPrototypeOf,Ks=Object.prototype.hasOwnProperty;var Ys=(e,t)=>{for(var o in t)fo(e,o,{get:t[o],enumerable:!0})},pr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Vs(t))!Ks.call(e,r)&&r!==o&&fo(e,r,{get:()=>t[r],enumerable:!(i=js(t,r))||i.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Gs(qs(e)):{},pr(t||!e||!e.__esModule?fo(o,"default",{value:e,enumerable:!0}):o,e)),Xs=e=>pr(fo({},"__esModule",{value:!0}),e);var La={};Ys(La,{FrigadeBanner:()=>zs,FrigadeChecklist:()=>$o,FrigadeEmbeddedTip:()=>Ms,FrigadeForm:()=>Ko,FrigadeGuide:()=>ns,FrigadeHeroChecklist:()=>Vn,FrigadeProgressBadge:()=>rs,FrigadeProvider:()=>mi,FrigadeSupportWidget:()=>Bs,FrigadeTour:()=>ys,useFlowOpens:()=>Ie,useFlowResponses:()=>It,useFlows:()=>Z,useOrganization:()=>Ao,useUser:()=>Co});module.exports=Xs(La);var Y=f(require("react")),di=require("styled-components");var ae=f(require("react"));var Be=require("react");var kt=f(require("react"));var dr="1.32.18 ";var Te="https://api.frigade.com/v1/public/",Ee="NOT_STARTED_STEP",ie="COMPLETED_FLOW",ho="ABORTED_FLOW",ht="STARTED_FLOW",ze="NOT_STARTED_FLOW",Ne="COMPLETED_STEP",xo="STARTED_STEP";function Ge(){let{publicApiKey:e,userId:t}=kt.default.useContext(K);return{config:(0,kt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":dr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}function Pt(){let{shouldGracefullyDegrade:e}=kt.default.useContext(K);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),go();let i;try{i=await fetch(t,o)}catch(r){return go(r)}return i?i.ok?i:go(i.statusText):go()}}function go(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function vt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=kt.default.useContext(K);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var Jt=require("react");var Et=require("react");var mr=f(require("swr"));var cr=require("react");function Ie(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o}=(0,cr.useContext)(K);function i(p,d=!1){return e[p]??d}function r(p,d){t(l=>({...l,[p]:d}))}function n(p){t(d=>{let{[p]:l,...x}=d;return{...x}})}function s(){return Object.values(e).some(p=>p)||o}return{getOpenFlowState:i,setOpenFlowState:r,resetOpenFlowState:n,hasOpenModals:s}}var Js="unknown";function Ae(){let{config:e}=Ge(),{publicApiKey:t,userId:o,flows:i,setShouldGracefullyDegrade:r}=(0,Et.useContext)(K),{resetOpenFlowState:n}=Ie(),[s,p]=(0,Et.useState)(!1),d={data:i.map(v=>({flowId:v.id,flowState:ie,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},l=v=>fetch(v,e).then(c=>{if(c.ok)return c.json();throw new Error("Failed to fetch user flow states")}).catch(c=>(console.log(`Error fetching ${v}: ${c}. Will gracefully degrade and hide Frigade`),r(!0),d)),{data:x,isLoading:m,mutate:u,error:w}=(0,mr.default)(t&&i&&o?`${Te}userFlowStates?foreignUserId=${encodeURIComponent(o)}`:null,l,{keepPreviousData:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),C=x==null?void 0:x.data;(0,Et.useEffect)(()=>{!s&&!m&&C&&p(!0)},[C,s,m]);async function S(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==ie&&(c.flowState=ie),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function y(v,c,g){if(C){let T=C.find(I=>I.flowId===v);T&&(T.stepStates[c]=g,T.flowState=ht),await u(Promise.resolve({...x,data:C}),{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function A(v,c,g){if(C){let T=C.find(I=>I.flowId===v);T&&(T.lastStepId=c,T.stepStates[c]=g,T.flowState=ht),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}async function k(v){if(C){let c=C.find(g=>g.flowId===v);c&&c.flowState!==ze&&(c.flowState=ze,c.lastStepId=Js,Object.keys(c.stepStates).forEach(g=>{c.stepStates[g].actionType=Ee,c.stepStates[g].createdAt=new Date().toISOString()}),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1}),n(v))}}async function O(v,c){if(C){let g=C.find(T=>T.flowId===v);g&&g.stepStates[c]!==Ee&&(g.stepStates[c]=Ee),await u({...x,data:C},{optimisticData:{...x,data:C},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:C,isLoadingUserFlowStateData:!s,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:S,optimisticallyMarkFlowNotStarted:k,optimisticallyMarkStepCompleted:y,optimisticallyMarkStepNotStarted:O,optimisticallyMarkStepStarted:A,error:w}}function It(){let{config:e}=Ge(),{userFlowStatesData:t,mutateUserFlowState:o}=Ae(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:n,setFlowResponses:s}=(0,Jt.useContext)(K),[p,d]=(0,Jt.useState)(new Set),[l,x]=(0,Jt.useState)(new Set),m=Pt();function u(S){let y=JSON.stringify(S);if(p.has(y))return null;p.add(y),d(p),l.add(S),x(l);let A=n==null?void 0:n.find(k=>k.flowSlug===S.flowSlug&&k.stepId===S.stepId&&k.actionType===S.actionType&&k.createdAt===S.createdAt);return m(`${Te}flowResponses`,{...e,method:"POST",body:y}).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+S.stepId+". Will retry again later."),r([...i,S])):A||s(O=>[...O??[],S])})}async function w(S){S.foreignUserId&&(S.actionType===ht||S.actionType===ze?await u(S):S.actionType===ie?await u(S):S.actionType===xo?await u(S):S.actionType===Ne?await u(S):S.actionType===ho?await u(S):S.actionType===Ee&&await u(S))}function C(){let S=[];return t==null||t.forEach(y=>{if(y&&y.stepStates&&Object.keys(y.stepStates).length!==0)for(let A in y.stepStates){let k=y.stepStates[A];S.push({foreignUserId:y.foreignUserId,flowSlug:y.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...S,...n]}return{addResponse:w,setFlowResponses:s,getFlowResponses:C}}var fr=f(require("swr"));var Qs=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,ur=e=>{let t=Qs.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Zs(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Zs=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e}=Ge(),{flows:t,setFlows:o,userId:i,publicApiKey:r,customVariables:n,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,setFlowResponses:l,setShouldGracefullyDegrade:x}=(0,Be.useContext)(K),m={data:[]},{verifySDKInitiated:u}=vt(),{addResponse:w,getFlowResponses:C}=It(),S=h=>fetch(h,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${h} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),x(!0),m)).catch(b=>(console.log(`Error fetching ${h}: ${b}. Will gracefully degrade and hide Frigade`),x(!0),m)),{userFlowStatesData:y,isLoadingUserFlowStateData:A,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:O,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:c,optimisticallyMarkStepStarted:g}=Ae(),{data:T,error:I,isLoading:$}=(0,fr.default)(r?`${Te}flows`:null,S,{keepPreviousData:!0});(0,Be.useEffect)(()=>{if(I){console.error(I);return}T&&T.data&&(T.data=o(T.data))},[T,I]);function W(h){if($)return null;let b=t.find(P=>P.slug===h);return!b&&t.length>0&&!A&&!$?(console.log(`Flow with slug ${h} not found`),null):(b==null?void 0:b.active)===!1?null:b}function z(h){var E;if(!W(h))return[];let b=W(h).data;return b?(b=L(b),(((E=JSON.parse(b))==null?void 0:E.data)??[]).map(R=>{let gt=et(R);return{handleSecondaryButtonClick:()=>{R.skippable===!0&&U(h,R.id,{skipped:!0})},...R,complete:D(h,R.id)===Ne||gt>=1,blocked:ce(h,R.id),hidden:Re(h,R.id),handlePrimaryButtonClick:()=>{(!R.completionCriteria&&(R.autoMarkCompleted||R.autoMarkCompleted===void 0)||R.completionCriteria&&R.autoMarkCompleted===!0)&&U(h,R.id)},progress:gt}}).filter(R=>R.hidden!==!0)):[]}function L(h){return h.replace(/\${(.*?)}/g,(b,P)=>n[P]!==void 0?String(n[P]):"")}function G(h){if(!W(h))return[];let b=W(h).data;return b?(b=L(b),JSON.parse(b)??{}):[]}function M(h,b){s(P=>({...P,[h]:b}))}function Q(h){!A&&!$&&h&&JSON.stringify(n)!=JSON.stringify({...n,...h})&&Object.keys(h).forEach(b=>{M(b,h[b])})}let j=(0,Be.useCallback)(async(h,b,P)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:b,actionType:xo,data:P??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(E)&&(await g(h,b,E),w(E))},[i,y]),V=(0,Be.useCallback)(async(h,b,P)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:b,actionType:Ee,data:P??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(E)&&(await c(h,b),w(E))},[i,y]),U=(0,Be.useCallback)(async(h,b,P)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:b,actionType:Ne,data:P??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(E)&&(await v(h,b,E),w(E))},[i,y]),re=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ze,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await O(h),Ce(P)&&w(P)},[i,y]),q=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ht,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(P)&&w(P)},[i,y]),ee=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(P)&&(await k(h),w(P))},[i,y]),lt=(0,Be.useCallback)(async(h,b)=>{u();let P={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:ho,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};Ce(P)&&(await k(h),w(P))},[i,y]);function Ce(h){var b;if(!y&&h.actionType===Ee)return!1;if(y){let P=y.find(E=>E.flowId===h.flowSlug);if(h.actionType===Ee&&(!(P!=null&&P.stepStates[h.stepId])||P.stepStates[h.stepId].actionType===Ee)||P&&((b=P.stepStates[h.stepId])==null?void 0:b.actionType)===h.actionType)return!1}return!0}function D(h,b){let P=Fe(h,b);return A?null:P?P.actionType:Ee}function ce(h,b){let P=Fe(h,b);return P?P.blocked:!1}function Re(h,b){let P=Fe(h,b);return P?P.hidden:!1}function Fe(h,b){if(A)return null;let P=y==null?void 0:y.find(E=>E.flowId===h);return!P||!P.stepStates[b]?null:P.stepStates[b]??null}function ve(h){var P;if(A||!y)return null;if(tt(h)===ze)return z(h)[0]??null;let b=(P=y.find(E=>E.flowId===h))==null?void 0:P.lastStepId;return b?z(h).find(E=>E.id===b):null}function ye(h){let b=ve(h);if(!b)return 0;let P=z(h).findIndex(E=>E.id===b.id)??0;return D(h,b.id)===Ne&&P<z(h).length-1?P+1:P}function et(h){if(!h.completionCriteria)return;let b=ur(h.completionCriteria);if(b===null)return;let P=ft(b),E=H(b);return E===0?void 0:P/E}function tt(h){let b=y==null?void 0:y.find(P=>P.flowId===h);return b?b.flowState:null}function ft(h){let b=z(h);return b.length===0?0:b.filter(E=>D(h,E.id)===Ne).length}function H(h){return z(h).length}function We(h){return JSON.parse(t.find(b=>b.slug===h).data)}function He(h){if(A)return!0;if(h!=null&&h.targetingLogic&&y){let b=y.find(P=>P.flowId===h.slug);if(b)return b.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&i&&i.startsWith("guest_"))}function _o(h){return!He(W(h))}return{getFlow:W,getFlowData:We,isLoading:A||$,getStepStatus:D,getFlowSteps:z,getCurrentStepIndex:ye,markStepStarted:j,markStepCompleted:U,markFlowNotStarted:re,markFlowStarted:q,markFlowCompleted:ee,markFlowAborted:lt,markStepNotStarted:V,getFlowStatus:tt,getNumberOfStepsCompleted:ft,getNumberOfSteps:H,targetingLogicShouldHideFlow:He,setCustomVariable:M,updateCustomVariables:Q,customVariables:n,getStepOptionalProgress:et,getFlowMetadata:G,isStepBlocked:ce,isStepHidden:Re,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:d,isFlowAvailableToUser:_o}}var xt=require("react");var At="guest_";function Co(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,xt.useContext)(K),{config:n}=Ge(),{mutateUserFlowState:s}=Ae(),p=Pt(),{verifySDKInitiated:d}=vt();(0,xt.useEffect)(()=>{if(e&&!t){if(e.startsWith(At))return;let m=`frigade-user-registered-${e}`;localStorage.getItem(m)||(p(`${Te}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(m,"true"))}},[e,r,t]);let l=(0,xt.useCallback)(async m=>{d();let u={foreignId:e,properties:m};await p(`${Te}users`,{...n,method:"POST",body:JSON.stringify(u)}),i(w=>({...w,...m})),s()},[e,n,r,s]),x=(0,xt.useCallback)(async(m,u)=>{d();let C={foreignId:e,events:[{event:m,properties:u}]};await p(`${Te}users`,{...n,method:"POST",body:JSON.stringify(C)}),s()},[e,n,s]);return{userId:e,setUserId:o,addPropertiesToUser:l,trackEventForUser:x}}var ai=require("uuid");var be=f(require("react"));var Oe=f(require("react")),Rt=f(require("styled-components"));var xr=f(require("react")),Cr=f(require("styled-components"));var gr="fr-",Qt="cfr-";function a(e,t){let o=`${gr}${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+" "+Qt+e}return o}function F(e){if(!e.className||e.className.indexOf(Qt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(gr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Wo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ct(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Wo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ke(...e){return e.filter(Boolean).join(" ")}function hr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Rs=Cr.default.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -509,8 +509,8 @@ var Gs=Object.create;var fo=Object.defineProperty;var js=Object.getOwnPropertyDe
|
|
|
509
509
|
color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorText}};
|
|
510
510
|
display: flex;
|
|
511
511
|
align-self: center;
|
|
512
|
-
`;var ri=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=(0,fe.useState)([]),[p,d]=(0,fe.useState)(!1),[l,x]=(0,fe.useState)(e.id);return(0,fe.useEffect)(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,fe.useEffect)(()=>{l!==e.id&&(x(e.id),s([]))},[e]),(0,fe.useEffect)(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),fe.default.createElement(Xr,{className:a("selectListContainer",i)},fe.default.createElement(Jr,null,fe.default.createElement(Qr,{className:a("selectListTitle",i)},e.title),fe.default.createElement(Zr,{appearance:i,className:a("selectListSubtitle",i)},e.subtitle)),r.options.map((m,u)=>{let w=n.includes(m.id);return fe.default.createElement(Rr,{key:`select-item-${u}`,onClick:()=>{if(n.includes(m.id)){s(n.filter(C=>C!==m.id));return}n.length<r.maxChoices?s([...n,m.id]):n.length==1&&r.maxChoices==1&&s([m.id])},hideBottomBorder:u===r.options.length-1,className:a("selectListSelectItem",i)},fe.default.createElement(ei,{className:a("selectListItemImage",i)},m.imageUri&&fe.default.createElement(ti,{src:m.imageUri,alt:`select-icon-${u}`}),fe.default.createElement(oi,{appearance:i,className:a("selectListSelectItemText",i)},m.title)),fe.default.createElement(Dt,{appearance:i,value:w,primaryColor:i.theme.colorPrimary}))}))};var ne=f(require("react"));var Eo=require("framer-motion"),ql=({children:e,id:t,shouldWrap:o=!1})=>ne.default.createElement(ne.default.Fragment,null,o?ne.default.createElement(Eo.AnimatePresence,{initial:!1},ne.default.createElement(Eo.motion.div,{key:t,initial:{opacity:1,y:"100%"},animate:{opacity:1,y:0},exit:{opacity:0,y:"-100%"},transition:{duration:.5,ease:"easeInOut"},style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e)):e),Io=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:r,onButtonClick:n,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:l,onComplete:x,setVisible:m,setShowModal:u,onDismiss:w,showPagination:C=!1})=>{let y={...{linkCollection:jr,multiInput:Lr,callToAction:Vr,selectList:ri},...i},{primaryCTAClickSideEffects:A,secondaryCTAClickSideEffects:k}=ue(),[O,v]=(0,ne.useState)(!1),[c,g]=(0,ne.useState)({}),{markStepCompleted:T,markStepStarted:I,isLoading
|
|
513
|
-
${i=>i.inlineStyles.map(([r,n])=>`.${Qt}${r}.${Qt}${r} { ${Object.entries(n).map(([s,p])=>`${Wo(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Mt.default.createElement(o,{inlineStyles:t})}var Ko=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,onComplete:s,appearance:p,hideOnFlowCompletion:d=!0,onStepCompletion:l,onButtonClick:x,dismissible:m=!0,endFlowOnDismiss:u=!1,modalPosition:w="center",repeatable:C=!1,onDismiss:S,showPagination:y=!1})=>{let{getFlow:A,getFlowSteps:k,isLoading:O,targetingLogicShouldHideFlow:v,getFlowStatus:c,getCurrentStepIndex:g,markFlowCompleted:T,markFlowNotStarted:I}=Z()
|
|
512
|
+
`;var ri=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=(0,fe.useState)([]),[p,d]=(0,fe.useState)(!1),[l,x]=(0,fe.useState)(e.id);return(0,fe.useEffect)(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,fe.useEffect)(()=>{l!==e.id&&(x(e.id),s([]))},[e]),(0,fe.useEffect)(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),fe.default.createElement(Xr,{className:a("selectListContainer",i)},fe.default.createElement(Jr,null,fe.default.createElement(Qr,{className:a("selectListTitle",i)},e.title),fe.default.createElement(Zr,{appearance:i,className:a("selectListSubtitle",i)},e.subtitle)),r.options.map((m,u)=>{let w=n.includes(m.id);return fe.default.createElement(Rr,{key:`select-item-${u}`,onClick:()=>{if(n.includes(m.id)){s(n.filter(C=>C!==m.id));return}n.length<r.maxChoices?s([...n,m.id]):n.length==1&&r.maxChoices==1&&s([m.id])},hideBottomBorder:u===r.options.length-1,className:a("selectListSelectItem",i)},fe.default.createElement(ei,{className:a("selectListItemImage",i)},m.imageUri&&fe.default.createElement(ti,{src:m.imageUri,alt:`select-icon-${u}`}),fe.default.createElement(oi,{appearance:i,className:a("selectListSelectItemText",i)},m.title)),fe.default.createElement(Dt,{appearance:i,value:w,primaryColor:i.theme.colorPrimary}))}))};var ne=f(require("react"));var Eo=require("framer-motion"),ql=({children:e,id:t,shouldWrap:o=!1})=>ne.default.createElement(ne.default.Fragment,null,o?ne.default.createElement(Eo.AnimatePresence,{initial:!1},ne.default.createElement(Eo.motion.div,{key:t,initial:{opacity:1,y:"100%"},animate:{opacity:1,y:0},exit:{opacity:0,y:"-100%"},transition:{duration:.5,ease:"easeInOut"},style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e)):e),Io=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:r,onButtonClick:n,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:l,onComplete:x,setVisible:m,setShowModal:u,onDismiss:w,showPagination:C=!1})=>{let y={...{linkCollection:jr,multiInput:Lr,callToAction:Vr,selectList:ri},...i},{primaryCTAClickSideEffects:A,secondaryCTAClickSideEffects:k}=ue(),[O,v]=(0,ne.useState)(!1),[c,g]=(0,ne.useState)({}),{markStepCompleted:T,markStepStarted:I,isLoading:$,updateCustomVariables:W,markFlowCompleted:z}=Z();(0,ne.useEffect)(()=>{W(r)},[r,$]);function L(){return{data:c[t[o].id]??{},stepId:t[o].id,customVariables:r}}function G(U,re,q){let ee=o+1<t.length?t[o+1]:null;n&&n(U,o,re,ee),s&&s(U,q,ee,c,L())}function M(U,re){g(q=>{let ee={};return ee[U.id]=re,{...q,...ee}})}function Q(U){return U.selectedStep.imageUri?ne.default.createElement(Ur,{image:U.selectedStep.imageUri,appearance:e,className:a("formContainerSidebarImage",e)}):null}let j=ne.default.createElement(Wr,{step:t[o],canContinue:O,formType:d,selectedStep:o,appearance:e,onPrimaryClick:async()=>{o+1<t.length&&await I(p,t[o+1].id),await T(p,t[o].id,L()),G(t[o],"primary",o),o+1>=t.length&&(x&&x(),w&&w(),l&&(m&&m(!1),u(!1)),z(p)),A(t[o])},onSecondaryClick:()=>{G(t[o],"secondary",o),k(t[o])},onBack:()=>{},steps:t}),V=t[o]??null;return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(Dr,{className:a("formContainer",e)},ne.default.createElement(Mr,null,ne.default.createElement(ql,{id:o,shouldWrap:d==="large-modal"},ne.default.createElement($r,{key:V.id,type:d,className:a("formContent",e)},y[V.type]({stepData:V,canContinue:O,setCanContinue:v,onSaveData:U=>{M(V,U)},appearance:e}),C&&ne.default.createElement(zr,{className:a("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),j))),d=="large-modal"&&ne.default.createElement(Q,{selectedStep:t[o]})))};var Mt=f(require("react")),ii=require("styled-components");function he({appearance:e}){if(!e||!e.styleOverrides)return Mt.default.createElement(Mt.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([i,r])=>typeof r=="object");if(t.length===0)return Mt.default.createElement(Mt.default.Fragment,null);let o=ii.createGlobalStyle`
|
|
513
|
+
${i=>i.inlineStyles.map(([r,n])=>`.${Qt}${r}.${Qt}${r} { ${Object.entries(n).map(([s,p])=>`${Wo(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Mt.default.createElement(o,{inlineStyles:t})}var Ko=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,onComplete:s,appearance:p,hideOnFlowCompletion:d=!0,onStepCompletion:l,onButtonClick:x,dismissible:m=!0,endFlowOnDismiss:u=!1,modalPosition:w="center",repeatable:C=!1,onDismiss:S,showPagination:y=!1})=>{let{getFlow:A,getFlowSteps:k,isLoading:O,targetingLogicShouldHideFlow:v,getFlowStatus:c,getCurrentStepIndex:g,markFlowCompleted:T,markFlowNotStarted:I}=Z(),$=g(e),{mergeAppearanceWithDefault:W}=te(),[z,L]=(0,be.useState)(!1),{setOpenFlowState:G,getOpenFlowState:M}=Ie();p=W(p);let[Q,j]=i!==void 0&&r!==void 0?[i,r]:[M(e,!0),q=>G(e,q)];if((0,be.useEffect)(()=>{!z&&!O&&(L(!0),c(e)===ie&&C&&I(e),L(!0))},[z,L,O]),O)return null;let V=A(e);if(!V||v(V))return null;let U=k(e);if(!U||i!==void 0&&i===!1||c(e)===ie&&d)return null;let re=()=>{j(!1),S&&S(),u===!0&&T(e)};if(w=="center"&&o==="modal"||o==="large-modal"){let q={padding:"24px"};return o==="large-modal"?(q.width="85%",q.height="90%",q.maxHeight="800px",q.minHeight="500px",q.padding="0"):q.width="400px",be.default.createElement(at,{appearance:p,onClose:re,visible:Q,style:q,dismissible:m},be.default.createElement(he,{appearance:p}),be.default.createElement(Io,{appearance:p,steps:U,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:x,onStepCompletion:l,flowId:e,type:o,hideOnFlowCompletion:d,onComplete:s,setVisible:r,setShowModal:j,onDismiss:S,showPagination:y}))}return o==="modal"&&w!=="center"?be.default.createElement(wr,{appearance:p,onClose:re,visible:Q},be.default.createElement(he,{appearance:p}),be.default.createElement(Io,{appearance:p,steps:U,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:x,onStepCompletion:l,flowId:e,type:o,hideOnFlowCompletion:d,onComplete:s,setVisible:r,setShowModal:j,onDismiss:S,showPagination:y})):be.default.createElement(be.default.Fragment,null,be.default.createElement(he,{appearance:p}),be.default.createElement(Io,{appearance:p,steps:U,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:x,onStepCompletion:l,flowId:e,type:o,hideOnFlowCompletion:d,onComplete:s,setVisible:r,setShowModal:j,onDismiss:S,showPagination:y})," ")},ni=Ko;var bt=require("react");function Ao(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,bt.useContext)(K),{mutateUserFlowState:i}=Ae(),{config:r}=Ge(),n=Pt(),{verifySDKInitiated:s}=vt();(0,bt.useEffect)(()=>{if(t&&e){if(t.startsWith(At))return;let l=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(l)||(n(`${Te}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(l,"true"))}},[t,e]);let p=(0,bt.useCallback)(async l=>{if(s(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let x={foreignUserId:t,foreignUserGroupId:e,properties:l};await n(`${Te}userGroups`,{...r,method:"POST",body:JSON.stringify(x)}),i()},[e,t,r,i]),d=(0,bt.useCallback)(async(l,x)=>{if(s(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let u={foreignUserId:t,foreignUserGroupId:e,events:[{event:l,properties:x}]};await n(`${Te}userGroups`,{...r,method:"POST",body:JSON.stringify(u)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:p,trackEventForOrganization:d}}var si="xFrigade_guestUserId",li="xFrigade_userId",pi=({})=>{let{setFlowResponses:e}=It(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ae(),{userId:r,setUserId:n}=Co(),[s,p]=(0,ae.useState)(null),{getFlowStatus:d}=Z(),{flows:l,userProperties:x,setIsNewGuestUser:m,flowResponses:u}=(0,ae.useContext)(K),[w,C]=(0,ae.useState)([]),[S,y]=(0,ae.useState)([]),{organizationId:A}=Ao();(0,ae.useEffect)(()=>{if(!o&&t)for(let c=0;c<t.length;c++){let g=t[c],T=l.find(I=>I.slug===(g==null?void 0:g.flowId));if(T&&g&&g.shouldTrigger===!0&&T.type=="FORM"&&T.triggerType==="AUTOMATIC"&&!S.includes(T.slug)){setTimeout(()=>{k(g.flowId)},500);break}}},[o,t]),(0,ae.useEffect)(()=>{u.length>0&&i()},[u]);function k(c){let g=l.find(T=>T.slug===c);g&&g.triggerType==="AUTOMATIC"&&!S.includes(g.slug)&&(y([...S,g.slug]),C([g]))}function O(){if(!r){let c=localStorage.getItem(li);if(c){n(c);return}let g=localStorage.getItem(si);if(g){n(g);return}m(!0);let T=At+(0,ai.v4)();try{localStorage.setItem(si,T)}catch(I){console.log("Failed to save guest user id locally: Local storage unavailable",I)}n(I=>I||T)}}(0,ae.useEffect)(()=>{try{if(l){let c=[];l.forEach(g=>{if(g.data){let T=g.data.match(/"imageUri":"(.*?)"/g);T&&T.forEach(I=>{let $=I.replace('"imageUri":"',"").replace('"',"");if(c.includes($))return;let W=new Image;W.src=$,c.push($)})}})}}catch{}},[l]),(0,ae.useEffect)(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(At))try{localStorage.setItem(li,r)}catch(c){console.log("Failed to save user id locally: Local storage available",c)}r===null&&setTimeout(()=>{r===null&&O()},50)},[r,l,x]);function v(){return ae.default.createElement(ae.default.Fragment,null,w.map(c=>d(c.slug)!==ze?null:ae.default.createElement("span",{key:c.slug},ae.default.createElement(ni,{flowId:c.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(v,null))};var Bo={theme:{colorPrimary:"#000000",colorText:"#000000",colorBackground:"#ffffff",colorBackgroundSecondary:"#d2d2d2",colorTextOnPrimaryBackground:"#ffffff",colorTextSecondary:"#505050",colorTextDisabled:"#999999",colorBorder:"#E5E5E5",borderRadius:20}};var ci=require("react-error-boundary"),K=(0,Y.createContext)({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:Bo,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{}}),mi=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var M,Q;let[n,s]=(0,Y.useState)(t||null),[p,d]=(0,Y.useState)(o||null),[l,x]=(0,Y.useState)([]),[m,u]=(0,Y.useState)([]),[w,C]=(0,Y.useState)([]),[S,y]=(0,Y.useState)({}),[A,k]=(0,Y.useState)({}),[O,v]=(0,Y.useState)({}),[c,g]=(0,Y.useState)(!1),[T,I]=(0,Y.useState)(!1),[$,W]=(0,Y.useState)(!G(e)),z=(j,V)=>{if(V==="_blank"){window.open(j,"_blank");return}setTimeout(()=>{window.location.href=j},50)},L={theme:{...Bo.theme,...((M=i==null?void 0:i.defaultAppearance)==null?void 0:M.theme)??{}},styleOverrides:{...Bo.styleOverrides,...((Q=i==null?void 0:i.defaultAppearance)==null?void 0:Q.styleOverrides)??{}}};function G(j){return!!(j&&j.length>10&&j.substring(0,10)==="api_public")}return(0,Y.useEffect)(()=>{t&&s(t)},[t]),(0,Y.useEffect)(()=>{o&&d(o)},[o]),(0,Y.useEffect)(()=>{if(G(e))W(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),W(!0);return}},[e,W]),$?Y.default.createElement(K.Provider,{value:{publicApiKey:e,userId:n,setUserId:s,setFlows:x,flows:l,failedFlowResponses:m,setFailedFlowResponses:u,flowResponses:w,setFlowResponses:C,userProperties:S,setUserProperties:y,openFlowStates:A,setOpenFlowStates:k,customVariables:O,setCustomVariables:v,isNewGuestUser:c,setIsNewGuestUser:g,hasActiveFullPageFlow:T,setHasActiveFullPageFlow:I,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:z,defaultAppearance:L,shouldGracefullyDegrade:$,setShouldGracefullyDegrade:W}},r):Y.default.createElement(ci.ErrorBoundary,{fallback:Y.default.createElement(Y.default.Fragment,null,r)},Y.default.createElement(K.Provider,{value:{publicApiKey:e,userId:n,setUserId:s,setFlows:x,flows:l,failedFlowResponses:m,setFailedFlowResponses:u,flowResponses:w,setFlowResponses:C,userProperties:S,setUserProperties:y,openFlowStates:A,setOpenFlowStates:k,customVariables:O,setCustomVariables:v,isNewGuestUser:c,setIsNewGuestUser:g,hasActiveFullPageFlow:T,setHasActiveFullPageFlow:I,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:z,defaultAppearance:L,shouldGracefullyDegrade:$,setShouldGracefullyDegrade:W}},Y.default.createElement(di.ThemeProvider,{theme:L.theme},r,Y.default.createElement(pi,null))))};var jn=f(require("react"));var J=f(require("react"));var we=f(require("react")),ct=f(require("styled-components"));var so=f(require("react"));var no=f(require("react")),Yo=f(require("styled-components"));var ui=Yo.default.span`
|
|
514
514
|
font-weight: 400;
|
|
515
515
|
font-size: 15px;
|
|
516
516
|
line-height: 20px;
|
|
@@ -981,7 +981,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Qt}${r}.${Qt}${r} { ${Object.entries(n).map
|
|
|
981
981
|
justify-content: space-between;
|
|
982
982
|
background-color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorBackground}};
|
|
983
983
|
border-radius: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.borderRadius}}px;
|
|
984
|
-
`;var Sa=({title:e,subtitle:t,steps:o,onClose:i,visible:r,onCompleteStep:n,autoExpandFirstIncompleteStep:s=!0,autoCollapse:p=!0,autoExpandNextStep:d=!0,primaryColor:l="#000000",selectedStep:x,setSelectedStep:m,appearance:u,type:w,className:C})=>{let S=o.filter(c=>c.complete).length,[y,A]=(0,se.useState)(Array(o.length).fill(!0));(0,se.useEffect)(()=>{let c=[...y];if(s){for(let g=0;g<o.length;g++)if(!o[g].complete){c[g]=!1;break}A(c)}},[]),(0,se.useEffect)(()=>{k(x)},[x]);let k=c=>{let g=[...y];if(p)for(let T=0;T<y.length;++T)T!==c&&(g[T]=!0);g[c]=!g[c],A(g)};if(!r&&w=="modal")return se.default.createElement(se.default.Fragment,null);let O=se.default.createElement(se.default.Fragment,null,se.default.createElement(yn,null,se.default.createElement(bn,{appearance:u,className:a("checklistTitle",u),dangerouslySetInnerHTML:me(e)}),se.default.createElement(Tn,{appearance:u,className:a("checklistSubtitle",u),dangerouslySetInnerHTML:me(t)})),se.default.createElement(Ke,{display:"percent",count:S,total:o.length,fillColor:l,style:{margin:"14px 0px 8px 0px"},appearance:u})),v=se.default.createElement(wn,{className:ke(a("checklistContainer",u),C)},o.map((c,g)=>{let T=y[g];return se.default.createElement(Sn,{appearance:u,stepData:c,collapsed:T,key:`modal-checklist-${c.id??g}`,onClick:()=>{if(x===g){k(g);return}m(g)},onPrimaryButtonClick:()=>{n&&n(g,c),c.handlePrimaryButtonClick&&c.handlePrimaryButtonClick(),d&&!c.completionCriteria&&g<y.length-1&&y[g+1]&&m(g+1)},onSecondaryButtonClick:()=>{c.handleSecondaryButtonClick&&c.handleSecondaryButtonClick()}})}));return w==="inline"?se.default.createElement(Fn,{appearance:u,className:ke(a("checklistInlineContainer",u),C)},O,v):se.default.createElement(se.default.Fragment,null,se.default.createElement(at,{onClose:i,visible:r,appearance:u,style:{maxWidth:"600px"},headerContent:O},v))},tr=Sa;var
|
|
984
|
+
`;var Sa=({title:e,subtitle:t,steps:o,onClose:i,visible:r,onCompleteStep:n,autoExpandFirstIncompleteStep:s=!0,autoCollapse:p=!0,autoExpandNextStep:d=!0,primaryColor:l="#000000",selectedStep:x,setSelectedStep:m,appearance:u,type:w,className:C})=>{let S=o.filter(c=>c.complete).length,[y,A]=(0,se.useState)(Array(o.length).fill(!0));(0,se.useEffect)(()=>{let c=[...y];if(s){for(let g=0;g<o.length;g++)if(!o[g].complete){c[g]=!1;break}A(c)}},[]),(0,se.useEffect)(()=>{k(x)},[x]);let k=c=>{let g=[...y];if(p)for(let T=0;T<y.length;++T)T!==c&&(g[T]=!0);g[c]=!g[c],A(g)};if(!r&&w=="modal")return se.default.createElement(se.default.Fragment,null);let O=se.default.createElement(se.default.Fragment,null,se.default.createElement(yn,null,se.default.createElement(bn,{appearance:u,className:a("checklistTitle",u),dangerouslySetInnerHTML:me(e)}),se.default.createElement(Tn,{appearance:u,className:a("checklistSubtitle",u),dangerouslySetInnerHTML:me(t)})),se.default.createElement(Ke,{display:"percent",count:S,total:o.length,fillColor:l,style:{margin:"14px 0px 8px 0px"},appearance:u})),v=se.default.createElement(wn,{className:ke(a("checklistContainer",u),C)},o.map((c,g)=>{let T=y[g];return se.default.createElement(Sn,{appearance:u,stepData:c,collapsed:T,key:`modal-checklist-${c.id??g}`,onClick:()=>{if(x===g){k(g);return}m(g)},onPrimaryButtonClick:()=>{n&&n(g,c),c.handlePrimaryButtonClick&&c.handlePrimaryButtonClick(),d&&!c.completionCriteria&&g<y.length-1&&y[g+1]&&m(g+1)},onSecondaryButtonClick:()=>{c.handleSecondaryButtonClick&&c.handleSecondaryButtonClick()}})}));return w==="inline"?se.default.createElement(Fn,{appearance:u,className:ke(a("checklistInlineContainer",u),C)},O,v):se.default.createElement(se.default.Fragment,null,se.default.createElement(at,{onClose:i,visible:r,appearance:u,style:{maxWidth:"600px"},headerContent:O},v))},tr=Sa;var _=f(require("react"));var mt=f(require("react"));var X=f(require("styled-components"));var kn=X.css`
|
|
985
985
|
border: 1px solid ${({theme:e})=>e.colorBorder};
|
|
986
986
|
`,ya=X.css`
|
|
987
987
|
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.06);
|
|
@@ -1116,7 +1116,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Qt}${r}.${Qt}${r} { ${Object.entries(n).map
|
|
|
1116
1116
|
color: ${({theme:e})=>e.colorTextSecondary};
|
|
1117
1117
|
${e=>e.blocked||e.complete?"opacity: 0.4;":`
|
|
1118
1118
|
`}
|
|
1119
|
-
`;var Wn=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=te(),{primaryCTAClickSideEffects:r}=ue(),{theme:n,styleOverrides:s}=i(o),{imageUri:p=null,subtitle:d=null,title:l=null,complete:x=!1,blocked:m=!1}=e,u=()=>{r(e)};return mt.default.createElement(Bn,{className:a("carouselCard",o),onClick:m?null:u,style:t,blocked:m,complete:x},mt.default.createElement("div",{style:{alignItems:"flex-start",display:"flex",justifyContent:"space-between"}},p&&mt.default.createElement(On,{className:a("carouselCardImage",o),src:p,alt:l,style:{opacity:x||m?.4:1}}),x&&mt.default.createElement(Mn,{className:a("carouselCompletedPill",o)},mt.default.createElement(_n,{style:{color:"#108E0B"}},"Complete"))),l&&mt.default.createElement(Un,{blocked:m,complete:x,className:a("carouselCardTitle",o)},l),d&&mt.default.createElement(Ze.Quiet,{blocked:m,complete:x,className:a("carouselCardSubtitle",o)},d))};var jt=f(require("react"));var Hn=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,r=200,n=Math.min(r,Math.max(10,Math.round(r*i)));return jt.default.createElement(Nn,{className:a("carouselProgressBar",o)},jt.default.createElement(Dn,{as:Ze.Loud,style:{marginRight:8}},e," of ",t),jt.default.createElement("svg",{height:10,width:r},jt.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),jt.default.createElement("rect",{x:0,y:0,rx:5,width:n,height:10,fill:"currentColor"})))};var ka=()=>
|
|
1119
|
+
`;var Wn=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=te(),{primaryCTAClickSideEffects:r}=ue(),{theme:n,styleOverrides:s}=i(o),{imageUri:p=null,subtitle:d=null,title:l=null,complete:x=!1,blocked:m=!1}=e,u=()=>{r(e)};return mt.default.createElement(Bn,{className:a("carouselCard",o),onClick:m?null:u,style:t,blocked:m,complete:x},mt.default.createElement("div",{style:{alignItems:"flex-start",display:"flex",justifyContent:"space-between"}},p&&mt.default.createElement(On,{className:a("carouselCardImage",o),src:p,alt:l,style:{opacity:x||m?.4:1}}),x&&mt.default.createElement(Mn,{className:a("carouselCompletedPill",o)},mt.default.createElement(_n,{style:{color:"#108E0B"}},"Complete"))),l&&mt.default.createElement(Un,{blocked:m,complete:x,className:a("carouselCardTitle",o)},l),d&&mt.default.createElement(Ze.Quiet,{blocked:m,complete:x,className:a("carouselCardSubtitle",o)},d))};var jt=f(require("react"));var Hn=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,r=200,n=Math.min(r,Math.max(10,Math.round(r*i)));return jt.default.createElement(Nn,{className:a("carouselProgressBar",o)},jt.default.createElement(Dn,{as:Ze.Loud,style:{marginRight:8}},e," of ",t),jt.default.createElement("svg",{height:10,width:r},jt.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),jt.default.createElement("rect",{x:0,y:0,rx:5,width:n,height:10,fill:"currentColor"})))};var ka=()=>_.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),zn=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=(0,_.useState)(!1),[n,s]=(0,_.useState)(!1);(0,_.useEffect)(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},d=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?_.default.createElement(En,{style:d,reversed:n,onAnimationEnd:n?p:null},_.default.createElement(In,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},_.default.createElement(ka,null))):null},Gn=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=(0,_.useRef)(null),[n,s]=(0,_.useState)(!1),[p,d]=(0,_.useState)(!1),[l,x]=(0,_.useState)(null),[m,u]=(0,_.useState)([]),[w,C]=(0,_.useState)(0),{getFlowMetadata:S,getFlowSteps:y,getNumberOfStepsCompleted:A,updateCustomVariables:k,getFlowStatus:O,isLoading:v,targetingLogicShouldHideFlow:c,getFlow:g}=Z();(0,_.useEffect)(()=>{k(o)},[o,v]),(0,_.useEffect)(()=>{if(v)return;let L=S(e),G=A(e),M=y(e);x(L),L.data!==null&&(u(M.sort((Q,j)=>Number(Q.complete)-Number(j.complete))),d(M.length>3),C(G))},[v]);let T=[];for(let L=0;L<m.length;L+=3)T.push(m.slice(L,L+3));let I=L=>{let G=L.target,M=G.scrollWidth-G.clientWidth,Q=Math.ceil(G.scrollLeft);Q>0&&n===!1&&s(!0),Q===0&&n===!0&&s(!1),Q<M&&p===!1&&d(!0),Q===M&&p===!0&&d(!1)},$=(L=!0)=>{let G=L?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*G,behavior:"smooth"})},W=null,z=L=>{W!==null?clearTimeout(W):I(L),W=setTimeout(()=>{I(L)},16)};return v?null:_.default.createElement(Ln,{className:ke(a("carouselContainer",t),i)},_.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},_.default.createElement("div",null,_.default.createElement($n,{className:a("carouselTitle",t)},l==null?void 0:l.title),_.default.createElement(Ze.Quiet,{className:a("carouselSubtitle",t)},l==null?void 0:l.subtitle)),_.default.createElement(Hn,{numberOfStepsCompleted:w,numberOfSteps:m.length})),_.default.createElement("div",{style:{position:"relative"}},_.default.createElement(zn,{show:n,onClick:()=>$(!1)}),_.default.createElement(zn,{side:"right",show:p,onClick:$}),_.default.createElement(Pn,{ref:r,onScroll:z},T.map((L,G)=>_.default.createElement(vn,{key:G,style:{flex:`0 0 calc(100% - ${m.length>3?36:0}px)`}},L.map((M,Q)=>_.default.createElement(Wn,{key:Q,stepData:M,style:{flex:m.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))))};var $o=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:r,className:n,type:s="inline",onDismiss:p,visible:d,customVariables:l,onStepCompletion:x,onButtonClick:m,appearance:u,hideOnFlowCompletion:w,setVisible:C,customStepTypes:S,checklistStyle:y="default",...A})=>{let{getFlow:k,getFlowSteps:O,markStepCompleted:v,getStepStatus:c,getNumberOfStepsCompleted:g,isLoading:T,targetingLogicShouldHideFlow:I,updateCustomVariables:$,getFlowMetadata:W,isStepBlocked:z,getFlowStatus:L,hasActiveFullPageFlow:G,setHasActiveFullPageFlow:M}=Z(),{primaryCTAClickSideEffects:Q,secondaryCTAClickSideEffects:j}=ue(),{getOpenFlowState:V,setOpenFlowState:U}=Ie(),[re,q]=(0,J.useState)(r||0),[ee,lt]=(0,J.useState)(!1),Ce=d===void 0?V(e):d,D=s==="modal",{mergeAppearanceWithDefault:ce}=te(),{isLarge:Re}=dn();if(u=ce(u),(0,J.useEffect)(()=>{$(l)},[l,T]),(0,J.useEffect)(()=>{d!==void 0&&(D&&d===!0?M(!0):D&&d===!1&&M(!1))},[d,C,G]),T)return null;let Fe=k(e);if(!Fe||I(Fe))return null;let ve=O(e);if(!ve||w===!0&&L(e)===ie)return null;let ye=W(e);if(ye!=null&&ye.title&&(t=ye.title),ye!=null&&ye.subtitle&&(o=ye.subtitle),!ee&&r===void 0&&g(e)>0){let E=Math.min(g(e),ve.length-1);q(E),lt(!0)}function et(){if(re+1>=ve.length){D&&U(e,!1);return}z(e,ve[re+1].id)||q(re+1)}function tt(E,R,gt){let ar=re+1<ve.length?ve[re+1]:null;m&&m(E,re,R,ar)===!0&&D&&He(),x&&x(E,gt,ar),!x&&!m&&(E.primaryButtonUri||E.secondaryButtonUri)&&D&&He()}function ft(){return ve.map((E,R)=>({...E,handleSecondaryButtonClick:()=>{et(),j(E),E.skippable===!0&&v(e,E.id,{skipped:!0}),tt(E,"secondary",R)},handlePrimaryButtonClick:()=>{(!E.completionCriteria&&(E.autoMarkCompleted||E.autoMarkCompleted===void 0)||E.completionCriteria&&E.autoMarkCompleted===!0)&&(v(e,E.id),et()),tt(E,"primary",R),Q(E),c(e,E.id)===Ne&&et()}}))}function H(){return J.default.createElement(he,{appearance:u})}let We={steps:ft(),title:t,subtitle:o,primaryColor:u.theme.colorPrimary,appearance:u,customStepTypes:S,type:s,className:n};function He(){U(e,!1),p&&p(),C&&C(!1)}function _o(){return J.default.createElement(J.default.Fragment,null,J.default.createElement(H,null),J.default.createElement(Gn,{flowId:e,appearance:u,customVariables:l,className:n}))}function h(){return J.default.createElement(J.default.Fragment,null,J.default.createElement(H,null),J.default.createElement(tr,{visible:Ce,onClose:()=>{He()},selectedStep:re,setSelectedStep:q,autoExpandNextStep:!0,appearance:u,...We}))}function b(){if(!Re)return h();let E=A.guideFlowId,R;return E&&k(E)&&(R=O(E)),J.default.createElement(J.default.Fragment,null,J.default.createElement(H,null),J.default.createElement(er,{visible:Ce,stepsTitle:ye.stepsTitle?ye.stepsTitle:"Your quick start guide",onClose:()=>{He()},selectedStep:re,setSelectedStep:q,guideData:R,guideTitle:A.guideTitle??"Guide",appearance:u,title:t,subtitle:o,onGuideButtonClick:gt=>{tt(gt,"link",0)},...We}))}function P(){if(!Re)return h();let E=J.default.createElement(Qo,{flowId:e,style:i,selectedStep:re,setSelectedStep:q,appearance:u,type:s,...We});return D?J.default.createElement(at,{onClose:()=>{He()},visible:Ce,appearance:u,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},J.default.createElement(H,null),E):J.default.createElement(J.default.Fragment,null,J.default.createElement(H,null),E)}switch(y){case"condensed":return h();case"with-guide":return b();case"default":return P();case"carousel":return _o();default:return P()}};var Vn=e=>jn.default.createElement($o,{type:"inline",...e});var Ue=f(require("react"));var $e=f(require("react"));var mo=f(require("styled-components")),qn=mo.default.div`
|
|
1120
1120
|
border: 1px solid ${e=>e.appearance.theme.colorBorder};
|
|
1121
1121
|
border-radius: 8px;
|
|
1122
1122
|
padding: 6px 10px 6px 10px;
|
|
@@ -1288,7 +1288,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Qt}${r}.${Qt}${r} { ${Object.entries(n).map
|
|
|
1288
1288
|
`,Ba=(0,Yt.default)(Cs)`
|
|
1289
1289
|
width: ${Kt+12}px;
|
|
1290
1290
|
height: ${Kt+12}px;
|
|
1291
|
-
`,Oa=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:r=!0,primaryColor:n="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:d={},selectedStep:l=0,customStepTypes:x,appearance:m,dismissible:u=!1,showHighlightOnly:w,showStepCount:C=!0,completedStepsCount:S=0})=>{var ye,et,tt,ft;let[y,A]=(0,B.useState)(),[k,O]=(0,B.useState)(new Date),v=(0,B.useRef)(null),[c,g]=(0,B.useState)(document.querySelector(e[l].selector)),T=ls(c,k),[I
|
|
1291
|
+
`,Oa=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:r=!0,primaryColor:n="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:d={},selectedStep:l=0,customStepTypes:x,appearance:m,dismissible:u=!1,showHighlightOnly:w,showStepCount:C=!0,completedStepsCount:S=0})=>{var ye,et,tt,ft;let[y,A]=(0,B.useState)(),[k,O]=(0,B.useState)(new Date),v=(0,B.useRef)(null),[c,g]=(0,B.useState)(document.querySelector(e[l].selector)),T=ls(c,k),[I,$]=(0,B.useState)(),[W,z]=(0,B.useState)(!w),L=(et=(ye=e[l])==null?void 0:ye.props)!=null&&et.position?e[l].props.position:"absolute",G=((ft=(tt=e[l])==null?void 0:tt.props)==null?void 0:ft.zIndex)??90,M=(y==null?void 0:y.width)??hs,Q=(y==null?void 0:y.height)??xs;(0,B.useLayoutEffect)(()=>{v.current&&A({width:v.current.clientWidth,height:v.current.clientHeight})},[l,k,L]),(0,B.useEffect)(()=>{w||z(!0)},[l]);let j=i==="auto"?"right":i,V=or(T,j,M,s,L),U=T.right+M>(window.innerWidth||document.documentElement.clientWidth),re=T.bottom+xs>(window.innerHeight||document.documentElement.clientHeight);U&&i==="auto"&&(V=or(T,"left",M,s,L),j="left");let q=window.location.pathname.split("/").pop(),ee=()=>{let H=document.querySelector(e[l].selector);I&&I===JSON.stringify(H==null?void 0:H.getBoundingClientRect())||(g(H),O(new Date),H&&$(JSON.stringify(H.getBoundingClientRect())))};if((0,B.useEffect)(()=>{let H=new MutationObserver(ee);return H.observe(document.body,{subtree:!0,childList:!0}),()=>H.disconnect()},[ee]),(0,B.useEffect)(()=>{let H=new MutationObserver(ee);return H.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>H.disconnect()},[ee]),(0,B.useEffect)(()=>{let H=setInterval(()=>{ee()},10);return()=>clearInterval(H)},[ee]),(0,B.useLayoutEffect)(()=>{setTimeout(()=>{ee()},va),ee()},[l,q]),c===null)return B.default.createElement(B.default.Fragment,null);if(V.x==0&&V.y==0)return B.default.createElement(B.default.Fragment,null);if(!p)return B.default.createElement(B.default.Fragment,null);let lt=()=>{let H=()=>{if(e[l].handlePrimaryButtonClick&&(e[l].handlePrimaryButtonClick(),z(!1),setTimeout(()=>{ee()},30)),S===e.length-1)return o()},We=()=>{e[l].handleSecondaryButtonClick&&(e[l].handleSecondaryButtonClick(),w&&z(!1))};return B.default.createElement(B.default.Fragment,null,C&&B.default.createElement(us,null,B.default.createElement(gs,{className:a("tooltipStepCounter",m)},l+1," of ",e.length)),B.default.createElement(fs,{showStepCount:C,className:a("tooltipCTAContainer",m)},e[l].secondaryButtonTitle&&B.default.createElement(le,{title:e[l].secondaryButtonTitle,appearance:m,onClick:We,size:"small",withMargin:!1,secondary:!0}),e[l].primaryButtonTitle&&B.default.createElement(le,{title:e[l].primaryButtonTitle,appearance:m,onClick:H,withMargin:!1,size:"small"})))},Ce=()=>B.default.createElement(B.default.Fragment,null,u&&B.default.createElement(ps,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:a("tooltipClose",m)},B.default.createElement(De,null)),e[l].imageUri&&B.default.createElement(ds,{dismissible:u,appearance:m,src:e[l].imageUri,className:a("tooltipImageContainer",m)}),e[l].videoUri&&!e[l].imageUri&&B.default.createElement(cs,{dismissible:u,appearance:m,className:a("tooltipVideoContainer",m)},B.default.createElement(Ot,{appearance:m,videoUri:e[l].videoUri})),B.default.createElement(Le,{appearance:m,title:e[l].title,subtitle:e[l].subtitle,size:"small"}),B.default.createElement(ms,{className:a("tooltipFooter",m)},B.default.createElement(lt,null))),ce={...{default:H=>{var We;if((We=e[l])!=null&&We.StepContent){let He=e[l].StepContent;return B.default.createElement("div",null,He)}return B.default.createElement(Ce,null)}},...x},Re=()=>{var H;return e?!((H=e[l])!=null&&H.type)||!ce[e[l].type]?ce.default(e[l]):ce[e[l].type]({stepData:e[l],primaryColor:n}):B.default.createElement(B.default.Fragment,null)};if(w&&e[l].complete===!0)return null;let Fe={top:(V==null?void 0:V.y)-Kt,left:(j=="left"?T.x+s.x:(V==null?void 0:V.x)-Kt)??0,cursor:w?"pointer":"default",position:L},ve=()=>{w&&(O(new Date),z(!W))};return B.default.createElement(Aa,null,B.default.createElement(Ba,{style:Fe,zIndex:G,className:a("tourHighlightContainer",m)},r&&e[l].showHighlight!==!1&&B.default.createElement(B.default.Fragment,null,B.default.createElement(Ia,{style:{position:L},onClick:ve,primaryColor:m.theme.colorPrimary}),B.default.createElement(Ea,{style:{position:"absolute"},onClick:ve,primaryColor:m.theme.colorPrimary}))),B.default.createElement(Cs,{style:{...Fe,left:Fe.left+(j=="left"?-M:24)},zIndex:G+1,className:a("tooltipContainerWrapper",m)},W&&B.default.createElement(as,{ref:v,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...d},appearance:m,className:a("tooltipContainer",m),maxWidth:hs,zIndex:G+10},B.default.createElement(Re,null))))},Uo=Oa;var Ss=require("react-portal");var ys=({flowId:e,customVariables:t,appearance:o,onStepCompletion:i,onButtonClick:r,showTooltipsSimultaneously:n=!1,onDismiss:s,dismissible:p,tooltipPosition:d="auto",showHighlightOnly:l=!1,dismissBehavior:x="complete-flow",onComplete:m,...u})=>{let{getFlow:w,getFlowSteps:C,isLoading:S,targetingLogicShouldHideFlow:y,markStepCompleted:A,markStepStarted:k,markFlowCompleted:O,updateCustomVariables:v,getCurrentStepIndex:c,getStepStatus:g,isStepBlocked:T,getFlowStatus:I,getNumberOfStepsCompleted:$}=Z(),{isLoadingUserFlowStateData:W}=Ae(),{primaryCTAClickSideEffects:z,secondaryCTAClickSideEffects:L}=ue(),{hasOpenModals:G}=Ie(),M=c(e),{openFlowStates:Q}=(0,_e.useContext)(K),{mergeAppearanceWithDefault:j}=te();if(o=j(o),(0,_e.useEffect)(()=>{v(t)},[t,S]),W)return null;let V=w(e);if(!V||y(V)||I(e)==ie||G())return null;let U=C(e);if(Object.keys(Q).length>0){let D=Object.keys(Q).find(ce=>Q[ce]===!0);if(D!==void 0&&D!==e)return _e.default.createElement(_e.default.Fragment,null)}async function re(D){if(await A(e,D.id),U.map(ce=>g(e,ce.id)).every(ce=>ce===Ne)){await O(e);return}if(!l&&M+1<U.length){if(T(e,U[M+1].id))return;await k(e,U[M+1].id)}}function q(D,ce,Re){let Fe=M+1<U.length?U[M+1]:null;r&&r(D,M,ce,Fe),i&&i(D,Re,Fe)}function ee(){return U.map(D=>({...D,handleSecondaryButtonClick:async()=>{L(D),D.skippable===!0&&await A(e,D.id,{skipped:!0}),q(D,"secondary",M)},handlePrimaryButtonClick:async()=>{(!D.completionCriteria&&(D.autoMarkCompleted||D.autoMarkCompleted===void 0)||D.completionCriteria&&D.autoMarkCompleted===!0)&&await re(D),q(D,"primary",M),z(D)}}))}async function lt(D){s&&s(),x==="complete-flow"?await O(e):await A(e,D.id)}function Ce(){m&&m()}return _e.default.createElement(Ss.Portal,null,_e.default.createElement(he,{appearance:o}),n?U.map((D,ce)=>_e.default.createElement(Uo,{key:D.id,appearance:o,steps:ee(),selectedStep:ce,showTooltipsSimultaneously:n,dismissible:p,onDismiss:()=>lt(D),tooltipPosition:d,showHighlightOnly:l,completedStepsCount:$(e),onComplete:Ce,...u})):_e.default.createElement(Uo,{appearance:o,steps:ee(),selectedStep:M,showTooltipsSimultaneously:n,dismissible:p,onDismiss:()=>lt(U[M]),tooltipPosition:d,completedStepsCount:$(e),showHighlightOnly:l,onComplete:Ce,...u}))};var oe=f(require("react"));var As=require("react-portal");var ut=f(require("styled-components"));var bs=ut.default.button`
|
|
1292
1292
|
${e=>F(e)} {
|
|
1293
1293
|
// Anything inside this block will be ignored if the user provides a custom class
|
|
1294
1294
|
|
|
@@ -1376,7 +1376,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Qt}${r}.${Qt}${r} { ${Object.entries(n).map
|
|
|
1376
1376
|
font-size: 14px;
|
|
1377
1377
|
|
|
1378
1378
|
padding: 8px 12px;
|
|
1379
|
-
`;var Xt=require("framer-motion");var rr=f(require("react")),Es=({style:e,className:t})=>rr.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none",viewBox:"0 0 18 18",style:e,className:t},rr.default.createElement("path",{fill:"currentColor",d:"M13.43 4.938a4.494 4.494 0 00-1.043-1.435A4.955 4.955 0 009 2.197c-1.276 0-2.48.464-3.387 1.305A4.502 4.502 0 004.57 4.938a4.242 4.242 0 00-.386 1.773v.475c0 .109.087.197.196.197h.95a.197.197 0 00.197-.197V6.71c0-1.749 1.557-3.17 3.473-3.17s3.473 1.421 3.473 3.17c0 .718-.254 1.393-.738 1.955a3.537 3.537 0 01-1.9 1.125 1.928 1.928 0 00-1.085.682c-.271.343-.42.768-.42 1.206v.552c0 .109.088.197.197.197h.95a.197.197 0 00.196-.197v-.552c0-.276.192-.519.457-.578a4.904 4.904 0 002.625-1.56c.335-.392.597-.828.778-1.3a4.256 4.256 0 00-.103-3.303zM9 13.834a.985.985 0 10.001 1.97.985.985 0 00-.001-1.97z"}));var ir=f(require("react")),Is=({style:e,className:t})=>ir.default.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},ir.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"}));var Bs=({flowId:e,style:t,onStepCompletion:o,visible:i=!0,type:r="inline",title:n="Help",appearance:s})=>{let{getFlow:p,getFlowSteps:d,markStepCompleted:l,getStepStatus:x,getNumberOfStepsCompleted:m,isLoading:u,targetingLogicShouldHideFlow:w}=Z(),{primaryCTAClickSideEffects:C}=ue(),S=(0,oe.useRef)(null),[y,A]=(0,oe.useState)(!1),{mergeAppearanceWithDefault:k}=te();s=k(s),(0,oe.useEffect)(()=>(document.addEventListener("click",O,!1),()=>{document.removeEventListener("click",O,!1)}),[]);let O=I=>{S.current&&!S.current.contains(I.target)&&A(!1)};if(u)return null;let v=p(e);if(!v||w(v))return null;let c=d(e);if(!c||!i)return null;function g(I
|
|
1379
|
+
`;var Xt=require("framer-motion");var rr=f(require("react")),Es=({style:e,className:t})=>rr.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none",viewBox:"0 0 18 18",style:e,className:t},rr.default.createElement("path",{fill:"currentColor",d:"M13.43 4.938a4.494 4.494 0 00-1.043-1.435A4.955 4.955 0 009 2.197c-1.276 0-2.48.464-3.387 1.305A4.502 4.502 0 004.57 4.938a4.242 4.242 0 00-.386 1.773v.475c0 .109.087.197.196.197h.95a.197.197 0 00.197-.197V6.71c0-1.749 1.557-3.17 3.473-3.17s3.473 1.421 3.473 3.17c0 .718-.254 1.393-.738 1.955a3.537 3.537 0 01-1.9 1.125 1.928 1.928 0 00-1.085.682c-.271.343-.42.768-.42 1.206v.552c0 .109.088.197.197.197h.95a.197.197 0 00.196-.197v-.552c0-.276.192-.519.457-.578a4.904 4.904 0 002.625-1.56c.335-.392.597-.828.778-1.3a4.256 4.256 0 00-.103-3.303zM9 13.834a.985.985 0 10.001 1.97.985.985 0 00-.001-1.97z"}));var ir=f(require("react")),Is=({style:e,className:t})=>ir.default.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},ir.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"}));var Bs=({flowId:e,style:t,onStepCompletion:o,visible:i=!0,type:r="inline",title:n="Help",appearance:s})=>{let{getFlow:p,getFlowSteps:d,markStepCompleted:l,getStepStatus:x,getNumberOfStepsCompleted:m,isLoading:u,targetingLogicShouldHideFlow:w}=Z(),{primaryCTAClickSideEffects:C}=ue(),S=(0,oe.useRef)(null),[y,A]=(0,oe.useState)(!1),{mergeAppearanceWithDefault:k}=te();s=k(s),(0,oe.useEffect)(()=>(document.addEventListener("click",O,!1),()=>{document.removeEventListener("click",O,!1)}),[]);let O=I=>{S.current&&!S.current.contains(I.target)&&A(!1)};if(u)return null;let v=p(e);if(!v||w(v))return null;let c=d(e);if(!c||!i)return null;function g(I,$){!I.completionCriteria&&(I.autoMarkCompleted||I.autoMarkCompleted===void 0)&&l(e,I.id),C(I),o&&o(I,$),A(!1)}function T(){return y&&oe.default.createElement(Ps,{className:a("floatingWidgetMenu",s),as:Xt.motion.div,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},type:r},c.map((I,$)=>oe.default.createElement(vs,{className:a("floatingWidgetMenuItem",s),key:$,onClick:()=>g(I,$)},I.title)))}return r=="inline"?oe.default.createElement("span",{ref:S},oe.default.createElement(bs,{style:t,onClick:()=>{A(!y)},className:a("supportButton",s)},oe.default.createElement(ws,{className:a("supportIconContainer",s)},oe.default.createElement(Is,{className:a("supportIcon",s),style:{width:"18px",height:"18px"}})),oe.default.createElement(Ts,{className:a("supportButtonTitle",s)},n)),oe.default.createElement(Xt.AnimatePresence,null,oe.default.createElement(T,null))):oe.default.createElement(As.Portal,null,oe.default.createElement(Fs,{style:t,ref:S},oe.default.createElement(Xt.AnimatePresence,null,oe.default.createElement(T,null)),oe.default.createElement(ks,{onClick:()=>{A(!y)},as:Xt.motion.button,whileHover:{scale:1.1},className:a("floatingWidgetButton",s)},oe.default.createElement(Es,{className:a("floatingWidgetButtonIcon",s),style:{display:"flex",width:"20px",height:"20px"}}))))};var Pe=f(require("react"));var uo=f(require("styled-components"));var Os=uo.default.div`
|
|
1380
1380
|
${e=>F(e)} {
|
|
1381
1381
|
display: flex;
|
|
1382
1382
|
flex-direction: column;
|