Socket
Book a DemoInstallSign in
Socket

@flows/react

Package Overview
Dependencies
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@flows/react - npm Package Compare versions

Comparing version

to
1.4.0

2

dist/index.js
"use client"
"use strict";var _=Object.defineProperty,Et=Object.defineProperties,It=Object.getOwnPropertyDescriptor,At=Object.getOwnPropertyDescriptors,Ft=Object.getOwnPropertyNames,et=Object.getOwnPropertySymbols;var nt=Object.prototype.hasOwnProperty,$t=Object.prototype.propertyIsEnumerable;var ot=(t,e,o)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,d=(t,e)=>{for(var o in e||(e={}))nt.call(e,o)&&ot(t,o,e[o]);if(et)for(var o of et(e))$t.call(e,o)&&ot(t,o,e[o]);return t},w=(t,e)=>Et(t,At(e));var Mt=(t,e)=>{for(var o in e)_(t,o,{get:e[o],enumerable:!0})},_t=(t,e,o,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ft(e))!nt.call(t,n)&&n!==o&&_(t,n,{get:()=>e[n],enumerable:!(p=It(e,n))||p.enumerable});return t};var Dt=t=>_t(_({},"__esModule",{value:!0}),t);var qt={};Mt(qt,{FlowsProvider:()=>Rt,FlowsSlot:()=>Ut,resetAllWorkflowsProgress:()=>Wt,resetWorkflowProgress:()=>jt,useCurrentFloatingBlocks:()=>O,useCurrentSlotBlocks:()=>L});module.exports=Dt(qt);var D=require("react"),j=(0,D.createContext)({blocks:[],components:{},tourComponents:{},runningTours:[]}),C=()=>(0,D.useContext)(j);var E=require("react");var rt=(t,{body:e,method:o,version:p})=>fetch(t,{method:o,headers:{"Content-Type":"application/json","x-flows-version":p},body:e?JSON.stringify(e):void 0}).then(async n=>{var i;let r=await n.text(),s=r?JSON.parse(r):void 0;if(!n.ok){let c=s;throw new Error((i=c==null?void 0:c.message)!=null?i:n.statusText)}return s}),N=(t,e)=>({getBlocks:o=>rt(`${t}/v2/sdk/blocks`,{method:"POST",body:o,version:e}),sendEvent:o=>rt(`${t}/v2/sdk/events`,{method:"POST",body:o,version:e})});var st=({block:t,exitNodeCb:e})=>{let o=({properties:r,parentKey:s})=>{var c;let i=d({},r);return Object.entries(r).forEach(([u,l])=>{Array.isArray(l)&&(i[u]=l.map((m,a)=>typeof m=="object"?o({properties:m,parentKey:[s,u,a].filter(f=>f!==void 0).join(".")}):m))}),delete i.f__exit_nodes,(c=r.f__exit_nodes)==null||c.forEach(u=>{let l=()=>e([s,u].filter(m=>m!==void 0).join("."));i[u]=l}),i},p=o({properties:t.data}),n=t.exitNodes.reduce((r,s)=>{let i=()=>e(s);return r[s]=i,r},{});return d(d({__flows:{key:t.key}},p),n)};var Nt="#22262d",Vt="#fff",it="%cFlows%c",ct=`color:${Vt};background:${Nt};padding:2px 4px;border-radius:4px`,b={error:(t,...e)=>{console.error(`${it} ${t}`,ct,"",...e)},warn:(t,...e)=>{console.warn(`${it} ${t}`,ct,"",...e)}};var q=(t,e)=>e?Array.isArray(e)?e.some(o=>q(t,o)):typeof t!="string"?!1:new RegExp(e).test(t):!0;var K=(t,e)=>e?Array.isArray(e)?e.some(o=>K(t,o)):typeof t!="string"?!1:t.includes(e):!0,G=(t,e)=>e?Array.isArray(e)?e.every(o=>G(t,o)):typeof t!="string"?!1:!t.includes(e):!0;var R=({operator:t,pathname:e,value:o})=>t==="contains"?K(e,o):t==="notContains"?G(e,o):t==="regex"?q(e,o):!0,pt=({eventTarget:t,value:e})=>e?Array.from(document.querySelectorAll(e)).some(o=>o.contains(t)):!1;var $=()=>window.location.pathname+window.location.search;var x={};var ut="@flows/react",lt="1.3.0";var V=`${ut}@${lt}`;var B=async t=>{let{apiUrl:e,environment:o,organizationId:p,userId:n}=x;!e||!o||!p||!n||await N(e,V).sendEvent(w(d({},t),{environment:o,organizationId:p,userId:n}))};var mt=({blocks:t})=>{let[e,o]=(0,E.useState)([]);return(0,E.useEffect)(()=>{o(n=>{let r=t.filter(c=>c.type==="tour"),s=new Map(n.map(c=>[c.blockId,c]));return r.map(c=>{var a,f,y;let u=s.get(c.id),l=(f=(a=u==null?void 0:u.currentBlockIndex)!=null?a:c.currentTourIndex)!=null?f:0,m=(y=u==null?void 0:u.hidden)!=null?y:!1;return{blockId:c.id,currentBlockIndex:l,hidden:m}})})},[t]),(0,E.useMemo)(()=>{let n=(i,c)=>{o(u=>u.map(l=>l.blockId===i?c(l):l))},r=i=>{n(i,c=>w(d({},c),{hidden:!0}))},s=(i,c)=>{n(i,u=>w(d({},u),{currentBlockIndex:c}))};return e.map(({blockId:i,currentBlockIndex:c,hidden:u})=>{var Q,Y,Z;let l=t.find(v=>v.id===i);if(!l)return;let m=(Q=l.tourBlocks)==null?void 0:Q[c],a=c===((Z=(Y=l.tourBlocks)==null?void 0:Y.length)!=null?Z:0)-1,f=v=>{B({name:"tour-update",blockId:i,properties:{currentTourIndex:v}})};return{block:l,hidden:u,currentBlockIndex:c,activeStep:m,hide(){r(i)},continue:()=>{if(a)r(i),B({name:"transition",propertyKey:"complete",blockId:i});else{let v=c+1;s(i,v),f(v)}},previous:()=>{var tt;let v=c===0?c:c-1;for(;v>0&&l.tourBlocks&&!((tt=l.tourBlocks.at(v))!=null&&tt.componentType);)v-=1;s(i,v),f(v)},cancel:()=>{r(i),B({name:"transition",blockId:i,propertyKey:"cancel"})}}}).filter(i=>!!i)},[t,e])};var k=require("react");var g=require("react"),ft=({url:t,onMessage:e,onOpen:o})=>{let[p,n]=(0,g.useState)(),r=(0,g.useRef)(void 0),[s,i]=(0,g.useState)(0),c=(0,g.useRef)(o);(0,g.useEffect)(()=>{c.current=o},[o]);let u=(0,g.useRef)(e);(0,g.useEffect)(()=>{u.current=e},[e]);let l=(0,g.useCallback)(a=>{u.current(a)},[]),m=(0,g.useCallback)(()=>{r.current&&(r.current(),r.current=void 0);let a=new WebSocket(t);n(a);let f=()=>{var T;(T=c.current)==null||T.call(c),i(0)},y=()=>{n(void 0),i(T=>T+1)};a.addEventListener("open",f),a.addEventListener("close",y),a.addEventListener("message",l);let P=()=>{a.removeEventListener("open",f),a.removeEventListener("close",y),a.removeEventListener("message",l),a.readyState===WebSocket.CONNECTING?a.addEventListener("open",()=>{a.close()}):a.close(),n(void 0)};return r.current=P,P},[l,t]);(0,g.useEffect)(()=>{let a=m();return()=>{a()}},[m]),(0,g.useEffect)(()=>{if(p)return;let a=setTimeout(()=>{m()},Math.min(1e3*2**s,1e4));return()=>{clearTimeout(a)}},[s,p,m]),(0,g.useEffect)(()=>()=>{r.current&&r.current()},[])};var gt=({apiUrl:t,environment:e,organizationId:o,userId:p,userProperties:n})=>{let[r,s]=(0,k.useState)([]),i=(0,k.useMemo)(()=>({environment:e,organizationId:o,userId:p}),[e,o,p]),c=(0,k.useRef)(n);(0,k.useEffect)(()=>{c.current=n},[n]);let u=(0,k.useCallback)(()=>{N(t,V).getBlocks(w(d({},i),{userProperties:c.current})).then(a=>{s(a.blocks)}).catch(a=>{b.error("Failed to load blocks",a)})},[t,i]),l=(0,k.useMemo)(()=>`${t.replace("https://","wss://").replace("http://","ws://")}/ws/sdk/block-updates?${new URLSearchParams(i).toString()}`,[t,i]),m=(0,k.useCallback)(a=>{let f=JSON.parse(a.data),y=new Set([...f.exitedBlockIds,...f.updatedBlocks.map(P=>P.id)]);s(P=>[...P.filter(T=>!y.has(T.id)),...f.updatedBlocks])},[]);return ft({url:l,onMessage:m,onOpen:u}),(0,k.useEffect)(()=>{r.forEach(a=>{var f;dt(a),(f=a.tourBlocks)==null||f.forEach(y=>{dt(y)})})},[r]),r},dt=t=>{t.slottable&&!t.slotId&&b.error(`Encountered workflow block "${t.componentType}" that is slottable but has no slotId`)};var h=require("react"),yt=require("react/jsx-runtime"),Ot=200,Lt=()=>{let[t,e]=(0,h.useState)(),o=(0,h.useRef)(t);return(0,h.useEffect)(()=>{o.current=t},[t]),(0,h.useEffect)(()=>{let p=window.setInterval(()=>{let n=$();o.current!==n&&e(n)},Ot);return()=>{clearInterval(p)}}),t},kt=(0,h.createContext)(void 0),M=()=>{if((0,h.useContext)(kt)!==void 0)return $()},vt=({children:t})=>{let e=Lt();return(0,yt.jsx)(kt.Provider,{value:e,children:t})};var S=require("react");var ht=require("react");var wt=()=>{let{runningTours:t}=C(),e=M(),[o]=(0,ht.useState)(new Map),p=(0,S.useMemo)(()=>t.filter(n=>{var r;return!!((r=n.activeStep)!=null&&r.tourWait)}),[t]);return(0,S.useEffect)(()=>{p.forEach(n=>{var s,i,c;let r=(s=n.activeStep)==null?void 0:s.tourWait;(r==null?void 0:r.interaction)==="navigation"&&R({pathname:e,operator:(i=r.page)==null?void 0:i.operator,value:(c=r.page)==null?void 0:c.value})&&n.continue()})},[e,p]),(0,S.useEffect)(()=>{let n=r=>{let s=r.target;if(!s||!(s instanceof Element))return;let i=$();p.forEach(c=>{var l,m,a;let u=(l=c.activeStep)==null?void 0:l.tourWait;if((u==null?void 0:u.interaction)==="click"){let f=R({pathname:i,operator:(m=u.page)==null?void 0:m.operator,value:(a=u.page)==null?void 0:a.value});pt({eventTarget:s,value:u.element})&&f&&c.continue()}})};return addEventListener("click",n),()=>{removeEventListener("click",n)}},[e,p]),(0,S.useEffect)(()=>{t.forEach(n=>{let r=n.activeStep,s=o.get(n.block.id);s&&s.stepId!==(r==null?void 0:r.id)&&(clearTimeout(s.timeoutId),o.delete(n.block.id))})},[t,o]),(0,S.useEffect)(()=>{p.forEach(n=>{let r=n.activeStep,s=r==null?void 0:r.tourWait;if(r&&(s==null?void 0:s.interaction)==="delay"&&s.ms!==void 0&&!o.has(n.block.id)){let i=window.setTimeout(()=>{n.continue(),o.delete(n.block.id)},s.ms);o.set(n.block.id,{timeoutId:i,stepId:r.id})}})},[p,o]),null};var I=require("react");var z=t=>{if(!t.componentType)return[];let e=st({block:t,exitNodeCb:o=>B({name:"transition",blockId:t.id,propertyKey:o})});return{id:t.id,type:"component",component:t.componentType,props:e}},J=t=>{let e=t.activeStep;if(!(e!=null&&e.componentType))return[];let o=t.currentBlockIndex===0;return{id:e.id,type:"tour-component",component:e.componentType,props:w(d({__flows:{key:e.key}},e.data),{continue:t.continue,previous:o?void 0:t.previous,cancel:t.cancel})}};var X=t=>t==null?void 0:t.slotId;var Bt=()=>{let{blocks:t}=C(),e=M();return(0,I.useMemo)(()=>t.filter(o=>R({pathname:e,operator:o.page_targeting_operator,value:o.page_targeting_values})),[t,e])},Pt=()=>{let{runningTours:t}=C(),e=M();return(0,I.useMemo)(()=>t.filter(o=>{let p=o.activeStep;return!o.hidden&&p&&R({pathname:e,operator:p.page_targeting_operator,value:p.page_targeting_values})}),[e,t])},O=()=>{let t=Bt(),e=Pt(),o=(0,I.useMemo)(()=>t.filter(n=>!n.slottable).flatMap(z),[t]),p=(0,I.useMemo)(()=>e.filter(n=>{let r=n.activeStep;return r&&!r.slottable}).flatMap(J),[e]);return[...o,...p]},Tt=t=>"type"in t,Ct=t=>{var e,o,p;return Tt(t)?(e=t.slotIndex)!=null?e:0:(p=(o=t.activeStep)==null?void 0:o.slotIndex)!=null?p:0},L=t=>{let e=Bt(),o=Pt();return(0,I.useMemo)(()=>{let n=e.filter(s=>s.slottable&&X(s)===t),r=o.filter(s=>{var i;return((i=s.activeStep)==null?void 0:i.slottable)&&X(s.activeStep)===t});return[...n,...r].sort((s,i)=>Ct(s)-Ct(i)).flatMap(s=>Tt(s)?z(s):J(s))},[t,e,o])};var bt=require("react/jsx-runtime"),U=({block:t})=>{let{components:e}=C(),o=e[t.component];return o?(0,bt.jsx)(o,d({},t.props)):(b.error(`Component not found for workflow block "${t.component}"`),null)};var xt=require("react/jsx-runtime"),W=({block:t})=>{let{tourComponents:e}=C(),o=e[t.component];return o?(0,xt.jsx)(o,d({},t.props)):(b.error(`Tour Component not found for tour block "${t.component}"`),null)};var A=require("react/jsx-runtime"),St=()=>{let t=O();return(0,A.jsx)(A.Fragment,{children:t.map(e=>e.type==="component"?(0,A.jsx)(U,{block:e},e.id):e.type==="tour-component"?(0,A.jsx)(W,{block:e},e.id):null)})};var F=require("react/jsx-runtime"),Rt=({children:t,apiUrl:e="https://api.flows-cloud.com",environment:o,organizationId:p,userId:n,components:r,tourComponents:s,userProperties:i})=>{x.apiUrl=e,x.environment=o,x.organizationId=p,x.userId=n;let c=gt({apiUrl:e,environment:o,organizationId:p,userId:n,userProperties:i}),u=mt({blocks:c});return(0,F.jsx)(vt,{children:(0,F.jsxs)(j.Provider,{value:{blocks:c,components:r,runningTours:u,tourComponents:s},children:[t,(0,F.jsx)(St,{}),(0,F.jsx)(wt,{})]})})};var H=require("react/jsx-runtime"),Ut=({id:t,placeholder:e})=>{let o=L(t);return o.length?o.map(p=>p.type==="component"?(0,H.jsx)(U,{block:p},p.id):p.type==="tour-component"?(0,H.jsx)(W,{block:p},p.id):null):e!=null?e:null};var Wt=()=>B({name:"reset-progress"}),jt=t=>B({name:"reset-progress",workflowId:t});
"use strict";var _=Object.defineProperty,At=Object.defineProperties,Ft=Object.getOwnPropertyDescriptor,$t=Object.getOwnPropertyDescriptors,Mt=Object.getOwnPropertyNames,nt=Object.getOwnPropertySymbols;var st=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var rt=(t,e,o)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,d=(t,e)=>{for(var o in e||(e={}))st.call(e,o)&&rt(t,o,e[o]);if(nt)for(var o of nt(e))_t.call(e,o)&&rt(t,o,e[o]);return t},h=(t,e)=>At(t,$t(e));var Dt=(t,e)=>{for(var o in e)_(t,o,{get:e[o],enumerable:!0})},Nt=(t,e,o,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mt(e))!st.call(t,n)&&n!==o&&_(t,n,{get:()=>e[n],enumerable:!(p=Ft(e,n))||p.enumerable});return t};var Vt=t=>Nt(_({},"__esModule",{value:!0}),t);var Gt={};Dt(Gt,{FlowsProvider:()=>It,FlowsSlot:()=>qt,resetAllWorkflowsProgress:()=>jt,resetWorkflowProgress:()=>Kt,useCurrentFloatingBlocks:()=>O,useCurrentSlotBlocks:()=>L});module.exports=Vt(Gt);var D=require("react"),q=(0,D.createContext)({blocks:[],components:{},tourComponents:{},runningTours:[]}),C=()=>(0,D.useContext)(q);var E=require("react");var it=(t,{body:e,method:o,version:p})=>fetch(t,{method:o,headers:{"Content-Type":"application/json","x-flows-version":p},body:e?JSON.stringify(e):void 0}).then(async n=>{var i;let r=await n.text(),s=r?JSON.parse(r):void 0;if(!n.ok){let c=s;throw new Error((i=c==null?void 0:c.message)!=null?i:n.statusText)}return s}),N=(t,e)=>({getBlocks:o=>it(`${t}/v2/sdk/blocks`,{method:"POST",body:o,version:e}),sendEvent:o=>it(`${t}/v2/sdk/events`,{method:"POST",body:o,version:e})});var ct=({block:t,exitNodeCb:e})=>{let o=({properties:r,parentKey:s})=>{var c;let i=d({},r);return Object.entries(r).forEach(([a,l])=>{Array.isArray(l)&&(i[a]=l.map((m,u)=>typeof m=="object"?o({properties:m,parentKey:[s,a,u].filter(f=>f!==void 0).join(".")}):m))}),delete i.f__exit_nodes,(c=r.f__exit_nodes)==null||c.forEach(a=>{let l=()=>e([s,a].filter(m=>m!==void 0).join("."));i[a]=l}),i},p=o({properties:t.data}),n=t.exitNodes.reduce((r,s)=>{let i=()=>e(s);return r[s]=i,r},{});return d(d({__flows:{key:t.key}},p),n)};var Ot="#22262d",Lt="#fff",pt="%cFlows%c",ut=`color:${Lt};background:${Ot};padding:2px 4px;border-radius:4px`,b={error:(t,...e)=>{console.error(`${pt} ${t}`,ut,"",...e)},warn:(t,...e)=>{console.warn(`${pt} ${t}`,ut,"",...e)}};var j=(t,e)=>e?Array.isArray(e)?e.some(o=>j(t,o)):typeof t!="string"?!1:new RegExp(e).test(t):!0,K=(t,e)=>e===void 0?!0:Array.isArray(e)?e.some(o=>K(t,o)):t===e,G=(t,e)=>e===void 0?!0:Array.isArray(e)?e.every(o=>G(t,o)):t!==e;var z=(t,e)=>e?Array.isArray(e)?e.some(o=>z(t,o)):typeof t!="string"?!1:t.includes(e):!0,J=(t,e)=>e?Array.isArray(e)?e.every(o=>J(t,o)):typeof t!="string"?!1:!t.includes(e):!0;var R=({operator:t,pathname:e,value:o})=>t==="eq"?K(e,o):t==="ne"?G(e,o):t==="contains"?z(e,o):t==="notContains"?J(e,o):t==="regex"?j(e,o):!0,at=({eventTarget:t,value:e})=>e?Array.from(document.querySelectorAll(e)).some(o=>o.contains(t)):!1;var $=()=>window.location.pathname+window.location.search;var x={};var mt="@flows/react",ft="1.4.0";var V=`${mt}@${ft}`;var B=async t=>{let{apiUrl:e,environment:o,organizationId:p,userId:n}=x;!e||!o||!p||!n||await N(e,V).sendEvent(h(d({},t),{environment:o,organizationId:p,userId:n}))};var dt=({blocks:t})=>{let[e,o]=(0,E.useState)([]);return(0,E.useEffect)(()=>{o(n=>{let r=t.filter(c=>c.type==="tour"),s=new Map(n.map(c=>[c.blockId,c]));return r.map(c=>{var u,f,y;let a=s.get(c.id),l=(f=(u=a==null?void 0:a.currentBlockIndex)!=null?u:c.currentTourIndex)!=null?f:0,m=(y=a==null?void 0:a.hidden)!=null?y:!1;return{blockId:c.id,currentBlockIndex:l,hidden:m}})})},[t]),(0,E.useMemo)(()=>{let n=(i,c)=>{o(a=>a.map(l=>l.blockId===i?c(l):l))},r=i=>{n(i,c=>h(d({},c),{hidden:!0}))},s=(i,c)=>{n(i,a=>h(d({},a),{currentBlockIndex:c}))};return e.map(({blockId:i,currentBlockIndex:c,hidden:a})=>{var Z,tt,et;let l=t.find(v=>v.id===i);if(!l)return;let m=(Z=l.tourBlocks)==null?void 0:Z[c],u=c===((et=(tt=l.tourBlocks)==null?void 0:tt.length)!=null?et:0)-1,f=v=>{B({name:"tour-update",blockId:i,properties:{currentTourIndex:v}})};return{block:l,hidden:a,currentBlockIndex:c,activeStep:m,hide(){r(i)},continue:()=>{if(u)r(i),B({name:"transition",propertyKey:"complete",blockId:i});else{let v=c+1;s(i,v),f(v)}},previous:()=>{var ot;let v=c===0?c:c-1;for(;v>0&&l.tourBlocks&&!((ot=l.tourBlocks.at(v))!=null&&ot.componentType);)v-=1;s(i,v),f(v)},cancel:()=>{r(i),B({name:"transition",blockId:i,propertyKey:"cancel"})}}}).filter(i=>!!i)},[t,e])};var k=require("react");var g=require("react"),gt=({url:t,onMessage:e,onOpen:o})=>{let[p,n]=(0,g.useState)(),r=(0,g.useRef)(void 0),[s,i]=(0,g.useState)(0),c=(0,g.useRef)(o);(0,g.useEffect)(()=>{c.current=o},[o]);let a=(0,g.useRef)(e);(0,g.useEffect)(()=>{a.current=e},[e]);let l=(0,g.useCallback)(u=>{a.current(u)},[]),m=(0,g.useCallback)(()=>{r.current&&(r.current(),r.current=void 0);let u=new WebSocket(t);n(u);let f=()=>{var T;(T=c.current)==null||T.call(c),i(0)},y=()=>{n(void 0),i(T=>T+1)};u.addEventListener("open",f),u.addEventListener("close",y),u.addEventListener("message",l);let P=()=>{u.removeEventListener("open",f),u.removeEventListener("close",y),u.removeEventListener("message",l),u.readyState===WebSocket.CONNECTING?u.addEventListener("open",()=>{u.close()}):u.close(),n(void 0)};return r.current=P,P},[l,t]);(0,g.useEffect)(()=>{let u=m();return()=>{u()}},[m]),(0,g.useEffect)(()=>{if(p)return;let u=setTimeout(()=>{m()},Math.min(1e3*2**s,1e4));return()=>{clearTimeout(u)}},[s,p,m]),(0,g.useEffect)(()=>()=>{r.current&&r.current()},[])};var vt=({apiUrl:t,environment:e,organizationId:o,userId:p,userProperties:n})=>{let[r,s]=(0,k.useState)([]),i=(0,k.useMemo)(()=>({environment:e,organizationId:o,userId:p}),[e,o,p]),c=(0,k.useRef)(n);(0,k.useEffect)(()=>{c.current=n},[n]);let a=(0,k.useCallback)(()=>{N(t,V).getBlocks(h(d({},i),{userProperties:c.current})).then(u=>{s(u.blocks)}).catch(u=>{b.error("Failed to load blocks",u)})},[t,i]),l=(0,k.useMemo)(()=>`${t.replace("https://","wss://").replace("http://","ws://")}/ws/sdk/block-updates?${new URLSearchParams(i).toString()}`,[t,i]),m=(0,k.useCallback)(u=>{let f=JSON.parse(u.data),y=new Set([...f.exitedBlockIds,...f.updatedBlocks.map(P=>P.id)]);s(P=>[...P.filter(T=>!y.has(T.id)),...f.updatedBlocks])},[]);return gt({url:l,onMessage:m,onOpen:a}),(0,k.useEffect)(()=>{r.forEach(u=>{var f;kt(u),(f=u.tourBlocks)==null||f.forEach(y=>{kt(y)})})},[r]),r},kt=t=>{t.slottable&&!t.slotId&&b.error(`Encountered workflow block "${t.componentType}" that is slottable but has no slotId`)};var w=require("react"),ht=require("react/jsx-runtime"),Ut=200,Wt=()=>{let[t,e]=(0,w.useState)(),o=(0,w.useRef)(t);return(0,w.useEffect)(()=>{o.current=t},[t]),(0,w.useEffect)(()=>{let p=window.setInterval(()=>{let n=$();o.current!==n&&e(n)},Ut);return()=>{clearInterval(p)}}),t},yt=(0,w.createContext)(void 0),M=()=>{if((0,w.useContext)(yt)!==void 0)return $()},wt=({children:t})=>{let e=Wt();return(0,ht.jsx)(yt.Provider,{value:e,children:t})};var S=require("react");var Ct=require("react");var Bt=()=>{let{runningTours:t}=C(),e=M(),[o]=(0,Ct.useState)(new Map),p=(0,S.useMemo)(()=>t.filter(n=>{var r;return!!((r=n.activeStep)!=null&&r.tourWait)}),[t]);return(0,S.useEffect)(()=>{p.forEach(n=>{var s,i,c;let r=(s=n.activeStep)==null?void 0:s.tourWait;(r==null?void 0:r.interaction)==="navigation"&&R({pathname:e,operator:(i=r.page)==null?void 0:i.operator,value:(c=r.page)==null?void 0:c.value})&&n.continue()})},[e,p]),(0,S.useEffect)(()=>{let n=r=>{let s=r.target;if(!s||!(s instanceof Element))return;let i=$();p.forEach(c=>{var l,m,u;let a=(l=c.activeStep)==null?void 0:l.tourWait;if((a==null?void 0:a.interaction)==="click"){let f=R({pathname:i,operator:(m=a.page)==null?void 0:m.operator,value:(u=a.page)==null?void 0:u.value});at({eventTarget:s,value:a.element})&&f&&c.continue()}})};return addEventListener("click",n),()=>{removeEventListener("click",n)}},[e,p]),(0,S.useEffect)(()=>{t.forEach(n=>{let r=n.activeStep,s=o.get(n.block.id);s&&s.stepId!==(r==null?void 0:r.id)&&(clearTimeout(s.timeoutId),o.delete(n.block.id))})},[t,o]),(0,S.useEffect)(()=>{p.forEach(n=>{let r=n.activeStep,s=r==null?void 0:r.tourWait;if(r&&(s==null?void 0:s.interaction)==="delay"&&s.ms!==void 0&&!o.has(n.block.id)){let i=window.setTimeout(()=>{n.continue(),o.delete(n.block.id)},s.ms);o.set(n.block.id,{timeoutId:i,stepId:r.id})}})},[p,o]),null};var I=require("react");var X=t=>{if(!t.componentType)return[];let e=ct({block:t,exitNodeCb:o=>B({name:"transition",blockId:t.id,propertyKey:o})});return{id:t.id,type:"component",component:t.componentType,props:e}},H=t=>{let e=t.activeStep;if(!(e!=null&&e.componentType))return[];let o=t.currentBlockIndex===0;return{id:e.id,type:"tour-component",component:e.componentType,props:h(d({__flows:{key:e.key}},e.data),{continue:t.continue,previous:o?void 0:t.previous,cancel:t.cancel})}};var Q=t=>t==null?void 0:t.slotId;var Tt=()=>{let{blocks:t}=C(),e=M();return(0,I.useMemo)(()=>t.filter(o=>R({pathname:e,operator:o.page_targeting_operator,value:o.page_targeting_values})),[t,e])},bt=()=>{let{runningTours:t}=C(),e=M();return(0,I.useMemo)(()=>t.filter(o=>{let p=o.activeStep;return!o.hidden&&p&&R({pathname:e,operator:p.page_targeting_operator,value:p.page_targeting_values})}),[e,t])},O=()=>{let t=Tt(),e=bt(),o=(0,I.useMemo)(()=>t.filter(n=>!n.slottable).flatMap(X),[t]),p=(0,I.useMemo)(()=>e.filter(n=>{let r=n.activeStep;return r&&!r.slottable}).flatMap(H),[e]);return[...o,...p]},xt=t=>"type"in t,Pt=t=>{var e,o,p;return xt(t)?(e=t.slotIndex)!=null?e:0:(p=(o=t.activeStep)==null?void 0:o.slotIndex)!=null?p:0},L=t=>{let e=Tt(),o=bt();return(0,I.useMemo)(()=>{let n=e.filter(s=>s.slottable&&Q(s)===t),r=o.filter(s=>{var i;return((i=s.activeStep)==null?void 0:i.slottable)&&Q(s.activeStep)===t});return[...n,...r].sort((s,i)=>Pt(s)-Pt(i)).flatMap(s=>xt(s)?X(s):H(s))},[t,e,o])};var St=require("react/jsx-runtime"),U=({block:t})=>{let{components:e}=C(),o=e[t.component];return o?(0,St.jsx)(o,d({},t.props)):(b.error(`Component not found for workflow block "${t.component}"`),null)};var Rt=require("react/jsx-runtime"),W=({block:t})=>{let{tourComponents:e}=C(),o=e[t.component];return o?(0,Rt.jsx)(o,d({},t.props)):(b.error(`Tour Component not found for tour block "${t.component}"`),null)};var A=require("react/jsx-runtime"),Et=()=>{let t=O();return(0,A.jsx)(A.Fragment,{children:t.map(e=>e.type==="component"?(0,A.jsx)(U,{block:e},e.id):e.type==="tour-component"?(0,A.jsx)(W,{block:e},e.id):null)})};var F=require("react/jsx-runtime"),It=({children:t,apiUrl:e="https://api.flows-cloud.com",environment:o,organizationId:p,userId:n,components:r,tourComponents:s,userProperties:i})=>{x.apiUrl=e,x.environment=o,x.organizationId=p,x.userId=n;let c=vt({apiUrl:e,environment:o,organizationId:p,userId:n,userProperties:i}),a=dt({blocks:c});return(0,F.jsx)(wt,{children:(0,F.jsxs)(q.Provider,{value:{blocks:c,components:r,runningTours:a,tourComponents:s},children:[t,(0,F.jsx)(Et,{}),(0,F.jsx)(Bt,{})]})})};var Y=require("react/jsx-runtime"),qt=({id:t,placeholder:e})=>{let o=L(t);return o.length?o.map(p=>p.type==="component"?(0,Y.jsx)(U,{block:p},p.id):p.type==="tour-component"?(0,Y.jsx)(W,{block:p},p.id):null):e!=null?e:null};var jt=()=>B({name:"reset-progress"}),Kt=t=>B({name:"reset-progress",workflowId:t});
{
"name": "@flows/react",
"version": "1.3.0",
"version": "1.4.0",
"description": "Flows React SDK – Build native product growth experiences, your way",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet