UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 13 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.13.4`}}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]=`c85a2a43-b033-4cc3-9327-515e491995c1`,e._sentryDebugIdIdentifier=`sentry-dbid-c85a2a43-b033-4cc3-9327-515e491995c1`)})()}catch{}import{o as e}from"./chunk-DxpFCn6T.js";import{$ as t,A as n,C as r,E as i,Ft as a,N as o,S as s,Sn as c,T as l,Wt as u,X as d,_ as f,_n as p,bt as m,gt as h,h as g,j as _,p as v,rt as y,w as b,yt as x}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as S}from"./_MapCache-CUJwh2qp.js";import{$i as C,Et as w,Mi as T,Nt as E,Ri as D,Rt as O,Tt as k,Ut as A,Zi as j,_t as M,gt as N,vt as P,yt as F}from"./src-wni2AGA3.js";import{t as I}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import"./sanitize-html-my1ogl5v.js";import{Ai as L,Ar as R,As as z,Ft as B,Pt as ee,Qr as te,Ra as ne,Xa as re,Ya as V,at as ie,en as ae,jr as H,n as oe,r as U,t as se,vn as ce,w as le}from"./users.store-BHWXXawf.js";import{Oo as W,Ps as ue,is as G,ms as K,pl as de}from"./constants-CIP7tKq1.js";import"./merge-BqvKZ38d.js";import"./_baseOrderBy-CaKruttV.js";import{t as q}from"./dateformat-CYfyw486.js";import"./useDebounce-CTeIt-cH.js";import{t as fe}from"./externalSecrets.ee.store-JZ2zh2En.js";import"./ProjectIcon-BBMQDCgu.js";import{t as J}from"./ProjectCardBadge-CYWra6Zo.js";import{t as pe}from"./CredentialIcon-BKhP7Biv.js";import"./EnterpriseEdition.ee-B8ZRsjsp.js";import{t as me}from"./useDynamicCredentials-C74iW7Qx.js";import{t as he}from"./TimeAgo-B5--ltV7.js";import"./orderBy-D1a3yE-B.js";import"./ProjectSharing-XbSSp3Qv.js";import"./folders.store-DKth0xuB.js";import{t as ge}from"./insights.store-DoHmMCwa.js";import"./insights.constants-BWd0PYhd.js";import"./insights.utils-BGXnT8rV.js";import{r as _e}from"./readyToRun.store-DpPozriV.js";import{t as ve}from"./EmptySharedSectionActionBox-CDcZ4HAo.js";import{t as ye}from"./ResourcesListLayout-BwbPvp3x.js";import"./ResourceFiltersDropdown-xUxdFA2c.js";import{t as be}from"./ProjectHeader-AgSz0mHM.js";import{t as xe}from"./InsightsSummary-CbWiDO6-.js";import{t as Y}from"./pickBy-lm-24gxy.js";var X=e(q(),1),Z={key:0},Se=I(o({__name:`CredentialCard`,props:{data:{},readOnly:{type:Boolean,default:!1},needsSetup:{type:Boolean,default:!1}},emits:[`click`],setup(e,{emit:a}){let o={OPEN:`open`,DELETE:`delete`,MOVE:`move`},d=a,f=e,h=S(),y=H(),w=U(),D=ie(),k=B(),{isEnabled:M}=me(),N=s(()=>h.baseText(`generic.credential`).toLowerCase()),P=s(()=>D.getCredentialTypeByName(f.data.type??``)),F=s(()=>G(f.data.scopes).credential),I=s(()=>{let e=[{label:h.baseText(`credentials.item.open`),value:o.OPEN}];return F.value.delete&&e.push({label:h.baseText(`credentials.item.delete`),value:o.DELETE}),F.value.move&&k.isTeamProjectFeatureEnabled&&e.push({label:h.baseText(`credentials.item.move`),value:o.MOVE}),e}),R=s(()=>{let e=new Date().getFullYear().toString();return(0,X.default)(f.data.createdAt,`d mmmm${String(f.data.createdAt).startsWith(e)?``:`, yyyy`}`)});function z(){d(`click`,f.data.id)}async function ee(e){switch(e){case o.OPEN:z();break;case o.DELETE:await te();break;case o.MOVE:re();break}}async function te(){await y.confirm(h.baseText(`credentialEdit.credentialEdit.confirmMessage.deleteCredential.message`,{interpolate:{savedCredentialName:f.data.name}}),h.baseText(`credentialEdit.credentialEdit.confirmMessage.deleteCredential.headline`),{confirmButtonText:h.baseText(`credentialEdit.credentialEdit.confirmMessage.deleteCredential.confirmButtonText`)})===`confirm`&&await D.deleteCredential({id:f.data.id})}function re(){w.openModalWithData({name:ne,data:{resource:f.data,resourceType:L.Credential,resourceTypeLabel:N.value}})}return(a,o)=>(t(),b(u(E),{class:p(a.$style.cardLink),onClick:g(z,[`stop`])},{prepend:x(()=>[_(pe,{"credential-type-name":P.value?.name??``},null,8,[`credential-type-name`])]),header:x(()=>[_(u(j),{tag:`h2`,bold:``,class:p(a.$style.cardHeading)},{default:x(()=>[n(c(e.data.name)+` `,1),e.readOnly?(t(),b(u(A),{key:0,class:`ml-3xs`,theme:`tertiary`,bold:``},{default:x(()=>[n(c(u(h).baseText(`credentials.item.readonly`)),1)]),_:1})):l(``,!0),e.needsSetup?(t(),b(u(A),{key:1,class:`ml-3xs`,theme:`warning`},{default:x(()=>[n(c(u(h).baseText(`credentials.item.needsSetup`)),1)]),_:1})):l(``,!0),u(M)&&e.data.isResolvable?(t(),b(u(T),{key:2,placement:`top`},{content:x(()=>[r(`div`,{class:p(a.$style.tooltipContent)},[r(`strong`,null,c(u(h).baseText(`credentials.dynamic.tooltipTitle`)),1),r(`span`,null,c(u(h).baseText(`credentials.dynamic.tooltip`)),1)],2)]),default:x(()=>[_(u(A),{theme:`tertiary`,class:`ml-3xs pl-3xs pr-3xs`,"data-test-id":`credential-card-dynamic`},{default:x(()=>[r(`span`,{class:p(a.$style.dynamicBadgeText)},[_(u(C),{icon:`key-round`,size:`medium`}),n(` `+c(u(h).baseText(`credentials.dynamic.badge`)),1)],2)]),_:1})]),_:1})):l(``,!0)]),_:1},8,[`class`])]),append:x(()=>[r(`div`,{class:p(a.$style.cardActions),onClick:o[0]||=g(()=>{},[`stop`])},[_(J,{class:p(a.$style.cardBadge),resource:e.data,"resource-type":u(L).Credential,"resource-type-label":N.value,"personal-project":u(k).personalProject,"show-badge-border":!1,global:e.data.isGlobal},null,8,[`class`,`resource`,`resource-type`,`resource-type-label`,`personal-project`,`global`]),_(u(O),{"data-test-id":`credential-card-actions`,actions:I.value,theme:`dark`,onAction:ee},null,8,[`actions`])],2)]),default:x(()=>[r(`div`,{class:p(a.$style.cardDescription)},[_(u(j),{color:`text-light`,size:`small`},{default:x(()=>[P.value?(t(),i(`span`,Z,c(P.value.displayName)+` | `,1)):l(``,!0),m(r(`span`,null,[n(c(u(h).baseText(`credentials.item.updated`))+` `,1),_(he,{date:e.data.updatedAt},null,8,[`date`]),o[1]||=n(` | `,-1)],512),[[v,e.data]]),m(r(`span`,null,c(u(h).baseText(`credentials.item.created`))+` `+c(R.value),513),[[v,e.data]])]),_:1})],2)]),_:1},8,[`class`]))}}),[[`__cssModules`,{$style:{cardLink:`_cardLink_1nez8_125`,cardHeading:`_cardHeading_1nez8_135`,cardDescription:`_cardDescription_1nez8_142`,cardActions:`_cardActions_1nez8_149`,dynamicBadgeText:`_dynamicBadgeText_1nez8_159`,tooltipContent:`_tooltipContent_1nez8_167`,cardBadge:`_cardBadge_1nez8_183`}}]]),Ce=e(Y(),1),we={class:`mb-s`},Te={class:`mb-s`},Ee={key:0,class:`mb-s`},Q=I(o({__name:`CredentialsView`,props:{credentialId:{}},setup(e){let o=e,m=ie(),g=le(),v=U(),C=R(),T=fe(),E=B(),O=se(),A=ge(),j=ce(),I=N(),L=M(),ne=ae(),V=S(),H=_e(),W=e=>{L.replace({query:(0,Ce.default)(e)})},ue=e=>{W({...q.value,search:e})},q=a({...I.query,setupNeeded:I.query.setupNeeded?.toString()===`true`,...I.query.externalSecretsStore?{externalSecretsStore:I.query.externalSecretsStore.toString()}:{}}),J=a(!1),pe=e=>{let t=e;return t?Object.keys(t).length===0?!0:Object.values(t).every(e=>!e||e===`__n8n_EMPTY_VALUE_7b1af746-3729-4c60-9b9b-e08eb29e58da`):!1},me=s(()=>m.allCredentials.map(e=>({resourceType:`credential`,id:e.id,name:e.name,value:``,updatedAt:e.updatedAt,createdAt:e.createdAt,homeProject:e.homeProject,scopes:e.scopes,sharedWithProjects:e.sharedWithProjects,readOnly:!G(e.scopes).credential.update,needsSetup:pe(e.data),isGlobal:e.isGlobal,isResolvable:e.isResolvable,type:e.type}))),he=s(()=>m.allCredentialTypes),Y=s(()=>m.credentialTypesById),X=s(()=>C.preferences.branchReadOnly),Z=s(()=>G(E.currentProject?.scopes??E.personalProject?.scopes)),Q=s(()=>E.personalProject),De=s(()=>!!I.query.externalSecretsStore&&T.isEnterpriseExternalSecretsEnabled),Oe=e=>{L.replace({params:{credentialId:e},query:I.query})},ke=()=>{Oe(`create`),ne.track(`User clicked add cred button`,{source:`Creds list`})};oe({store:v,onModalClosed(e){[`selectCredential`,`editCredential`].includes(e)&&L.replace({params:{credentialId:``},query:I.query})}});let Ae=(e,t,n)=>{if(!te(e))return!1;let r=t;if(r.type&&r.type.length>0&&(n&&=r.type.includes(e.type)),r.search){let t=r.search.toLowerCase();n||=Y.value[e.type]&&Y.value[e.type].displayName.toLowerCase().includes(t)}return r.setupNeeded&&(n&&=e.needsSetup),n},je=()=>{o.credentialId===`create`&&(Z.value.credential.create?v.openModal(re):L.replace({name:K.HOMEPAGE}))},Me=async()=>{if(o.credentialId&&o.credentialId!==`create`){let e=m.getCredentialById(o.credentialId),t=G(e?.scopes).credential;if(!e)return await L.replace({name:K.ENTITY_NOT_FOUND,params:{entityType:`credential`}});if(t.update||t.read){v.openExistingCredential(o.credentialId);return}return await L.replace({name:K.ENTITY_UNAUTHORIZED,params:{entityType:`credential`}})}},$=async()=>{J.value=!0;let e=z().isEnterpriseFeatureEnabled[de.Variables],t=!H.isSharedSubPage&&H.isProjectsSubPage&&I?.params?.projectId===E.personalProject?.id,n=[m.fetchAllCredentials({projectId:I?.params?.projectId,includeScopes:!0,onlySharedWithMe:H.isSharedSubPage,includeGlobal:!t,externalSecretsStore:q.value.externalSecretsStore}),m.fetchCredentialTypes(!1),g.loadNodeTypesIfNotLoaded(),e?ee().fetchAllVariables():Promise.resolve()];await Promise.all(n),je(),await Me(),J.value=!1};return m.$onAction(({name:e,after:t})=>{(e===`createNewCredential`||e===`updateCredential`)&&t(()=>{m.fetchAllCredentials({projectId:I?.params?.projectId,includeScopes:!0,externalSecretsStore:q.value.externalSecretsStore})})}),C.$onAction(({name:e,after:t})=>{e===`pullWorkfolder`&&t(()=>{$()})}),h(()=>I?.params?.projectId,$),h(()=>o.credentialId,()=>{je(),Me()}),h(()=>q.value.externalSecretsStore,async(e,t)=>{e!==t&&(e!==void 0||t!==void 0)&&$()}),d(()=>{j.set(V.baseText(`credentials.heading`))}),(e,a)=>(t(),b(ye,{ref:`layout`,filters:q.value,"onUpdate:filters":[a[0]||=e=>q.value=e,W],"resource-key":`credentials`,resources:me.value,initialize:$,"additional-filters-handler":Ae,"type-props":{itemSize:77},loading:J.value,disabled:X.value||!Z.value.credential.create,"onUpdate:search":ue},{header:x(()=>[_(be,{"main-button":`credential`},{default:x(()=>[u(H).isOverviewSubPage&&u(A).isSummaryEnabled?(t(),b(xe,{key:0,loading:u(A).weeklySummary.isLoading,summary:u(A).weeklySummary.state,"time-range":`week`},null,8,[`loading`,`summary`])):l(``,!0)]),_:1})]),default:x(({data:e})=>[_(Se,{"data-test-id":`resources-list-item`,class:`mb-2xs`,data:e,"read-only":e.readOnly,"needs-setup":e.needsSetup,onClick:Oe},null,8,[`data`,`read-only`,`needs-setup`])]),filters:x(({setKeyValue:n})=>[r(`div`,we,[_(u(P),{label:u(V).baseText(`credentials.filters.type`),bold:!1,size:`small`,color:`text-base`,class:`mb-3xs`},null,8,[`label`]),_(u(k),{ref:`typeInput`,"model-value":q.value.type,size:`medium`,multiple:``,filterable:``,class:p(e.$style[`type-input`]),"onUpdate:modelValue":e=>n(`type`,e)},{default:x(()=>[(t(!0),i(f,null,y(he.value,e=>(t(),b(u(w),{key:e.name,value:e.name,label:e.displayName},null,8,[`value`,`label`]))),128))]),_:1},8,[`model-value`,`class`,`onUpdate:modelValue`])]),r(`div`,Te,[_(u(P),{label:u(V).baseText(`credentials.filters.status`),bold:!1,size:`small`,color:`text-base`,class:`mb-3xs`},null,8,[`label`]),_(u(F),{label:u(V).baseText(`credentials.filters.setup`),"data-test-id":`credential-filter-setup-needed`,"model-value":q.value.setupNeeded,"onUpdate:modelValue":e=>n(`setupNeeded`,e)},null,8,[`label`,`model-value`,`onUpdate:modelValue`])]),De.value&&q.value.externalSecretsStore?(t(),i(`div`,Ee,[_(u(P),{label:u(V).baseText(`credentials.filters.secretStore`),bold:!1,size:`small`,color:`text-base`,class:`mb-3xs`},null,8,[`label`]),_(u(k),{"model-value":q.value.externalSecretsStore,size:`medium`,disabled:``,"data-test-id":`credential-filter-secret-store`,class:p(e.$style[`type-input`])},{default:x(()=>[_(u(w),{value:q.value.externalSecretsStore,label:q.value.externalSecretsStore},null,8,[`value`,`label`])]),_:1},8,[`model-value`,`class`])])):l(``,!0)]),empty:x(()=>[u(H).isSharedSubPage&&Q.value?(t(),b(ve,{key:0,"personal-project":Q.value,"resource-type":`credentials`},null,8,[`personal-project`])):(t(),b(u(D),{key:1,"data-test-id":`empty-resources-list`,icon:{type:`icon`,value:`lock`},heading:u(V).baseText(u(O).currentUser?.firstName?`credentials.empty.heading`:`credentials.empty.heading.userNotSetup`,{interpolate:{name:u(O).currentUser?.firstName??``}}),description:u(V).baseText(`credentials.empty.description`),"button-text":u(V).baseText(`credentials.empty.button`),"button-type":`secondary`,"button-disabled":X.value||!Z.value.credential.create,"button-icon":X.value||!Z.value.credential.create?`lock`:void 0,"onClick:button":ke},{disabledButtonTooltip:x(()=>[n(c(X.value?u(V).baseText(`readOnlyEnv.cantAdd.credential`):u(V).baseText(`credentials.empty.button.disabled.tooltip`)),1)]),_:1},8,[`heading`,`description`,`button-text`,`button-disabled`,`button-icon`]))]),_:1},8,[`filters`,`resources`,`loading`,`disabled`]))}}),[[`__cssModules`,{$style:{"type-input":`_type-input_12nwp_125`,sidebarContainer:`_sidebarContainer_12nwp_129`}}]]);export{Q as default}; //# sourceMappingURL=CredentialsView-B8uFEj-R.js.map