n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 32.1 kB
JavaScript
!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"n8n@2.13.4"}}catch(e){}}(),System.register(["./chunk-legacy-TXBRODOR.js","./vue.runtime.esm-bundler-legacy-IafOlCW8.js","./_MapCache-legacy-DwgdC8YO.js","./src-legacy-Dwzr7bD0.js","./_plugin-vue_export-helper-legacy-DEZAmQqp.js","./sanitize-html-legacy-ChR3ikxn.js","./users.store-legacy-OKuN0qAC.js","./constants-legacy-DNCca_FT.js","./merge-legacy-uu1aGqHK.js","./_baseOrderBy-legacy-PsQY_Pvh.js","./banners.store-legacy-s6kaK6vM.js","./dateformat-legacy-BxdD_OP7.js","./useDebounce-legacy-CT3oYGrC.js","./versions.store-legacy-BoVYiMEK.js","./dataTable.store-legacy-CvwqAgvm.js","./useClipboard-legacy-D5bRgqfO.js","./executions.store-legacy-z6ytCHo9.js","./usePinnedData-legacy-CxgKkO-J.js","./nodeIcon-legacy-CU0X8703.js","./canvas.utils-legacy-BYFKir1g.js","./canvas.eventBus-legacy-DA8zEJ09.js","./useCanvasOperations-legacy-DHjpE9Af.js","./setupPanel.store-legacy-D5xiJOzj.js","./nodeTransforms-legacy-CEnqyD1g.js","./templateTransforms-legacy-bPWknje4.js","./useDynamicCredentials-legacy-DYuGI0-p.js","./NodeIcon-legacy-B4uktMo3.js","./TimeAgo-legacy-DuWY6_ss.js","./roles.store-legacy-DCbwnO8i.js","./dist-legacy-IcqF43vi.js","./sso.store-legacy-VUs4UkgQ.js","./router-legacy-Z_TN1ADz.js","./insights.store-legacy-CoDyKxkz.js","./insights.constants-legacy-CEIQi13p.js","./insights.utils-legacy-uA0D6qm5.js","./mcp.constants-legacy-LKs0GtTI.js","./useMcp-legacy-D8-bTeAT.js","./mcp.store-legacy-DMDbnMky.js","./WorkflowLocation-legacy-DahcjxTd.js"],(function(e,t){var a,n,o,l,s,i,r,c,p,d,u,_,m,g,b,f,v,y,h,w,k,x,j,T,$,C,A,M,z,P,E,S,D,U,B,O,K,W,R,V,I,L,F,N,H,J,Y,q,Q,X,G,Z,ee,te,ae,ne,oe,le,se,ie,re,ce,pe,de,ue,_e,me,ge,be,fe,ve,ye,he,we,ke,xe,je,Te,$e,Ce,Ae,Me,ze,Pe,Ee,Se,De,Ue,Be;return{setters:[function(e){e.o},function(e){a=e.$,n=e.A,o=e.C,l=e.E,s=e.Ft,i=e.N,r=e.O,c=e.S,p=e.Sn,d=e.T,u=e.Wt,_=e.X,m=e._n,g=e.bt,b=e.gt,f=e.it,v=e.j,y=e.p,h=e.w,w=e.yt},function(e){k=e.bt},function(e){x=e.$i,j=e.F,T=e.Fi,$=e.H,C=e.K,A=e.Mi,M=e.Q,z=e.Qi,P=e.Ri,E=e.Rt,S=e.W,D=e.Wt,U=e.Yi,B=e.Zi,O=e._,K=e.lt,W=e.tt,R=e.zt},function(e){V=e.t},function(e){},function(e){I=e.Tr,L=e.en,F=e.r,N=e.t,H=e.vn},function(e){J=e.Gs,Y=e.is,q=e.ms},function(e){},function(e){Q=e.r},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){X=e.t},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){},function(e){G=e.t},function(e){},function(e){},function(e){},function(e){Z=e.t},function(e){},function(e){},function(e){},function(e){ee=e.a,te=e.i,e.l,e.n,ae=e.o,e.r},function(e){ne=e.t},function(e){oe=e.t},function(e){le=e.t}],execute:function(){(se=document.createElement("style")).textContent="._container_pmfp4_125{gap:var(--spacing--lg);flex-direction:column;display:flex}._container_pmfp4_125 button{margin-bottom:var(--spacing--2xs)}._docs-link_pmfp4_134{text-decoration:underline}._main-toggle-container_6ezoc_125{align-items:center;gap:var(--spacing--2xs);display:flex}._main-toggle_6ezoc_125{flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}._container_heprf_125{gap:var(--spacing--4xs);flex-direction:column;display:flex}._label-wrapper_heprf_131{align-items:center;gap:var(--spacing--4xs);display:flex}._label-wrapper_heprf_131 ._info-tip_heprf_136{visibility:hidden;cursor:pointer;padding-top:1px}._label-wrapper_heprf_131 ._info-tip_heprf_136 .n8n-info-tip{display:flex}._label-wrapper_heprf_131:hover ._info-tip_heprf_136 span{visibility:visible}._label_heprf_131{font-size:var(--font-size--sm);color:var(--color--text--shade-1)}._parameter-value_heprf_153{font-size:var(--font-size--2xs);color:var(--color--text);justify-content:space-between;align-items:stretch;gap:var(--spacing--2xs);border:var(--border);border-radius:var(--radius);display:flex;overflow:hidden}._parameter-value--loading_heprf_164{gap:0}._parameter-value_heprf_153 ._input-wrapper_heprf_167{flex:1;align-items:center;min-width:0;display:flex}._parameter-value_heprf_153 ._input-wrapper_heprf_167 .n8n-input__wrapper{--input--border--shadow:0 0 0 0 transparent;--input--border--shadow--hover:0 0 0 0 transparent;--input--border--shadow--focus:0 0 0 0 transparent}._parameter-value_heprf_153 ._input-wrapper_heprf_167 .n8n-input__wrapper:focus-within{outline:none}._parameter-value_heprf_153 .n8n-input{flex:1;align-items:center}._parameter-value_heprf_153 .n8n-input input{font-family:monospace;font-size:var(--font-size--2xs);color:var(--color--text);min-height:var(--spacing--md);height:var(--spacing--md);border:none}._parameter-value_heprf_153 ._parameter-skeleton_heprf_193 div{height:calc(var(--spacing--xl) - 2*var(--border-width));border-radius:0 0 var(--radius)var(--radius);margin:0}._parameter-value_heprf_153 button{box-shadow:none;border:none;border-radius:0}._parameter-value_heprf_153 button:hover{border-color:inherit;box-shadow:none}._parameter-value_heprf_153 button:active{box-shadow:none}._parameter-value_heprf_153 button+button{border-left:var(--border)}@media screen and (max-width:820px){._parameter-value_heprf_153{word-wrap:break-word;margin-top:var(--spacing--2xs)}}._copy-button-wrapper_heprf_220{border-left:var(--border);align-items:center;display:flex}._copy-button_heprf_220{border:none;border-radius:0}._container_x8qjm_125,._container_1jg97_125{flex-direction:column;display:flex}._loading-container_1jg97_130{gap:var(--spacing--xs);flex-direction:column;display:flex}._url-skeleton_1jg97_136 div{width:100%;min-height:40px}._code-skeleton_1jg97_141 div{width:100%;min-height:350px}._parameters-container_1jg97_146{padding-top:var(--spacing--sm);flex-direction:column;display:flex}._json-container_1jg97_152{margin-top:var(--spacing--sm);flex-grow:1;position:relative}._json-container_1jg97_152 ._label_1jg97_157{font-size:var(--font-size--sm);color:var(--color--text--shade-1);margin-bottom:var(--spacing--4xs);display:inline-flex}._json-container_1jg97_152 .n8n-markdown{width:100%}._json-container_1jg97_152 code{font-size:var(--font-size--2xs);tab-size:1;border:var(--border);border-radius:var(--radius);color:var(--color--text)!important;padding:var(--spacing--2xs)!important;background:0 0!important}._json-container_1jg97_152:hover ._copy-json-button_1jg97_175{display:flex}._copy-json-button_1jg97_175{top:var(--spacing--lg);right:var(--spacing--3xs);border:none;outline:none;display:none;position:absolute}._copy-json-button_1jg97_175:hover{background:0 0;border:none;outline:none}._popper_7glv7_125{margin-right:var(--spacing--sm)}._popper-content_7glv7_129{padding:var(--spacing--xs);gap:var(--spacing--sm);flex-direction:column;display:flex}._container_gl7pe_125{gap:var(--spacing--md);padding-top:var(--spacing--5xs);align-items:baseline;display:flex}._container_gl7pe_125 a{font-size:var(--font-size--2xs);margin-right:calc(-1*var(--spacing--2xs))}._workflow-table-container_12b5m_125 .table-pagination{display:none}._header_12b5m_129{justify-content:space-between;align-items:center;display:flex}._workflow-table_12b5m_125 tr:last-child{border-bottom:none!important}._empty-state_12b5m_139{justify-content:center;align-items:center;gap:var(--spacing--sm);padding:var(--spacing--lg)0;flex-direction:column;min-height:250px;display:flex}._workflow-cell_12b5m_149{padding:var(--spacing--2xs)0;min-width:0;display:flex;overflow:hidden}._location-cell_12b5m_156{padding:var(--spacing--2xs)0}._description-cell_12b5m_160{-webkit-line-clamp:3;line-clamp:3;color:var(--color--text);padding:var(--spacing--2xs)0;cursor:pointer;-webkit-box-orient:vertical;display:-webkit-inline-box;overflow:hidden}._description-cell_12b5m_160:hover span{color:var(--color--text--shade-1)}._description-cell_12b5m_160 span{align-items:center;display:flex}._description-popper_12b5m_178{min-width:300px}._table-link_12b5m_182{color:var(--color--text)}._truncate_12b5m_186{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}._header_2opcl_125{justify-content:space-between;align-items:center;display:flex}._empty-state_2opcl_131{justify-content:center;align-items:center;gap:var(--spacing--sm);padding:var(--spacing--lg)0;flex-direction:column;min-height:250px;display:flex}._container_aryh2_125{flex-direction:column;display:flex}._main-header_aryh2_130{margin-bottom:var(--spacing--xl);justify-content:space-between;display:flex}@media (max-width:820px){._main-header_aryh2_130{align-items:flex-start;gap:var(--spacing--2xs);flex-direction:column}}._headings_aryh2_143{flex-direction:column;min-height:60px;display:flex}._tabs-header_aryh2_149{justify-content:space-between;align-items:center;display:flex}._actions_aryh2_155{gap:var(--spacing--2xs);display:flex}\n/*$vite$:1*/",document.head.appendChild(se);try{t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},(Oe=(new t.Error).stack)&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[Oe]="1d441c65-94a7-459b-a947-4d7701583e11",t._sentryDebugIdIdentifier="sentry-dbid-1d441c65-94a7-459b-a947-4d7701583e11")}catch(t){}var t,Oe;ie={key:0},re={key:1},ce=["href"],pe=i({__name:"MCPEmptyState",props:{disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["turnOnMcp"],setup(e,{emit:t}){const s=e,i=t,r=k();return(e,t)=>(a(),l("div",{class:m(e.$style.container),"data-test-id":"mcp-empty-state-container"},[v(u(P),{icon:{type:"icon",value:"mcp"},heading:u(r).baseText("settings.mcp.actionBox.heading"),description:u(r).baseText("settings.mcp.description"),"button-text":u(r).baseText("settings.mcp.actionBox.button.label"),"button-disabled":s.disabled||s.loading,"button-variant":"solid","data-test-id":"enable-mcp-access-button","onClick:button":t[0]||(t[0]=e=>i("turnOnMcp"))},{disabledButtonTooltip:w((()=>[s.loading?(a(),l("span",ie,p(u(r).baseText("generic.loading"))+"...",1)):s.disabled?(a(),l("span",re,p(u(r).baseText("settings.mcp.toggle.disabled.tooltip")),1)):d("",!0)])),additionalContent:w((()=>[v(u(B),{color:"text-light",size:"small"},{default:w((()=>[n(p(u(r).baseText("settings.mcp.emptyState.docs.part1"))+" ",1),o("a",{href:u(ee),class:m(e.$style["docs-link"]),target:"_blank",rel:"noopener noreferrer"},p(u(r).baseText("generic.learnMore").toLowerCase()),11,ce)])),_:1})])),_:1},8,["heading","description","button-text","button-disabled"])],2))}}),de=V(pe,[["__cssModules",{$style:{container:"_container_pmfp4_125","docs-link":"_docs-link_pmfp4_134"}}]]),ue=i({__name:"McpAccessToggle",props:{modelValue:{type:Boolean},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["disableMcpAccess"],setup(e,{emit:t}){const s=e,i=t,r=k(),c=()=>{i("disableMcpAccess")};return(t,i)=>(a(),l("div",{class:m(t.$style["main-toggle-container"])},[o("div",{class:m(t.$style["main-toggle-info"])},[v(u(B),{bold:!0,color:e.modelValue?"success":"text-light",size:"small"},{default:w((()=>[n(p(e.modelValue?u(r).baseText("settings.mcp.header.toggle.enabled"):u(r).baseText("settings.mcp.header.toggle.disabled")),1)])),_:1},8,["color"])],2),o("div",{class:m(t.$style["main-toggle"]),"data-test-id":"mcp-toggle-container"},[v(u(A),{content:u(r).baseText("settings.mcp.toggle.disabled.tooltip"),disabled:!s.disabled,placement:"top"},{default:w((()=>[v(u(D),{size:"large","data-test-id":"mcp-access-toggle","model-value":s.modelValue,disabled:s.disabled,loading:s.loading,"onUpdate:modelValue":c},null,8,["model-value","disabled","loading"])])),_:1},8,["content","disabled"])],2)],2))}}),_e=V(ue,[["__cssModules",{$style:{"main-toggle-container":"_main-toggle-container_6ezoc_125","main-toggle":"_main-toggle_6ezoc_125"}}]]),me=["for"],ge=["id"],be=i({__name:"ConnectionParameter",props:{id:{},label:{},value:{},valueLoading:{type:Boolean,default:!1},infoTip:{default:void 0},allowCopy:{type:Boolean,default:!0}},emits:["copy"],setup(e,{emit:t}){const{copy:s,copied:i,isSupported:r}=X(),c=k(),_=e,g=t;return(e,t)=>(a(),l("div",{class:m(e.$style.container)},[o("div",{class:m(e.$style["label-wrapper"])},[o("label",{class:m(e.$style.label),for:`connection-parameter-${_.id}`},p(_.label),11,me),_.infoTip?(a(),l("div",{key:0,class:m(e.$style["info-tip"])},[v(u(W),{type:"tooltip",size:"small",enterable:!1},{default:w((()=>[n(p(_.infoTip),1)])),_:1})],2)):d("",!0)],2),o("div",{id:`connection-parameter-${_.id}`,class:m({[e.$style["parameter-value"]]:!0,[e.$style["parameter-value--loading"]]:_.valueLoading}),"data-test-id":"connection-parameter-value"},[o("div",{class:m(e.$style["input-wrapper"])},[_.valueLoading?(a(),h(u(R),{key:0,loading:_.valueLoading,variant:"h1",class:m(e.$style["parameter-skeleton"])},null,8,["loading","class"])):(a(),h(u(T),{key:1,modelValue:_.value,"onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),type:"text",readonly:!0},null,8,["modelValue"]))],2),o("div",{class:m(e.$style["copy-button-wrapper"])},[f(e.$slots,"customActions"),v(u(A),{disabled:!u(r),content:u(i)?u(c).baseText("generic.copied"):u(c).baseText("generic.copy"),"show-after":u(100),placement:"bottom"},{default:w((()=>[_.allowCopy&&u(r)?(a(),h(u(z),{key:0,variant:"subtle",iconOnly:"",icon:u(i)?"check":"copy",class:m(e.$style["copy-button"]),disabled:_.valueLoading,onClick:t[1]||(t[1]=e=>(async e=>{await s(e),g("copy",e)})(_.value))},null,8,["icon","class","disabled"])):d("",!0)])),_:1},8,["disabled","content","show-after"])],2)],10,ge)],2))}}),fe=V(be,[["__cssModules",{$style:{container:"_container_heprf_125","label-wrapper":"_label-wrapper_heprf_131","info-tip":"_info-tip_heprf_136",label:"_label_heprf_131","parameter-value":"_parameter-value_heprf_153","parameter-value--loading":"_parameter-value--loading_heprf_164","input-wrapper":"_input-wrapper_heprf_167","parameter-skeleton":"_parameter-skeleton_heprf_193","copy-button-wrapper":"_copy-button-wrapper_heprf_220","copy-button":"_copy-button_heprf_220"}}]]),ve=V(i({__name:"MCPOAuthPopoverTab",props:{serverUrl:{}},emits:["copy"],setup(e,{emit:t}){const n=e,o=t,s=k(),i=e=>{o("copy",e)};return(e,t)=>(a(),l("div",{class:m(e.$style.container),"data-test-id":"mcp-oauth-popover-tab"},[v(fe,{id:"oauth-server-url",label:u(s).baseText("settings.mcp.connectPopover.serverUrl"),value:n.serverUrl,onCopy:i},null,8,["label","value"])],2))}}),[["__cssModules",{$style:{container:"_container_x8qjm_125"}}]]),ye=V(i({__name:"MCPAccessTokenPopoverTab",props:{serverUrl:{}},emits:["copy"],setup(e,{emit:t}){const i=e,r=t,g=k(),b=I(),f=oe(),y=s(!0),x=s(!1),j=c((()=>f.currentUserMCPKey)),{copy:T,copied:$,isSupported:P}=X(),E=c((()=>`\n{\n "mcpServers": {\n "n8n-mcp": {\n "type": "http",\n "url": "${i.serverUrl}",\n "headers": {\n "Authorization": "Bearer ${U.value}"\n }\n }\n }\n}\n`)),S=c((()=>j.value?.apiKey?.includes("******")??!1)),D=c((()=>`\`\`\`json${E.value}\`\`\``)),U=c((()=>x.value?`<${g.baseText("generic.loading")}...>`:S.value?"<YOUR_ACCESS_TOKEN_HERE>":j.value?.apiKey)),B=async()=>{try{x.value=!0,await f.generateNewApiKey()}catch(e){b.showError(e,g.baseText("settings.mcp.error.rotating.apiKey"))}finally{setTimeout((()=>{x.value=!1}),200)}},O=async()=>{await T(E.value),r("copy","mcpJson",E.value)},K=e=>{r("copy","serverUrl",e)},W=()=>{j.value?.apiKey&&r("copy","accessToken",j.value.apiKey)};return _((async()=>{j.value?y.value=!1:await(async()=>{try{y.value=!0,await f.getOrCreateApiKey()}catch(e){b.showError(e,g.baseText("settings.mcp.error.fetching.apiKey"))}finally{setTimeout((()=>{y.value=!1}),200)}})()})),(e,t)=>(a(),l("div",{class:m(e.$style.container),"data-test-id":"mcp-access-token-popover-tab"},[v(fe,{id:"oauth-server-url",label:u(g).baseText("settings.mcp.connectPopover.serverUrl"),value:i.serverUrl,onCopy:K},null,8,["label","value"]),y.value?(a(),l("div",{key:0,class:m(e.$style["loading-container"])},[v(u(R),{loading:y.value,variant:"h1",class:m(e.$style["url-skeleton"])},null,8,["loading","class"]),v(u(R),{loading:y.value,variant:"button",class:m(e.$style["code-skeleton"])},null,8,["loading","class"])],2)):j.value?.apiKey?(a(),l("div",{key:1,class:m(e.$style["parameters-container"])},[v(fe,{id:"access-token",value:j.value.apiKey,"value-loading":x.value,label:u(g).baseText("settings.mcp.connectPopover.tab.accessToken"),"info-tip":u(g).baseText("settings.mcp.instructions.apiKey.tip"),"allow-copy":!S.value,onCopy:W},{customActions:w((()=>[v(u(A),{content:u(g).baseText("settings.mcp.instructions.rotateKey.tooltip"),"show-after":u(100)},{default:w((()=>[v(u(z),{variant:"subtle",iconOnly:"",icon:"refresh-cw",disabled:x.value,onClick:B},null,8,["disabled"])])),_:1},8,["content","show-after"])])),_:1},8,["value","value-loading","label","info-tip","allow-copy"]),S.value?d("",!0):(a(),h(u(C),{key:0},{default:w((()=>[n(p(u(g).baseText("settings.mcp.access.token.notice")),1)])),_:1})),o("div",{class:m(e.$style["json-container"]),"data-test-id":"mcp-access-token-json"},[o("label",{class:m(e.$style.label),for:"mcp-json"},p(u(g).baseText("settings.mcp.connectPopover.jsonConfig")),3),v(u(M),{id:"mcp-json",content:D.value},null,8,["content"]),v(u(A),{disabled:!u(P),content:u($)?u(g).baseText("generic.copied"):u(g).baseText("generic.copy"),"show-after":u(100)},{default:w((()=>[!u(P)||y.value||x.value?d("",!0):(a(),h(u(z),{key:0,variant:"subtle",iconOnly:"",icon:u($)?"check":"copy",class:m(e.$style["copy-json-button"]),"data-test-id":"mcp-json-copy-button",onClick:O},null,8,["icon","class"]))])),_:1},8,["disabled","content","show-after"])],2)],2)):d("",!0)],2))}}),[["__cssModules",{$style:{container:"_container_1jg97_125","loading-container":"_loading-container_1jg97_130","url-skeleton":"_url-skeleton_1jg97_136","code-skeleton":"_code-skeleton_1jg97_141","parameters-container":"_parameters-container_1jg97_146","json-container":"_json-container_1jg97_152",label:"_label_1jg97_157","copy-json-button":"_copy-json-button_1jg97_175"}}]]),he=i({__name:"McpConnectPopover",props:{disabled:{type:Boolean}},setup(e){const t=k(),i=L(),r=Q(),c=oe(),_=e,g="accessToken",f="oauth",y=s([{value:f,label:t.baseText("settings.mcp.connectPopover.tab.oauth")},{value:g,label:t.baseText("settings.mcp.connectPopover.tab.accessToken")}]),x=s(`${r.urlBaseEditor}${ae}`),j=s(y.value[0].value),T=e=>{e?c.openConnectPopover():(c.closeConnectPopover(),c.resetCurrentUserMCPKey())},C=e=>{j.value=e},A=e=>{M({item:{serverUrl:"server-url",accessToken:"access-token",mcpJson:"mcp-json"}[e],source:"token-tab"})},M=e=>{i.track("User copied MCP connection parameter",{parameter:e.item,source:e.source})};return b((()=>_.disabled),(e=>{e||c.openConnectPopover()})),(s,i)=>(a(),l("div",null,[v(u(S),{id:"mcp-connect-popover",open:u(c).connectPopoverOpen,"content-class":s.$style.popper,"show-arrow":!1,width:`${u(460)}px`,"onUpdate:open":T},{trigger:w((()=>[v(u(z),{variant:"subtle","data-test-id":"mcp-connect-popover-trigger-button",disabled:e.disabled},{default:w((()=>[n(p(u(t).baseText("settings.mcp.connectPopover.triggerLabel")),1)])),_:1},8,["disabled"])])),content:w((()=>[o("div",{class:m(s.$style["popper-content"]),"data-test-id":"mcp-connect-popover-content"},[o("header",null,[v(u($),{"data-test-id":"mcp-connect-popover-tabs","model-value":j.value,options:y.value,"onUpdate:modelValue":C},null,8,["model-value","options"])]),o("main",null,[j.value===f?(a(),h(ve,{key:0,"server-url":x.value,onCopy:i[0]||(i[0]=e=>M({item:"server-url",source:"oauth-tab"}))},null,8,["server-url"])):j.value===g?(a(),h(ye,{key:1,"server-url":x.value,onCopy:A},null,8,["server-url"])):d("",!0)])],2)])),_:1},8,["open","content-class","width"])]))}}),we=V(he,[["__cssModules",{$style:{popper:"_popper_7glv7_125","popper-content":"_popper-content_7glv7_129"}}]]),ke=i({__name:"MCPHeaderActions",props:{toggleDisabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},accessEnabled:{type:Boolean}},emits:["disableMcpAccess"],setup(e,{emit:t}){const n=e,o=t;return(t,s)=>(a(),l("div",{class:m(t.$style.container),"data-test-id":"mcp-header-actions"},[v(_e,{"model-value":e.accessEnabled,disabled:n.toggleDisabled,loading:n.loading,class:m(t.$style["mcp-access-toggle"]),onDisableMcpAccess:s[0]||(s[0]=e=>o("disableMcpAccess"))},null,8,["model-value","disabled","loading","class"]),v(we,{disabled:!e.accessEnabled},null,8,["disabled"])],2))}}),xe=V(ke,[["__cssModules",{$style:{container:"_container_gl7pe_125"}}]]),je={key:0},Te={key:1,class:"mt-s mb-xl"},$e=["onClick"],Ce={key:0},Ae={key:1},Me=i({__name:"WorkflowsTable",props:{workflows:{},loading:{type:Boolean}},emits:["removeMcpAccess","connectWorkflows","updateDescription"],setup(e,{emit:t}){const i=e,c=t,d=k(),_=s([{title:d.baseText("settings.mcp.workflows.table.column.name"),key:"workflow",width:150,disableSort:!0,value(){}},{title:d.baseText("settings.mcp.workflows.table.column.location"),key:"location",width:200,disableSort:!0,value(){}},{title:d.baseText("generic.description"),key:"description",width:350,disableSort:!0,value(){}},{title:"",key:"actions",align:"end",width:50,disableSort:!0,value(){}}]),g=e=>{const t=Y(e.scopes);return[{label:d.baseText("settings.mcp.workflows.table.action.removeMCPAccess"),value:"removeFromMCP",disabled:!t.workflow.update},{label:d.baseText("settings.mcp.workflows.table.action.updateDescription"),value:"updateDescription",disabled:!t.workflow.update}]},b=()=>{c("connectWorkflows")};return(e,t)=>(a(),l("div",{class:m(e.$style["workflow-table-container"])},[i.loading?(a(),l("div",je,[v(u(R),{loading:i.loading,variant:"h1",class:"mb-l"},null,8,["loading"]),v(u(R),{loading:i.loading,variant:"p",rows:5,"shrink-last":!1},null,8,["loading"])])):(a(),l("div",Te,[v(u(O),{class:m(e.$style["workflow-table"]),"data-test-id":"mcp-workflow-table",headers:_.value,items:i.workflows,"items-length":i.workflows.length},r({"item.workflow":w((({item:t})=>[o("div",{class:m(e.$style["workflow-cell"]),"data-test-id":"mcp-workflow-cell"},[v(u(K),{"data-test-id":"mcp-workflow-name-link","new-window":!0,to:u(Z).resolve({name:u(q).WORKFLOW,params:{name:t.id}}).fullPath,theme:"text",class:m([e.$style["table-link"],e.$style.truncate])},{default:w((()=>[v(u(B),{class:m(e.$style.truncate),"data-test-id":"mcp-workflow-name"},{default:w((()=>[n(p(t.name),1)])),_:2},1032,["class"])])),_:2},1032,["to","class"])],2)])),"item.location":w((({item:t})=>[o("div",{class:m(e.$style["location-cell"]),"data-test-id":"mcp-workflow-location-cell"},[v(le,{"workflow-id":t.id,"home-project":t.homeProject,"parent-folder":t.parentFolder,"as-links":!0},null,8,["workflow-id","home-project","parent-folder"])],2)])),"item.description":w((({item:t})=>[v(u(A),{content:t.description||u(d).baseText("settings.mcp.workflows.table.column.description.emptyTooltip"),"show-after":u(100),"popper-class":e.$style["description-popper"]},{default:w((()=>[o("div",{"data-test-id":"mcp-workflow-description-cell",class:m(e.$style["description-cell"]),onClick:e=>c("updateDescription",t)},[t.description?(a(),l("span",Ce,[v(u(B),{"data-test-id":"mcp-workflow-description"},{default:w((()=>[n(p(t.description),1)])),_:2},1024)])):(a(),l("span",Ae,[v(u(x),{icon:"triangle-alert",size:14,color:"warning",class:"mr-2xs"}),v(u(B),{"data-test-id":"mcp-workflow-description-empty"},{default:w((()=>[n(p(u(d).baseText("settings.mcp.workflows.table.column.description.emptyContent")),1)])),_:1})]))],10,$e)])),_:2},1032,["content","show-after","popper-class"])])),"item.actions":w((({item:t})=>[v(u(E),{class:m(e.$style["action-toggle"]),"data-test-id":"mcp-workflow-action-toggle",placement:"bottom",actions:g(t),theme:"dark",onAction:e=>((e,t)=>{switch(e){case"removeFromMCP":c("removeMcpAccess",t);break;case"updateDescription":c("updateDescription",t)}})(e,t)},null,8,["class","actions","onAction"])])),_:2},[0===i.workflows.length?{name:"cover",fn:w((()=>[o("div",{class:m(e.$style["empty-state"])},[v(u(B),{"data-test-id":"mcp-workflow-table-empty-state",size:"large",color:"text-base"},{default:w((()=>[n(p(u(d).baseText("settings.mcp.workflows.table.empty.title")),1)])),_:1}),v(u(B),{"data-test-id":"mcp-workflow-table-empty-state-description",size:"small",color:"text-base"},{default:w((()=>[n(p(u(d).baseText("settings.mcp.workflows.table.empty.description")),1)])),_:1}),v(u(z),{variant:"solid","data-test-id":"mcp-workflow-table-empty-state-button",label:u(d).baseText("settings.mcp.connectWorkflows"),onClick:b},null,8,["label"])],2)])),key:"0"}:void 0]),1032,["class","headers","items","items-length"])]))],2))}}),ze=V(Me,[["__cssModules",{$style:{"workflow-table-container":"_workflow-table-container_12b5m_125",header:"_header_12b5m_129","workflow-table":"_workflow-table_12b5m_125","empty-state":"_empty-state_12b5m_139","workflow-cell":"_workflow-cell_12b5m_149","location-cell":"_location-cell_12b5m_156","description-cell":"_description-cell_12b5m_160","description-popper":"_description-popper_12b5m_178","table-link":"_table-link_12b5m_182",truncate:"_truncate_12b5m_186"}}]]),Pe={"data-test-id":"oauth-clients-table"},Ee={key:0},Se={key:1,class:"mt-s mb-xl"},De=i({__name:"OAuthClientsTable",props:{clients:{},loading:{type:Boolean}},emits:["revokeClient"],setup(e,{emit:t}){const i=k(),c=oe(),d=e,_=t,g=s([{title:i.baseText("settings.mcp.oAuthClients.table.clientName"),key:"name",width:250,disableSort:!0,value(){}},{title:i.baseText("settings.mcp.oAuthClients.table.connectedAt"),key:"createdAt",width:250,disableSort:!0,value(){}},{title:"",key:"actions",align:"end",width:50,disableSort:!0,value(){}}]),b=s([{label:i.baseText("settings.mcp.oAuthClients.table.action.revokeAccess"),value:"revokeClient"}]);return(e,t)=>(a(),l("div",Pe,[d.loading?(a(),l("div",Ee,[v(u(R),{loading:d.loading,variant:"h1",class:"mb-l"},null,8,["loading"]),v(u(R),{loading:d.loading,variant:"p",rows:5,"shrink-last":!1},null,8,["loading"])])):(a(),l("div",Se,[v(u(O),{"data-test-id":"oauth-clients-data-table",headers:g.value,items:d.clients,"items-length":d.clients.length},r({"item.name":w((({item:e})=>[v(u(B),{"data-test-id":"mcp-client-name",color:"text-base"},{default:w((()=>[n(p(e.name),1)])),_:2},1024)])),"item.createdAt":w((({item:e})=>[v(u(B),{"data-test-id":"mcp-client-created-at",color:"text-base"},{default:w((()=>[v(G,{date:String(e.createdAt)},null,8,["date"])])),_:2},1024)])),"item.actions":w((({item:e})=>[v(u(E),{"data-test-id":"mcp-oauth-client-action-toggle",placement:"bottom",actions:b.value,theme:"dark",onAction:t=>((e,t)=>{"revokeClient"===e&&_("revokeClient",t)})(t,e)},null,8,["actions","onAction"])])),_:2},[0===d.clients.length?{name:"cover",fn:w((()=>[o("div",{class:m(e.$style["empty-state"])},[v(u(B),{"data-test-id":"mcp-workflow-table-empty-state",size:"large",color:"text-base"},{default:w((()=>[n(p(u(i).baseText("settings.mcp.oauth.table.empty.title")),1)])),_:1}),v(u(B),{"data-test-id":"mcp-workflow-table-empty-state-description",size:"small",color:"text-base"},{default:w((()=>[n(p(u(i).baseText("settings.mcp.oauth.table.empty.description")),1)])),_:1}),v(u(z),{variant:"solid","data-test-id":"mcp-oauth-create-client-button",onClick:t[0]||(t[0]=e=>u(c).openConnectPopover())},{default:w((()=>[n(p(u(i).baseText("settings.mcp.oauth.table.empty.button")),1)])),_:1})],2)])),key:"0"}:void 0]),1032,["headers","items","items-length"])]))]))}}),Ue=V(De,[["__cssModules",{$style:{header:"_header_2opcl_125","empty-state":"_empty-state_2opcl_131"}}]]),Be={"data-test-id":"mcp-settings-description"},e("default",V(i({__name:"SettingsMCPView",setup(e){const t=k(),i=I(),r=H(),b=ne(),f=L(),x=oe(),T=N(),$=F(),C=s(!1),M=s("workflows"),P=s([{label:t.baseText("settings.mcp.tabs.workflows"),value:"workflows"},{label:t.baseText("settings.mcp.tabs.oauth"),value:"oauth"}]),E=s(!1),S=s([]),D=s(!1),O=s([]),W=c((()=>T.isInstanceOwner)),R=c((()=>T.isAdmin)),V=c((()=>W.value||R.value)),Y=c((()=>"workflows"===M.value&&S.value.length>0)),q=async e=>{M.value=e,"workflows"===e&&0===S.value.length?await ae():"oauth"===e&&0===O.value.length&&(await se(),f.track("User clicked connected clients tab"))},Q=async e=>{try{C.value=!0,await x.setMcpAccessEnabled(e)?(await ae(),await se()):E.value=!1,b.trackUserToggledMcpAccess(e)}catch(a){i.showError(a,t.baseText("settings.mcp.toggle.error"))}finally{C.value=!1,E.value=!1}},X=async(e,a)=>{try{await x.toggleWorkflowMcpAccess(e,a),a?await ae():S.value=S.value.filter((t=>t.id!==e))}catch(n){throw i.showError(n,t.baseText("workflowSettings.toggleMCP.error.title")),n}},G=e=>{$.openModalWithData({name:J,data:{workflowId:e.id,workflowDescription:e.description??"",onSave:t=>{const a=S.value.findIndex((t=>t.id===e.id));-1!==a&&(S.value[a]={...S.value[a],description:t??void 0})}}})},Z=async()=>{"workflows"===M.value?await ae():"oauth"===M.value&&await se()},ae=async()=>{E.value=!0;try{S.value=await x.fetchWorkflowsAvailableForMCP(1,200)}catch(e){i.showError(e,t.baseText("workflows.list.error.fetching"))}finally{setTimeout((()=>{E.value=!1}),200)}},le=async()=>{await ae()},se=async()=>{try{D.value=!0,O.value=await x.getAllOAuthClients()}catch(e){i.showError(e,t.baseText("settings.mcp.error.fetching.oAuthClients"))}finally{setTimeout((()=>{D.value=!1}),200)}},ie=async e=>{try{await x.removeOAuthClient(e.id),O.value=O.value.filter((t=>t.id!==e.id)),i.showMessage({type:"success",title:t.baseText("settings.mcp.oAuthClients.revoke.success.title"),message:t.baseText("settings.mcp.oAuthClients.revoke.success.message",{interpolate:{name:e.name}})})}catch(a){i.showError(a,t.baseText("settings.mcp.oAuthClients.revoke.error"))}},re=()=>{$.openModalWithData({name:te,data:{onEnableMcpAccess:async e=>{await X(e,!0)}}}),f.track("User clicked connect workflows from mcp settings")};return _((async()=>{r.set(t.baseText("settings.mcp")),x.mcpAccessEnabled&&await ae()})),(e,s)=>(a(),l("div",{class:m(e.$style.container)},[o("header",{class:m(e.$style["main-header"]),"data-test-id":"mcp-settings-header"},[o("div",{class:m(e.$style.headings)},[v(u(U),{size:"2xlarge",class:"mb-2xs"},{default:w((()=>[n(p(u(t).baseText("settings.mcp")),1)])),_:1}),g(o("div",Be,[v(u(B),{size:"small",color:"text-light"},{default:w((()=>[n(p(u(t).baseText("settings.mcp.description"))+". ",1)])),_:1}),v(u(K),{href:u(ee),target:"_blank",rel:"noopener noreferrer",size:"small","data-test-id":"mcp-docs-link"},{default:w((()=>[n(p(u(t).baseText("generic.learnMore")),1)])),_:1},8,["href"])],512),[[y,u(x).mcpAccessEnabled]])],2),v(xe,{"access-enabled":u(x).mcpAccessEnabled,"toggle-disabled":!V.value,loading:C.value,onDisableMcpAccess:s[0]||(s[0]=e=>Q(!u(x).mcpAccessEnabled))},null,8,["access-enabled","toggle-disabled","loading"])],2),u(x).mcpAccessEnabled?d("",!0):(a(),h(de,{key:0,disabled:!V.value,loading:C.value,onTurnOnMcp:s[1]||(s[1]=e=>Q(!0))},null,8,["disabled","loading"])),u(x).mcpAccessEnabled?(a(),l("div",{key:1,class:m(e.$style.container),"data-test-id":"mcp-enabled-section"},[o("header",{class:m(e.$style["tabs-header"])},[v(u(j),{"model-value":M.value,options:P.value,"onUpdate:modelValue":q},null,8,["model-value","options"]),o("div",{class:m(e.$style.actions)},[Y.value?(a(),h(u(z),{key:0,variant:"solid",label:u(t).baseText("settings.mcp.connectWorkflows"),"data-test-id":"mcp-connect-workflows-header-button",size:"small",onClick:re},null,8,["label"])):d("",!0),v(u(A),{content:u(t).baseText("settings.mcp.refresh.tooltip")},{default:w((()=>[v(u(z),{variant:"subtle",iconOnly:"","data-test-id":"mcp-workflows-refresh-button",size:"small",icon:"refresh-cw",onClick:Z})])),_:1},8,["content"])],2)],2),o("main",null,["workflows"===M.value?(a(),h(ze,{key:0,"data-test-id":"mcp-workflow-table",workflows:S.value,loading:E.value,onRemoveMcpAccess:s[2]||(s[2]=e=>X(e.id,!1)),onConnectWorkflows:re,onUpdateDescription:G,onRefresh:le},null,8,["workflows","loading"])):"oauth"===M.value?(a(),h(Ue,{key:1,"data-test-id":"mcp-oauth-clients-table",clients:O.value,loading:D.value,onRevokeClient:ie,onRefresh:Z},null,8,["clients","loading"])):d("",!0)])],2)):d("",!0)],2))}}),[["__cssModules",{$style:{container:"_container_aryh2_125","main-header":"_main-header_aryh2_130",headings:"_headings_aryh2_143","tabs-header":"_tabs-header_aryh2_149",actions:"_actions_aryh2_155"}}]]))}}}));
//# sourceMappingURL=SettingsMCPView-legacy-CUFT1dUE.js.map