UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 5.04 kB
(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`n8n@2.16.1`}}catch{}})();try{(function(){var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`acf1c2d0-b8c4-4206-b77d-e56c0b3159ca`,e._sentryDebugIdIdentifier=`sentry-dbid-acf1c2d0-b8c4-4206-b77d-e56c0b3159ca`)})()}catch{}import{Ft as e,S as t}from"./vue.runtime.esm-bundler-C3C09Zii.js";import{at as n}from"./core-Bz5WjPxS.js";import{ct as r}from"./src-XqE2yCpG.js";import{Ot as i,ja as a,r as o,s,sr as c,t as l,ur as u}from"./users.store-xP93bV7X.js";import{Qo as d,sl as f}from"./constants-DuQbSl-q.js";import{T as p,t as m}from"./useRootStore-XEREVjMN.js";import{An as h}from"./settings.store-CAFiYCMH.js";import{t as g}from"./pushConnection.store-D7Wwlyyp.js";function _({route:r}){let i=o(),a=u(),s=n(),c=e(null),l=t(()=>r.name===d.DEMO),f=[];function p(e){if(!(l.value||window.preventNodeViewBeforeUnload)){if(f.forEach(e=>e()),i.stateIsDirty)return e.returnValue=!0,!0;a.startLoading(s.baseText(`nodeView.redirecting`))}}function m(e){f.push(e)}function h(){window.addEventListener(`beforeunload`,p)}function g(){c.value&&clearTimeout(c.value),window.removeEventListener(`beforeunload`,p)}return{onBeforeUnload:p,addBeforeUnloadEventBindings:h,removeBeforeUnloadEventBindings:g,addBeforeUnloadHandler:m}}var v=5*f.MINUTE,y=30*f.SECOND,ee=20*f.SECOND,te=5*f.SECOND,b=20*f.SECOND,x=p(h.COLLABORATION,()=>{let n=g(),u=s(),d=c(),p=l(),h=o(),x=m(),S=i(),{addBeforeUnloadEventBindings:ne,removeBeforeUnloadEventBindings:re,addBeforeUnloadHandler:C}=_({route:r()}),w=e(null),T=e([]),E=e(null),D=e(Date.now()),O=e(null),k=e(null),A=e(null),j=e(null),M=e(null),N=e(null),P=null,F=t(()=>E.value?.clientId===x.pushRef),ie=t(()=>E.value?.userId===p.currentUserId),I=t(()=>T.value.find(e=>e.user.id===E.value?.userId)??null),L=t(()=>E.value!==null),R=t(()=>L.value&&!F.value);async function z(){try{let{workflowId:e}=u;return u.isWorkflowSaved[e]?await a(x.restApiContext,e):null}catch{return null}}function B(){N.value&&n.send({type:`workflowOpened`,workflowId:N.value})}function V(){N.value&&(n.send({type:`workflowClosed`,workflowId:N.value}),T.value=T.value.filter(({user:e})=>e.id!==p.currentUserId))}let H=()=>{k.value!==null&&(clearInterval(k.value),k.value=null)},U=()=>{H(),k.value=window.setInterval(B,v)},W=()=>{A.value!==null&&(clearInterval(A.value),A.value=null)},G=()=>{if(!F.value||!N.value){W();return}n.send({type:`writeAccessHeartbeat`,workflowId:N.value})},K=()=>{W(),A.value=window.setInterval(G,y)},q=()=>{j.value!==null&&(clearInterval(j.value),j.value=null)},J=async()=>{if(!R.value){q();return}!await z()&&E.value&&(E.value=null,q())},Y=()=>{q(),j.value=window.setInterval(J,ee)};C(()=>{V(),h.stateIsDirty&&(w.value=setTimeout(()=>B,5*f.SECOND))});function X(){D.value=Date.now()}function ae(){if(F.value)return!0;if(!N.value)return!1;try{n.send({type:`writeAccessRequested`,workflowId:N.value})}catch{return!1}return!0}function oe(){if(!N.value)return!1;try{n.send({type:`writeAccessRequested`,workflowId:N.value,force:!0})}catch{return!1}return!0}function Z(){if(E.value=null,W(),!N.value)return!0;try{return n.send({type:`writeAccessReleaseRequested`,workflowId:N.value}),!0}catch{return!1}}function se(){F.value&&(S.streaming||Date.now()-D.value>=b&&Z())}function Q(){O.value!==null&&(clearInterval(O.value),O.value=null)}function $(){Q(),O.value=window.setInterval(se,te)}function ce(e){P=e}async function le(){if(!(F.value||!N.value))try{let e=await d.fetchWorkflow(N.value);return P&&P(e),!0}catch(e){return console.error(`[Collaboration] Error in handleWorkflowUpdate:`,e),!1}}function ue(){E.value&&(T.value.some(e=>e.user.id===E.value?.userId)||(E.value=null))}async function de(){if(M.value)return;N.value=u.workflowId;let e=await z();e&&(E.value=e,F.value?K():Y()),M.value=n.addEventListener(e=>{if(e.type===`collaboratorsChanged`&&e.data.workflowId===N.value){T.value=e.data.collaborators,ue();return}if(e.type===`writeAccessAcquired`&&e.data.workflowId===N.value){E.value={clientId:e.data.clientId,userId:e.data.userId},F.value?(X(),K(),q()):Y();return}if(e.type===`writeAccessReleased`&&e.data.workflowId===N.value){E.value=null,W(),q();return}if(e.type===`workflowUpdated`&&e.data.workflowId===N.value){le();return}}),ne(),B(),U(),$()}function fe(){typeof M.value==`function`&&(M.value(),M.value=null),V(),H(),W(),q(),Q(),F.value&&Z(),n.clearQueue(),re(),w.value&&clearTimeout(w.value),N.value=null,E.value=null,T.value=[]}return{collaborators:T,currentWriter:I,isCurrentTabWriter:F,isCurrentUserWriter:ie,isAnyoneWriting:L,shouldBeReadOnly:R,requestWriteAccess:ae,requestWriteAccessForce:oe,releaseWriteAccess:Z,recordActivity:X,initialize:de,terminate:fe,startHeartbeat:U,stopHeartbeat:H,setRefreshCanvasCallback:ce}});export{_ as n,x as t}; //# sourceMappingURL=collaboration.store-4D2ISERe.js.map