UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 12.7 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]=`24282fa4-3612-4e56-be68-f001740218ec`,e._sentryDebugIdIdentifier=`sentry-dbid-24282fa4-3612-4e56-be68-f001740218ec`)})()}catch{}import{$ as e,A as t,C as n,E as r,Ft as i,N as a,S as o,Sn as s,T as c,U as l,Wt as u,_n as d,gt as f,it as p,j as m,pt as h,w as g,yt as _}from"./vue.runtime.esm-bundler-C3C09Zii.js";import{at as v,b as y,p as b}from"./core-Bz5WjPxS.js";import{At as x,Di as ee,E as S,Ji as te,Mi as C,Xi as w,Zi as T,ct as E,lt as ne}from"./src-XqE2yCpG.js";import{t as D}from"./_plugin-vue_export-helper-CIL7EULb.js";import{Qa as re,ai as O,fr as k,gi as A,oi as j,r as ie,t as ae}from"./users.store-xP93bV7X.js";import{Bo as M,Ir as oe,Qc as se,Qo as N}from"./constants-DuQbSl-q.js";import{t as ce}from"./settings.store-CAFiYCMH.js";import{n as le,t as ue}from"./ProjectIcon-BXpCWdRd.js";import{t as P}from"./folders.store-CNB9Lo_F.js";import{r as F,t as I}from"./readyToRun.store-DUyOyjE3.js";function L(e,t){if(!e.dynamicRoute)return e;let n={name:e.dynamicRoute.name};e.dynamicRoute.includeProjectId&&t&&(n.params={projectId:t});let{dynamicRoute:r,...i}=e;return{...i,to:n}}function R(e,t){return e.map(e=>L(e,t))}var de=a({__name:`ProjectTabs`,props:{showSettings:{type:Boolean,default:!1},showExecutions:{type:Boolean,default:!0},pageType:{default:`project`},additionalTabs:{default:()=>[]}},setup(t){let n=t,r=v(),a=E(),s=O(),c=k(),l=i(``),d=o(()=>l.value?String(l.value):``),p=o(()=>Array.isArray(a?.params?.projectId)?a.params.projectId[0]:a?.params?.projectId),m=o(()=>s.currentProject?.type===A.Team),h=()=>p.value?{workflows:{name:N.PROJECTS_WORKFLOWS,params:{projectId:p.value}},credentials:{name:N.PROJECTS_CREDENTIALS,params:{projectId:p.value}},executions:{name:N.PROJECTS_EXECUTIONS,params:{projectId:p.value}},variables:{name:N.PROJECTS_VARIABLES,params:{projectId:p.value}}}:n.pageType===`shared`?{workflows:{name:N.SHARED_WORKFLOWS},credentials:{name:N.SHARED_CREDENTIALS},executions:{name:N.NOT_FOUND},variables:{name:N.NOT_FOUND}}:{workflows:{name:N.WORKFLOWS},credentials:{name:N.CREDENTIALS},executions:{name:N.EXECUTIONS},variables:{name:N.HOME_VARIABLES}},_=(e,t,n)=>({label:r.baseText(e),value:n[t].name,to:n[t]}),y=o(()=>{let e=h(),t=[_(`mainSidebar.workflows`,`workflows`,e),_(`mainSidebar.credentials`,`credentials`,e)];if(n.showExecutions&&t.push(_(`mainSidebar.executions`,`executions`,e)),(n.pageType===`overview`||m.value)&&t.push(_(`mainSidebar.variables`,`variables`,e)),n.additionalTabs?.length){let e=R(n.additionalTabs,p.value);t.push(...e)}return n.showSettings&&t.push({label:r.baseText(`projects.settings`),value:N.PROJECT_SETTINGS,to:{name:N.PROJECT_SETTINGS,params:{projectId:p.value}}}),t});f(()=>a?.name,()=>{l.value=a.name===N.PROJECTS_FOLDERS?N.PROJECTS_WORKFLOWS:a.name},{immediate:!0});function b(e){l.value===`variables`&&c.track(`User clicked project variables tab`,{project_id:p.value}),l.value=e}return(t,n)=>(e(),g(u(S),{"model-value":d.value,options:y.value,"data-test-id":`project-tabs`,"onUpdate:modelValue":b},null,8,[`model-value`,`options`]))}}),fe=D(a({__name:`ProjectCreateResource`,props:{actions:{},disabled:{type:Boolean},variant:{}},emits:[`action`],setup(t,{expose:n,emit:i}){let a=i,o=h(`actionToggleRef`);return n({openActionToggle:e=>o.value?.openActionToggle(e)}),(n,i)=>(e(),r(`div`,{class:d([n.$style.buttonGroup])},[p(n.$slots,`default`),m(u(x),{ref_key:`actionToggleRef`,ref:o,"data-test-id":`add-resource`,actions:t.actions,placement:`bottom-end`,teleported:!1,onAction:i[0]||=e=>a(`action`,e)},{default:_(()=>[m(u(C),{disabled:t.disabled,class:d([n.$style.buttonGroupDropdown]),icon:`chevron-down`,variant:t.variant??`solid`},null,8,[`disabled`,`class`,`variant`])]),_:1},8,[`actions`])],2))}}),[[`__cssModules`,{$style:{buttonGroup:`_buttonGroup_etoix_125`,buttonGroupDropdown:`_buttonGroupDropdown_etoix_136`}}]]),pe=(e,t,n)=>{if(!e||t<=0)return``;let r=.55*n,i=Math.floor(t/r);if(e.length<=i)return``;let a=e.slice(0,i),o=a.lastIndexOf(` `);return a.slice(0,o===-1?i:o)+`...`},z=a({__name:`ReadyToRunButton`,props:{hasActiveCallouts:{type:Boolean}},setup(n){let r=n,i=E(),a=v(),l=F(),d=O(),f=j(),p=P(),m=I(),h=o(()=>M(d.currentProject?.scopes??d.personalProject?.scopes)),y=o(()=>m.getButtonVisibility(p.totalWorkflowCount>0,h.value.workflow.create,f.preferences.branchReadOnly)&&!r.hasActiveCallouts),b=async()=>{let e=l.isOverviewSubPage?d.personalProject?.id:i.params.projectId;try{await m.claimCreditsAndOpenWorkflow(`button`,i.params.folderId,e)}catch{}};return(n,r)=>y.value?(e(),g(u(T),{key:0,variant:`subtle`,"data-test-id":`ready-to-run-button`,icon:`zap`,loading:u(m).claimingCredits,disabled:u(f).preferences.branchReadOnly||u(m).claimingCredits,onClick:b},{default:_(()=>[t(s(u(a).baseText(`workflows.empty.readyToRun`)),1)]),_:1},8,[`loading`,`disabled`])):c(``,!0)}}),me={style:{display:`flex`,gap:`var(--spacing--xs)`,"align-items":`center`}},B=D(a({__name:`ProjectHeader`,props:{hasActiveCallouts:{type:Boolean},mainButton:{}},emits:[`createFolder`],setup(a,{emit:f}){let h=E(),x=ne(),S=v(),C=O(),D=j(),P=ce(),I=ie(),L=k(),R=ae(),B=F(),V=a,he=f,ge=o(()=>C.currentProject?.type===A.Personal?{type:`icon`,value:`user`}:C.currentProject?.name?le(C.currentProject.icon)?C.currentProject.icon:{type:`icon`,value:`layers`}:{type:`icon`,value:`house`}),H=o(()=>C.currentProject??C.personalProject),U=o(()=>H.value?.type===A.Personal),W=o(()=>C.currentProject?C.currentProject.type===A.Personal?S.baseText(`projects.menu.personal`):C.currentProject.name:B.isSharedSubPage?S.baseText(`projects.header.shared.title`):B.isOverviewSubPage?S.baseText(`projects.menu.overview`):U.value?S.baseText(`projects.menu.personal`):null),_e=o(()=>M(C.currentProject?.scopes).project),ve=o(()=>M(C.currentProject?.scopes).projectVariable),ye=o(()=>M(R.currentUser?.globalScopes).variable),be=o(()=>M(C.currentProject?.scopes).externalSecretsProvider),xe=o(()=>!!h?.params?.projectId&&(!!_e.value.update||!!be.value.read)&&C.currentProject?.type===A.Team),Se=o(()=>P.isFoldersFeatureEnabled&&[N.PROJECTS_WORKFLOWS,N.PROJECTS_FOLDERS].includes(h.name)),Ce=o(()=>{let e;return e=B.isSharedSubPage?`shared`:B.isOverviewSubPage?`overview`:`project`,Object.keys(I.moduleTabs[e]).filter(P.isModuleActive).flatMap(t=>I.moduleTabs[e][t])}),G={WORKFLOW:`workflow`,CREDENTIAL:`credential`,FOLDER:`folder`,DATA_TABLE:`dataTable`,VARIABLE:`variable`},we=o(()=>({value:G.WORKFLOW,label:S.baseText(`projects.header.create.workflow`),icon:D.preferences.branchReadOnly?`lock`:void 0,size:`mini`,disabled:D.preferences.branchReadOnly||!M(H.value?.scopes).workflow.create})),Te=o(()=>({value:G.CREDENTIAL,label:S.baseText(`projects.header.create.credential`),icon:D.preferences.branchReadOnly?`lock`:void 0,size:`mini`,disabled:D.preferences.branchReadOnly||!M(H.value?.scopes).credential.create})),Ee=o(()=>({value:G.DATA_TABLE,label:S.baseText(`dataTable.add.button.label`),icon:D.preferences.branchReadOnly?`lock`:void 0,size:`mini`,disabled:D.preferences.branchReadOnly||!M(H.value?.scopes)?.dataTable?.create})),De=o(()=>({value:G.VARIABLE,label:S.baseText(`variables.add.button.label`),icon:D.preferences.branchReadOnly?`lock`:void 0,size:`mini`,disabled:D.preferences.branchReadOnly||!ve.value.create&&!ye.value.create})),K=o(()=>V.mainButton??G.WORKFLOW),Oe=o(()=>{switch(K.value){case G.CREDENTIAL:return Te.value;case G.DATA_TABLE:return Ee.value;case G.VARIABLE:return De.value;case G.WORKFLOW:default:return we.value}}),ke=o(()=>{let e=[];return K.value!==G.WORKFLOW&&e.push({value:G.WORKFLOW,label:S.baseText(`projects.header.create.workflow`),disabled:D.preferences.branchReadOnly||!M(H.value?.scopes).workflow.create}),K.value!==G.CREDENTIAL&&e.push({value:G.CREDENTIAL,label:S.baseText(`projects.header.create.credential`),disabled:D.preferences.branchReadOnly||!M(H.value?.scopes).credential.create}),K.value!==G.VARIABLE&&P.isEnterpriseFeatureEnabled[se.Variables]&&e.push({value:G.VARIABLE,label:S.baseText(`variables.add.button.label`),disabled:D.preferences.branchReadOnly||!M(H.value?.scopes).projectVariable.create}),Se.value&&e.push({value:G.FOLDER,label:S.baseText(`projects.header.create.folder`),disabled:D.preferences.branchReadOnly||!M(H.value?.scopes).folder.create}),P.isDataTableFeatureEnabled&&K.value!==G.DATA_TABLE&&e.push({value:G.DATA_TABLE,label:S.baseText(`dataTable.add.button.label`),disabled:D.preferences.branchReadOnly||!M(H.value?.scopes)?.dataTable?.create}),e}),Ae=o(()=>!B.isOverviewSubPage&&!B.isSharedSubPage&&!U.value);function je(e){return[N.PROJECTS_CREDENTIALS,N.CREDENTIALS,N.SHARED_CREDENTIALS].includes(e)}function Me(e){return[N.PROJECTS_WORKFLOWS,N.WORKFLOWS,N.SHARED_WORKFLOWS,N.PROJECTS_FOLDERS].includes(e)}function q(e){if(je(e))return`credentials_list`;if(Me(e))return`workflow_list`}let Ne={[G.WORKFLOW]:e=>{x.push({name:N.NEW_WORKFLOW,query:{projectId:e,parentFolderId:h.params.folderId,uiContext:q(h.name?.toString()??``)}})},[G.CREDENTIAL]:e=>{x.push({name:N.PROJECTS_CREDENTIALS,params:{projectId:e,credentialId:`create`},query:{uiContext:q(h.name?.toString()??``)}})},[G.FOLDER]:()=>{he(`createFolder`)},[G.DATA_TABLE]:e=>{x.push({name:oe,params:{projectId:e,new:`new`}})},[G.VARIABLE]:()=>{I.openModalWithData({name:re,data:{mode:`new`}}),L.track(`User clicked header add variable button`)}},Pe=o(()=>B.isSharedSubPage?`shared`:B.isOverviewSubPage?`overview`:`project`),J=o(()=>B.isSharedSubPage?S.baseText(`projects.header.shared.subtitle`):B.isOverviewSubPage?S.baseText(P.isDataTableFeatureEnabled?`projects.header.overview.subtitleWithDataTables`:`projects.header.overview.subtitle`):U.value?S.baseText(P.isDataTableFeatureEnabled?`projects.header.personal.subtitleWithDataTables`:`projects.header.personal.subtitle`):null),Y=o(()=>B.isProjectsSubPage?C.currentProject?.description:null),X=i(null),{width:Fe}=b(X),Z=i(null),{width:Ie}=b(Z),Q=i(null);y(X,()=>{if(!X.value)return;let e=X.value.querySelector(`span[data-test-id="project-subtitle"]`);if(e){let t=window.getComputedStyle(e);Q.value=parseFloat(t.fontSize)}});let $=o(()=>{if(!Y.value)return``;let e=Fe.value-Ie.value,t=Q.value??14;return pe(Y.value,e,t)}),Le=e=>{let t=Ne[e];H.value&&t(H.value.id)};return(i,a)=>(e(),r(`div`,null,[n(`div`,{ref_key:`projectHeaderRef`,ref:X,class:d(i.$style.projectHeader)},[n(`div`,{class:d(i.$style.projectDetails)},[Ae.value?(e(),g(ue,{key:0,icon:ge.value,"border-less":!0,size:`medium`},null,8,[`icon`])):c(``,!0),n(`div`,{class:d(i.$style.headerActions)},[W.value?(e(),g(u(te),{key:0,bold:``,tag:`h2`,size:`xlarge`,"data-test-id":`project-name`},{default:_(()=>[t(s(W.value),1)]),_:1})):c(``,!0),J.value?(e(),g(u(w),{key:1,color:`text-light`,"data-test-id":`project-subtitle`},{default:_(()=>[t(s(J.value),1)]),_:1})):Y.value?(e(),r(`div`,{key:2,class:d(i.$style.projectDescriptionWrapper)},[m(u(w),{color:`text-light`,"data-test-id":`project-subtitle`},{default:_(()=>[t(s($.value||Y.value),1)]),_:1}),$.value?(e(),r(`div`,{key:0,class:d(i.$style.tooltip)},[m(u(w),{color:`text-light`},{default:_(()=>[t(s(Y.value),1)]),_:1})],2)):c(``,!0)],2)):c(``,!0)],2)],2),u(h).name===u(N).PROJECT_SETTINGS?c(``,!0):(e(),r(`div`,{key:0,ref_key:`headerActionsRef`,ref:Z,class:d([i.$style.headerActions])},[m(u(ee),{disabled:!u(D).preferences.branchReadOnly,content:u(S).baseText(`readOnlyEnv.cantAdd.any`)},{default:_(()=>[n(`div`,me,[m(z,{"has-active-callouts":V.hasActiveCallouts},null,8,[`has-active-callouts`]),m(fe,{"data-test-id":`add-resource-buttons`,actions:ke.value,disabled:u(D).preferences.branchReadOnly,onAction:Le},{default:_(()=>[m(u(T),l({"data-test-id":`add-resource-${K.value}`},Oe.value,{size:`medium`,onClick:a[0]||=e=>Le(K.value)}),null,16,[`data-test-id`])]),_:1},8,[`actions`,`disabled`])])]),_:1},8,[`disabled`,`content`])],2))],2),p(i.$slots,`default`),n(`div`,{class:d(i.$style.actions)},[m(de,{"page-type":Pe.value,"show-executions":!u(B).isSharedSubPage,"show-settings":xe.value,"additional-tabs":Ce.value},null,8,[`page-type`,`show-executions`,`show-settings`,`additional-tabs`])],2)]))}}),[[`__cssModules`,{$style:{projectHeader:`_projectHeader_ukvp2_125`,projectDetails:`_projectDetails_ukvp2_132`,actions:`_actions_ukvp2_137`,projectDescriptionWrapper:`_projectDescriptionWrapper_ukvp2_141`,tooltip:`_tooltip_ukvp2_145`,headerActions:`_headerActions_ukvp2_168`}}]]);export{z as n,B as t}; //# sourceMappingURL=ProjectHeader-CZLMSWNr.js.map