UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 37.1 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]=`2a63abe1-4e20-4f9f-a938-273302ad0ccc`,e._sentryDebugIdIdentifier=`sentry-dbid-2a63abe1-4e20-4f9f-a938-273302ad0ccc`)})()}catch{}import{o as e}from"./chunk-DxpFCn6T.js";import{$ as t,A as n,C as r,E as i,F as a,Ft as o,H as s,K as c,N as l,Nt as u,S as d,Sn as f,T as p,U as m,W as h,Wt as g,X as _,_ as v,_n as y,dt as b,gt as x,h as S,it as C,j as w,rt as T,vn as E,w as D,yt as O}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as k,st as A,xt as j}from"./_MapCache-CUJwh2qp.js";import{$i as M,A as N,Fi as ee,Ii as P,M as F,Mi as I,O as L,Qi as R,Ri as z,Rt as B,Ut as V,Yi as te,Zi as H,_ as U,_t as ne,a as W,ct as re,i as G,lt as K,vt as q}from"./src-wni2AGA3.js";import{t as J}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import"./sanitize-html-my1ogl5v.js";import{As as ie,Cr as ae,Ft as oe,Tr as se,en as ce,hr as le,r as ue,t as de,ti as fe,vn as pe}from"./users.store-BHWXXawf.js";import{t as me}from"./radio-BbcMeDSx.js";import{t as Y}from"./dialog-DkHaT5V1.js";import{t as he}from"./Alert-Brqgj777.js";import{Rs as ge,Xa as _e,f as X,gl as ve,ii as ye,is as be,ms as Z,wl as xe}from"./constants-CIP7tKq1.js";import"./merge-BqvKZ38d.js";import"./_baseOrderBy-CaKruttV.js";import"./dateformat-CYfyw486.js";import"./useDebounce-CTeIt-cH.js";import"./versions.store-CNV-esbv.js";import{t as Se}from"./usePageRedirectionHelper-Dxb_B6-R.js";import{n as Ce}from"./ProjectIcon-BBMQDCgu.js";import"./orderBy-D1a3yE-B.js";import{t as we}from"./ProjectSharing-XbSSp3Qv.js";import{t as Te}from"./roles.store-B4WtqADh.js";import"./folders.store-DKth0xuB.js";import{t as Ee}from"./useSecretsProviderConnection.ee-O-QMqwnh.js";import"./readyToRun.store-DpPozriV.js";import{t as De}from"./ProjectHeader-AgSz0mHM.js";import{i as Oe,r as ke}from"./projectRoleScopes-chCAb__m.js";import{t as Ae}from"./userRoleProvisioning.store-NJANpy_Q.js";import{t as je}from"./useSecretsProvidersList.ee-CgNuCNqL.js";var Me={key:1},Ne={class:`pt-l`},Pe=J(l({__name:`ProjectDeleteDialog`,props:s({currentProject:{},projects:{},resourceCounts:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:s([`confirmDelete`],[`update:modelValue`]),setup(e,{emit:a}){let s=e,c=b(e,`modelValue`),l=a,u=k(),m=o(null),h=o(null),_=o(``),v=d(()=>s.resourceCounts.credentials+s.resourceCounts.workflows+s.resourceCounts.dataTables>0),x=d(()=>{let e=u.baseText(`projects.settings.delete.question.wipe.placeholder`);return!v.value||h.value===`transfer`&&!!m.value||h.value===`wipe`&&_.value===e}),C=()=>{x.value&&(h.value===`wipe`&&(m.value=null),l(`confirmDelete`,m.value?.id))};return(e,a)=>(t(),D(g(Y),{modelValue:c.value,"onUpdate:modelValue":a[4]||=e=>c.value=e,title:g(u).baseText(`projects.settings.delete.title`,{interpolate:{projectName:s.currentProject?.name??``}}),width:`650`},{footer:O(()=>[w(g(R),{variant:`destructive`,type:`button`,disabled:!x.value,"data-test-id":`project-settings-delete-confirm-button`,onClick:S(C,[`stop`,`prevent`])},{default:O(()=>[n(f(g(u).baseText(`projects.settings.danger.deleteProject`)),1)]),_:1},8,[`disabled`])]),default:O(()=>[v.value?v.value?(t(),i(`div`,Me,[w(g(H),{color:`text-base`},{default:O(()=>[n(f(g(u).baseText(`projects.settings.delete.message`)),1)]),_:1}),r(`div`,Ne,[w(g(me),{"model-value":h.value??``,label:`transfer`,class:`mb-s`,"onUpdate:modelValue":a[0]||=e=>h.value=`transfer`},{default:O(()=>[w(g(H),{color:`text-dark`},{default:O(()=>[n(f(g(u).baseText(`projects.settings.delete.question.transfer.label`)),1)]),_:1})]),_:1},8,[`model-value`]),h.value===`transfer`?(t(),i(`div`,{key:0,class:y(e.$style.operation)},[w(g(H),{color:`text-dark`},{default:O(()=>[n(f(g(u).baseText(`projects.settings.delete.question.transfer.title`)),1)]),_:1}),w(we,{modelValue:m.value,"onUpdate:modelValue":a[1]||=e=>m.value=e,class:`pt-2xs`,projects:s.projects,"empty-options-text":g(u).baseText(`projects.sharing.noMatchingProjects`)},null,8,[`modelValue`,`projects`,`empty-options-text`])],2)):p(``,!0),w(g(me),{"model-value":h.value??``,label:`wipe`,class:`mb-s`,"onUpdate:modelValue":a[2]||=e=>h.value=`wipe`},{default:O(()=>[w(g(H),{color:`text-dark`},{default:O(()=>[n(f(g(u).baseText(`projects.settings.delete.question.wipe.label`)),1)]),_:1})]),_:1},8,[`model-value`]),h.value===`wipe`?(t(),i(`div`,{key:1,class:y(e.$style.operation)},[w(g(q),{label:g(u).baseText(`projects.settings.delete.question.wipe.title`)},{default:O(()=>[w(g(ee),{modelValue:_.value,"onUpdate:modelValue":a[3]||=e=>_.value=e,"data-test-id":`project-delete-confirm-input`,placeholder:g(u).baseText(`projects.settings.delete.question.wipe.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])],2)):p(``,!0)])])):p(``,!0):(t(),D(g(H),{key:0,color:`text-base`},{default:O(()=>[n(f(g(u).baseText(`projects.settings.delete.message.empty`)),1)]),_:1}))]),_:1},8,[`modelValue`,`title`]))}}),[[`__cssModules`,{$style:{operation:`_operation_jv0de_125`}}]]),Fe={class:`pt-l`},Ie=l({__name:`ProjectRoleUpgradeDialog`,props:s({limit:{},planName:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let i=e,a=b(e,`modelValue`),o=Se(),s=k(),c=async()=>{await o.goToUpgrade(`rbac`,`upgrade-rbac`),a.value=!1};return(e,o)=>(t(),D(g(Y),{modelValue:a.value,"onUpdate:modelValue":o[1]||=e=>a.value=e,title:g(s).baseText(`projects.settings.role.upgrade.title`),width:`500`},{footer:O(()=>[w(g(R),{variant:`subtle`,"native-type":`button`,onClick:o[0]||=e=>a.value=!1},{default:O(()=>[n(f(g(s).baseText(`generic.cancel`)),1)]),_:1}),w(g(R),{variant:`solid`,"native-type":`button`,onClick:c},{default:O(()=>[n(f(g(s).baseText(`projects.create.limitReached.link`)),1)]),_:1})]),default:O(()=>[r(`div`,Fe,[w(g(j),{keypath:`projects.settings.role.upgrade.message`,scope:`global`},{planName:O(()=>[n(f(i.planName),1)]),limit:O(()=>[n(f(g(s).baseText(`projects.create.limit`,{adjustToNumber:i.limit,interpolate:{count:String(i.limit)}})),1)]),_:1})])]),_:1},8,[`modelValue`,`title`]))}}),Le=l({__name:`ProjectMembersActionsCell`,props:{data:{},actions:{}},emits:[`action`],setup(e,{emit:n}){let r=e,i=n,a=e=>{i(`action`,{action:e,userId:r.data.id})};return(e,n)=>r.actions.length>0?(t(),D(g(B),{key:0,placement:`bottom`,actions:r.actions,theme:`dark`,onAction:a},null,8,[`actions`])):p(``,!0)}}),Q=J(l({__name:`RoleHoverPopover`,props:{role:{}},setup(e){let i=e,a=k(),o=ne(),s=de(),c=d(()=>s.isInstanceOwner||s.isAdmin),l=d(()=>c.value&&!i.role.systemRole),u=d(()=>i.role.scopes?.filter(e=>Oe.has(e)).length??0),m=d(()=>l.value?a.baseText(`projects.settings.role.popover.viewAndEdit`):a.baseText(`projects.settings.role.popover.viewDetails`)),h=()=>{l.value?o.push({name:Z.PROJECT_ROLE_SETTINGS,params:{roleSlug:i.role.slug},query:{from:Z.PROJECT_SETTINGS}}):o.push({name:Z.PROJECT_ROLE_VIEW,params:{roleSlug:i.role.slug},query:{from:Z.PROJECT_SETTINGS}})};return(i,o)=>(t(),D(g(I),{placement:`right`,"show-after":300,enterable:!0,offset:1,"content-class":`role-hover-popover`},{content:O(()=>[r(`div`,{class:y(i.$style.popoverContent)},[w(g(H),{tag:`div`,bold:!0,size:`large`,class:y(i.$style.roleName)},{default:O(()=>[n(f(e.role.displayName),1)]),_:1},8,[`class`]),w(g(H),{tag:`div`,size:`small`,color:`text-light`,class:y(i.$style.permissionCount)},{default:O(()=>[n(f(g(a).baseText(`projects.settings.role.selector.permissionCount`,{interpolate:{count:String(u.value),total:String(g(ke))}})),1)]),_:1},8,[`class`]),e.role.description?(t(),D(g(H),{key:0,tag:`div`,size:`small`,class:y(i.$style.description)},{default:O(()=>[n(f(e.role.description),1)]),_:1},8,[`class`])):p(``,!0),w(g(R),{variant:`outline`,size:`small`,class:y(i.$style.actionButton),onClick:h},{default:O(()=>[n(f(m.value)+` `,1),w(g(M),{icon:`arrow-up-right`,size:`large`,class:y(i.$style.externalIcon)},null,8,[`class`])]),_:1},8,[`class`])],2)]),default:O(()=>[C(i.$slots,`default`)]),_:3}))}}),[[`__cssModules`,{$style:{popoverContent:`_popoverContent_1vgnc_125`,roleName:`_roleName_1vgnc_130`,permissionCount:`_permissionCount_1vgnc_134`,description:`_description_1vgnc_138`,actionButton:`_actionButton_1vgnc_142`,externalIcon:`_externalIcon_1vgnc_148`}}]]),Re=J(l({__name:`ProjectRoleContactAdminModal`,props:s({customRolesExist:{type:Boolean,default:!1}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let i=e,a=b(e,`modelValue`),o=k(),s=d(()=>i.customRolesExist?`projects.settings.role.contactAdmin.titleWithRoles`:`projects.settings.role.contactAdmin.title`),c=d(()=>i.customRolesExist?`projects.settings.role.contactAdmin.bodyWithRoles`:`projects.settings.role.contactAdmin.body`);return(e,i)=>(t(),D(g(Y),{modelValue:a.value,"onUpdate:modelValue":i[0]||=e=>a.value=e,width:`400`,"show-close":!0},{header:O(()=>[w(g(H),{tag:`span`,size:`large`,bold:!0},{default:O(()=>[n(f(g(o).baseText(s.value)),1)]),_:1})]),default:O(()=>[r(`div`,{class:y(e.$style.content)},[w(g(H),{tag:`p`,size:`medium`},{default:O(()=>[n(f(g(o).baseText(c.value).split(`{documentation}`)[0]),1),w(g(K),{href:g(X),"new-window":!0},{default:O(()=>[n(f(g(o).baseText(`generic.documentation`)),1)]),_:1},8,[`href`]),n(f(g(o).baseText(c.value).split(`{documentation}`)[1]||``),1)]),_:1})],2)]),_:1},8,[`modelValue`]))}}),[[`__cssModules`,{$style:{content:`_content_186py_125`}}]]),ze=J(l({__name:`ProjectCustomRolesUpgradeModal`,props:{modelValue:{type:Boolean},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let i=b(e,`modelValue`),a=k(),{goToUpgrade:o}=Se(),s=async()=>{await o(`custom-roles-selector`,`upgrade-custom-roles`),i.value=!1};return(e,o)=>(t(),D(g(Y),{modelValue:i.value,"onUpdate:modelValue":o[1]||=e=>i.value=e,title:g(a).baseText(`projects.settings.role.upgrade.title`),width:`400`},{footer:O(()=>[r(`div`,{class:y(e.$style.footer)},[w(g(R),{type:`secondary`,onClick:o[0]||=e=>i.value=!1},{default:O(()=>[n(f(g(a).baseText(`generic.cancel`)),1)]),_:1}),w(g(R),{type:`primary`,onClick:s},{append:O(()=>[r(`span`,{class:y(e.$style.externalIcon)},`↗`,2)]),default:O(()=>[n(f(g(a).baseText(`projects.settings.role.upgrade.custom.viewPlans`))+` `,1)]),_:1})],2)]),default:O(()=>[r(`div`,{class:y(e.$style.content)},[w(g(H),{tag:`p`,size:`medium`},{default:O(()=>[n(f(g(a).baseText(`projects.settings.role.upgrade.custom.body`).split(`{documentation}`)[0]),1),w(g(K),{href:g(X),"new-window":!0},{default:O(()=>[n(f(g(a).baseText(`generic.documentation`)),1)]),_:1},8,[`href`]),n(f(g(a).baseText(`projects.settings.role.upgrade.custom.body`).split(`{documentation}`)[1]||``),1)]),_:1})],2)]),_:1},8,[`modelValue`,`title`]))}}),[[`__cssModules`,{$style:{content:`_content_c8g9i_125`,footer:`_footer_c8g9i_129`,externalIcon:`_externalIcon_c8g9i_135`}}]]),Be={key:1},Ve=J(l({__name:`ProjectMembersRoleCell`,props:{data:{},roles:{}},emits:[`update:role`],setup(e,{emit:a}){let s=e,c=a,l=k(),u=ne(),h=ce(),_=ie(),v=de(),b=o(!1),C=o(!1),T=o(!1),E=o(``);x(b,e=>{e||(E.value=``,setTimeout(()=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur()},0))});let A=()=>{b.value=!1},j=d(()=>s.roles.find(e=>e.slug===s.data.role)),N=d(()=>s.data.role!==`project:personalOwner`),P=d(()=>_.isCustomRolesFeatureEnabled),F=d(()=>v.isInstanceOwner||v.isAdmin),I=d(()=>s.roles.filter(e=>e.systemRole)),L=d(()=>s.roles.filter(e=>!e.systemRole)),R=d(()=>{let e=E.value.toLowerCase().trim();return e?I.value.filter(t=>t.displayName.toLowerCase().includes(e)):I.value}),z=d(()=>{let e=E.value.toLowerCase().trim();return e?L.value.filter(t=>t.displayName.toLowerCase().includes(e)):L.value}),B=d(()=>{let e=[];return R.value.length>0&&(e.push({type:`label`,label:l.baseText(`projects.settings.role.selector.section.system`)}),R.value.forEach(t=>{e.push({value:t.slug,label:t.displayName,role:t})})),(z.value.length>0||!E.value&&!P.value)&&(e.push({type:`label`,label:l.baseText(`projects.settings.role.selector.section.custom`)}),z.value.forEach(t=>{e.push({value:t.slug,label:t.displayName,disabled:!t.licensed,role:t})})),e}),te=e=>{if(!e||typeof e!=`string`)return;let t=s.roles.find(t=>t.slug===e);if(t&&!t.licensed){A(),T.value=!0;return}c(`update:role`,{role:e,userId:s.data.id})},U=()=>{h.track(`User clicked add custom role from role selector`),A(),P.value?F.value?u.push({name:Z.PROJECT_NEW_ROLE}):C.value=!0:T.value=!0};return(a,o)=>N.value?(t(),i(`div`,{key:0,class:y(a.$style.container)},[w(g(G),{open:b.value,"onUpdate:open":o[4]||=e=>b.value=e,items:B.value,"model-value":e.data.role,size:`small`,variant:`ghost`,position:`popper`,"content-class":a.$style.roleSelectContent,class:y(a.$style.roleSelect),"data-test-id":`project-member-role-dropdown`,"onUpdate:modelValue":te},{default:O(()=>[r(`span`,{class:y(a.$style.triggerContent)},f(j.value?.displayName),3)]),header:O(()=>[r(`div`,{class:y(a.$style.searchContainer)},[w(g(ee),{modelValue:E.value,"onUpdate:modelValue":o[0]||=e=>E.value=e,placeholder:g(l).baseText(`generic.search`),size:`medium`,class:y(a.$style.searchInput),onClick:o[1]||=S(()=>{},[`stop`]),onKeydown:o[2]||=S(()=>{},[`stop`])},null,8,[`modelValue`,`placeholder`,`class`])],2)]),item:O(({item:e})=>[e.role?(t(),D(Q,{key:0,role:e.role},{default:O(()=>[w(g(W),m(e,{class:a.$style.selectItem}),{"item-label":O(()=>[w(g(H),{tag:`span`,size:`medium`,color:e.disabled?`text-light`:`text-dark`,class:y(a.$style.itemLabel)},{default:O(()=>[n(f(e.label),1)]),_:2},1032,[`color`,`class`])]),"item-trailing":O(()=>[e.disabled&&P.value?(t(),D(g(V),{key:0,theme:`warning`,class:y(a.$style.upgradeBadge)},{default:O(()=>[n(f(g(l).baseText(`generic.upgrade`)),1)]),_:1},8,[`class`])):p(``,!0)]),_:2},1040,[`class`])]),_:2},1032,[`role`])):p(``,!0)]),label:O(({item:e})=>[r(`span`,{class:y(a.$style.sectionLabelContent)},[n(f(e.label)+` `,1),e.label===g(l).baseText(`projects.settings.role.selector.section.custom`)&&!P.value?(t(),D(g(V),{key:0,theme:`default`,class:y(a.$style.sectionUpgradeBadge),onClick:o[3]||=S(e=>{A(),T.value=!0},[`stop`])},{default:O(()=>[w(g(M),{icon:`lock`,size:`xsmall`}),n(` `+f(g(l).baseText(`generic.upgrade`)),1)]),_:1},8,[`class`])):p(``,!0)],2)]),footer:O(()=>[r(`button`,{type:`button`,class:y(a.$style.addCustomRoleButton),onClick:S(U,[`stop`])},[w(g(M),{icon:`plus`,size:`small`}),w(g(H),{tag:`span`,size:`small`},{default:O(()=>[n(f(g(l).baseText(`projects.settings.role.selector.addCustomRole`)),1)]),_:1})],2)]),_:1},8,[`open`,`items`,`model-value`,`content-class`,`class`]),w(Re,{modelValue:C.value,"onUpdate:modelValue":o[5]||=e=>C.value=e,"custom-roles-exist":L.value.length>0},null,8,[`modelValue`,`custom-roles-exist`]),w(ze,{modelValue:T.value,"onUpdate:modelValue":o[6]||=e=>T.value=e},null,8,[`modelValue`])],2)):(t(),i(`span`,Be,f(j.value?.displayName),1))}}),[[`__cssModules`,{$style:{container:`_container_1ikt5_125`,searchContainer:`_searchContainer_1ikt5_129`,searchInput:`_searchInput_1ikt5_133`,roleSelect:`_roleSelect_1ikt5_141`,triggerContent:`_triggerContent_1ikt5_151`,itemLabel:`_itemLabel_1ikt5_160`,selectItem:`_selectItem_1ikt5_168`,upgradeBadge:`_upgradeBadge_1ikt5_175`,sectionLabelContent:`_sectionLabelContent_1ikt5_180`,sectionUpgradeBadge:`_sectionUpgradeBadge_1ikt5_186`,addCustomRoleButton:`_addCustomRoleButton_1ikt5_193`,roleSelectContent:`_roleSelectContent_1ikt5_209`}}]]),$={class:`pt-xs pb-xs`},He=l({__name:`ProjectMembersTable`,props:s({data:{},loading:{type:Boolean},currentUserId:{},projectRoles:{},actions:{},canEditRole:{type:Boolean}},{tableOptions:{default:()=>({page:0,itemsPerPage:10,sortBy:[]})},tableOptionsModifiers:{}}),emits:s([`update:options`,`update:role`,`action`],[`update:tableOptions`]),setup(e,{emit:s}){let c=k(),l=e,u=s,p=b(e,`tableOptions`),m=d(()=>l.data.items),h=o([{title:c.baseText(`projects.settings.table.header.user`),key:`name`,width:400,disableSort:!0,value:e=>e},{title:c.baseText(`projects.settings.table.header.role`),key:`role`,width:200,disableSort:!0},{title:``,key:`actions`,align:`end`,width:46,disableSort:!0,value(){}}]),_=e=>e.id!==l.currentUserId&&l.canEditRole,v=({role:e,userId:t})=>{u(`update:role`,{role:e,userId:t})},y=e=>e.id===l.currentUserId||e.role===`project:personalOwner`?[]:(l.actions??[]).filter(t=>t.guard?.(e)??!0);return(o,s)=>(t(),i(`div`,null,[w(g(U),{"sort-by":p.value.sortBy,"onUpdate:sortBy":s[1]||=e=>p.value.sortBy=e,page:p.value.page,"onUpdate:page":s[2]||=e=>p.value.page=e,"items-per-page":e.data.count,headers:h.value,items:m.value,"items-length":e.data.count,loading:e.loading,"page-sizes":[e.data.count+1],"onUpdate:options":s[3]||=e=>u(`update:options`,e)},{"item.name":O(({value:e})=>[r(`div`,$,[w(g(F),E(a(e)),null,16)])]),"item.role":O(({item:e})=>[_(e)?(t(),D(Ve,{key:0,data:e,roles:l.projectRoles,"onUpdate:role":v},null,8,[`data`,`roles`])):(t(),D(g(H),{key:1,color:`text-dark`},{default:O(()=>[n(f(l.projectRoles.find(t=>t.slug===e.role)?.displayName??e.role),1)]),_:2},1024))]),"item.actions":O(({item:e})=>[w(Le,{data:e,actions:y(e),onAction:s[0]||=e=>o.$emit(`action`,e)},null,8,[`data`,`actions`])]),_:2},1032,[`sort-by`,`page`,`items-per-page`,`headers`,`items`,`items-length`,`loading`,`page-sizes`])]))}}),Ue={key:0,"data-test-id":`external-secrets-section`},We={class:`mb-s`},Ge={for:`projectExternalSecrets`},Ke={key:0},qe=J(l({__name:`ProjectExternalSecrets`,setup(e,{expose:a}){let s=k(),c=se(),l=ne(),m=oe(),h=ue(),_=ae(),b=ie(),S=je(),C=Ee(m.currentProjectId),E=o([]),A=u({}),j=o(!1),N=o(``),F=o(new Set),I=o(0),L=o(5),B=d(()=>b.moduleSettings[`external-secrets`]?.forProjects??!1),V=d(()=>m.currentProject?.scopes?.includes(`externalSecretsProvider:list`)??!1),W=d(()=>m.currentProject?.scopes?.includes(`externalSecretsProvider:create`)??!1),re=d(()=>_.hasScope(`externalSecretsProvider:create`)),G=d(()=>B.value&&V.value),K=d(()=>E.value.length>0?null:re.value?S.activeProviders.value.length>0?`instance-admin-no-project-providers`:`project-admin-no-providers`:W.value?`project-admin-no-providers`:null),q=d(()=>{let e=K.value;return e?{"instance-admin-no-project-providers":{heading:s.baseText(`projects.settings.externalSecrets.emptyState.heading`),description:s.baseText(`projects.settings.externalSecrets.emptyState.instanceAdmin.noProjectProviders.description`),buttonText:s.baseText(`projects.settings.externalSecrets.button.shareSecretsStore`),buttonAction:be,testId:`external-secrets-empty-state-no-project-providers`},"project-admin-no-providers":{heading:s.baseText(`projects.settings.externalSecrets.emptyState.heading`),description:s.baseText(`projects.settings.externalSecrets.emptyState.projectAdmin.description`),buttonText:s.baseText(`projects.settings.externalSecrets.button.addSecretsStore`),buttonAction:ye,testId:`external-secrets-empty-state-project-admin`}}[e]:null}),J=d(()=>[...E.value].sort((e,t)=>e.name.localeCompare(t.name))),ce=d(()=>{if(!N.value.trim())return J.value;let e=N.value.toLowerCase();return J.value.filter(t=>t.name.toLowerCase().includes(e)?!0:(A[t.name]??[]).some(t=>t.name.toLowerCase().includes(e)))}),le=d(()=>{let e=I.value*L.value,t=e+L.value;return ce.value.slice(e,t)});function de(e){let t=A[e]??[],n=N.value.trim().toLowerCase();return n?t.filter(t=>t.name.toLowerCase().includes(n)||e.toLowerCase().includes(n)):t}let fe=d(()=>le.value.map(e=>{let t=F.value.has(e.name);return{id:`header-${e.name}`,connectionName:e.name,secretsCount:e.secretsCount,isExpanded:t,secrets:t?de(e.name):[]}})),pe=d(()=>[{title:s.baseText(`projects.settings.externalSecrets.table.header.secretName`),key:`connectionName`,disableSort:!0,resize:!1,value:e=>e.connectionName}]);async function me(e){if(A[e]?.length)return;let{secrets:t}=await C.getConnection(e);A[e]=t??[]}async function Y(){await Promise.all(le.value.filter(e=>e.secretsCount>0).map(async e=>await me(e.name)))}async function he(){if(!(!m.currentProjectId||!V.value||!B.value)){j.value=!0;try{E.value=await m.getProjectSecretProviders(m.currentProjectId),await Y()}catch(e){c.showError(e,s.baseText(`projects.settings.externalSecrets.load.error`))}finally{j.value=!1}}}function _e(e){F.value.has(e)?F.value.delete(e):F.value.add(e)}function X(e,t=`connection`){let n=S.activeProviders.value.map(e=>e.name);h.openModalWithData({name:ge,data:{activeTab:t,providerKey:e,providerTypes:S.providerTypes.value,existingProviderNames:n,projectId:m.currentProjectId,onClose:async()=>{await he()}}})}function ve(e){X(e,`connection`)}function ye(){W.value&&X()}function be(){l.push({name:Z.EXTERNAL_SECRETS_SETTINGS})}return x(N,()=>{I.value=0}),x([I,L],async()=>{await Y()}),x([()=>m.currentProjectId,G],async([e,t])=>{e&&t&&await he()},{immediate:!0}),x(G,async e=>{e&&(await Promise.allSettled([S.fetchProviderTypes(),S.fetchActiveConnections()]),re.value&&await m.getAllProjects())},{immediate:!0}),a({fetchProjectSecretConnections:he}),(e,a)=>G.value?(t(),i(`fieldset`,Ue,[r(`h3`,We,[r(`label`,Ge,f(g(s).baseText(`projects.settings.externalSecrets`)),1)]),q.value?(t(),D(g(z),{key:0,"data-test-id":q.value.testId,description:`yes`},{description:O(()=>[w(g(te),{tag:`h3`,size:`small`,class:`mb-2xs`},{default:O(()=>[n(f(q.value.heading),1)]),_:1}),w(g(H),{size:`small`,color:`text-base`,class:y(e.$style.description)},{default:O(()=>[n(f(q.value.description),1)]),_:1},8,[`class`])]),additionalContent:O(()=>[w(g(R),{variant:`ghost`,size:`xsmall`,class:`mr-2xs`,element:`a`,href:g(s).baseText(`settings.externalSecrets.docs`),target:`_blank`,"data-test-id":`secrets-provider-connections-learn-more`},{default:O(()=>[n(f(g(s).baseText(`generic.learnMore`))+` `,1),w(g(M),{icon:`arrow-up-right`})]),_:1},8,[`href`]),w(g(R),{variant:`subtle`,size:`xsmall`,"data-test-id":`${K.value}-button`,onClick:q.value.buttonAction},{default:O(()=>[n(f(q.value.buttonText),1)]),_:1},8,[`data-test-id`,`onClick`])]),_:1},8,[`data-test-id`])):E.value.length>0?(t(),i(`div`,{key:1,class:y(e.$style.secretProvidersContainer)},[r(`div`,{class:y(e.$style.actionsContainer)},[r(`div`,{class:y(e.$style.searchContainer)},[w(g(ee),{modelValue:N.value,"onUpdate:modelValue":a[0]||=e=>N.value=e,placeholder:g(s).baseText(`projects.settings.externalSecrets.search.placeholder`),clearable:``,"data-test-id":`secrets-providers-search`,size:`small`},{prefix:O(()=>[w(g(M),{icon:`search`})]),_:1},8,[`modelValue`,`placeholder`])],2),W.value?(t(),D(g(R),{key:0,variant:`outline`,size:`small`,"data-test-id":`external-secrets-add-button`,onClick:ye},{default:O(()=>[n(f(g(s).baseText(`projects.settings.externalSecrets.button.addSecretsStore`)),1)]),_:1})):p(``,!0)],2),w(g(U),{page:I.value,"onUpdate:page":a[1]||=e=>I.value=e,"items-per-page":L.value,"onUpdate:itemsPerPage":a[2]||=e=>L.value=e,headers:pe.value,items:fe.value,"items-length":ce.value.length,loading:j.value,"page-sizes":[5,10,25,50],"row-props":()=>({class:e.$style.groupHeaderRow}),"data-test-id":`external-secrets-table`},{item:O(({item:a})=>[r(`tr`,{class:y(e.$style.groupHeaderRow)},[r(`td`,{class:y(e.$style.groupHeaderCell)},[r(`div`,{class:y(e.$style.groupHeaderContent)},[w(g(P),{variant:`ghost`,icon:a.isExpanded?`chevron-down`:`chevron-right`,class:y(e.$style.expandButton),disabled:a.secretsCount===0,title:a.isExpanded?g(s).baseText(`projects.settings.externalSecrets.collapse`):g(s).baseText(`projects.settings.externalSecrets.expand`),"data-test-id":`external-secrets-expand-button`,onClick:e=>_e(a.connectionName)},null,8,[`icon`,`class`,`disabled`,`title`,`onClick`]),w(g(H),{class:y(e.$style.connectionLink),bold:``,onClick:e=>ve(a.connectionName)},{default:O(()=>[n(f(a.connectionName),1)]),_:2},1032,[`class`,`onClick`]),w(g(H),{color:`text-light`,size:`small`},{default:O(()=>[n(f(a.secretsCount===1?g(s).baseText(`settings.secretsProviderConnections.oneSecret`):g(s).baseText(`settings.secretsProviderConnections.secrets`,{interpolate:{count:a.secretsCount.toString()}})),1)]),_:2},1024)],2)],2)],2),a.isExpanded&&a.secrets.length>0?(t(),i(`tr`,Ke,[r(`td`,{class:y(e.$style.secretsCell)},[r(`div`,{class:y(e.$style.secretsList)},[(t(!0),i(v,null,T(a.secrets,n=>(t(),i(`div`,{key:n.name,class:y(e.$style.secretRow)},[r(`span`,null,[r(`code`,{class:y(e.$style.secretName)},f(n.name),3)])],2))),128))],2)],2)])):p(``,!0)]),_:1},8,[`page`,`items-per-page`,`headers`,`items`,`items-length`,`loading`,`row-props`])],2)):p(``,!0)])):p(``,!0)}}),[[`__cssModules`,{$style:{description:`_description_3mc48_125`,secretProvidersContainer:`_secretProvidersContainer_3mc48_130`,actionsContainer:`_actionsContainer_3mc48_136`,searchContainer:`_searchContainer_3mc48_141`,groupHeaderRow:`_groupHeaderRow_3mc48_146`,groupHeaderCell:`_groupHeaderCell_3mc48_153`,secretsCell:`_secretsCell_3mc48_165`,secretsList:`_secretsList_3mc48_169`,secretRow:`_secretRow_3mc48_174`,groupHeaderContent:`_groupHeaderContent_3mc48_189`,expandButton:`_expandButton_3mc48_198`,secretName:`_secretName_3mc48_212`,connectionLink:`_connectionLink_3mc48_219`}}]]),Je={for:`projectName`},Ye={for:`projectDescription`},Xe={id:`projectMembers`},Ze={for:`projectMembers`},Qe={key:0,class:`mb-m`},$e={class:`mb-m`},et=10,tt=J(l({__name:`ProjectSettings`,setup(e){let a=de(),s=k(),l=oe(),u=Te(),m=le(),b=Ae(),C=se(),T=ne(),E=ce(),j=pe(),P=d(()=>!!be(l.currentProject?.scopes).project.update),F=e=>{C.showError(e,s.baseText(`projects.settings.save.error.title`))},I=o(!1),z=o(!1),B=o(!1),V=o(!1),te=o({credentials:-1,dataTables:-1,workflows:-1}),U=o({name:``,description:``,relations:[]}),W=o(!1),G=o(null),K=o({type:`icon`,value:`layers`}),q=o(``),J=o({page:0,itemsPerPage:10,sortBy:[{id:`firstName`,desc:!1},{id:`lastName`,desc:!1},{id:`email`,desc:!1}]}),ie=o(``),ae=o([]),ue=o(!1),me=d(()=>ae.value.filter(e=>!(U.value.relations||[]).find(t=>t.id===e.id))),Y=d(()=>l.availableProjects.filter(e=>e.id!==l.currentProjectId)),ge=d(()=>u.processedProjectRoles.find(e=>e.licensed)?.slug),X=d(()=>[{label:s.baseText(`projects.settings.table.row.removeUser`),value:`remove`,guard:e=>e.id!==a.currentUser?.id&&e.role!==`project:personalOwner`}]),Se=async e=>{if(!l.currentProject)return;let t=a.usersById[e];if(!t)return;let n=ge.value;if(n){(t.role===ye.Owner||t.role===ye.Admin)&&u.processedProjectRoles.find(e=>e.slug===`project:admin`&&e.licensed)&&(n=`project:admin`),U.value.relations.find(t=>t.id===e)||U.value.relations.push({id:e,role:n});try{W.value=!0,await l.addMember(l.currentProject.id,{userId:e,role:n}),C.showMessage({type:`success`,title:s.baseText(`projects.settings.member.added.title`)}),E.track(`User added member to project`,{project_id:l.currentProject.id,target_user_id:e,role:n})}catch(t){U.value.relations=U.value.relations.filter(t=>t.id!==e),F(t)}}},we=async({userId:e,role:t})=>{if(!l.currentProject)return;let n=U.value.relations.findIndex(t=>t.id===e);if(n===-1)return;let r=U.value.relations[n].role;U.value.relations[n].role=t;try{W.value=!0,await l.updateMemberRole(l.currentProject.id,e,t),u.fetchRoles(),C.showMessage({type:`success`,title:s.baseText(`projects.settings.memberRole.updated.title`)}),E.track(`User changed member role on project`,{project_id:l.currentProject.id,target_user_id:e,role:t})}catch(e){U.value.relations[n].role=r,C.showError(e,s.baseText(`projects.settings.memberRole.update.error.title`))}},Ee=()=>{B.value=!0};async function Oe(e){let t=l.currentProject;if(!t)return;let n=U.value.relations.findIndex(t=>t.id===e);if(n===-1)return;let r=U.value.relations.splice(n,1)[0];if(t.relations.some(t=>t.id===e))try{W.value=!0,await l.removeMember(t.id,e),C.showMessage({type:`success`,title:s.baseText(`projects.settings.member.removed.title`)}),E.track(`User removed member from project`,{project_id:t.id,target_user_id:e})}catch(e){U.value.relations.splice(n,0,r),F(e)}}let ke=async({action:e,userId:t})=>{switch(e){case`remove`:await Oe(t);break;default:break}},je=()=>{U.value.relations=l.currentProject?.relations?_e(l.currentProject.relations):[],U.value.name=l.currentProject?.name??``,U.value.description=l.currentProject?.description??``},Me=()=>{je(),B.value=!1},Ne=()=>{let e={};return l.currentProject?(U.value.name!==l.currentProject.name&&(e.name=U.value.name??``),U.value.description!==l.currentProject.description&&(e.description=U.value.description??``),U.value.relations.length!==l.currentProject.relations.length&&(e.memberAdded=U.value.relations.filter(e=>!l.currentProject?.relations.find(t=>t.id===e.id)),e.memberRemoved=l.currentProject.relations.filter(e=>!U.value.relations.find(t=>t.id===e.id))),e.role=U.value.relations.filter(t=>l.currentProject?.relations.find(e=>e.id===t.id)?.role!==t.role&&!e.memberAdded?.find(e=>e.id===t.id)),e):e},Fe=e=>{let t=l.currentProject?.id;e.name&&E.track(`User changed project name`,{project_id:t,name:e.name}),e.memberAdded?.forEach(e=>{E.track(`User added member to project`,{project_id:t,target_user_id:e.id,role:e.role})}),e.memberRemoved?.forEach(e=>{E.track(`User removed member from project`,{project_id:t,target_user_id:e.id})}),e.role?.forEach(e=>{E.track(`User changed member role on project`,{project_id:t,target_user_id:e.id,role:e.role})})},Le=async()=>{if(l.currentProject)try{await l.updateProject(l.currentProject.id,{name:U.value.name??``,description:U.value.description??``}),B.value=!1}catch(e){throw F(e),e}},Q=async()=>{if(B.value)try{await Le(),Fe(Ne()),C.showMessage({title:s.baseText(`projects.settings.save.successful.title`,{interpolate:{projectName:U.value.name??``}}),type:`success`})}catch{}},Re=async()=>{await l.getAvailableProjects(),l.currentProjectId&&(te.value=await l.getResourceCounts(l.currentProjectId)),I.value=!0},ze=async e=>{try{if(l.currentProject){let t=l.currentProject?.name??``;await l.deleteProject(l.currentProject.id,e),await T.push({name:Z.HOMEPAGE}),C.showMessage({title:s.baseText(`projects.settings.delete.successful.title`,{interpolate:{projectName:t}}),type:`success`}),I.value=!0}}catch(e){C.showError(e,s.baseText(`projects.settings.delete.error.title`))}},Be=()=>{U.value.name===s.baseText(`projects.settings.newProjectName`)&&(G.value?.inputRef?.focus(),G.value?.inputRef?.select())},Ve=async()=>{if(l.currentProject)try{await l.updateProject(l.currentProject.id,{icon:K.value}),C.showMessage({title:s.baseText(`projects.settings.icon.update.successful.title`),type:`success`})}catch(e){F(e)}};x(()=>l.currentProject,async()=>{if(W.value){W.value=!1;return}je(),await h(),Be(),l.currentProject?.icon&&Ce(l.currentProject.icon)&&(K.value=l.currentProject.icon)},{immediate:!0});let $=d(()=>U.value.relations.map(e=>{let t=a.usersById[e.id],n=fe(e.role)?e.role:`project:viewer`;return{...t,...e,role:n,firstName:e?.firstName??t?.firstName??null,lastName:e?.lastName??t?.lastName??null,email:e?.email??t?.email??null}})),Ue=d(()=>({items:$.value,count:$.value.length})),We=d(()=>{if(!q.value.trim())return Ue.value;let e=q.value.toLowerCase(),t=$.value.filter(t=>{let n=`${t.firstName??``} ${t.lastName??``}`.toLowerCase(),r=(t.email??``).toLowerCase();return n.includes(e)||r.includes(e)});return{items:t,count:t.length}}),Ge=d(()=>$.value.length>=et);x(Ge,e=>{!e&&q.value&&(q.value=``)});let Ke=A(()=>{J.value.page=0},xe(ve.INPUT.SEARCH)),tt=e=>{q.value=e,Ke()},nt=e=>{J.value=e},rt=async e=>{ie.value=e,ue.value=!0;try{let t=e.trim()?{fullText:e}:void 0;await a.fetchUsers({take:50,filter:t}),e.trim()?ae.value=a.allUsers.filter(t=>{let n=e.toLowerCase(),r=`${t.firstName??``} ${t.lastName??``}`.toLowerCase(),i=(t.email??``).toLowerCase();return r.includes(n)||i.includes(n)}):ae.value=a.allUsers}catch(e){C.showError(e,s.baseText(`projects.settings.users.search.error`))}finally{ue.value=!1}},it=A(rt,xe(ve.INPUT.SEARCH));c(async()=>{P.value&&await rt(``)});let at=d(()=>b.provisioningConfig?.scopesProvisionProjectRoles||!1);return _(async()=>{j.set(s.baseText(`projects.settings`)),P.value&&(Be(),await Promise.all([b.getProvisioningConfig(),u.fetchRoles()]))}),(e,o)=>(t(),i(`div`,{class:y(e.$style.projectSettings),"data-test-id":`project-settings-container`},[r(`div`,{class:y(e.$style.header)},[w(De),P.value?(t(),i(`div`,{key:0,class:y(e.$style.headerRow)},[w(g(H),{tag:`h1`,size:`xlarge`,class:`pt-xs pb-m`},{default:O(()=>[n(f(g(s).baseText(`projects.settings.info`)),1)]),_:1}),r(`div`,{class:y(e.$style.headerButtons)},[w(g(R),{variant:`subtle`,"native-type":`button`,disabled:!B.value,class:`mr-2xs`,"data-test-id":`project-settings-cancel-button`,onClick:S(Me,[`stop`,`prevent`])},{default:O(()=>[n(f(g(s).baseText(`projects.settings.button.cancel`)),1)]),_:1},8,[`disabled`]),w(g(R),{disabled:!V.value||!B.value,variant:`solid`,"data-test-id":`project-settings-save-button`,onClick:S(Q,[`stop`,`prevent`])},{default:O(()=>[n(f(g(s).baseText(`projects.settings.button.save`)),1)]),_:1},8,[`disabled`])],2)],2)):p(``,!0)],2),r(`form`,{onSubmit:S(Q,[`prevent`])},[P.value?(t(),i(v,{key:0},[r(`fieldset`,null,[r(`label`,Je,f(g(s).baseText(`projects.settings.name`)),1),r(`div`,{class:y(e.$style.projectName)},[w(g(L),{modelValue:K.value,"onUpdate:modelValue":[o[0]||=e=>K.value=e,Ve],"button-tooltip":g(s).baseText(`projects.settings.iconPicker.button.tooltip`)},null,8,[`modelValue`,`button-tooltip`]),w(g(re),{id:`projectName`,ref_key:`nameInput`,ref:G,modelValue:U.value.name,"onUpdate:modelValue":o[1]||=e=>U.value.name=e,label:``,type:`text`,name:`name`,required:``,"data-test-id":`project-settings-name-input`,class:y(e.$style.projectNameInput),onEnter:Q,onInput:Ee,onValidate:o[2]||=e=>V.value=e},null,8,[`modelValue`,`class`])],2)]),r(`fieldset`,null,[r(`label`,Ye,f(g(s).baseText(`projects.settings.description`)),1),w(g(re),{id:`projectDescription`,modelValue:U.value.description,"onUpdate:modelValue":o[3]||=e=>U.value.description=e,label:``,name:`description`,type:`textarea`,maxlength:512,autosize:!0,"data-test-id":`project-settings-description-input`,class:y(e.$style.projectDescriptionInput),onEnter:Q,onInput:Ee,onValidate:o[4]||=e=>V.value=e},null,8,[`modelValue`,`class`])])],64)):p(``,!0),w(qe,{class:y(e.$style.externalSecrets)},null,8,[`class`]),P.value?(t(),i(v,{key:1},[r(`fieldset`,Xe,[r(`h3`,null,[r(`label`,Ze,f(g(s).baseText(`projects.settings.projectMembers`)),1)]),r(`div`,{class:y([e.$style.membersInputRow,`mb-s`])},[w(g(N),{id:`projectMembers`,class:y(e.$style.userSelect),size:`large`,users:me.value,"current-user-id":g(a).currentUser?.id,placeholder:g(s).baseText(`workflows.shareModal.select.placeholder`),"data-test-id":`project-members-select`,remote:``,"remote-method":g(it),loading:ue.value,"onUpdate:modelValue":Se,disabled:at.value},{prefix:O(()=>[w(g(M),{icon:`search`})]),_:1},8,[`class`,`users`,`current-user-id`,`placeholder`,`remote-method`,`loading`,`disabled`]),Ge.value?(t(),D(g(ee),{key:0,class:y(e.$style.search),"model-value":q.value,placeholder:g(s).baseText(`projects.settings.members.search.placeholder`),clearable:``,"data-test-id":`project-members-search`,"onUpdate:modelValue":tt},{prefix:O(()=>[w(g(M),{icon:`search`})]),_:1},8,[`class`,`model-value`,`placeholder`])):p(``,!0)],2),at.value?(t(),i(`div`,Qe,[w(g(he),{type:`info`,title:g(s).baseText(`settings.provisioningProjectRolesHandledBySsoProvider.description`)},null,8,[`title`])])):p(``,!0),$.value.length>0?(t(),i(`div`,{key:1,class:y(e.$style.membersTableContainer)},[w(He,{"table-options":J.value,"onUpdate:tableOptions":o[5]||=e=>J.value=e,"data-test-id":`project-members-table`,data:We.value,"current-user-id":g(a).currentUser?.id,"project-roles":g(u).processedProjectRoles,actions:X.value,"can-edit-role":!at.value,"onUpdate:options":nt,"onUpdate:role":we,onAction:ke},null,8,[`table-options`,`data`,`current-user-id`,`project-roles`,`actions`,`can-edit-role`])],2)):p(``,!0)]),r(`fieldset`,null,[r(`h3`,$e,f(g(s).baseText(`projects.settings.danger.title`)),1),r(`small`,{class:y(e.$style.danger)},f(g(s).baseText(`projects.settings.danger.message`)),3),w(g(R),{variant:`subtle`,size:`large`,"native-type":`button`,"data-test-id":`project-settings-delete-button`,onClick:S(Re,[`stop`,`prevent`])},{default:O(()=>[n(f(g(s).baseText(`projects.settings.danger.deleteProject`)),1)]),_:1})])],64)):p(``,!0)],32),w(Pe,{modelValue:I.value,"onUpdate:modelValue":o[6]||=e=>I.value=e,"current-project":g(l).currentProject,"resource-counts":te.value,projects:Y.value,onConfirmDelete:ze},null,8,[`modelValue`,`current-project`,`resource-counts`,`projects`]),w(Ie,{modelValue:z.value,"onUpdate:modelValue":o[7]||=e=>z.value=e,limit:g(l).teamProjectsLimit,"plan-name":g(m).currentPlanData?.displayName},null,8,[`modelValue`,`limit`,`plan-name`])],2))}}),[[`__cssModules`,{$style:{projectSettings:`_projectSettings_yap04_125`,header:`_header_yap04_149`,headerRow:`_headerRow_yap04_155`,headerButtons:`_headerButtons_yap04_162`,upgrade:`_upgrade_yap04_168`,externalSecrets:`_externalSecrets_yap04_172`,membersInputRow:`_membersInputRow_yap04_177`,membersTableContainer:`_membersTableContainer_yap04_185`,search:`_search_yap04_189`,projectName:`_projectName_yap04_194`,projectNameInput:`_projectNameInput_yap04_199`,projectDescriptionInput:`_projectDescriptionInput_yap04_203`,userSelect:`_userSelect_yap04_204`,danger:`_danger_yap04_214`}}]]);export{tt as default}; //# sourceMappingURL=ProjectSettings-Dq4EtD1F.js.map