n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 37.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(["./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","./dateformat-legacy-BxdD_OP7.js","./useDebounce-legacy-CT3oYGrC.js","./versions.store-legacy-BoVYiMEK.js","./usePageRedirectionHelper-legacy-dYzA8Va8.js","./useClipboard-legacy-D5bRgqfO.js","./nodeIcon-legacy-CU0X8703.js","./canvas.utils-legacy-BYFKir1g.js","./CredentialIcon-legacy-W6FyX5zO.js","./useDynamicCredentials-legacy-DYuGI0-p.js","./NodeIcon-legacy-B4uktMo3.js","./pushConnection.store-legacy-CdZe0qqo.js","./useFreeAiCredits-legacy-CEp4XoS_.js","./dist-legacy-IcqF43vi.js","./constants-legacy-iKNx7WD2.js","./chat.store-legacy-pzWGyzhB.js","./ChatAgentAvatar-legacy-CvUQTvDe.js","./useResizablePanel-legacy-B6OPZUoB.js","./ChatGreetings-legacy-DLjZKb3_.js","./ToolsSelector-legacy-D06iGNrU.js","./ChatLayout-legacy-Dhdxw-rO.js","./useCustomAgent-legacy-CKHRWL9T.js"],(function(e,t){var a,n,l,i,s,r,o,c,d,u,_,p,v,g,m,f,h,y,w,b,x,C,k,A,S,z,$,I,R,D,T,M,j,H,L,N,V,E,O,F,U,W,B,P,G,q,J,K,X,Q,Y,Z,ee,te,ae,ne,le,ie,se,re,oe,ce,de,ue,_e,pe,ve,ge,me,fe,he,ye,we,be,xe,Ce,ke,Ae,Se,ze,$e,Ie,Re,De,Te,Me,je,He,Le,Ne,Ve,Ee,Oe,Fe,Ue,We,Be,Pe,Ge,qe;function Je(e,t){const a=Q(),n=$(),l=d((()=>r(t?.disabled)??!1)),i=d((()=>!!l.value||!!a.isAnyModalOpen||!(!n.value||!ue(n.value)))),s=["["];z(document,"keydown",(t=>{if(i.value)return;if(t.isComposing)return;if(t.repeat)return;if((e=>e.ctrlKey||e.metaKey||e.altKey)(t))return;if(!(e=>1===e.key.length)(t))return;if((e=>s.includes(e.key))(t))return;const a=e.value;a&&(t.preventDefault(),a.appendText(t.key),a.focus())}))}function Ke(e){if(!e)return"";try{return new URL(e).searchParams.get("resolverId")??""}catch{return""}}function Xe(e){const t=ce(),a=s([]),n=s(!1),l=d((()=>a.value.length>0)),i=d((()=>l.value&&a.value.every((e=>"configured"===e.credentialStatus)))),r=d((()=>a.value.filter((e=>"configured"===e.credentialStatus)).length)),o=d((()=>a.value.length));async function c(){const l=e.value;if(l){n.value=!0;try{a.value=((await ye(t.restApiContext,l)).credentials??[]).map((e=>({credentialId:e.credentialId,credentialName:e.credentialName,credentialType:e.credentialType,credentialStatus:e.credentialStatus,resolverId:Ke(e.authorizationUrl),isConnecting:!1,error:null})))}catch{a.value=[]}finally{n.value=!1}}else a.value=[]}return m(e,(e=>{e?c():a.value=[]}),{immediate:!0}),{credentials:a,hasDynamicCredentials:l,allAuthenticated:i,connectedCount:r,totalCount:o,isLoading:n,fetchStatus:c,authorize:async function(e){const n=a.value.find((t=>t.credentialId===e));if(n){n.isConnecting=!0,n.error=null;try{const l=await ze(t.restApiContext,e,n.resolverId),i=["http:","https:"];try{const e=new URL(l);if(!i.includes(e.protocol))return n.error="Invalid authorization URL",void(n.isConnecting=!1)}catch{return n.error="Invalid authorization URL",void(n.isConnecting=!1)}const s=window.open(l,"OAuth Authorization","scrollbars=no,resizable=yes,status=no,titlebar=no,location=no,toolbar=no,menubar=no,width=500,height=700"),r=new BroadcastChannel("oauth-callback");let o=!1;const d=async()=>{o||(o=!0,r.close(),clearInterval(u),await async function(e,t=10,n=1e3){for(let l=0;l<t;l++){if(await c(),"configured"===a.value.find((t=>t.credentialId===e))?.credentialStatus)return;await new Promise((e=>setTimeout(e,n)))}}(e),n.isConnecting=!1)};r.addEventListener("message",(async e=>{"success"===e.data&&(s&&s.close(),await d())}));const u=setInterval((()=>{s?.closed&&d()}),500)}catch{n.error="Failed to start authorization",n.isConnecting=!1}}},revoke:async function(e){const n=a.value.find((t=>t.credentialId===e));if(n){n.isConnecting=!0,n.error=null;try{await ke(t.restApiContext,e,n.resolverId),await c()}catch{n.error="Failed to disconnect credential"}finally{n.isConnecting=!1}}}}}return{setters:[function(e){a=e.$,n=e.A,l=e.C,i=e.E,s=e.Ft,r=e.Ht,o=e.K,c=e.N,d=e.S,u=e.Sn,_=e.T,p=e.Wt,v=e._,g=e._n,m=e.gt,f=e.j,h=e.n,y=e.pt,w=e.rt,b=e.w,x=e.yn,C=e.yt},function(e){k=e.D,A=e.M,S=e.N,z=e.O,$=e.b,I=e.bt,R=e.xt},function(e){D=e.$i,T=e.Ii,M=e.Mi,j=e.Nt,H=e.Qi,L=e.R,N=e.Yi,V=e.Zi,E=e._t,O=e.gt,F=e.i,U=e.lt,W=e.m,B=e.z},function(e){P=e.t},function(e){},function(e){G=e.As,q=e.Po,J=e.Tr,K=e.en,X=e.gr,Q=e.r,Y=e.t,Z=e.vn,ee=e.wr},function(e){te=e.Uo,ae=e.ac,ne=e.fi,le=e.ii,ie=e.li,se=e.ms,re=e.oc,oe=e.pl},function(e){},function(e){ce=e.r},function(e){},function(e){},function(e){},function(e){de=e.t},function(e){},function(e){},function(e){ue=e.l},function(e){_e=e.t},function(e){pe=e.t},function(e){},function(e){},function(e){ve=e.t},function(e){},function(e){ge=e.h,me=e.l,fe=e.n,he=e.t},function(e){ye=e.O,we=e.S,be=e.c,xe=e.h,Ce=e.i,ke=e.k,Ae=e.l,Se=e.t,ze=e.w},function(e){},function(e){$e=e.t},function(e){Ie=e.a,Re=e.i,De=e.n,Te=e.r,Me=e.t},function(e){je=e.n},function(e){He=e.n,Le=e.r,Ne=e.t},function(e){Ve=e.n,Ee=e.t}],execute:function(){(Oe=document.createElement("style")).textContent="._component_1hi6t_125{padding-left:var(--spacing--4xs);padding-right:var(--spacing--xs);align-items:center;gap:var(--spacing--4xs);border-bottom:var(--border);flex-grow:0;flex-shrink:0;height:56px;display:flex}._component_1hi6t_125:has(._menuButton_1hi6t_136){padding-inline:var(--spacing--xs)}._grow_1hi6t_140{align-items:center;gap:var(--spacing--4xs);flex-grow:1;display:flex}._title_1hi6t_147{margin-inline:var(--spacing--md)}._buttons_1hi6t_151{align-items:center;gap:var(--spacing--2xs);display:flex}._header_186nk_125{text-align:center;align-items:center;gap:var(--spacing--xs);flex-direction:column;display:flex}._cardGrid_186nk_133{max-width:700px;display:flex}@media screen and (max-width:991px){._cardGrid_186nk_133{flex-direction:column}}._cardWrapper_186nk_143{color:inherit;flex:1;text-decoration:none}._cardWrapper_186nk_143:not(:first-child){margin-left:-1px}@media screen and (max-width:991px){._cardWrapper_186nk_143:not(:first-child){margin-top:-1px;margin-left:0}}._card_186nk_133{height:100%;padding:var(--spacing--lg);align-items:flex-start;gap:var(--spacing--xs);border-radius:0}._cardFirst_186nk_166 ._card_186nk_133{border-radius:var(--radius--lg)0 0 var(--radius--lg)}@media screen and (max-width:991px){._cardFirst_186nk_166 ._card_186nk_133{border-radius:var(--radius--lg)var(--radius--lg)0 0}}._cardMiddle_186nk_175 ._card_186nk_133{border-radius:0}._cardLast_186nk_179 ._card_186nk_133{border-radius:0 var(--radius--lg)var(--radius--lg)0}@media screen and (max-width:991px){._cardLast_186nk_179 ._card_186nk_133{border-radius:0 0 var(--radius--lg)var(--radius--lg)}}._cardHeader_186nk_188{align-items:flex-start;gap:var(--spacing--2xs);margin-bottom:var(--spacing--xs);flex-direction:column;display:flex}._providerIcons_186nk_196{gap:var(--spacing--2xs);display:flex}._buttonGroup_186nk_201{gap:var(--spacing--sm);justify-content:center;display:flex}._welcomeContent_186nk_207{z-index:100;justify-content:center;align-items:center;gap:var(--spacing--xl);background-color:var(--color--background--light-2);flex-direction:column;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.welcome-fade-enter-active,.welcome-fade-leave-active{transition:opacity .2s}.welcome-fade-enter-from,.welcome-fade-leave-to{opacity:0}._container_1w6pd_125{background-color:var(--color--background--light-2);border-left:var(--border-width)var(--border-style)var(--color--foreground);flex-direction:column;width:100%;min-width:0;height:100%;display:flex}._viewer_1w6pd_135{flex-direction:column;height:100%;display:flex;overflow:hidden}._header_1w6pd_142{justify-content:space-between;align-items:center;gap:var(--spacing--4xs);padding-left:var(--spacing--4xs);padding-right:var(--spacing--xs);border-bottom:var(--border);flex-grow:0;flex-shrink:0;min-width:0;height:56px;display:flex}._markdown_1w6pd_156{padding-inline:var(--spacing--sm)}._title_1w6pd_160{color:var(--color--text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}._headerActions_1w6pd_169{align-items:center;gap:var(--spacing--4xs);flex-shrink:0;display:flex}._type_1w6pd_176{text-transform:uppercase;letter-spacing:.05em}._content_1w6pd_181{flex:1;overflow-x:hidden}._iframe_1w6pd_186{background-color:var(--color--background);border:none;width:100%;height:100%}._container_8e4c4_125{background-color:var(--color--background--light-2);border-left:var(--border-width)var(--border-style)var(--color--foreground);flex-direction:column;width:100%;min-width:0;height:100%;display:flex}._panel_8e4c4_135{flex-direction:column;height:100%;display:flex;overflow:hidden}._header_8e4c4_142{justify-content:space-between;align-items:center;gap:var(--spacing--4xs);padding:var(--spacing--sm)var(--spacing--sm);border-bottom:var(--border);flex-shrink:0;height:56px;display:flex}._body_8e4c4_153{padding:var(--spacing--sm);flex:1;overflow-y:auto}._subtitle_8e4c4_159{gap:var(--spacing--4xs);margin-bottom:var(--spacing--sm);flex-direction:column;display:flex}._credentialList_8e4c4_166{gap:var(--spacing--2xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._credentialRow_8e4c4_175{justify-content:space-between;align-items:center;gap:var(--spacing--xs);padding:var(--spacing--xs);border:var(--border);border-radius:var(--radius--lg);display:flex}._credentialInfo_8e4c4_185{gap:var(--spacing--5xs);flex-direction:column;flex:1;min-width:0;display:flex}._credentialAction_8e4c4_193{flex-shrink:0;align-items:center;display:flex}._footer_8e4c4_199{padding:var(--spacing--xs)var(--spacing--sm);border-top:var(--border);flex-shrink:0}._chatLayout_5crcp_125{flex-direction:row;display:flex;position:relative}._chatLayout_5crcp_125._hasArtifact_5crcp_130 ._mainContent_5crcp_130{flex:1;min-width:0}._chatLayout_5crcp_125:not(._hasArtifact_5crcp_130) ._mainContent_5crcp_130{flex:1}._mainContentResizer_5crcp_138{flex-shrink:0;overflow:hidden}._mainContent_5crcp_130{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}._dynamicCredentialsDrawer_5crcp_151{flex:0 0 340px;min-width:300px;max-width:400px;overflow:hidden}._artifactViewer_5crcp_158{flex:1;min-width:300px;overflow:hidden}._isResizing_5crcp_163 ._artifactViewer_5crcp_158{pointer-events:none}._scrollArea_5crcp_168{flex-grow:1;flex-shrink:1}._scrollable_5crcp_173{justify-content:start;align-items:stretch;gap:var(--spacing--xl);flex-direction:column;width:100%;min-height:100%;display:flex}._isNewSession_5crcp_182 ._scrollable_5crcp_173{justify-content:space-between}._isAgentNewSession_5crcp_185 ._scrollable_5crcp_173{padding-top:var(--spacing--2xl)}._greetingsCentered_5crcp_189{flex:1;justify-content:center;align-items:center;display:flex}._header_5crcp_196{justify-content:space-between;align-items:center;display:flex}._messageList_5crcp_202{align-self:center;gap:var(--spacing--xl);min-height:100%;padding-top:var(--spacing--2xl);flex-direction:column;padding-bottom:200px;display:flex}._promptContainer_5crcp_212{padding-block:var(--spacing--md);background:var(--color--background--light-2);justify-content:center;align-self:center;display:flex}._isMobileDevice_5crcp_219 ._promptContainer_5crcp_212,._isExistingSession_5crcp_219 ._promptContainer_5crcp_212{position:absolute;bottom:0;left:50%;transform:translate(-50%)}._messageList_5crcp_202,._promptContainer_5crcp_212{width:100%;max-width:88ch;padding-left:64px;padding-right:64px}._isMainPanelNarrow_5crcp_232 ._messageList_5crcp_202,._isMainPanelNarrow_5crcp_232 ._promptContainer_5crcp_212{padding-inline:var(--spacing--md)}._scrollToBottomButton_5crcp_237{bottom:calc(100% + var(--spacing--md));border-radius:50%;position:absolute;left:auto;box-shadow:0 4px 12px rgba(0,0,0,.15)}._isDraggingFile_5crcp_245{border-color:var(--color--secondary)}._dropOverlay_5crcp_249{z-index:9999;background-color:color-mix(in srgb,var(--color--background--light-2)95%,transparent);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}\n/*$vite$:1*/",document.head.appendChild(Oe);try{t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},(r=(new t.Error).stack)&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="b6b5fdce-9957-47ab-8f64-ee82f856298c",t._sentryDebugIdIdentifier="sentry-dbid-b6b5fdce-9957-47ab-8f64-ee82f856298c")}catch(t){}var t,r;Fe=c({__name:"ChatConversationHeader",props:{selectedModel:{},credentials:{},readyToShowModelSelector:{type:Boolean},showArtifactIcon:{type:Boolean}},emits:["selectModel","renameConversation","editCustomAgent","createCustomAgent","selectCredential","openWorkflow","reopenArtifact"],setup(e,{expose:t,emit:n}){const r=n,o=y("modelSelectorRef"),c=I(),u=Se(),v=s(!1),f=d((()=>"n8n"===e.selectedModel?.model.provider&&e.selectedModel.metadata.scopes?.includes("workflow:read")));function h(){"n8n"===e.selectedModel?.model.provider&&r("openWorkflow",e.selectedModel.model.workflowId)}function w(e){r("selectModel",e)}return m((()=>e.credentials),(async e=>{if(e){v.value=!0;try{await u.fetchAgents(e)}finally{v.value=!1}}}),{immediate:!0}),t({openModelSelector:()=>o.value?.open(),openCredentialSelector:e=>o.value?.openCredentialSelector(e)}),(t,n)=>(a(),i("div",{class:g(t.$style.component)},[l("div",{class:g(t.$style.grow)},[e.readyToShowModelSelector?(a(),b(Ve,{key:0,ref_key:"modelSelectorRef",ref:o,"selected-agent":e.selectedModel,credentials:e.credentials,text:"",agents:p(u).agents,"is-loading":v.value,onChange:w,onCreateCustomAgent:n[0]||(n[0]=e=>r("createCustomAgent")),onSelectCredential:n[1]||(n[1]=(e,t)=>r("selectCredential",e,t))},null,8,["selected-agent","credentials","agents","is-loading"])):_("",!0)],2),l("div",{class:g(t.$style.buttons)},["custom-agent"===e.selectedModel?.model.provider?(a(),b(p(H),{key:0,variant:"subtle",size:"small",icon:"settings",label:p(c).baseText("chatHub.chat.header.button.editAgent"),onClick:n[2]||(n[2]=t=>r("editCustomAgent",e.selectedModel.model.agentId))},null,8,["label"])):_("",!0),e.showArtifactIcon?(a(),b(p(T),{key:1,variant:"subtle",size:"small",icon:"panel-right",onClick:n[3]||(n[3]=e=>r("reopenArtifact"))})):_("",!0),f.value?(a(),b(p(H),{key:2,variant:"subtle",size:"small",icon:"settings",label:p(c).baseText("chatHub.chat.header.button.openWorkflow"),onClick:h},null,8,["label"])):_("",!0)],2)],2))}}),Ue=P(Fe,[["__cssModules",{$style:{component:"_component_1hi6t_125",menuButton:"_menuButton_1hi6t_136",grow:"_grow_1hi6t_140",title:"_title_1hi6t_147",buttons:"_buttons_1hi6t_151"}}]]),We=c({__name:"ChatStarter",props:{showWelcomeScreen:{type:Boolean}},emits:["startNewChat"],setup(e,{emit:t}){const s=t,r=Q(),o=G(),c=I(),{goToUpgrade:v}=de(),m=d((()=>o.isEnterpriseFeatureEnabled[oe.AdvancedPermissions])),y=d((()=>X(["rbac"],{rbac:{scope:"user:create"}}))),w=d((()=>y.value)),x=d((()=>!m.value));function k(){s("startNewChat")}function A(){r.openModalWithData({name:q,data:{initialRole:le.ChatUser}})}function S(){v("chat-hub","upgrade-advanced-permissions")}return(t,s)=>(a(),b(h,{name:"welcome-fade",mode:"out-in"},{default:C((()=>[e.showWelcomeScreen?(a(),i("div",{key:"welcome",class:g(t.$style.welcomeContent)},[l("div",{class:g(t.$style.header)},[f(p(N),{tag:"h2",bold:"",size:"xlarge"},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.header")),1)])),_:1}),f(p(V),{size:"large",color:"text-light"},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.subtitle")),1)])),_:1})],2),l("div",{class:g(t.$style.cardGrid)},[l("div",{"data-test-id":"welcome-card-workflow-agents",class:g([t.$style.cardWrapper,t.$style.cardFirst])},[f(p(j),{class:g(t.$style.card)},{default:C((()=>[l("div",{class:g(t.$style.cardHeader)},[f(p(D),{icon:"robot",size:"large",color:"text-dark"}),f(p(V),{bold:""},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.card.workflowAgents.title")),1)])),_:1})],2),f(p(V),{size:"small",color:"text-light"},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.card.workflowAgents.description")),1)])),_:1})])),_:1},8,["class"])],2),l("div",{class:g([t.$style.cardWrapper,t.$style.cardMiddle]),"data-test-id":"welcome-card-personal-agents"},[f(p(j),{class:g(t.$style.card)},{default:C((()=>[l("div",{class:g(t.$style.cardHeader)},[f(p(D),{icon:"message-square",size:"large",color:"text-dark"}),f(p(V),{bold:""},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.card.personalAgents.title")),1)])),_:1})],2),f(p(V),{size:"small",color:"text-light"},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.card.personalAgents.description")),1)])),_:1})])),_:1},8,["class"])],2),l("div",{class:g([t.$style.cardWrapper,t.$style.cardLast]),"data-test-id":"welcome-card-base-models"},[f(p(j),{class:g(t.$style.card)},{default:C((()=>[l("div",{class:g(t.$style.cardHeader)},[l("div",{class:g(t.$style.providerIcons)},[f(_e,{"credential-type-name":"openAiApi",size:20}),f(_e,{"credential-type-name":"anthropicApi",size:20}),f(_e,{"credential-type-name":"googlePalmApi",size:20})],2),f(p(V),{bold:""},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.card.baseModels.title")),1)])),_:1})],2),f(p(V),{size:"small",color:"text-light"},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.card.baseModels.description")),1)])),_:1})])),_:1},8,["class"])],2)],2),l("div",{class:g(t.$style.buttonGroup)},[f(p(H),{variant:"solid",size:"medium",icon:"plus","data-test-id":"welcome-start-new-chat",onClick:k},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.button.startNewChat")),1)])),_:1}),w.value?(a(),b(p(M),{key:0,disabled:!x.value},{content:C((()=>[f(p(R),{keypath:"chatHub.welcome.inviteUpgrade.tooltip",scope:"global"},{link:C((()=>[f(p(U),{size:"small",onClick:S},{default:C((()=>[n(u(p(c).baseText("generic.upgrade")),1)])),_:1})])),docsLink:C((()=>[f(p(U),{size:"small",href:"https://docs.n8n.io/advanced-ai/chat-hub/#chat-user-role",target:"_blank",rel:"noopener"},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.inviteUpgrade.here")),1)])),_:1})])),_:1})])),default:C((()=>[f(p(H),{variant:"subtle",size:"medium",icon:"users",disabled:x.value,"data-test-id":"welcome-invite-chat-users",onClick:A},{default:C((()=>[n(u(p(c).baseText("chatHub.welcome.button.inviteChatUsers")),1)])),_:1},8,["disabled"])])),_:1},8,["disabled"])):_("",!0)],2)],2)):_("",!0)])),_:1}))}}),Be=P(We,[["__cssModules",{$style:{header:"_header_186nk_125",cardGrid:"_cardGrid_186nk_133",cardWrapper:"_cardWrapper_186nk_143",card:"_card_186nk_133",cardFirst:"_cardFirst_186nk_166",cardMiddle:"_cardMiddle_186nk_175",cardLast:"_cardLast_186nk_179",cardHeader:"_cardHeader_186nk_188",providerIcons:"_providerIcons_186nk_196",buttonGroup:"_buttonGroup_186nk_201",welcomeContent:"_welcomeContent_186nk_207"}}]]),Pe=["srcdoc","title"],Ge=P(c({__name:"ChatArtifactViewer",props:{artifacts:{},selectedIndex:{}},emits:["close","selectArtifact","download"],setup(e,{emit:t}){const n=e,s=t,r=d((()=>n.artifacts[n.selectedIndex]??n.artifacts[0])),o=d((()=>n.artifacts.map(((e,t)=>({value:t,label:e.title}))))),c=d((()=>"html"===r.value?.type)),u=d((()=>"md"===r.value?.type)),v=d((()=>({type:"text",content:u.value?r.value?.content:`\`\`\`${r.value?.type}\n${r.value?.content}\n\`\`\``})));return(t,n)=>(a(),i("div",{class:g(t.$style.container)},[l("div",{class:g(t.$style.viewer)},[l("div",{class:g(t.$style.header)},[(a(),b(p(F),{key:r.value?.title??"","model-value":e.selectedIndex,size:"medium",variant:"ghost",items:o.value,class:g(t.$style.title),"onUpdate:modelValue":n[0]||(n[0]=e=>s("selectArtifact",e))},null,8,["model-value","items","class"])),l("div",{class:g(t.$style.headerActions)},[f(p(T),{variant:"ghost",text:"",icon:"download",onClick:n[1]||(n[1]=e=>s("download"))}),f(p(T),{variant:"ghost",text:"",icon:"x",onClick:n[2]||(n[2]=e=>s("close"))})],2)],2),l("div",{class:g(t.$style.content)},[c.value?(a(),i("iframe",{key:0,srcdoc:r.value?.content,class:g(t.$style.iframe),sandbox:"",title:r.value?.title},null,10,Pe)):v.value?(a(),b(Re,{key:1,ref:"markdownChunk",class:g(u.value?t.$style.markdown:""),"single-pre":!u.value,source:v.value,"footnote-style":"normal"},null,8,["class","single-pre","source"])):_("",!0)],2)],2)],2))}}),[["__cssModules",{$style:{container:"_container_1w6pd_125",viewer:"_viewer_1w6pd_135",header:"_header_1w6pd_142",markdown:"_markdown_1w6pd_156",title:"_title_1w6pd_160",headerActions:"_headerActions_1w6pd_169",type:"_type_1w6pd_176",content:"_content_1w6pd_181",iframe:"_iframe_1w6pd_186"}}]]),qe=P(c({__name:"DynamicCredentialsDrawer",props:{credentials:{},connectedCount:{},totalCount:{}},emits:["close","authorize","revoke"],setup(e,{emit:t}){const s=t,r=I();return(t,o)=>(a(),i("div",{class:g(t.$style.container)},[l("div",{class:g(t.$style.panel)},[l("div",{class:g(t.$style.header)},[f(p(V),{bold:"",size:"large"},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.title")),1)])),_:1}),f(p(T),{type:"tertiary",text:"",icon:"x","data-testid":"dynamic-credentials-drawer-close",onClick:o[0]||(o[0]=e=>s("close"))})],2),l("div",{class:g(t.$style.body)},[l("div",{class:g(t.$style.subtitle)},[f(p(V),{bold:""},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.subtitle")),1)])),_:1}),f(p(V),{size:"small",color:"text-light"},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.description")),1)])),_:1})],2),l("ul",{class:g(t.$style.credentialList)},[(a(!0),i(v,null,w(e.credentials,(e=>(a(),i("li",{key:e.credentialId,class:g(t.$style.credentialRow),"data-testid":"dynamic-credential-row"},[l("div",{class:g(t.$style.credentialInfo)},[f(p(V),{bold:""},{default:C((()=>[n(u(e.credentialName),1)])),_:2},1024),"configured"===e.credentialStatus?(a(),b(p(V),{key:0,size:"small",color:"text-light"},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.status.connected")),1)])),_:1})):(a(),b(p(V),{key:1,size:"small",color:"text-light"},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.status.notConnected")),1)])),_:1})),e.error?(a(),b(p(V),{key:2,size:"small",color:"danger"},{default:C((()=>[n(u(e.error),1)])),_:2},1024)):_("",!0)],2),l("div",{class:g(t.$style.credentialAction)},[e.isConnecting?(a(),b(p(L),{key:0,size:"small"})):"configured"===e.credentialStatus?(a(),b(p(H),{key:1,type:"tertiary",size:"small","data-testid":"dynamic-credential-disconnect",onClick:t=>s("revoke",e.credentialId)},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.disconnect")),1)])),_:1},8,["onClick"])):(a(),b(p(H),{key:2,type:"secondary",size:"small","data-testid":"dynamic-credential-connect",onClick:t=>s("authorize",e.credentialId)},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.connect")),1)])),_:1},8,["onClick"]))],2)],2)))),128))],2)],2),l("div",{class:g(t.$style.footer)},[f(p(V),{size:"small",color:"text-light"},{default:C((()=>[n(u(p(r).baseText("chatHub.dynamicCredentials.drawer.footer",{interpolate:{connected:String(e.connectedCount),total:String(e.totalCount)}})),1)])),_:1})],2)],2)],2))}}),[["__cssModules",{$style:{container:"_container_8e4c4_125",panel:"_panel_8e4c4_135",header:"_header_8e4c4_142",body:"_body_8e4c4_153",subtitle:"_subtitle_8e4c4_159",credentialList:"_credentialList_8e4c4_166",credentialRow:"_credentialRow_8e4c4_175",credentialInfo:"_credentialInfo_8e4c4_185",credentialAction:"_credentialAction_8e4c4_193",footer:"_footer_8e4c4_199"}}]]),e("default",P(c({__name:"ChatView",setup(e){const t=E(),r=O(),c=Y(),h=Se(),z=G(),$=J(),R=S(ge),D=Z(),M=Q(),j=I(),H=K();o((async()=>{await h.fetchConfiguredTools()}));const L=y("headerRef"),N=y("inputRef"),F=y("scrollable"),U=y("chatLayout"),P=d((()=>U.value?.$el)),q=s(!1),X=s(!1),le=s(!1),{userCanClaimOpenAiCredits:oe,aiCreditsQuota:ce,claimCredits:de}=ve(),ue=d((()=>"string"==typeof r.params.id?r.params.id:te())),_e=d((()=>ue.value!==r.params.id)),ye=s(!1),ke=d((()=>ue.value?h.sessions.byId[ue.value]:void 0)),ze=d((()=>ke.value?.title)),Re=d((()=>!!Qe.value?.metadata.capabilities.functionCalling)),Ve=A(ae(c.currentUserId??"anonymous"),!1),Oe=d((()=>(h.sessions.ids?.length??0)>0)),Fe=d((()=>!Ve.value&&!q.value&&!r.query.workflowId&&!r.query.agentId&&(h.sessionsReady?!(Oe.value||z.isChatFeatureEnabled&&ee(["global:chatUser"])):void 0))),We=A(re(c.currentUserId??"anonymous"),null,{writeDefaults:!1,shallow:!0,serializer:{read:e=>{try{return Le.parse(JSON.parse(e))}catch(t){return null}},write:e=>JSON.stringify(e)}}),Pe=d((()=>We.value?h.getAgent(We.value):void 0)),Ke=d((()=>{const e=r.query.agentId,t=r.query.workflowId,a=r.query.provider,n=r.query.model;if(!_e.value)return null;if("string"==typeof e)return h.getAgent({provider:"custom-agent",agentId:e});if("string"==typeof t)return h.getAgent({provider:"n8n",workflowId:t});if("string"==typeof a&&"string"==typeof n){const e=ne.safeParse({provider:a,model:n});if(e.success)return h.getAgent(e.data)}return null})),Qe=d((()=>{if(!_e.value){const e=ke.value?we(ke.value):null;return e?h.getAgent(e,{name:ke.value?.agentName||ke.value?.model,icon:ke.value?.agentIcon}):null}return Ke.value?Ke.value:h.streaming?.sessionId===ue.value?h.streaming.agent:We.value?h.getAgent(We.value,{name:We.value.cachedDisplayName,icon:We.value.cachedIcon}):null})),Ye=d((()=>!!Qe.value&&!xe(Qe.value.model.provider))),Ze=d((()=>"custom-agent"===Qe.value?.model.provider?Qe.value.model.agentId:void 0)),{customAgent:et}=Ee(Ze),tt=d((()=>et.value?et.value.toolIds:ke.value?.toolIds?ke.value.toolIds:Ke.value?[]:h.configuredTools.filter((e=>e.enabled)).map((e=>e.definition.id)))),{credentialsByProvider:at,selectCredential:nt}=He(c.currentUserId??"anonymous"),{isEnabled:lt}=pe(),it=Xe(d((()=>"n8n"===Qe.value?.model.provider&<.value?Qe.value.model.workflowId:null))),st=s(!1),rt=d((()=>"missingDynamicCredentials"===pt.value));m((()=>it.allAuthenticated.value),(e=>{e&&st.value&&(st.value=!1)}));const ot=d((()=>{const e=Qe.value?.model.provider;if(!e)return null;if(!xe(e))return{};const t=at.value?.[e];return t?{[ie[e]]:{id:t,name:""}}:null})),ct=d((()=>!ot.value)),{chatMessages:dt,isResponding:ut,isNewSession:_t,messagingState:pt,scrollContainerRef:vt,arrivedState:gt,scrollToBottom:mt,loadSession:ft}=Ie({sessionId:ue,scrollableRef:F,isNewSession:_e,extendMessagingState:()=>h.agentsReady&&!Qe.value?"missingAgent":h.agentsReady&&ct.value?"missingCredentials":it.hasDynamicCredentials.value&&!it.allAuthenticated.value?"missingDynamicCredentials":null,shouldSkipScroll:()=>!!ye.value&&(ye.value=!1,!0)}),ht=k(vt),yt=function(e,t){const a=s(!1),n=s(0),l=d((()=>Ce(t.value.flatMap((e=>e.content))))),i=d((()=>{const e=l.value;return 0===e.length?null:e[Math.min(n.value,e.length-1)]})),r=d((()=>l.value.length>0&&!a.value)),o=$e("N8N_CHAT_ARTIFACT_VIEWER_WIDTH",{container:e,defaultSize:e=>.6*e,minSize:300,maxSize:e=>e-300,allowFullSize:!0});return m(l,((e,t)=>{e.length>0&&e.length!==t?.length&&(a.value=!1,n.value=e.length-1)})),{selectedIndex:n,allArtifacts:l,isViewerVisible:r,isViewerCollapsed:a,viewerSize:d((()=>o.size.value)),isViewerResizing:d((()=>o.isResizing.value)),handleOpenViewer:function(e){e&&(n.value=l.value.findIndex((t=>t.title===e))),a.value=!1},handleViewerResize:o.onResize,handleViewerResizeEnd:function(){o.isFullSize.value&&(a.value=!0),o.onResizeEnd()},handleCloseViewer:function(){a.value=!0},handleDownload:function(){const e=i.value;if(!e)return;const t=new Blob([e.content],{type:"text/plain"}),a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=`${e.title}.${e.type}`,n.click(),URL.revokeObjectURL(a)},handleSelect:function(e){n.value=e}}}(P,dt),wt=d((()=>ht.width.value<600)),bt=s(),xt=y("messages"),Ct=s(!1),kt=je(d((()=>!(!Qe.value?.metadata.allowFileUploads||ct.value||bt.value&&"human"!==dt.value.find((e=>e.id===bt.value))?.type))),(function(e){if(!bt.value)return void N.value?.addAttachments(e);const t=dt.value.findIndex((e=>e.id===bt.value));xt.value?.[t]?.addFiles(e)}));function At(){X.value=!1}async function St(e,a){e.trim()&&!ut.value&&Qe.value&&ot.value&&(!it.hasDynamicCredentials.value||it.allAuthenticated.value)&&(Ct.value=!0,bt.value=void 0,await h.sendMessage(ue.value,e,Qe.value,ot.value,a),N.value?.reset(),_t.value&&t.push({name:fe,params:{id:ue.value}}))}async function zt(){await h.stopStreamingMessage(ue.value)}function $t(){bt.value=void 0}async function It(e,t,a){bt.value&&!ut.value&&Qe.value&&ot.value&&(!it.hasDynamicCredentials.value||it.allAuthenticated.value)&&(await h.editMessage(ue.value,bt.value,e,Qe.value,ot.value,t,a),bt.value=void 0)}async function Rt(e){if(ut.value||"ai"!==e.type||!Qe.value||!ot.value||it.hasDynamicCredentials.value&&!it.allAuthenticated.value)return;const t=e.id;bt.value=void 0,await h.regenerateMessage(ue.value,t,Qe.value,ot.value)}async function Dt(e,a){const n=a??h.getAgent(e);if(ke.value)try{await h.updateSessionModel(ue.value,e,n.name)}catch(l){$.showError(l,j.baseText("chatHub.error.updateModelFailed"))}else We.value={...e,cachedDisplayName:n.name,cachedIcon:n.icon??void 0},await t.push({name:me,force:!0})}async function Tt(e){await Dt(e.model,e)}function Mt(e){ye.value=!0,h.switchAlternative(ue.value,e)}function jt(e){L.value?.openCredentialSelector(e)}function Ht(){L.value?.openModelSelector()}function Lt(e){M.openModalWithData({name:he,data:{agentId:e,credentials:at,onCreateCustomAgent:Tt}})}function Nt(){M.openModalWithData({name:he,data:{credentials:at,onCreateCustomAgent:Tt}})}function Vt(e){const a=t.resolve({name:se.WORKFLOW,params:{name:e}});window.open(a.href,"_blank")}function Et(e){Qe.value&&H.track("User clicked chat hub suggested prompt",{...Ae(Qe.value.model),source:"chat_hub"}),N.value?.setText(e),N.value?.focus()}return Je(N,{disabled:d((()=>!0===Fe.value||"idle"!==pt.value))}),m((()=>h.agents),(e=>{const t=z.moduleSettings?.["chat-hub"];if(!e||Qe.value||!_t.value||!t)return;const a=be(e,t.providers);a&&Tt(a)}),{immediate:!0}),m([ue,_t],(async([e,a])=>{if(Ct.value=!1,bt.value=void 0,!a)try{await ft(e)}catch(n){$.showError(n,j.baseText("chatHub.error.fetchConversationFailed")),await t.push({name:me})}}),{immediate:!0}),m([N,ue],(([e])=>{e?.focus()}),{immediate:!0}),m(ze,(e=>{D.set(e??"Chat")}),{immediate:!0}),m(at,(e=>{e&&h.fetchAgents(e)}),{immediate:!0}),m(Pe,((e,t)=>{We.value&&e?.name&&e.name!==t?.name&&(We.value={...We.value,cachedDisplayName:e.name}),We.value&&e?.icon&&(e.icon.type!==t?.icon?.type||e.icon.value!==t.icon.value)&&(We.value={...We.value,cachedIcon:e.icon})}),{immediate:!0}),m([q,oe,pt,()=>h.agentsReady],(async([e,t,a,n])=>{t&&!le.value&&(e||n&&"missingCredentials"===a)&&(le.value=!0,await de("chatHubAutoClaim")&&(X.value=!0))}),{immediate:!0}),m(dt,(e=>{e.length>0&&(X.value=!1)})),m(Oe,(e=>{Ve.value=Ve.value||e}),{immediate:!0}),(e,t)=>void 0!==Fe.value?(a(),b(Ne,{key:0,ref:"chatLayout",class:g({[e.$style.chatLayout]:!0,[e.$style.isNewSession]:p(_t),[e.$style.isAgentNewSession]:p(_t)&&Ye.value,[e.$style.isExistingSession]:!p(_t),[e.$style.isMobileDevice]:p(R),[e.$style.isDraggingFile]:p(kt).isDragging.value,[e.$style.hasArtifact]:p(yt).isViewerVisible.value,[e.$style.isMainPanelNarrow]:wt.value,[e.$style.isResizing]:p(yt).isViewerResizing.value}),onDragenter:p(kt).handleDragEnter,onDragleave:p(kt).handleDragLeave,onDragover:p(kt).handleDragOver,onDrop:p(kt).handleDrop,onPaste:p(kt).handlePaste},{default:C((()=>[p(kt).isDragging.value?(a(),i("div",{key:0,class:g(e.$style.dropOverlay)},[f(p(V),{size:"large",color:"text-dark"},{default:C((()=>[n(u(p(j).baseText("chatHub.chat.dropOverlay")),1)])),_:1})],2)):_("",!0),f(p(B),{class:g(e.$style.mainContentResizer),width:p(yt).viewerSize.value,style:x({width:p(yt).isViewerVisible.value?`${p(yt).viewerSize.value}px`:st.value?"calc(100% - 340px)":"100%"}),"supported-directions":["right"],"is-resizing-enabled":!0,onResize:p(yt).handleViewerResize,onResizeend:p(yt).handleViewerResizeEnd},{default:C((()=>[l("div",{class:g(e.$style.mainContent)},[Fe.value?_("",!0):(a(),b(Ue,{key:0,ref_key:"headerRef",ref:L,"selected-model":Qe.value,credentials:p(at),"ready-to-show-model-selector":p(_t)||!!ke.value,"show-artifact-icon":p(yt).allArtifacts.value.length>0&&p(yt).isViewerCollapsed.value,onSelectModel:Dt,onEditCustomAgent:Lt,onCreateCustomAgent:Nt,onSelectCredential:p(nt),onOpenWorkflow:Vt,onReopenArtifact:p(yt).handleOpenViewer},null,8,["selected-model","credentials","ready-to-show-model-selector","show-artifact-icon","onSelectCredential","onReopenArtifact"])),f(p(W),{type:"scroll","enable-vertical-scroll":!0,"enable-horizontal-scroll":!1,"as-child":"",class:g(e.$style.scrollArea)},{default:C((()=>[l("div",{ref:"scrollable",class:g(e.$style.scrollable)},[p(_t)?(a(),b(Me,{key:0,class:g({[e.$style.greetingsCentered]:!Ye.value}),"selected-agent":Qe.value,loading:!p(h).agentsReady,onSelectPrompt:Et},null,8,["class","selected-agent","loading"])):(a(),i("div",{key:1,role:"log","aria-live":"polite",class:g(e.$style.messageList)},[(a(!0),i(v,null,w(p(dt),((e,t)=>(a(),b(Te,{key:e.id,ref_for:!0,ref:"messages",message:e,compact:wt.value,"is-editing":bt.value===e.id,"is-edit-submitting":p(h).streaming?.revisionOfMessageId===e.id,"has-session-streaming":p(ut),"cached-agent-display-name":Qe.value?.name??null,"cached-agent-icon":Qe.value?.icon??null,"accepted-mime-types":Qe.value?.metadata.allowedFilesMimeTypes??"","min-height":Ct.value&&"ai"===e.type&&t===p(dt).length-1&&p(vt)?p(vt).offsetHeight-30-200:void 0,onStartEdit:t=>{return a=e.id,void(bt.value=a);var a},onCancelEdit:$t,onRegenerate:Rt,onUpdate:It,onSwitchAlternative:Mt,onOpenArtifact:p(yt).handleOpenViewer},null,8,["message","compact","is-editing","is-edit-submitting","has-session-streaming","cached-agent-display-name","cached-agent-icon","accepted-mime-types","min-height","onStartEdit","onOpenArtifact"])))),128))],2)),Fe.value?_("",!0):(a(),i("div",{key:2,class:g(e.$style.promptContainer)},[p(gt).bottom||p(_t)?_("",!0):(a(),b(p(T),{key:0,variant:"subtle",icon:"arrow-down",class:g(e.$style.scrollToBottomButton),title:p(j).baseText("chatHub.chat.scrollToBottom"),onClick:t[0]||(t[0]=e=>p(mt)(!0))},null,8,["class","title"])),f(De,{ref_key:"inputRef",ref:N,"selected-model":Qe.value,"checked-tool-ids":Re.value?tt.value:[],"session-id":p(_t)?void 0:ue.value,"custom-agent-id":Ze.value,"messaging-state":p(pt),"is-tools-selectable":Re.value,"is-new-session":p(_t),"show-credits-claimed-callout":X.value,"show-dynamic-credentials-missing-callout":rt.value,"ai-credits-quota":String(p(ce)),onSubmit:St,onStop:zt,onSelectModel:Ht,onSetCredentials:jt,onEditAgent:Lt,onDismissCreditsCallout:At,onOpenDynamicCredentials:t[1]||(t[1]=e=>st.value=!0)},null,8,["selected-model","checked-tool-ids","session-id","custom-agent-id","messaging-state","is-tools-selectable","is-new-session","show-credits-claimed-callout","show-dynamic-credentials-missing-callout","ai-credits-quota"])],2))],2)])),_:1},8,["class"]),p(_t)?(a(),b(Be,{key:1,"show-welcome-screen":Fe.value,onStartNewChat:t[2]||(t[2]=e=>{q.value=!0,N.value?.focus()})},null,8,["show-welcome-screen"])):_("",!0)],2)])),_:1},8,["class","width","style","onResize","onResizeend"]),st.value&&p(it).hasDynamicCredentials.value?(a(),b(qe,{key:1,class:g(e.$style.dynamicCredentialsDrawer),credentials:p(it).credentials.value,"connected-count":p(it).connectedCount.value,"total-count":p(it).totalCount.value,"data-testid":"dynamic-credentials-drawer",onClose:t[3]||(t[3]=e=>st.value=!1),onAuthorize:p(it).authorize,onRevoke:p(it).revoke},null,8,["class","credentials","connected-count","total-count","onAuthorize","onRevoke"])):_("",!0),p(yt).isViewerVisible.value?(a(),b(Ge,{key:ue.value,class:g(e.$style.artifactViewer),artifacts:p(yt).allArtifacts.value,"selected-index":p(yt).selectedIndex.value,onClose:p(yt).handleCloseViewer,onSelectArtifact:p(yt).handleSelect,onDownload:p(yt).handleDownload},null,8,["class","artifacts","selected-index","onClose","onSelectArtifact","onDownload"])):_("",!0)])),_:1},8,["class","onDragenter","onDragleave","onDragover","onDrop","onPaste"])):_("",!0)}}),[["__cssModules",{$style:{chatLayout:"_chatLayout_5crcp_125",hasArtifact:"_hasArtifact_5crcp_130",mainContent:"_mainContent_5crcp_130",mainContentResizer:"_mainContentResizer_5crcp_138",dynamicCredentialsDrawer:"_dynamicCredentialsDrawer_5crcp_151",artifactViewer:"_artifactViewer_5crcp_158",isResizing:"_isResizing_5crcp_163",scrollArea:"_scrollArea_5crcp_168",scrollable:"_scrollable_5crcp_173",isNewSession:"_isNewSession_5crcp_182",isAgentNewSession:"_isAgentNewSession_5crcp_185",greetingsCentered:"_greetingsCentered_5crcp_189",header:"_header_5crcp_196",messageList:"_messageList_5crcp_202",promptContainer:"_promptContainer_5crcp_212",isMobileDevice:"_isMobileDevice_5crcp_219",isExistingSession:"_isExistingSession_5crcp_219",isMainPanelNarrow:"_isMainPanelNarrow_5crcp_232",scrollToBottomButton:"_scrollToBottomButton_5crcp_237",isDraggingFile:"_isDraggingFile_5crcp_245",dropOverlay:"_dropOverlay_5crcp_249"}}]]))}}}));
//# sourceMappingURL=ChatView-legacy-BWUrR48C.js.map