From 68a163eaa38c87288e359da07b4b2ffa1e4c71dd Mon Sep 17 00:00:00 2001 From: ai-business-hql Date: Tue, 25 Feb 2025 15:25:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0qwen-plus=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{App-DeChVEGA.js => App-Ca_AWxV9.js} | 4 +- dist/copilot_web/input.js | 4 +- ...t-CmJ04idT.js => workflowChat-DtIRDOQY.js} | 70 +++++++++---------- ui/src/components/chat/ChatInput.tsx | 1 + 4 files changed, 40 insertions(+), 39 deletions(-) rename dist/copilot_web/{App-DeChVEGA.js => App-Ca_AWxV9.js} (95%) rename dist/copilot_web/{workflowChat-CmJ04idT.js => workflowChat-DtIRDOQY.js} (89%) diff --git a/dist/copilot_web/App-DeChVEGA.js b/dist/copilot_web/App-Ca_AWxV9.js similarity index 95% rename from dist/copilot_web/App-DeChVEGA.js rename to dist/copilot_web/App-Ca_AWxV9.js index 19a1f6d..350fa7f 100644 --- a/dist/copilot_web/App-DeChVEGA.js +++ b/dist/copilot_web/App-Ca_AWxV9.js @@ -1,6 +1,6 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["copilot_web/workflowChat-CmJ04idT.js","copilot_web/vendor-markdown-Dek94WS0.js","copilot_web/vendor-react-V04_Axys.js","copilot_web/message-components-BjRLay98.js","copilot_web/input.js","copilot_web/assets/input-B6v7buKL.css"].map(path => { +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["copilot_web/workflowChat-DtIRDOQY.js","copilot_web/vendor-markdown-Dek94WS0.js","copilot_web/vendor-react-V04_Axys.js","copilot_web/message-components-BjRLay98.js","copilot_web/input.js","copilot_web/assets/input-B6v7buKL.css"].map(path => { const apiBase = window.comfyAPI?.api?.api?.api_base; const prefix = apiBase ? `${apiBase.substring(1)}/` : ''; return `${prefix}${path}`; }))))=>i.map(i=>d[i]); -import{_ as x}from"./input.js";import{j as n}from"./vendor-markdown-Dek94WS0.js";import{r as o,R as f}from"./vendor-react-V04_Axys.js";import{C as b}from"./message-components-BjRLay98.js";const w=9999999,m={EXPLAIN_NODE:"copilot:explain-node"},E="/copilot_web/assets/logo-BTZhX0BN.png";function v(t={}){const[d,i]=o.useState({x:t.initialX??window.innerWidth-160,y:t.initialY??20}),[r,a]=o.useState(!1),[s,u]=o.useState({x:0,y:0});return o.useEffect(()=>{const e=g=>{if(r){const p=Math.min(Math.max(0,g.clientX-s.x),window.innerWidth-(t.boundaryPadding?.right??100)),h=Math.min(Math.max(0,g.clientY-s.y),window.innerHeight-(t.boundaryPadding?.bottom??40));i({x:p,y:h})}},l=()=>{a(!1)};return r&&(document.addEventListener("mousemove",e),document.addEventListener("mouseup",l)),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",l)}},[r,s,t.boundaryPadding]),{position:d,isDragging:r,handleMouseDown:e=>{e.preventDefault(),a(!0);const l=e.currentTarget.getBoundingClientRect();u({x:e.clientX-l.left,y:e.clientY-l.top})}}}const y=f.lazy(()=>x(()=>import("./workflowChat-CmJ04idT.js"),__vite__mapDeps([0,1,2,3,4,5])).then(t=>({default:t.default})));function _(){const t=o.useRef(null),[d,i]=o.useState(!1),[r,a]=o.useState(!1),{position:s,isDragging:u,handleMouseDown:c}=v({boundaryPadding:{right:100,bottom:40}});return o.useEffect(()=>{const e=()=>{i(!0),a(!0)};return window.addEventListener(m.EXPLAIN_NODE,e),()=>window.removeEventListener(m.EXPLAIN_NODE,e)},[]),s?n.jsx(b,{children:n.jsx("div",{ref:t,children:n.jsxs("div",{className:"fixed",style:{zIndex:w,left:s.x,top:s.y,cursor:u?"grabbing":"grab"},children:[n.jsxs("button",{onMouseDown:c,onClick:()=>i(!0),className:"px-2 py-1 border border-gray-300 rounded-md bg-white text-black hover:bg-blue-300 hover:font-bold transition-colors select-none w-40 flex items-center space-x-1",style:{marginLeft:"-40px"},children:[n.jsx("img",{src:E,alt:"ComfyUI-Copilot Logo",className:"h-8 w-8"}),n.jsx("span",{className:"text-[14px] font-medium text-gray-800",children:"ComfyUI-Copilot"})]}),n.jsx(f.Suspense,{fallback:n.jsx("div",{children:"Loading..."}),children:n.jsx(y,{onClose:()=>{i(!1),a(!1)},visible:d,triggerUsage:r,onUsageTriggered:()=>a(!1)})})]})})}):null}const j=Object.freeze(Object.defineProperty({__proto__:null,default:_},Symbol.toStringTag,{value:"Module"}));export{j as A,E as l}; +import{_ as x}from"./input.js";import{j as n}from"./vendor-markdown-Dek94WS0.js";import{r as o,R as f}from"./vendor-react-V04_Axys.js";import{C as b}from"./message-components-BjRLay98.js";const w=9999999,m={EXPLAIN_NODE:"copilot:explain-node"},E="/copilot_web/assets/logo-BTZhX0BN.png";function v(t={}){const[d,i]=o.useState({x:t.initialX??window.innerWidth-160,y:t.initialY??20}),[r,a]=o.useState(!1),[s,u]=o.useState({x:0,y:0});return o.useEffect(()=>{const e=g=>{if(r){const p=Math.min(Math.max(0,g.clientX-s.x),window.innerWidth-(t.boundaryPadding?.right??100)),h=Math.min(Math.max(0,g.clientY-s.y),window.innerHeight-(t.boundaryPadding?.bottom??40));i({x:p,y:h})}},l=()=>{a(!1)};return r&&(document.addEventListener("mousemove",e),document.addEventListener("mouseup",l)),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",l)}},[r,s,t.boundaryPadding]),{position:d,isDragging:r,handleMouseDown:e=>{e.preventDefault(),a(!0);const l=e.currentTarget.getBoundingClientRect();u({x:e.clientX-l.left,y:e.clientY-l.top})}}}const y=f.lazy(()=>x(()=>import("./workflowChat-DtIRDOQY.js"),__vite__mapDeps([0,1,2,3,4,5])).then(t=>({default:t.default})));function _(){const t=o.useRef(null),[d,i]=o.useState(!1),[r,a]=o.useState(!1),{position:s,isDragging:u,handleMouseDown:c}=v({boundaryPadding:{right:100,bottom:40}});return o.useEffect(()=>{const e=()=>{i(!0),a(!0)};return window.addEventListener(m.EXPLAIN_NODE,e),()=>window.removeEventListener(m.EXPLAIN_NODE,e)},[]),s?n.jsx(b,{children:n.jsx("div",{ref:t,children:n.jsxs("div",{className:"fixed",style:{zIndex:w,left:s.x,top:s.y,cursor:u?"grabbing":"grab"},children:[n.jsxs("button",{onMouseDown:c,onClick:()=>i(!0),className:"px-2 py-1 border border-gray-300 rounded-md bg-white text-black hover:bg-blue-300 hover:font-bold transition-colors select-none w-40 flex items-center space-x-1",style:{marginLeft:"-40px"},children:[n.jsx("img",{src:E,alt:"ComfyUI-Copilot Logo",className:"h-8 w-8"}),n.jsx("span",{className:"text-[14px] font-medium text-gray-800",children:"ComfyUI-Copilot"})]}),n.jsx(f.Suspense,{fallback:n.jsx("div",{children:"Loading..."}),children:n.jsx(y,{onClose:()=>{i(!1),a(!1)},visible:d,triggerUsage:r,onUsageTriggered:()=>a(!1)})})]})})}):null}const j=Object.freeze(Object.defineProperty({__proto__:null,default:_},Symbol.toStringTag,{value:"Module"}));export{j as A,E as l}; diff --git a/dist/copilot_web/input.js b/dist/copilot_web/input.js index 0bc282f..c82f35b 100644 --- a/dist/copilot_web/input.js +++ b/dist/copilot_web/input.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["copilot_web/App-DeChVEGA.js","copilot_web/vendor-markdown-Dek94WS0.js","copilot_web/vendor-react-V04_Axys.js","copilot_web/message-components-BjRLay98.js"])))=>i.map(i=>d[i]); -import{j as u}from"./vendor-markdown-Dek94WS0.js";import{a as v,R as p}from"./vendor-react-V04_Axys.js";import{w}from"./message-components-BjRLay98.js";const R="modulepreload",b=function(e){return"/"+e},m={},P=function(a,s,S){let d=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),t=r?.nonce||r?.getAttribute("nonce");d=Promise.allSettled(s.map(n=>{if(n=b(n),n in m)return;m[n]=!0;const c=n.endsWith(".css"),h=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${h}`))return;const o=document.createElement("link");if(o.rel=c?"stylesheet":R,c||(o.as="script"),o.crossOrigin="",o.href=n,t&&o.setAttribute("nonce",t),document.head.appendChild(o),c)return new Promise((y,E)=>{o.addEventListener("load",y),o.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${n}`)))})}))}function l(r){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=r,window.dispatchEvent(t),!t.defaultPrevented)throw r}return d.then(r=>{for(const t of r||[])t.status==="rejected"&&l(t.reason);return a().catch(l)})};var i={},f=v;i.createRoot=f.createRoot,i.hydrateRoot=f.hydrateRoot;const _=p.lazy(()=>P(async()=>{const{default:e}=await import("./App-DeChVEGA.js").then(a=>a.A);return{default:e}},__vite__mapDeps([0,1,2,3])).then(({default:e})=>({default:e})));function A(){return new Promise(e=>{if(document.body)return e(document.body);document.addEventListener("DOMContentLoaded",()=>{e(document.body)})})}A().then(()=>w()).then(()=>{const e=document.createElement("div");document.body.append(e),i.createRoot(e).render(u.jsx(p.StrictMode,{children:u.jsx(_,{})}))});export{P as _}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["copilot_web/App-Ca_AWxV9.js","copilot_web/vendor-markdown-Dek94WS0.js","copilot_web/vendor-react-V04_Axys.js","copilot_web/message-components-BjRLay98.js"])))=>i.map(i=>d[i]); +import{j as u}from"./vendor-markdown-Dek94WS0.js";import{a as v,R as p}from"./vendor-react-V04_Axys.js";import{w}from"./message-components-BjRLay98.js";const R="modulepreload",b=function(e){return"/"+e},m={},P=function(a,s,S){let d=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),t=r?.nonce||r?.getAttribute("nonce");d=Promise.allSettled(s.map(n=>{if(n=b(n),n in m)return;m[n]=!0;const c=n.endsWith(".css"),h=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${h}`))return;const o=document.createElement("link");if(o.rel=c?"stylesheet":R,c||(o.as="script"),o.crossOrigin="",o.href=n,t&&o.setAttribute("nonce",t),document.head.appendChild(o),c)return new Promise((y,E)=>{o.addEventListener("load",y),o.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${n}`)))})}))}function l(r){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=r,window.dispatchEvent(t),!t.defaultPrevented)throw r}return d.then(r=>{for(const t of r||[])t.status==="rejected"&&l(t.reason);return a().catch(l)})};var i={},f=v;i.createRoot=f.createRoot,i.hydrateRoot=f.hydrateRoot;const _=p.lazy(()=>P(async()=>{const{default:e}=await import("./App-Ca_AWxV9.js").then(a=>a.A);return{default:e}},__vite__mapDeps([0,1,2,3])).then(({default:e})=>({default:e})));function A(){return new Promise(e=>{if(document.body)return e(document.body);document.addEventListener("DOMContentLoaded",()=>{e(document.body)})})}A().then(()=>w()).then(()=>{const e=document.createElement("div");document.body.append(e),i.createRoot(e).render(u.jsx(p.StrictMode,{children:u.jsx(_,{})}))});export{P as _}; diff --git a/dist/copilot_web/workflowChat-CmJ04idT.js b/dist/copilot_web/workflowChat-DtIRDOQY.js similarity index 89% rename from dist/copilot_web/workflowChat-CmJ04idT.js rename to dist/copilot_web/workflowChat-DtIRDOQY.js index 81d2b96..ebec27b 100644 --- a/dist/copilot_web/workflowChat-CmJ04idT.js +++ b/dist/copilot_web/workflowChat-DtIRDOQY.js @@ -1,5 +1,5 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["copilot_web/WorkflowOption-VjfK2jKF.js","copilot_web/vendor-markdown-Dek94WS0.js","copilot_web/vendor-react-V04_Axys.js","copilot_web/message-components-BjRLay98.js"])))=>i.map(i=>d[i]); -import{j as v}from"./vendor-markdown-Dek94WS0.js";import{r as D,R as it,c as Ct}from"./vendor-react-V04_Axys.js";import{a as ie,B as vg,U as xg,b as mg,g as me,A as Xi,c as wg,u as Ts,W as Ji}from"./message-components-BjRLay98.js";import{l as yg}from"./App-DeChVEGA.js";import{_ as Lt}from"./input.js";/** +import{j as _}from"./vendor-markdown-Dek94WS0.js";import{r as D,R as it,c as Ct}from"./vendor-react-V04_Axys.js";import{a as ie,B as vg,U as xg,b as mg,g as me,A as Xi,c as wg,u as Ts,W as Ji}from"./message-components-BjRLay98.js";import{l as yg}from"./App-Ca_AWxV9.js";import{_ as Lt}from"./input.js";/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. @@ -49,69 +49,69 @@ import{j as v}from"./vendor-markdown-Dek94WS0.js";import{r as D,R as it,c as Ct} * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Dg=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],yr=ut("X",Dg);function Pg({isOpen:m,onClose:C,onSave:s,initialApiKey:B=""}){const[j,R]=D.useState(B),[T,Z]=D.useState(!1);return D.useEffect(()=>{R(B)},[B]),m?v.jsx("div",{className:"fixed inset-0 bg-black/40 backdrop-blur-sm flex items-center justify-center z-50",children:v.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl p-8 w-[480px] shadow-2xl",children:[v.jsx("h2",{className:"text-xl text-gray-900 dark:text-white font-semibold mb-6",children:"Set API Key"}),v.jsxs("div",{className:"relative",children:[v.jsx("input",{type:T?"text":"password",value:j,onChange:y=>R(y.target.value),placeholder:"Enter your API key",className:`w-full px-4 py-3 border border-gray-200 dark:border-gray-600 rounded-lg mb-4 pr-12 + */const Dg=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],yr=ut("X",Dg);function Pg({isOpen:m,onClose:C,onSave:s,initialApiKey:B=""}){const[j,R]=D.useState(B),[T,Z]=D.useState(!1);return D.useEffect(()=>{R(B)},[B]),m?_.jsx("div",{className:"fixed inset-0 bg-black/40 backdrop-blur-sm flex items-center justify-center z-50",children:_.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl p-8 w-[480px] shadow-2xl",children:[_.jsx("h2",{className:"text-xl text-gray-900 dark:text-white font-semibold mb-6",children:"Set API Key"}),_.jsxs("div",{className:"relative",children:[_.jsx("input",{type:T?"text":"password",value:j,onChange:y=>R(y.target.value),placeholder:"Enter your API key",className:`w-full px-4 py-3 border border-gray-200 dark:border-gray-600 rounded-lg mb-4 pr-12 bg-gray-50 dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400 focus:border-blue-500 dark:focus:border-blue-400 focus:ring-2 focus:ring-blue-500/20 dark:focus:ring-blue-400/20 - focus:outline-none`}),v.jsx("button",{type:"button",className:`absolute inset-y-0 right-0 pr-4 flex items-center text-gray-500 dark:text-gray-400 - hover:text-gray-700 dark:hover:text-gray-200 transition-colors bg-transparent border-none`,onClick:()=>Z(!T),children:T?v.jsxs("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[v.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),v.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})]}):v.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:v.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"})})})]}),v.jsxs("div",{className:"mb-6 text-sm text-gray-600 dark:text-gray-300",children:[v.jsx("span",{children:"Don't have an API key? "}),v.jsx("a",{href:"https://form.typeform.com/to/tkg91K8D",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 font-medium",children:"Click here to request one"})]}),v.jsxs("div",{className:"flex justify-end gap-3",children:[v.jsx("button",{onClick:C,className:`px-5 py-2.5 text-gray-700 bg-white dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700 - rounded-lg font-medium transition-colors`,children:"Cancel"}),v.jsx("button",{onClick:()=>{s(j),C()},className:`px-5 py-2.5 bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600 - text-white rounded-lg font-medium transition-colors`,children:"Save"})]})]})}):null}function Ug({onClose:m,onClear:C,hasMessages:s,onHeightResize:B}){const[j,R]=D.useState(!1),[T,Z]=D.useState(!1),y=()=>{R(!0)},en=q=>{localStorage.setItem("chatApiKey",q)},G=q=>{Z(!0),q.preventDefault()};return D.useEffect(()=>{const q=_n=>{if(!T)return;const z=_n.movementY;B?.(z)},ln=()=>{Z(!1)};return T&&(document.addEventListener("mousemove",q),document.addEventListener("mouseup",ln)),()=>{document.removeEventListener("mousemove",q),document.removeEventListener("mouseup",ln)}},[T,B]),v.jsxs(v.Fragment,{children:[v.jsx("div",{className:`absolute top-0 left-0 right-0 h-2 bg-gray-100 hover:bg-gray-300 - transition-colors duration-200 cursor-ns-resize z-20`,onMouseDown:G,style:{borderBottom:"1px solid #e5e7eb"}}),v.jsxs("div",{className:`flex items-center justify-between border-b px-4 py-3 - bg-white border-gray-200 sticky top-2 z-10`,children:[v.jsxs("div",{className:"flex items-center space-x-2",children:[v.jsx("img",{src:yg,alt:"ComfyUI-Copilot Logo",className:"h-12 w-12 -ml-2"}),v.jsx("h3",{className:"text-[16px] font-medium text-gray-800",children:"ComfyUI-Copilot"}),v.jsx("button",{onClick:y,className:"p-1 bg-white border-none hover:bg-gray-100 rounded text-gray-500",children:v.jsx(Mg,{className:"h-5 w-5"})})]}),v.jsxs("div",{className:"flex items-center gap-1",children:[v.jsx("button",{className:`inline-flex bg-white border-none items-center justify-center rounded-md p-2 - text-gray-500 hover:bg-gray-100`,disabled:!s,onClick:C,children:v.jsx(Wg,{className:"h-5 w-5"})}),v.jsx("button",{className:`inline-flex bg-white border-none items-center justify-center rounded-md p-2 - text-gray-500 hover:bg-gray-100`,onClick:m,children:v.jsx(yr,{className:"h-5 w-5"})})]})]}),v.jsx(Pg,{isOpen:j,onClose:()=>R(!1),onSave:en,initialApiKey:localStorage.getItem("chatApiKey")||""})]})}const Bg=5*1024*1024,Ns=["image/jpeg","image/png","image/gif","image/webp"];function Fg({input:m,loading:C,onChange:s,onSend:B,onKeyPress:j,onUploadImages:R,uploadedImages:T,onRemoveImage:Z,selectedModel:y,onModelChange:en}){const[G,q]=D.useState(!1),ln=it.useRef(null),_n=z=>{if(z.target.files){const Mn=[],X=[];if(Array.from(z.target.files).forEach(k=>{Ns.includes(k.type)?k.size>Bg?Mn.push(`${k.name} (exceeds 5MB)`):X.push(k):Mn.push(`${k.name} (unsupported format)`)}),Mn.length>0&&alert(`The following files couldn't be uploaded: + focus:outline-none`}),_.jsx("button",{type:"button",className:`absolute inset-y-0 right-0 pr-4 flex items-center text-gray-500 dark:text-gray-400 + hover:text-gray-700 dark:hover:text-gray-200 transition-colors bg-transparent border-none`,onClick:()=>Z(!T),children:T?_.jsxs("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[_.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),_.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})]}):_.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:_.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"})})})]}),_.jsxs("div",{className:"mb-6 text-sm text-gray-600 dark:text-gray-300",children:[_.jsx("span",{children:"Don't have an API key? "}),_.jsx("a",{href:"https://form.typeform.com/to/tkg91K8D",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 font-medium",children:"Click here to request one"})]}),_.jsxs("div",{className:"flex justify-end gap-3",children:[_.jsx("button",{onClick:C,className:`px-5 py-2.5 text-gray-700 bg-white dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700 + rounded-lg font-medium transition-colors`,children:"Cancel"}),_.jsx("button",{onClick:()=>{s(j),C()},className:`px-5 py-2.5 bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600 + text-white rounded-lg font-medium transition-colors`,children:"Save"})]})]})}):null}function Ug({onClose:m,onClear:C,hasMessages:s,onHeightResize:B}){const[j,R]=D.useState(!1),[T,Z]=D.useState(!1),y=()=>{R(!0)},en=q=>{localStorage.setItem("chatApiKey",q)},G=q=>{Z(!0),q.preventDefault()};return D.useEffect(()=>{const q=_n=>{if(!T)return;const z=_n.movementY;B?.(z)},ln=()=>{Z(!1)};return T&&(document.addEventListener("mousemove",q),document.addEventListener("mouseup",ln)),()=>{document.removeEventListener("mousemove",q),document.removeEventListener("mouseup",ln)}},[T,B]),_.jsxs(_.Fragment,{children:[_.jsx("div",{className:`absolute top-0 left-0 right-0 h-2 bg-gray-100 hover:bg-gray-300 + transition-colors duration-200 cursor-ns-resize z-20`,onMouseDown:G,style:{borderBottom:"1px solid #e5e7eb"}}),_.jsxs("div",{className:`flex items-center justify-between border-b px-4 py-3 + bg-white border-gray-200 sticky top-2 z-10`,children:[_.jsxs("div",{className:"flex items-center space-x-2",children:[_.jsx("img",{src:yg,alt:"ComfyUI-Copilot Logo",className:"h-12 w-12 -ml-2"}),_.jsx("h3",{className:"text-[16px] font-medium text-gray-800",children:"ComfyUI-Copilot"}),_.jsx("button",{onClick:y,className:"p-1 bg-white border-none hover:bg-gray-100 rounded text-gray-500",children:_.jsx(Mg,{className:"h-5 w-5"})})]}),_.jsxs("div",{className:"flex items-center gap-1",children:[_.jsx("button",{className:`inline-flex bg-white border-none items-center justify-center rounded-md p-2 + text-gray-500 hover:bg-gray-100`,disabled:!s,onClick:C,children:_.jsx(Wg,{className:"h-5 w-5"})}),_.jsx("button",{className:`inline-flex bg-white border-none items-center justify-center rounded-md p-2 + text-gray-500 hover:bg-gray-100`,onClick:m,children:_.jsx(yr,{className:"h-5 w-5"})})]})]}),_.jsx(Pg,{isOpen:j,onClose:()=>R(!1),onSave:en,initialApiKey:localStorage.getItem("chatApiKey")||""})]})}const Bg=5*1024*1024,Ns=["image/jpeg","image/png","image/gif","image/webp"];function Fg({input:m,loading:C,onChange:s,onSend:B,onKeyPress:j,onUploadImages:R,uploadedImages:T,onRemoveImage:Z,selectedModel:y,onModelChange:en}){const[G,q]=D.useState(!1),ln=it.useRef(null),_n=z=>{if(z.target.files){const Mn=[],X=[];if(Array.from(z.target.files).forEach(k=>{Ns.includes(k.type)?k.size>Bg?Mn.push(`${k.name} (exceeds 5MB)`):X.push(k):Mn.push(`${k.name} (unsupported format)`)}),Mn.length>0&&alert(`The following files couldn't be uploaded: ${Mn.join(` -`)}`),X.length>0){const k=new DataTransfer;X.forEach(En=>k.items.add(En)),R(k.files)}}};return v.jsxs("div",{className:`relative ${T.length>0?"mt-12":""}`,children:[T.length>0&&v.jsx("div",{className:"absolute -top-10 left-0 flex gap-2",children:T.map(z=>v.jsxs("div",{className:"relative group",children:[v.jsx("img",{src:z.preview,alt:"uploaded",className:"w-8 h-8 rounded object-cover"}),v.jsx("button",{onClick:()=>Z(z.id),className:`absolute -top-1 -right-1 bg-white border-none text-gray-500 rounded-full p-0.5 - opacity-0 group-hover:opacity-100 transition-opacity`,children:v.jsx(yr,{className:"w-3 h-3"})})]},z.id))}),v.jsx("textarea",{onChange:s,onKeyDown:z=>{if(z.key==="Enter"&&!z.shiftKey){if(z.nativeEvent.isComposing)return;z.preventDefault(),B()}j(z)},value:m,placeholder:"Type your message...",className:`w-full min-h-[80px] max-h-[400px] resize-none rounded-md border +`)}`),X.length>0){const k=new DataTransfer;X.forEach(En=>k.items.add(En)),R(k.files)}}};return _.jsxs("div",{className:`relative ${T.length>0?"mt-12":""}`,children:[T.length>0&&_.jsx("div",{className:"absolute -top-10 left-0 flex gap-2",children:T.map(z=>_.jsxs("div",{className:"relative group",children:[_.jsx("img",{src:z.preview,alt:"uploaded",className:"w-8 h-8 rounded object-cover"}),_.jsx("button",{onClick:()=>Z(z.id),className:`absolute -top-1 -right-1 bg-white border-none text-gray-500 rounded-full p-0.5 + opacity-0 group-hover:opacity-100 transition-opacity`,children:_.jsx(yr,{className:"w-3 h-3"})})]},z.id))}),_.jsx("textarea",{onChange:s,onKeyDown:z=>{if(z.key==="Enter"&&!z.shiftKey){if(z.nativeEvent.isComposing)return;z.preventDefault(),B()}j(z)},value:m,placeholder:"Type your message...",className:`w-full min-h-[80px] max-h-[400px] resize-none rounded-md border border-gray-200 px-3 py-2 pr-12 pb-10 text-sm shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white transition-all - duration-200 text-gray-700 overflow-y-auto`,style:{height:"auto"}}),v.jsxs("div",{className:`absolute bottom-2 left-3 right-12 flex items-center gap-2 - bg-white border-t border-gray-100 pt-1`,children:[v.jsxs("select",{value:y,onChange:z=>en(z.target.value),className:`px-1.5 py-0.5 text-xs rounded-md + duration-200 text-gray-700 overflow-y-auto`,style:{height:"auto"}}),_.jsxs("div",{className:`absolute bottom-2 left-3 right-12 flex items-center gap-2 + bg-white border-t border-gray-100 pt-1`,children:[_.jsxs("select",{value:y,onChange:z=>en(z.target.value),className:`px-1.5 py-0.5 text-xs rounded-md border border-gray-200 bg-white text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent hover:bg-gray-50 - transition-colors border-0`,children:[v.jsx("option",{value:"gpt-4o-mini",children:"gpt-4o-mini"}),v.jsx("option",{value:"gpt-4o",children:"gpt-4o"})]}),v.jsx("button",{type:"button",onClick:()=>q(!0),className:`p-1.5 text-gray-500 bg-white border-none + transition-colors border-0`,children:[_.jsx("option",{value:"gpt-4o-mini",children:"gpt-4o-mini"}),_.jsx("option",{value:"gpt-4o",children:"gpt-4o"}),_.jsx("option",{value:"qwen-plus",children:"qwen-plus"})]}),_.jsx("button",{type:"button",onClick:()=>q(!0),className:`p-1.5 text-gray-500 bg-white border-none hover:bg-gray-100 hover:text-gray-600 - transition-all duration-200 outline-none`,children:v.jsx(Ig,{className:"h-4 w-4"})})]}),v.jsx("button",{type:"submit",onClick:B,disabled:C,className:`absolute bottom-3 right-3 p-2 rounded-md text-gray-500 bg-white border-none + transition-all duration-200 outline-none`,children:_.jsx(Ig,{className:"h-4 w-4"})})]}),_.jsx("button",{type:"submit",onClick:B,disabled:C,className:`absolute bottom-3 right-3 p-2 rounded-md text-gray-500 bg-white border-none hover:bg-gray-100 hover:text-gray-600 disabled:opacity-50 - transition-all duration-200 active:scale-95`,children:C?v.jsx("div",{className:`h-5 w-5 animate-spin rounded-full - border-2 border-gray-300 border-t-blue-500`}):v.jsx(Ng,{className:"h-5 w-5 group-hover:translate-x-1"})}),G&&v.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:v.jsxs("div",{className:"bg-white rounded-lg p-6 w-96 relative",children:[v.jsx("button",{onClick:()=>q(!1),className:"absolute top-2 right-2 bg-white border-none text-gray-500 hover:text-gray-700",children:v.jsx(yr,{className:"w-5 h-5"})}),v.jsx("h3",{className:"text-lg text-gray-800 font-medium mb-4",children:"Upload Images"}),v.jsxs("div",{className:`border-2 border-dashed border-gray-300 rounded-lg p-8 + transition-all duration-200 active:scale-95`,children:C?_.jsx("div",{className:`h-5 w-5 animate-spin rounded-full + border-2 border-gray-300 border-t-blue-500`}):_.jsx(Ng,{className:"h-5 w-5 group-hover:translate-x-1"})}),G&&_.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:_.jsxs("div",{className:"bg-white rounded-lg p-6 w-96 relative",children:[_.jsx("button",{onClick:()=>q(!1),className:"absolute top-2 right-2 bg-white border-none text-gray-500 hover:text-gray-700",children:_.jsx(yr,{className:"w-5 h-5"})}),_.jsx("h3",{className:"text-lg text-gray-800 font-medium mb-4",children:"Upload Images"}),_.jsxs("div",{className:`border-2 border-dashed border-gray-300 rounded-lg p-8 flex flex-col items-center justify-center gap-4 - hover:border-blue-500 transition-colors cursor-pointer`,onClick:()=>ln.current?.click(),children:[v.jsx(Lg,{className:"w-8 h-8 text-gray-400"}),v.jsxs("div",{className:"text-center",children:[v.jsx("p",{className:"text-sm text-gray-500 mb-2",children:"Click to upload images or drag and drop"}),v.jsx("p",{className:"text-xs text-gray-400",children:"Supported formats: JPG, PNG, GIF, WebP"}),v.jsx("p",{className:"text-xs text-gray-400",children:"Max file size: 5MB"})]})]}),v.jsx("input",{ref:ln,type:"file",multiple:!0,accept:Ns.join(","),onChange:_n,className:"hidden"}),T.length>0&&v.jsx("div",{className:"mt-4 grid grid-cols-3 gap-2",children:T.map(z=>v.jsxs("div",{className:"relative group",children:[v.jsx("img",{src:z.preview,alt:"preview",className:"w-full h-20 object-cover rounded"}),v.jsx("button",{onClick:()=>Z(z.id),className:`absolute -top-1 -right-1 bg-white border-none text-gray-500 + hover:border-blue-500 transition-colors cursor-pointer`,onClick:()=>ln.current?.click(),children:[_.jsx(Lg,{className:"w-8 h-8 text-gray-400"}),_.jsxs("div",{className:"text-center",children:[_.jsx("p",{className:"text-sm text-gray-500 mb-2",children:"Click to upload images or drag and drop"}),_.jsx("p",{className:"text-xs text-gray-400",children:"Supported formats: JPG, PNG, GIF, WebP"}),_.jsx("p",{className:"text-xs text-gray-400",children:"Max file size: 5MB"})]})]}),_.jsx("input",{ref:ln,type:"file",multiple:!0,accept:Ns.join(","),onChange:_n,className:"hidden"}),T.length>0&&_.jsx("div",{className:"mt-4 grid grid-cols-3 gap-2",children:T.map(z=>_.jsxs("div",{className:"relative group",children:[_.jsx("img",{src:z.preview,alt:"preview",className:"w-full h-20 object-cover rounded"}),_.jsx("button",{onClick:()=>Z(z.id),className:`absolute -top-1 -right-1 bg-white border-none text-gray-500 rounded-full p-0.5 opacity-0 group-hover:opacity-100 - transition-opacity`,children:v.jsx(yr,{className:"w-3 h-3"})})]},z.id))}),v.jsx("div",{className:"mt-4 flex justify-end gap-2",children:v.jsx("button",{onClick:()=>q(!1),className:`px-4 py-2 text-sm font-medium text-gray-700 + transition-opacity`,children:_.jsx(yr,{className:"w-3 h-3"})})]},z.id))}),_.jsx("div",{className:"mt-4 flex justify-end gap-2",children:_.jsx("button",{onClick:()=>q(!1),className:`px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md - hover:bg-gray-50`,children:"Close"})})]})})]})}function Gg(){const m=Object.values(ie.canvas.selected_nodes)[0],C=new Set;function s(B,j){if(!(!B||j>=1)&&B.inputs)for(const R of Object.values(B.inputs)){const T=R.link;if(T&&ie.graph.links[T]){const Z=ie.graph.links[T].origin_id,y=ie.graph._nodes_by_id[Z];y&&(C.add(y.type),s(y,j+1))}}}return m?(s(m,0),[{type:"upstream_node_types",data:Array.from(C)}]):null}function kg({nodeInfo:m,onSendWithIntent:C,loading:s}){return v.jsx("div",{className:"mb-3 p-3 rounded-md bg-gray-50 border border-gray-200",children:v.jsxs("div",{className:"text-sm text-gray-700",children:[v.jsxs("p",{children:["Selected node: ",m.type]}),v.jsxs("div",{className:"flex gap-2 mt-2",children:[v.jsx("button",{className:`px-3 py-1 text-xs rounded-md bg-blue-50 - text-blue-700 hover:bg-blue-100`,onClick:()=>C("node_explain"),disabled:s,children:"Usage"}),v.jsx("button",{className:`px-3 py-1 text-xs rounded bg-green-100 - text-green-700 hover:bg-green-200`,onClick:()=>C("node_params"),disabled:s,children:"Parameters"}),v.jsx("button",{className:`px-3 py-1 text-xs rounded bg-purple-100 - text-purple-700 hover:bg-purple-200`,onClick:()=>C("downstream_subgraph_search",Gg()),disabled:s,children:"Downstream Nodes"})]})]})})}function zg(){return v.jsx(vg,{name:"Assistant",children:v.jsxs("div",{className:"flex items-center space-x-2 p-4 bg-gray-50 rounded-lg",children:[v.jsxs("div",{className:"flex space-x-1",children:[v.jsx("div",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),v.jsx("div",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),v.jsx("div",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]}),v.jsx("span",{className:"text-sm text-gray-500",children:"AI is thinking..."})]})})}const Hg=m=>`https://ui-avatars.com/api/?name=${m||"User"}&background=random`,Kg=D.lazy(()=>Lt(()=>import("./WorkflowOption-VjfK2jKF.js"),__vite__mapDeps([0,1,2,3])).then(m=>({default:m.WorkflowOption}))),$g=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.N),__vite__mapDeps([3,2,1])).then(m=>({default:m.NodeSearch}))),qg=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.d),__vite__mapDeps([3,2,1])).then(m=>({default:m.NodeRecommend}))),jg=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.D),__vite__mapDeps([3,2,1])).then(m=>({default:m.DownstreamSubgraphs}))),Zg=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.e),__vite__mapDeps([3,2,1])).then(m=>({default:m.NodeInstallGuide})));function Yg({messages:m,latestInput:C,onOptionClick:s,installedNodes:B,onAddMessage:j,loading:R}){const T=it.useMemo(()=>y=>{if(y.role==="user")return v.jsx(xg,{content:y.content,trace_id:y.trace_id},y.id);if(y.role==="ai"||y.role==="tool"){const en=Hg(y.role);try{const G=JSON.parse(y.content),q=G.ext?.find(k=>k.type==="workflow"),ln=G.ext?.find(k=>k.type==="node"),_n=G.ext?.find(k=>k.type==="node_recommend"),z=G.ext?.find(k=>k.type==="downstream_subgraph_search"),Mn=G.ext?.find(k=>k.type==="node_install_guide");let X=null;return q?X=v.jsx(Kg,{content:y.content,name:y.name,latestInput:C,installedNodes:B,onAddMessage:j}):_n?X=v.jsx(qg,{content:y.content,name:y.name,avatar:en,installedNodes:B}):ln?X=v.jsx($g,{content:y.content,name:y.name,avatar:en,installedNodes:B}):z?X=v.jsx(jg,{content:y.content,name:y.name,avatar:en,installedNodes:B,onAddMessage:j}):Mn&&(X=v.jsx(Zg,{content:y.content,onLoadSubgraph:()=>{if(y.metadata?.pendingSubgraph){const k=Object.values(ie.canvas.selected_nodes)[0];if(k){const En=y.metadata.pendingSubgraph,vn=En.json.nodes,Sn=En.json.links,dn=vn.find(rn=>rn.id===0),On=dn?.id,cn={};On&&(cn[On]=k),ie.canvas.emitBeforeChange();try{for(const rn of vn)if(rn.id!==On){const Wn=dn?.pos,In=[k._pos[0],k._pos[1]],ot=[rn.pos[0]+In[0]-Wn[0],rn.pos[1]+In[1]-Wn[1]];cn[rn.id]=mg(rn.type,{pos:ot})}}finally{ie.canvas.emitAfterChange()}for(const rn of Sn){const Wn=cn[rn.origin_id],In=cn[rn.target_id];Wn&&In&&Wn.connect(rn.origin_slot,In,rn.target_slot)}}else alert("Please select a upstream node first before adding a subgraph.")}else if(y.metadata?.pendingWorkflow){const k=y.metadata.pendingWorkflow,En=y.metadata.optimizedParams;ie.loadGraphData(k);for(const[Sn,dn,On,cn,rn]of En){const Wn=ie.graph._nodes_by_id[Sn].widgets;for(const In of Wn)In.name===cn&&(In.value=rn)}ie.graph.setDirtyCanvas(!1,!0);const vn={id:me(),role:"tool",content:JSON.stringify({text:"The workflow has been successfully loaded to the canvas",ext:[]}),format:"markdown",name:"Assistant"};j?.(vn)}}})),G.text||X?v.jsx(Xi,{content:y.content,name:y.name,format:y.format,onOptionClick:s,extComponent:X},y.id):X||v.jsx(Xi,{content:y.content,name:y.name,format:y.format,onOptionClick:s},y.id)}catch(G){return console.error("[MessageList] Error parsing message content:",G),console.error("解析JSON失败",y.content),v.jsx(Xi,{content:y.content,name:y.name,format:y.format,onOptionClick:s},y.id)}}return null},[]),Z=it.useMemo(()=>m?.map(T),[m,T]);return v.jsxs("div",{className:"flex flex-col gap-4 w-full",children:[Z,R&&v.jsx(zg,{})]})}async function Xg(){try{return await(await wg.fetchApi("/object_info",{method:"GET"})).json()}catch(m){throw console.error("Error fetching object info:",m),m}}async function Jg(){const m=await Xg();return Object.keys(m)}var br={exports:{}};/** + hover:bg-gray-50`,children:"Close"})})]})})]})}function Gg(){const m=Object.values(ie.canvas.selected_nodes)[0],C=new Set;function s(B,j){if(!(!B||j>=1)&&B.inputs)for(const R of Object.values(B.inputs)){const T=R.link;if(T&&ie.graph.links[T]){const Z=ie.graph.links[T].origin_id,y=ie.graph._nodes_by_id[Z];y&&(C.add(y.type),s(y,j+1))}}}return m?(s(m,0),[{type:"upstream_node_types",data:Array.from(C)}]):null}function kg({nodeInfo:m,onSendWithIntent:C,loading:s}){return _.jsx("div",{className:"mb-3 p-3 rounded-md bg-gray-50 border border-gray-200",children:_.jsxs("div",{className:"text-sm text-gray-700",children:[_.jsxs("p",{children:["Selected node: ",m.type]}),_.jsxs("div",{className:"flex gap-2 mt-2",children:[_.jsx("button",{className:`px-3 py-1 text-xs rounded-md bg-blue-50 + text-blue-700 hover:bg-blue-100`,onClick:()=>C("node_explain"),disabled:s,children:"Usage"}),_.jsx("button",{className:`px-3 py-1 text-xs rounded bg-green-100 + text-green-700 hover:bg-green-200`,onClick:()=>C("node_params"),disabled:s,children:"Parameters"}),_.jsx("button",{className:`px-3 py-1 text-xs rounded bg-purple-100 + text-purple-700 hover:bg-purple-200`,onClick:()=>C("downstream_subgraph_search",Gg()),disabled:s,children:"Downstream Nodes"})]})]})})}function zg(){return _.jsx(vg,{name:"Assistant",children:_.jsxs("div",{className:"flex items-center space-x-2 p-4 bg-gray-50 rounded-lg",children:[_.jsxs("div",{className:"flex space-x-1",children:[_.jsx("div",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),_.jsx("div",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),_.jsx("div",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]}),_.jsx("span",{className:"text-sm text-gray-500",children:"AI is thinking..."})]})})}const Hg=m=>`https://ui-avatars.com/api/?name=${m||"User"}&background=random`,Kg=D.lazy(()=>Lt(()=>import("./WorkflowOption-VjfK2jKF.js"),__vite__mapDeps([0,1,2,3])).then(m=>({default:m.WorkflowOption}))),$g=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.N),__vite__mapDeps([3,2,1])).then(m=>({default:m.NodeSearch}))),qg=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.d),__vite__mapDeps([3,2,1])).then(m=>({default:m.NodeRecommend}))),jg=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.D),__vite__mapDeps([3,2,1])).then(m=>({default:m.DownstreamSubgraphs}))),Zg=D.lazy(()=>Lt(()=>import("./message-components-BjRLay98.js").then(m=>m.e),__vite__mapDeps([3,2,1])).then(m=>({default:m.NodeInstallGuide})));function Yg({messages:m,latestInput:C,onOptionClick:s,installedNodes:B,onAddMessage:j,loading:R}){const T=it.useMemo(()=>y=>{if(y.role==="user")return _.jsx(xg,{content:y.content,trace_id:y.trace_id},y.id);if(y.role==="ai"||y.role==="tool"){const en=Hg(y.role);try{const G=JSON.parse(y.content),q=G.ext?.find(k=>k.type==="workflow"),ln=G.ext?.find(k=>k.type==="node"),_n=G.ext?.find(k=>k.type==="node_recommend"),z=G.ext?.find(k=>k.type==="downstream_subgraph_search"),Mn=G.ext?.find(k=>k.type==="node_install_guide");let X=null;return q?X=_.jsx(Kg,{content:y.content,name:y.name,latestInput:C,installedNodes:B,onAddMessage:j}):_n?X=_.jsx(qg,{content:y.content,name:y.name,avatar:en,installedNodes:B}):ln?X=_.jsx($g,{content:y.content,name:y.name,avatar:en,installedNodes:B}):z?X=_.jsx(jg,{content:y.content,name:y.name,avatar:en,installedNodes:B,onAddMessage:j}):Mn&&(X=_.jsx(Zg,{content:y.content,onLoadSubgraph:()=>{if(y.metadata?.pendingSubgraph){const k=Object.values(ie.canvas.selected_nodes)[0];if(k){const En=y.metadata.pendingSubgraph,vn=En.json.nodes,Sn=En.json.links,dn=vn.find(rn=>rn.id===0),On=dn?.id,cn={};On&&(cn[On]=k),ie.canvas.emitBeforeChange();try{for(const rn of vn)if(rn.id!==On){const Wn=dn?.pos,In=[k._pos[0],k._pos[1]],ot=[rn.pos[0]+In[0]-Wn[0],rn.pos[1]+In[1]-Wn[1]];cn[rn.id]=mg(rn.type,{pos:ot})}}finally{ie.canvas.emitAfterChange()}for(const rn of Sn){const Wn=cn[rn.origin_id],In=cn[rn.target_id];Wn&&In&&Wn.connect(rn.origin_slot,In,rn.target_slot)}}else alert("Please select a upstream node first before adding a subgraph.")}else if(y.metadata?.pendingWorkflow){const k=y.metadata.pendingWorkflow,En=y.metadata.optimizedParams;ie.loadGraphData(k);for(const[Sn,dn,On,cn,rn]of En){const Wn=ie.graph._nodes_by_id[Sn].widgets;for(const In of Wn)In.name===cn&&(In.value=rn)}ie.graph.setDirtyCanvas(!1,!0);const vn={id:me(),role:"tool",content:JSON.stringify({text:"The workflow has been successfully loaded to the canvas",ext:[]}),format:"markdown",name:"Assistant"};j?.(vn)}}})),G.text||X?_.jsx(Xi,{content:y.content,name:y.name,format:y.format,onOptionClick:s,extComponent:X},y.id):X||_.jsx(Xi,{content:y.content,name:y.name,format:y.format,onOptionClick:s},y.id)}catch(G){return console.error("[MessageList] Error parsing message content:",G),console.error("解析JSON失败",y.content),_.jsx(Xi,{content:y.content,name:y.name,format:y.format,onOptionClick:s},y.id)}}return null},[]),Z=it.useMemo(()=>m?.map(T),[m,T]);return _.jsxs("div",{className:"flex flex-col gap-4 w-full",children:[Z,R&&_.jsx(zg,{})]})}async function Xg(){try{return await(await wg.fetchApi("/object_info",{method:"GET"})).json()}catch(m){throw console.error("Error fetching object info:",m),m}}async function Jg(){const m=await Xg();return Object.keys(m)}var br={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */br.exports;(function(m,C){(function(){var s,B="4.17.21",j=200,R="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",T="Expected a function",Z="Invalid `variable` option passed into `_.template`",y="__lodash_hash_undefined__",en=500,G="__lodash_placeholder__",q=1,ln=2,_n=4,z=1,Mn=2,X=1,k=2,En=4,vn=8,Sn=16,dn=32,On=64,cn=128,rn=256,Wn=512,In=30,ot="...",Er=800,Rt=16,Ne=1,Sr=2,Nt=3,ze=1/0,we=9007199254740991,Ir=17976931348623157e292,Te=NaN,kn=4294967295,Tt=kn-1,Cr=kn>>>1,Lr=[["ary",cn],["bind",X],["bindKey",k],["curry",vn],["curryRight",Sn],["flip",Wn],["partial",dn],["partialRight",On],["rearg",rn]],I="[object Arguments]",un="[object Array]",xn="[object AsyncFunction]",Jn="[object Boolean]",zn="[object Date]",ue="[object DOMException]",Cn="[object Error]",Me="[object Function]",Qi="[object GeneratorFunction]",Qn="[object Map]",st="[object Number]",Os="[object Null]",ae="[object Object]",Vi="[object Promise]",Ws="[object Proxy]",ft="[object RegExp]",Vn="[object Set]",at="[object String]",Mt="[object Symbol]",Ds="[object Undefined]",lt="[object WeakMap]",Ps="[object WeakSet]",ct="[object ArrayBuffer]",He="[object DataView]",Rr="[object Float32Array]",Nr="[object Float64Array]",Tr="[object Int8Array]",Mr="[object Int16Array]",Or="[object Int32Array]",Wr="[object Uint8Array]",Dr="[object Uint8ClampedArray]",Pr="[object Uint16Array]",Ur="[object Uint32Array]",Us=/\b__p \+= '';/g,Bs=/\b(__p \+=) '' \+/g,Fs=/(__e\(.*?\)|\b__t\)) \+\n'';/g,nu=/&(?:amp|lt|gt|quot|#39);/g,eu=/[&<>"']/g,Gs=RegExp(nu.source),ks=RegExp(eu.source),zs=/<%-([\s\S]+?)%>/g,Hs=/<%([\s\S]+?)%>/g,tu=/<%=([\s\S]+?)%>/g,Ks=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$s=/^\w*$/,qs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Br=/[\\^$.*+?()[\]{}|]/g,js=RegExp(Br.source),Fr=/^\s+/,Zs=/\s/,Ys=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xs=/\{\n\/\* \[wrapped with (.+)\] \*/,Js=/,? & /,Qs=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Vs=/[()=,{}\[\]\/\s]/,nf=/\\(\\)?/g,ef=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ru=/\w*$/,tf=/^[-+]0x[0-9a-f]+$/i,rf=/^0b[01]+$/i,uf=/^\[object .+?Constructor\]$/,of=/^0o[0-7]+$/i,sf=/^(?:0|[1-9]\d*)$/,ff=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ot=/($^)/,af=/['\n\r\u2028\u2029\\]/g,Wt="\\ud800-\\udfff",lf="\\u0300-\\u036f",cf="\\ufe20-\\ufe2f",hf="\\u20d0-\\u20ff",iu=lf+cf+hf,uu="\\u2700-\\u27bf",ou="a-z\\xdf-\\xf6\\xf8-\\xff",df="\\xac\\xb1\\xd7\\xf7",gf="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",pf="\\u2000-\\u206f",_f=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",su="A-Z\\xc0-\\xd6\\xd8-\\xde",fu="\\ufe0e\\ufe0f",au=df+gf+pf+_f,Gr="['’]",vf="["+Wt+"]",lu="["+au+"]",Dt="["+iu+"]",cu="\\d+",xf="["+uu+"]",hu="["+ou+"]",du="[^"+Wt+au+cu+uu+ou+su+"]",kr="\\ud83c[\\udffb-\\udfff]",mf="(?:"+Dt+"|"+kr+")",gu="[^"+Wt+"]",zr="(?:\\ud83c[\\udde6-\\uddff]){2}",Hr="[\\ud800-\\udbff][\\udc00-\\udfff]",Ke="["+su+"]",pu="\\u200d",_u="(?:"+hu+"|"+du+")",wf="(?:"+Ke+"|"+du+")",vu="(?:"+Gr+"(?:d|ll|m|re|s|t|ve))?",xu="(?:"+Gr+"(?:D|LL|M|RE|S|T|VE))?",mu=mf+"?",wu="["+fu+"]?",yf="(?:"+pu+"(?:"+[gu,zr,Hr].join("|")+")"+wu+mu+")*",bf="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Af="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",yu=wu+mu+yf,Ef="(?:"+[xf,zr,Hr].join("|")+")"+yu,Sf="(?:"+[gu+Dt+"?",Dt,zr,Hr,vf].join("|")+")",If=RegExp(Gr,"g"),Cf=RegExp(Dt,"g"),Kr=RegExp(kr+"(?="+kr+")|"+Sf+yu,"g"),Lf=RegExp([Ke+"?"+hu+"+"+vu+"(?="+[lu,Ke,"$"].join("|")+")",wf+"+"+xu+"(?="+[lu,Ke+_u,"$"].join("|")+")",Ke+"?"+_u+"+"+vu,Ke+"+"+xu,Af,bf,cu,Ef].join("|"),"g"),Rf=RegExp("["+pu+Wt+iu+fu+"]"),Nf=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tf=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Mf=-1,Q={};Q[Rr]=Q[Nr]=Q[Tr]=Q[Mr]=Q[Or]=Q[Wr]=Q[Dr]=Q[Pr]=Q[Ur]=!0,Q[I]=Q[un]=Q[ct]=Q[Jn]=Q[He]=Q[zn]=Q[Cn]=Q[Me]=Q[Qn]=Q[st]=Q[ae]=Q[ft]=Q[Vn]=Q[at]=Q[lt]=!1;var J={};J[I]=J[un]=J[ct]=J[He]=J[Jn]=J[zn]=J[Rr]=J[Nr]=J[Tr]=J[Mr]=J[Or]=J[Qn]=J[st]=J[ae]=J[ft]=J[Vn]=J[at]=J[Mt]=J[Wr]=J[Dr]=J[Pr]=J[Ur]=!0,J[Cn]=J[Me]=J[lt]=!1;var Of={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Wf={"&":"&","<":"<",">":">",'"':""","'":"'"},Df={"&":"&","<":"<",">":">",""":'"',"'":"'"},Pf={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Uf=parseFloat,Bf=parseInt,bu=typeof Ct=="object"&&Ct&&Ct.Object===Object&&Ct,Ff=typeof self=="object"&&self&&self.Object===Object&&self,gn=bu||Ff||Function("return this")(),$r=C&&!C.nodeType&&C,Oe=$r&&!0&&m&&!m.nodeType&&m,Au=Oe&&Oe.exports===$r,qr=Au&&bu.process,Hn=function(){try{var l=Oe&&Oe.require&&Oe.require("util").types;return l||qr&&qr.binding&&qr.binding("util")}catch{}}(),Eu=Hn&&Hn.isArrayBuffer,Su=Hn&&Hn.isDate,Iu=Hn&&Hn.isMap,Cu=Hn&&Hn.isRegExp,Lu=Hn&&Hn.isSet,Ru=Hn&&Hn.isTypedArray;function Dn(l,d,h){switch(h.length){case 0:return l.call(d);case 1:return l.call(d,h[0]);case 2:return l.call(d,h[0],h[1]);case 3:return l.call(d,h[0],h[1],h[2])}return l.apply(d,h)}function Gf(l,d,h,w){for(var L=-1,H=l==null?0:l.length;++L-1}function jr(l,d,h){for(var w=-1,L=l==null?0:l.length;++w-1;);return h}function Uu(l,d){for(var h=l.length;h--&&$e(d,l[h],0)>-1;);return h}function Yf(l,d){for(var h=l.length,w=0;h--;)l[h]===d&&++w;return w}var Xf=Jr(Of),Jf=Jr(Wf);function Qf(l){return"\\"+Pf[l]}function Vf(l,d){return l==null?s:l[d]}function qe(l){return Rf.test(l)}function na(l){return Nf.test(l)}function ea(l){for(var d,h=[];!(d=l.next()).done;)h.push(d.value);return h}function ei(l){var d=-1,h=Array(l.size);return l.forEach(function(w,L){h[++d]=[L,w]}),h}function Bu(l,d){return function(h){return l(d(h))}}function Ae(l,d){for(var h=-1,w=l.length,L=0,H=[];++h-1}function za(n,e){var t=this.__data__,r=Vt(t,n);return r<0?(++this.size,t.push([n,e])):t[r][1]=e,this}le.prototype.clear=Ba,le.prototype.delete=Fa,le.prototype.get=Ga,le.prototype.has=ka,le.prototype.set=za;function ce(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e=e?n:e)),n}function jn(n,e,t,r,i,o){var f,a=e&q,c=e&ln,g=e&_n;if(t&&(f=i?t(n,r,i,o):t(n)),f!==s)return f;if(!nn(n))return n;var p=N(n);if(p){if(f=ql(n),!a)return Ln(n,f)}else{var _=wn(n),x=_==Me||_==Qi;if(Re(n))return yo(n,a);if(_==ae||_==I||x&&!i){if(f=c||x?{}:Go(n),!a)return c?Dl(n,il(f,n)):Wl(n,Xu(f,n))}else{if(!J[_])return i?n:{};f=jl(n,_,a)}}o||(o=new ee);var b=o.get(n);if(b)return b;o.set(n,f),ps(n)?n.forEach(function(S){f.add(jn(S,e,t,S,n,o))}):ds(n)&&n.forEach(function(S,P){f.set(P,jn(S,e,t,P,n,o))});var E=g?c?Ci:Ii:c?Nn:hn,O=p?s:E(n);return Kn(O||n,function(S,P){O&&(P=S,S=n[P]),xt(f,P,jn(S,e,t,P,n,o))}),f}function ul(n){var e=hn(n);return function(t){return Ju(t,n,e)}}function Ju(n,e,t){var r=t.length;if(n==null)return!r;for(n=Y(n);r--;){var i=t[r],o=e[i],f=n[i];if(f===s&&!(i in n)||!o(f))return!1}return!0}function Qu(n,e,t){if(typeof n!="function")throw new $n(T);return St(function(){n.apply(s,t)},e)}function mt(n,e,t,r){var i=-1,o=Pt,f=!0,a=n.length,c=[],g=e.length;if(!a)return c;t&&(e=V(e,Pn(t))),r?(o=jr,f=!1):e.length>=j&&(o=ht,f=!1,e=new Pe(e));n:for(;++ii?0:i+t),r=r===s||r>i?i:M(r),r<0&&(r+=i),r=t>r?0:vs(r);t0&&t(a)?e>1?pn(a,e-1,t,r,i):be(i,a):r||(i[i.length]=a)}return i}var fi=Co(),eo=Co(!0);function oe(n,e){return n&&fi(n,e,hn)}function ai(n,e){return n&&eo(n,e,hn)}function er(n,e){return ye(e,function(t){return _e(n[t])})}function Be(n,e){e=Ce(e,n);for(var t=0,r=e.length;n!=null&&te}function fl(n,e){return n!=null&&$.call(n,e)}function al(n,e){return n!=null&&e in Y(n)}function ll(n,e,t){return n>=mn(e,t)&&n=120&&p.length>=120)?new Pe(f&&p):s}p=n[0];var _=-1,x=a[0];n:for(;++_-1;)a!==n&&qt.call(a,c,1),qt.call(n,c,1);return n}function ho(n,e){for(var t=n?e.length:0,r=t-1;t--;){var i=e[t];if(t==r||i!==o){var o=i;pe(i)?qt.call(n,i,1):mi(n,i)}}return n}function _i(n,e){return n+Yt(qu()*(e-n+1))}function Al(n,e,t,r){for(var i=-1,o=an(Zt((e-n)/(t||1)),0),f=h(o);o--;)f[r?o:++i]=n,n+=t;return f}function vi(n,e){var t="";if(!n||e<1||e>we)return t;do e%2&&(t+=n),e=Yt(e/2),e&&(n+=n);while(e);return t}function W(n,e){return Wi(Ho(n,e,Tn),n+"")}function El(n){return Yu(rt(n))}function Sl(n,e){var t=rt(n);return hr(t,Ue(e,0,t.length))}function bt(n,e,t,r){if(!nn(n))return n;e=Ce(e,n);for(var i=-1,o=e.length,f=o-1,a=n;a!=null&&++ii?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var o=h(i);++r>>1,f=n[o];f!==null&&!Bn(f)&&(t?f<=e:f=j){var g=e?null:Fl(n);if(g)return Bt(g);f=!1,i=ht,c=new Pe}else c=e?[]:a;n:for(;++r=r?n:Zn(n,e,t)}var wo=_a||function(n){return gn.clearTimeout(n)};function yo(n,e){if(e)return n.slice();var t=n.length,r=ku?ku(t):new n.constructor(t);return n.copy(r),r}function Ai(n){var e=new n.constructor(n.byteLength);return new Kt(e).set(new Kt(n)),e}function Nl(n,e){var t=e?Ai(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}function Tl(n){var e=new n.constructor(n.source,ru.exec(n));return e.lastIndex=n.lastIndex,e}function Ml(n){return vt?Y(vt.call(n)):{}}function bo(n,e){var t=e?Ai(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}function Ao(n,e){if(n!==e){var t=n!==s,r=n===null,i=n===n,o=Bn(n),f=e!==s,a=e===null,c=e===e,g=Bn(e);if(!a&&!g&&!o&&n>e||o&&f&&c&&!a&&!g||r&&f&&c||!t&&c||!i)return 1;if(!r&&!o&&!g&&n=a)return c;var g=t[r];return c*(g=="desc"?-1:1)}}return n.index-e.index}function Eo(n,e,t,r){for(var i=-1,o=n.length,f=t.length,a=-1,c=e.length,g=an(o-f,0),p=h(c+g),_=!r;++a1?t[i-1]:s,f=i>2?t[2]:s;for(o=n.length>3&&typeof o=="function"?(i--,o):s,f&&bn(t[0],t[1],f)&&(o=i<3?s:o,i=1),e=Y(e);++r-1?i[o?e[f]:f]:s}}function No(n){return ge(function(e){var t=e.length,r=t,i=qn.prototype.thru;for(n&&e.reverse();r--;){var o=e[r];if(typeof o!="function")throw new $n(T);if(i&&!f&&lr(o)=="wrapper")var f=new qn([],!0)}for(r=f?r:t;++r1&&F.reverse(),p&&ca))return!1;var g=o.get(n),p=o.get(e);if(g&&p)return g==e&&p==n;var _=-1,x=!0,b=t&Mn?new Pe:s;for(o.set(n,e),o.set(e,n);++_1?"& ":"")+e[r],e=e.join(t>2?", ":" "),n.replace(Ys,`{ + */br.exports;(function(m,C){(function(){var s,B="4.17.21",j=200,R="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",T="Expected a function",Z="Invalid `variable` option passed into `_.template`",y="__lodash_hash_undefined__",en=500,G="__lodash_placeholder__",q=1,ln=2,_n=4,z=1,Mn=2,X=1,k=2,En=4,vn=8,Sn=16,dn=32,On=64,cn=128,rn=256,Wn=512,In=30,ot="...",Er=800,Rt=16,Ne=1,Sr=2,Nt=3,ze=1/0,we=9007199254740991,Ir=17976931348623157e292,Te=NaN,kn=4294967295,Tt=kn-1,Cr=kn>>>1,Lr=[["ary",cn],["bind",X],["bindKey",k],["curry",vn],["curryRight",Sn],["flip",Wn],["partial",dn],["partialRight",On],["rearg",rn]],I="[object Arguments]",un="[object Array]",xn="[object AsyncFunction]",Jn="[object Boolean]",zn="[object Date]",ue="[object DOMException]",Cn="[object Error]",Me="[object Function]",Qi="[object GeneratorFunction]",Qn="[object Map]",st="[object Number]",Os="[object Null]",ae="[object Object]",Vi="[object Promise]",Ws="[object Proxy]",ft="[object RegExp]",Vn="[object Set]",at="[object String]",Mt="[object Symbol]",Ds="[object Undefined]",lt="[object WeakMap]",Ps="[object WeakSet]",ct="[object ArrayBuffer]",He="[object DataView]",Rr="[object Float32Array]",Nr="[object Float64Array]",Tr="[object Int8Array]",Mr="[object Int16Array]",Or="[object Int32Array]",Wr="[object Uint8Array]",Dr="[object Uint8ClampedArray]",Pr="[object Uint16Array]",Ur="[object Uint32Array]",Us=/\b__p \+= '';/g,Bs=/\b(__p \+=) '' \+/g,Fs=/(__e\(.*?\)|\b__t\)) \+\n'';/g,nu=/&(?:amp|lt|gt|quot|#39);/g,eu=/[&<>"']/g,Gs=RegExp(nu.source),ks=RegExp(eu.source),zs=/<%-([\s\S]+?)%>/g,Hs=/<%([\s\S]+?)%>/g,tu=/<%=([\s\S]+?)%>/g,Ks=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$s=/^\w*$/,qs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Br=/[\\^$.*+?()[\]{}|]/g,js=RegExp(Br.source),Fr=/^\s+/,Zs=/\s/,Ys=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xs=/\{\n\/\* \[wrapped with (.+)\] \*/,Js=/,? & /,Qs=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Vs=/[()=,{}\[\]\/\s]/,nf=/\\(\\)?/g,ef=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ru=/\w*$/,tf=/^[-+]0x[0-9a-f]+$/i,rf=/^0b[01]+$/i,uf=/^\[object .+?Constructor\]$/,of=/^0o[0-7]+$/i,sf=/^(?:0|[1-9]\d*)$/,ff=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ot=/($^)/,af=/['\n\r\u2028\u2029\\]/g,Wt="\\ud800-\\udfff",lf="\\u0300-\\u036f",cf="\\ufe20-\\ufe2f",hf="\\u20d0-\\u20ff",iu=lf+cf+hf,uu="\\u2700-\\u27bf",ou="a-z\\xdf-\\xf6\\xf8-\\xff",df="\\xac\\xb1\\xd7\\xf7",gf="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",pf="\\u2000-\\u206f",_f=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",su="A-Z\\xc0-\\xd6\\xd8-\\xde",fu="\\ufe0e\\ufe0f",au=df+gf+pf+_f,Gr="['’]",vf="["+Wt+"]",lu="["+au+"]",Dt="["+iu+"]",cu="\\d+",xf="["+uu+"]",hu="["+ou+"]",du="[^"+Wt+au+cu+uu+ou+su+"]",kr="\\ud83c[\\udffb-\\udfff]",mf="(?:"+Dt+"|"+kr+")",gu="[^"+Wt+"]",zr="(?:\\ud83c[\\udde6-\\uddff]){2}",Hr="[\\ud800-\\udbff][\\udc00-\\udfff]",Ke="["+su+"]",pu="\\u200d",_u="(?:"+hu+"|"+du+")",wf="(?:"+Ke+"|"+du+")",vu="(?:"+Gr+"(?:d|ll|m|re|s|t|ve))?",xu="(?:"+Gr+"(?:D|LL|M|RE|S|T|VE))?",mu=mf+"?",wu="["+fu+"]?",yf="(?:"+pu+"(?:"+[gu,zr,Hr].join("|")+")"+wu+mu+")*",bf="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Af="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",yu=wu+mu+yf,Ef="(?:"+[xf,zr,Hr].join("|")+")"+yu,Sf="(?:"+[gu+Dt+"?",Dt,zr,Hr,vf].join("|")+")",If=RegExp(Gr,"g"),Cf=RegExp(Dt,"g"),Kr=RegExp(kr+"(?="+kr+")|"+Sf+yu,"g"),Lf=RegExp([Ke+"?"+hu+"+"+vu+"(?="+[lu,Ke,"$"].join("|")+")",wf+"+"+xu+"(?="+[lu,Ke+_u,"$"].join("|")+")",Ke+"?"+_u+"+"+vu,Ke+"+"+xu,Af,bf,cu,Ef].join("|"),"g"),Rf=RegExp("["+pu+Wt+iu+fu+"]"),Nf=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tf=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Mf=-1,Q={};Q[Rr]=Q[Nr]=Q[Tr]=Q[Mr]=Q[Or]=Q[Wr]=Q[Dr]=Q[Pr]=Q[Ur]=!0,Q[I]=Q[un]=Q[ct]=Q[Jn]=Q[He]=Q[zn]=Q[Cn]=Q[Me]=Q[Qn]=Q[st]=Q[ae]=Q[ft]=Q[Vn]=Q[at]=Q[lt]=!1;var J={};J[I]=J[un]=J[ct]=J[He]=J[Jn]=J[zn]=J[Rr]=J[Nr]=J[Tr]=J[Mr]=J[Or]=J[Qn]=J[st]=J[ae]=J[ft]=J[Vn]=J[at]=J[Mt]=J[Wr]=J[Dr]=J[Pr]=J[Ur]=!0,J[Cn]=J[Me]=J[lt]=!1;var Of={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Wf={"&":"&","<":"<",">":">",'"':""","'":"'"},Df={"&":"&","<":"<",">":">",""":'"',"'":"'"},Pf={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Uf=parseFloat,Bf=parseInt,bu=typeof Ct=="object"&&Ct&&Ct.Object===Object&&Ct,Ff=typeof self=="object"&&self&&self.Object===Object&&self,gn=bu||Ff||Function("return this")(),$r=C&&!C.nodeType&&C,Oe=$r&&!0&&m&&!m.nodeType&&m,Au=Oe&&Oe.exports===$r,qr=Au&&bu.process,Hn=function(){try{var l=Oe&&Oe.require&&Oe.require("util").types;return l||qr&&qr.binding&&qr.binding("util")}catch{}}(),Eu=Hn&&Hn.isArrayBuffer,Su=Hn&&Hn.isDate,Iu=Hn&&Hn.isMap,Cu=Hn&&Hn.isRegExp,Lu=Hn&&Hn.isSet,Ru=Hn&&Hn.isTypedArray;function Dn(l,d,h){switch(h.length){case 0:return l.call(d);case 1:return l.call(d,h[0]);case 2:return l.call(d,h[0],h[1]);case 3:return l.call(d,h[0],h[1],h[2])}return l.apply(d,h)}function Gf(l,d,h,w){for(var L=-1,H=l==null?0:l.length;++L-1}function jr(l,d,h){for(var w=-1,L=l==null?0:l.length;++w-1;);return h}function Uu(l,d){for(var h=l.length;h--&&$e(d,l[h],0)>-1;);return h}function Yf(l,d){for(var h=l.length,w=0;h--;)l[h]===d&&++w;return w}var Xf=Jr(Of),Jf=Jr(Wf);function Qf(l){return"\\"+Pf[l]}function Vf(l,d){return l==null?s:l[d]}function qe(l){return Rf.test(l)}function na(l){return Nf.test(l)}function ea(l){for(var d,h=[];!(d=l.next()).done;)h.push(d.value);return h}function ei(l){var d=-1,h=Array(l.size);return l.forEach(function(w,L){h[++d]=[L,w]}),h}function Bu(l,d){return function(h){return l(d(h))}}function Ae(l,d){for(var h=-1,w=l.length,L=0,H=[];++h-1}function za(n,e){var t=this.__data__,r=Vt(t,n);return r<0?(++this.size,t.push([n,e])):t[r][1]=e,this}le.prototype.clear=Ba,le.prototype.delete=Fa,le.prototype.get=Ga,le.prototype.has=ka,le.prototype.set=za;function ce(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e=e?n:e)),n}function jn(n,e,t,r,i,o){var f,a=e&q,c=e&ln,g=e&_n;if(t&&(f=i?t(n,r,i,o):t(n)),f!==s)return f;if(!nn(n))return n;var p=N(n);if(p){if(f=ql(n),!a)return Ln(n,f)}else{var v=wn(n),x=v==Me||v==Qi;if(Re(n))return yo(n,a);if(v==ae||v==I||x&&!i){if(f=c||x?{}:Go(n),!a)return c?Dl(n,il(f,n)):Wl(n,Xu(f,n))}else{if(!J[v])return i?n:{};f=jl(n,v,a)}}o||(o=new ee);var b=o.get(n);if(b)return b;o.set(n,f),ps(n)?n.forEach(function(S){f.add(jn(S,e,t,S,n,o))}):ds(n)&&n.forEach(function(S,P){f.set(P,jn(S,e,t,P,n,o))});var E=g?c?Ci:Ii:c?Nn:hn,O=p?s:E(n);return Kn(O||n,function(S,P){O&&(P=S,S=n[P]),xt(f,P,jn(S,e,t,P,n,o))}),f}function ul(n){var e=hn(n);return function(t){return Ju(t,n,e)}}function Ju(n,e,t){var r=t.length;if(n==null)return!r;for(n=Y(n);r--;){var i=t[r],o=e[i],f=n[i];if(f===s&&!(i in n)||!o(f))return!1}return!0}function Qu(n,e,t){if(typeof n!="function")throw new $n(T);return St(function(){n.apply(s,t)},e)}function mt(n,e,t,r){var i=-1,o=Pt,f=!0,a=n.length,c=[],g=e.length;if(!a)return c;t&&(e=V(e,Pn(t))),r?(o=jr,f=!1):e.length>=j&&(o=ht,f=!1,e=new Pe(e));n:for(;++ii?0:i+t),r=r===s||r>i?i:M(r),r<0&&(r+=i),r=t>r?0:vs(r);t0&&t(a)?e>1?pn(a,e-1,t,r,i):be(i,a):r||(i[i.length]=a)}return i}var fi=Co(),eo=Co(!0);function oe(n,e){return n&&fi(n,e,hn)}function ai(n,e){return n&&eo(n,e,hn)}function er(n,e){return ye(e,function(t){return _e(n[t])})}function Be(n,e){e=Ce(e,n);for(var t=0,r=e.length;n!=null&&te}function fl(n,e){return n!=null&&$.call(n,e)}function al(n,e){return n!=null&&e in Y(n)}function ll(n,e,t){return n>=mn(e,t)&&n=120&&p.length>=120)?new Pe(f&&p):s}p=n[0];var v=-1,x=a[0];n:for(;++v-1;)a!==n&&qt.call(a,c,1),qt.call(n,c,1);return n}function ho(n,e){for(var t=n?e.length:0,r=t-1;t--;){var i=e[t];if(t==r||i!==o){var o=i;pe(i)?qt.call(n,i,1):mi(n,i)}}return n}function _i(n,e){return n+Yt(qu()*(e-n+1))}function Al(n,e,t,r){for(var i=-1,o=an(Zt((e-n)/(t||1)),0),f=h(o);o--;)f[r?o:++i]=n,n+=t;return f}function vi(n,e){var t="";if(!n||e<1||e>we)return t;do e%2&&(t+=n),e=Yt(e/2),e&&(n+=n);while(e);return t}function W(n,e){return Wi(Ho(n,e,Tn),n+"")}function El(n){return Yu(rt(n))}function Sl(n,e){var t=rt(n);return hr(t,Ue(e,0,t.length))}function bt(n,e,t,r){if(!nn(n))return n;e=Ce(e,n);for(var i=-1,o=e.length,f=o-1,a=n;a!=null&&++ii?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var o=h(i);++r>>1,f=n[o];f!==null&&!Bn(f)&&(t?f<=e:f=j){var g=e?null:Fl(n);if(g)return Bt(g);f=!1,i=ht,c=new Pe}else c=e?[]:a;n:for(;++r=r?n:Zn(n,e,t)}var wo=_a||function(n){return gn.clearTimeout(n)};function yo(n,e){if(e)return n.slice();var t=n.length,r=ku?ku(t):new n.constructor(t);return n.copy(r),r}function Ai(n){var e=new n.constructor(n.byteLength);return new Kt(e).set(new Kt(n)),e}function Nl(n,e){var t=e?Ai(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}function Tl(n){var e=new n.constructor(n.source,ru.exec(n));return e.lastIndex=n.lastIndex,e}function Ml(n){return vt?Y(vt.call(n)):{}}function bo(n,e){var t=e?Ai(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}function Ao(n,e){if(n!==e){var t=n!==s,r=n===null,i=n===n,o=Bn(n),f=e!==s,a=e===null,c=e===e,g=Bn(e);if(!a&&!g&&!o&&n>e||o&&f&&c&&!a&&!g||r&&f&&c||!t&&c||!i)return 1;if(!r&&!o&&!g&&n=a)return c;var g=t[r];return c*(g=="desc"?-1:1)}}return n.index-e.index}function Eo(n,e,t,r){for(var i=-1,o=n.length,f=t.length,a=-1,c=e.length,g=an(o-f,0),p=h(c+g),v=!r;++a1?t[i-1]:s,f=i>2?t[2]:s;for(o=n.length>3&&typeof o=="function"?(i--,o):s,f&&bn(t[0],t[1],f)&&(o=i<3?s:o,i=1),e=Y(e);++r-1?i[o?e[f]:f]:s}}function No(n){return ge(function(e){var t=e.length,r=t,i=qn.prototype.thru;for(n&&e.reverse();r--;){var o=e[r];if(typeof o!="function")throw new $n(T);if(i&&!f&&lr(o)=="wrapper")var f=new qn([],!0)}for(r=f?r:t;++r1&&F.reverse(),p&&ca))return!1;var g=o.get(n),p=o.get(e);if(g&&p)return g==e&&p==n;var v=-1,x=!0,b=t&Mn?new Pe:s;for(o.set(n,e),o.set(e,n);++v1?"& ":"")+e[r],e=e.join(t>2?", ":" "),n.replace(Ys,`{ /* [wrapped with `+e+`] */ -`)}function Yl(n){return N(n)||ke(n)||!!(Ku&&n&&n[Ku])}function pe(n,e){var t=typeof n;return e=e??we,!!e&&(t=="number"||t!="symbol"&&sf.test(n))&&n>-1&&n%1==0&&n0){if(++e>=Er)return arguments[0]}else e=0;return n.apply(s,arguments)}}function hr(n,e){var t=-1,r=n.length,i=r-1;for(e=e===s?r:e;++t1?n[e-1]:s;return t=typeof t=="function"?(n.pop(),t):s,es(n,t)});function ts(n){var e=u(n);return e.__chain__=!0,e}function oh(n,e){return e(n),n}function dr(n,e){return e(n)}var sh=ge(function(n){var e=n.length,t=e?n[0]:0,r=this.__wrapped__,i=function(o){return si(o,n)};return e>1||this.__actions__.length||!(r instanceof U)||!pe(t)?this.thru(i):(r=r.slice(t,+t+(e?1:0)),r.__actions__.push({func:dr,args:[i],thisArg:s}),new qn(r,this.__chain__).thru(function(o){return e&&!o.length&&o.push(s),o}))});function fh(){return ts(this)}function ah(){return new qn(this.value(),this.__chain__)}function lh(){this.__values__===s&&(this.__values__=_s(this.value()));var n=this.__index__>=this.__values__.length,e=n?s:this.__values__[this.__index__++];return{done:n,value:e}}function ch(){return this}function hh(n){for(var e,t=this;t instanceof Qt;){var r=Yo(t);r.__index__=0,r.__values__=s,e?i.__wrapped__=r:e=r;var i=r;t=t.__wrapped__}return i.__wrapped__=n,e}function dh(){var n=this.__wrapped__;if(n instanceof U){var e=n;return this.__actions__.length&&(e=new U(this)),e=e.reverse(),e.__actions__.push({func:dr,args:[Di],thisArg:s}),new qn(e,this.__chain__)}return this.thru(Di)}function gh(){return xo(this.__wrapped__,this.__actions__)}var ph=ur(function(n,e,t){$.call(n,t)?++n[t]:he(n,t,1)});function _h(n,e,t){var r=N(n)?Nu:ol;return t&&bn(n,e,t)&&(e=s),r(n,A(e,3))}function vh(n,e){var t=N(n)?ye:no;return t(n,A(e,3))}var xh=Ro(Xo),mh=Ro(Jo);function wh(n,e){return pn(gr(n,e),1)}function yh(n,e){return pn(gr(n,e),ze)}function bh(n,e,t){return t=t===s?1:M(t),pn(gr(n,e),t)}function rs(n,e){var t=N(n)?Kn:Se;return t(n,A(e,3))}function is(n,e){var t=N(n)?kf:Vu;return t(n,A(e,3))}var Ah=ur(function(n,e,t){$.call(n,t)?n[t].push(e):he(n,t,[e])});function Eh(n,e,t,r){n=Rn(n)?n:rt(n),t=t&&!r?M(t):0;var i=n.length;return t<0&&(t=an(i+t,0)),mr(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&$e(n,e,t)>-1}var Sh=W(function(n,e,t){var r=-1,i=typeof e=="function",o=Rn(n)?h(n.length):[];return Se(n,function(f){o[++r]=i?Dn(e,f,t):wt(f,e,t)}),o}),Ih=ur(function(n,e,t){he(n,t,e)});function gr(n,e){var t=N(n)?V:oo;return t(n,A(e,3))}function Ch(n,e,t,r){return n==null?[]:(N(e)||(e=e==null?[]:[e]),t=r?s:t,N(t)||(t=t==null?[]:[t]),lo(n,e,t))}var Lh=ur(function(n,e,t){n[t?0:1].push(e)},function(){return[[],[]]});function Rh(n,e,t){var r=N(n)?Zr:Wu,i=arguments.length<3;return r(n,A(e,4),t,i,Se)}function Nh(n,e,t){var r=N(n)?zf:Wu,i=arguments.length<3;return r(n,A(e,4),t,i,Vu)}function Th(n,e){var t=N(n)?ye:no;return t(n,vr(A(e,3)))}function Mh(n){var e=N(n)?Yu:El;return e(n)}function Oh(n,e,t){(t?bn(n,e,t):e===s)?e=1:e=M(e);var r=N(n)?el:Sl;return r(n,e)}function Wh(n){var e=N(n)?tl:Cl;return e(n)}function Dh(n){if(n==null)return 0;if(Rn(n))return mr(n)?je(n):n.length;var e=wn(n);return e==Qn||e==Vn?n.size:di(n).length}function Ph(n,e,t){var r=N(n)?Yr:Ll;return t&&bn(n,e,t)&&(e=s),r(n,A(e,3))}var Uh=W(function(n,e){if(n==null)return[];var t=e.length;return t>1&&bn(n,e[0],e[1])?e=[]:t>2&&bn(e[0],e[1],e[2])&&(e=[e[0]]),lo(n,pn(e,1),[])}),pr=va||function(){return gn.Date.now()};function Bh(n,e){if(typeof e!="function")throw new $n(T);return n=M(n),function(){if(--n<1)return e.apply(this,arguments)}}function us(n,e,t){return e=t?s:e,e=n&&e==null?n.length:e,de(n,cn,s,s,s,s,e)}function os(n,e){var t;if(typeof e!="function")throw new $n(T);return n=M(n),function(){return--n>0&&(t=e.apply(this,arguments)),n<=1&&(e=s),t}}var Ui=W(function(n,e,t){var r=X;if(t.length){var i=Ae(t,et(Ui));r|=dn}return de(n,r,e,t,i)}),ss=W(function(n,e,t){var r=X|k;if(t.length){var i=Ae(t,et(ss));r|=dn}return de(e,r,n,t,i)});function fs(n,e,t){e=t?s:e;var r=de(n,vn,s,s,s,s,s,e);return r.placeholder=fs.placeholder,r}function as(n,e,t){e=t?s:e;var r=de(n,Sn,s,s,s,s,s,e);return r.placeholder=as.placeholder,r}function ls(n,e,t){var r,i,o,f,a,c,g=0,p=!1,_=!1,x=!0;if(typeof n!="function")throw new $n(T);e=Xn(e)||0,nn(t)&&(p=!!t.leading,_="maxWait"in t,o=_?an(Xn(t.maxWait)||0,e):o,x="trailing"in t?!!t.trailing:x);function b(sn){var re=r,xe=i;return r=i=s,g=sn,f=n.apply(xe,re),f}function E(sn){return g=sn,a=St(P,e),p?b(sn):f}function O(sn){var re=sn-c,xe=sn-g,Rs=e-re;return _?mn(Rs,o-xe):Rs}function S(sn){var re=sn-c,xe=sn-g;return c===s||re>=e||re<0||_&&xe>=o}function P(){var sn=pr();if(S(sn))return F(sn);a=St(P,O(sn))}function F(sn){return a=s,x&&r?b(sn):(r=i=s,f)}function Fn(){a!==s&&wo(a),g=0,r=c=i=a=s}function An(){return a===s?f:F(pr())}function Gn(){var sn=pr(),re=S(sn);if(r=arguments,i=this,c=sn,re){if(a===s)return E(c);if(_)return wo(a),a=St(P,e),b(c)}return a===s&&(a=St(P,e)),f}return Gn.cancel=Fn,Gn.flush=An,Gn}var Fh=W(function(n,e){return Qu(n,1,e)}),Gh=W(function(n,e,t){return Qu(n,Xn(e)||0,t)});function kh(n){return de(n,Wn)}function _r(n,e){if(typeof n!="function"||e!=null&&typeof e!="function")throw new $n(T);var t=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=t.cache;if(o.has(i))return o.get(i);var f=n.apply(this,r);return t.cache=o.set(i,f)||o,f};return t.cache=new(_r.Cache||ce),t}_r.Cache=ce;function vr(n){if(typeof n!="function")throw new $n(T);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function zh(n){return os(2,n)}var Hh=Rl(function(n,e){e=e.length==1&&N(e[0])?V(e[0],Pn(A())):V(pn(e,1),Pn(A()));var t=e.length;return W(function(r){for(var i=-1,o=mn(r.length,t);++i=e}),ke=ro(function(){return arguments}())?ro:function(n){return tn(n)&&$.call(n,"callee")&&!Hu.call(n,"callee")},N=h.isArray,id=Eu?Pn(Eu):hl;function Rn(n){return n!=null&&xr(n.length)&&!_e(n)}function on(n){return tn(n)&&Rn(n)}function ud(n){return n===!0||n===!1||tn(n)&&yn(n)==Jn}var Re=ma||Yi,od=Su?Pn(Su):dl;function sd(n){return tn(n)&&n.nodeType===1&&!It(n)}function fd(n){if(n==null)return!0;if(Rn(n)&&(N(n)||typeof n=="string"||typeof n.splice=="function"||Re(n)||tt(n)||ke(n)))return!n.length;var e=wn(n);if(e==Qn||e==Vn)return!n.size;if(Et(n))return!di(n).length;for(var t in n)if($.call(n,t))return!1;return!0}function ad(n,e){return yt(n,e)}function ld(n,e,t){t=typeof t=="function"?t:s;var r=t?t(n,e):s;return r===s?yt(n,e,s,t):!!r}function Fi(n){if(!tn(n))return!1;var e=yn(n);return e==Cn||e==ue||typeof n.message=="string"&&typeof n.name=="string"&&!It(n)}function cd(n){return typeof n=="number"&&$u(n)}function _e(n){if(!nn(n))return!1;var e=yn(n);return e==Me||e==Qi||e==xn||e==Ws}function hs(n){return typeof n=="number"&&n==M(n)}function xr(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=we}function nn(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}function tn(n){return n!=null&&typeof n=="object"}var ds=Iu?Pn(Iu):pl;function hd(n,e){return n===e||hi(n,e,Ri(e))}function dd(n,e,t){return t=typeof t=="function"?t:s,hi(n,e,Ri(e),t)}function gd(n){return gs(n)&&n!=+n}function pd(n){if(Ql(n))throw new L(R);return io(n)}function _d(n){return n===null}function vd(n){return n==null}function gs(n){return typeof n=="number"||tn(n)&&yn(n)==st}function It(n){if(!tn(n)||yn(n)!=ae)return!1;var e=$t(n);if(e===null)return!0;var t=$.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&kt.call(t)==da}var Gi=Cu?Pn(Cu):_l;function xd(n){return hs(n)&&n>=-9007199254740991&&n<=we}var ps=Lu?Pn(Lu):vl;function mr(n){return typeof n=="string"||!N(n)&&tn(n)&&yn(n)==at}function Bn(n){return typeof n=="symbol"||tn(n)&&yn(n)==Mt}var tt=Ru?Pn(Ru):xl;function md(n){return n===s}function wd(n){return tn(n)&&wn(n)==lt}function yd(n){return tn(n)&&yn(n)==Ps}var bd=ar(gi),Ad=ar(function(n,e){return n<=e});function _s(n){if(!n)return[];if(Rn(n))return mr(n)?ne(n):Ln(n);if(dt&&n[dt])return ea(n[dt]());var e=wn(n),t=e==Qn?ei:e==Vn?Bt:rt;return t(n)}function ve(n){if(!n)return n===0?n:0;if(n=Xn(n),n===ze||n===-1/0){var e=n<0?-1:1;return e*Ir}return n===n?n:0}function M(n){var e=ve(n),t=e%1;return e===e?t?e-t:e:0}function vs(n){return n?Ue(M(n),0,kn):0}function Xn(n){if(typeof n=="number")return n;if(Bn(n))return Te;if(nn(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=nn(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=Du(n);var t=rf.test(n);return t||of.test(n)?Bf(n.slice(2),t?2:8):tf.test(n)?Te:+n}function xs(n){return se(n,Nn(n))}function Ed(n){return n?Ue(M(n),-9007199254740991,we):n===0?n:0}function K(n){return n==null?"":Un(n)}var Sd=Ve(function(n,e){if(Et(e)||Rn(e)){se(e,hn(e),n);return}for(var t in e)$.call(e,t)&&xt(n,t,e[t])}),ms=Ve(function(n,e){se(e,Nn(e),n)}),wr=Ve(function(n,e,t,r){se(e,Nn(e),n,r)}),Id=Ve(function(n,e,t,r){se(e,hn(e),n,r)}),Cd=ge(si);function Ld(n,e){var t=Qe(n);return e==null?t:Xu(t,e)}var Rd=W(function(n,e){n=Y(n);var t=-1,r=e.length,i=r>2?e[2]:s;for(i&&bn(e[0],e[1],i)&&(r=1);++t1),o}),se(n,Ci(n),t),r&&(t=jn(t,q|ln|_n,Gl));for(var i=e.length;i--;)mi(t,e[i]);return t});function jd(n,e){return ys(n,vr(A(e)))}var Zd=ge(function(n,e){return n==null?{}:yl(n,e)});function ys(n,e){if(n==null)return{};var t=V(Ci(n),function(r){return[r]});return e=A(e),co(n,t,function(r,i){return e(r,i[0])})}function Yd(n,e,t){e=Ce(e,n);var r=-1,i=e.length;for(i||(i=1,n=s);++re){var r=n;n=e,e=r}if(t||n%1||e%1){var i=qu();return mn(n+i*(e-n+Uf("1e-"+((i+"").length-1))),e)}return _i(n,e)}var o0=nt(function(n,e,t){return e=e.toLowerCase(),n+(t?Es(e):e)});function Es(n){return Hi(K(n).toLowerCase())}function Ss(n){return n=K(n),n&&n.replace(ff,Xf).replace(Cf,"")}function s0(n,e,t){n=K(n),e=Un(e);var r=n.length;t=t===s?r:Ue(M(t),0,r);var i=t;return t-=e.length,t>=0&&n.slice(t,i)==e}function f0(n){return n=K(n),n&&ks.test(n)?n.replace(eu,Jf):n}function a0(n){return n=K(n),n&&js.test(n)?n.replace(Br,"\\$&"):n}var l0=nt(function(n,e,t){return n+(t?"-":"")+e.toLowerCase()}),c0=nt(function(n,e,t){return n+(t?" ":"")+e.toLowerCase()}),h0=Lo("toLowerCase");function d0(n,e,t){n=K(n),e=M(e);var r=e?je(n):0;if(!e||r>=e)return n;var i=(e-r)/2;return fr(Yt(i),t)+n+fr(Zt(i),t)}function g0(n,e,t){n=K(n),e=M(e);var r=e?je(n):0;return e&&r>>0,t?(n=K(n),n&&(typeof e=="string"||e!=null&&!Gi(e))&&(e=Un(e),!e&&qe(n))?Le(ne(n),0,t):n.split(e,t)):[]}var y0=nt(function(n,e,t){return n+(t?" ":"")+Hi(e)});function b0(n,e,t){return n=K(n),t=t==null?0:Ue(M(t),0,n.length),e=Un(e),n.slice(t,t+e.length)==e}function A0(n,e,t){var r=u.templateSettings;t&&bn(n,e,t)&&(e=s),n=K(n),e=wr({},e,r,Do);var i=wr({},e.imports,r.imports,Do),o=hn(i),f=ni(i,o),a,c,g=0,p=e.interpolate||Ot,_="__p += '",x=ti((e.escape||Ot).source+"|"+p.source+"|"+(p===tu?ef:Ot).source+"|"+(e.evaluate||Ot).source+"|$","g"),b="//# sourceURL="+($.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Mf+"]")+` -`;n.replace(x,function(S,P,F,Fn,An,Gn){return F||(F=Fn),_+=n.slice(g,Gn).replace(af,Qf),P&&(a=!0,_+=`' + +`)}function Yl(n){return N(n)||ke(n)||!!(Ku&&n&&n[Ku])}function pe(n,e){var t=typeof n;return e=e??we,!!e&&(t=="number"||t!="symbol"&&sf.test(n))&&n>-1&&n%1==0&&n0){if(++e>=Er)return arguments[0]}else e=0;return n.apply(s,arguments)}}function hr(n,e){var t=-1,r=n.length,i=r-1;for(e=e===s?r:e;++t1?n[e-1]:s;return t=typeof t=="function"?(n.pop(),t):s,es(n,t)});function ts(n){var e=u(n);return e.__chain__=!0,e}function oh(n,e){return e(n),n}function dr(n,e){return e(n)}var sh=ge(function(n){var e=n.length,t=e?n[0]:0,r=this.__wrapped__,i=function(o){return si(o,n)};return e>1||this.__actions__.length||!(r instanceof U)||!pe(t)?this.thru(i):(r=r.slice(t,+t+(e?1:0)),r.__actions__.push({func:dr,args:[i],thisArg:s}),new qn(r,this.__chain__).thru(function(o){return e&&!o.length&&o.push(s),o}))});function fh(){return ts(this)}function ah(){return new qn(this.value(),this.__chain__)}function lh(){this.__values__===s&&(this.__values__=_s(this.value()));var n=this.__index__>=this.__values__.length,e=n?s:this.__values__[this.__index__++];return{done:n,value:e}}function ch(){return this}function hh(n){for(var e,t=this;t instanceof Qt;){var r=Yo(t);r.__index__=0,r.__values__=s,e?i.__wrapped__=r:e=r;var i=r;t=t.__wrapped__}return i.__wrapped__=n,e}function dh(){var n=this.__wrapped__;if(n instanceof U){var e=n;return this.__actions__.length&&(e=new U(this)),e=e.reverse(),e.__actions__.push({func:dr,args:[Di],thisArg:s}),new qn(e,this.__chain__)}return this.thru(Di)}function gh(){return xo(this.__wrapped__,this.__actions__)}var ph=ur(function(n,e,t){$.call(n,t)?++n[t]:he(n,t,1)});function _h(n,e,t){var r=N(n)?Nu:ol;return t&&bn(n,e,t)&&(e=s),r(n,A(e,3))}function vh(n,e){var t=N(n)?ye:no;return t(n,A(e,3))}var xh=Ro(Xo),mh=Ro(Jo);function wh(n,e){return pn(gr(n,e),1)}function yh(n,e){return pn(gr(n,e),ze)}function bh(n,e,t){return t=t===s?1:M(t),pn(gr(n,e),t)}function rs(n,e){var t=N(n)?Kn:Se;return t(n,A(e,3))}function is(n,e){var t=N(n)?kf:Vu;return t(n,A(e,3))}var Ah=ur(function(n,e,t){$.call(n,t)?n[t].push(e):he(n,t,[e])});function Eh(n,e,t,r){n=Rn(n)?n:rt(n),t=t&&!r?M(t):0;var i=n.length;return t<0&&(t=an(i+t,0)),mr(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&$e(n,e,t)>-1}var Sh=W(function(n,e,t){var r=-1,i=typeof e=="function",o=Rn(n)?h(n.length):[];return Se(n,function(f){o[++r]=i?Dn(e,f,t):wt(f,e,t)}),o}),Ih=ur(function(n,e,t){he(n,t,e)});function gr(n,e){var t=N(n)?V:oo;return t(n,A(e,3))}function Ch(n,e,t,r){return n==null?[]:(N(e)||(e=e==null?[]:[e]),t=r?s:t,N(t)||(t=t==null?[]:[t]),lo(n,e,t))}var Lh=ur(function(n,e,t){n[t?0:1].push(e)},function(){return[[],[]]});function Rh(n,e,t){var r=N(n)?Zr:Wu,i=arguments.length<3;return r(n,A(e,4),t,i,Se)}function Nh(n,e,t){var r=N(n)?zf:Wu,i=arguments.length<3;return r(n,A(e,4),t,i,Vu)}function Th(n,e){var t=N(n)?ye:no;return t(n,vr(A(e,3)))}function Mh(n){var e=N(n)?Yu:El;return e(n)}function Oh(n,e,t){(t?bn(n,e,t):e===s)?e=1:e=M(e);var r=N(n)?el:Sl;return r(n,e)}function Wh(n){var e=N(n)?tl:Cl;return e(n)}function Dh(n){if(n==null)return 0;if(Rn(n))return mr(n)?je(n):n.length;var e=wn(n);return e==Qn||e==Vn?n.size:di(n).length}function Ph(n,e,t){var r=N(n)?Yr:Ll;return t&&bn(n,e,t)&&(e=s),r(n,A(e,3))}var Uh=W(function(n,e){if(n==null)return[];var t=e.length;return t>1&&bn(n,e[0],e[1])?e=[]:t>2&&bn(e[0],e[1],e[2])&&(e=[e[0]]),lo(n,pn(e,1),[])}),pr=va||function(){return gn.Date.now()};function Bh(n,e){if(typeof e!="function")throw new $n(T);return n=M(n),function(){if(--n<1)return e.apply(this,arguments)}}function us(n,e,t){return e=t?s:e,e=n&&e==null?n.length:e,de(n,cn,s,s,s,s,e)}function os(n,e){var t;if(typeof e!="function")throw new $n(T);return n=M(n),function(){return--n>0&&(t=e.apply(this,arguments)),n<=1&&(e=s),t}}var Ui=W(function(n,e,t){var r=X;if(t.length){var i=Ae(t,et(Ui));r|=dn}return de(n,r,e,t,i)}),ss=W(function(n,e,t){var r=X|k;if(t.length){var i=Ae(t,et(ss));r|=dn}return de(e,r,n,t,i)});function fs(n,e,t){e=t?s:e;var r=de(n,vn,s,s,s,s,s,e);return r.placeholder=fs.placeholder,r}function as(n,e,t){e=t?s:e;var r=de(n,Sn,s,s,s,s,s,e);return r.placeholder=as.placeholder,r}function ls(n,e,t){var r,i,o,f,a,c,g=0,p=!1,v=!1,x=!0;if(typeof n!="function")throw new $n(T);e=Xn(e)||0,nn(t)&&(p=!!t.leading,v="maxWait"in t,o=v?an(Xn(t.maxWait)||0,e):o,x="trailing"in t?!!t.trailing:x);function b(sn){var re=r,xe=i;return r=i=s,g=sn,f=n.apply(xe,re),f}function E(sn){return g=sn,a=St(P,e),p?b(sn):f}function O(sn){var re=sn-c,xe=sn-g,Rs=e-re;return v?mn(Rs,o-xe):Rs}function S(sn){var re=sn-c,xe=sn-g;return c===s||re>=e||re<0||v&&xe>=o}function P(){var sn=pr();if(S(sn))return F(sn);a=St(P,O(sn))}function F(sn){return a=s,x&&r?b(sn):(r=i=s,f)}function Fn(){a!==s&&wo(a),g=0,r=c=i=a=s}function An(){return a===s?f:F(pr())}function Gn(){var sn=pr(),re=S(sn);if(r=arguments,i=this,c=sn,re){if(a===s)return E(c);if(v)return wo(a),a=St(P,e),b(c)}return a===s&&(a=St(P,e)),f}return Gn.cancel=Fn,Gn.flush=An,Gn}var Fh=W(function(n,e){return Qu(n,1,e)}),Gh=W(function(n,e,t){return Qu(n,Xn(e)||0,t)});function kh(n){return de(n,Wn)}function _r(n,e){if(typeof n!="function"||e!=null&&typeof e!="function")throw new $n(T);var t=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=t.cache;if(o.has(i))return o.get(i);var f=n.apply(this,r);return t.cache=o.set(i,f)||o,f};return t.cache=new(_r.Cache||ce),t}_r.Cache=ce;function vr(n){if(typeof n!="function")throw new $n(T);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function zh(n){return os(2,n)}var Hh=Rl(function(n,e){e=e.length==1&&N(e[0])?V(e[0],Pn(A())):V(pn(e,1),Pn(A()));var t=e.length;return W(function(r){for(var i=-1,o=mn(r.length,t);++i=e}),ke=ro(function(){return arguments}())?ro:function(n){return tn(n)&&$.call(n,"callee")&&!Hu.call(n,"callee")},N=h.isArray,id=Eu?Pn(Eu):hl;function Rn(n){return n!=null&&xr(n.length)&&!_e(n)}function on(n){return tn(n)&&Rn(n)}function ud(n){return n===!0||n===!1||tn(n)&&yn(n)==Jn}var Re=ma||Yi,od=Su?Pn(Su):dl;function sd(n){return tn(n)&&n.nodeType===1&&!It(n)}function fd(n){if(n==null)return!0;if(Rn(n)&&(N(n)||typeof n=="string"||typeof n.splice=="function"||Re(n)||tt(n)||ke(n)))return!n.length;var e=wn(n);if(e==Qn||e==Vn)return!n.size;if(Et(n))return!di(n).length;for(var t in n)if($.call(n,t))return!1;return!0}function ad(n,e){return yt(n,e)}function ld(n,e,t){t=typeof t=="function"?t:s;var r=t?t(n,e):s;return r===s?yt(n,e,s,t):!!r}function Fi(n){if(!tn(n))return!1;var e=yn(n);return e==Cn||e==ue||typeof n.message=="string"&&typeof n.name=="string"&&!It(n)}function cd(n){return typeof n=="number"&&$u(n)}function _e(n){if(!nn(n))return!1;var e=yn(n);return e==Me||e==Qi||e==xn||e==Ws}function hs(n){return typeof n=="number"&&n==M(n)}function xr(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=we}function nn(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}function tn(n){return n!=null&&typeof n=="object"}var ds=Iu?Pn(Iu):pl;function hd(n,e){return n===e||hi(n,e,Ri(e))}function dd(n,e,t){return t=typeof t=="function"?t:s,hi(n,e,Ri(e),t)}function gd(n){return gs(n)&&n!=+n}function pd(n){if(Ql(n))throw new L(R);return io(n)}function _d(n){return n===null}function vd(n){return n==null}function gs(n){return typeof n=="number"||tn(n)&&yn(n)==st}function It(n){if(!tn(n)||yn(n)!=ae)return!1;var e=$t(n);if(e===null)return!0;var t=$.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&kt.call(t)==da}var Gi=Cu?Pn(Cu):_l;function xd(n){return hs(n)&&n>=-9007199254740991&&n<=we}var ps=Lu?Pn(Lu):vl;function mr(n){return typeof n=="string"||!N(n)&&tn(n)&&yn(n)==at}function Bn(n){return typeof n=="symbol"||tn(n)&&yn(n)==Mt}var tt=Ru?Pn(Ru):xl;function md(n){return n===s}function wd(n){return tn(n)&&wn(n)==lt}function yd(n){return tn(n)&&yn(n)==Ps}var bd=ar(gi),Ad=ar(function(n,e){return n<=e});function _s(n){if(!n)return[];if(Rn(n))return mr(n)?ne(n):Ln(n);if(dt&&n[dt])return ea(n[dt]());var e=wn(n),t=e==Qn?ei:e==Vn?Bt:rt;return t(n)}function ve(n){if(!n)return n===0?n:0;if(n=Xn(n),n===ze||n===-1/0){var e=n<0?-1:1;return e*Ir}return n===n?n:0}function M(n){var e=ve(n),t=e%1;return e===e?t?e-t:e:0}function vs(n){return n?Ue(M(n),0,kn):0}function Xn(n){if(typeof n=="number")return n;if(Bn(n))return Te;if(nn(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=nn(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=Du(n);var t=rf.test(n);return t||of.test(n)?Bf(n.slice(2),t?2:8):tf.test(n)?Te:+n}function xs(n){return se(n,Nn(n))}function Ed(n){return n?Ue(M(n),-9007199254740991,we):n===0?n:0}function K(n){return n==null?"":Un(n)}var Sd=Ve(function(n,e){if(Et(e)||Rn(e)){se(e,hn(e),n);return}for(var t in e)$.call(e,t)&&xt(n,t,e[t])}),ms=Ve(function(n,e){se(e,Nn(e),n)}),wr=Ve(function(n,e,t,r){se(e,Nn(e),n,r)}),Id=Ve(function(n,e,t,r){se(e,hn(e),n,r)}),Cd=ge(si);function Ld(n,e){var t=Qe(n);return e==null?t:Xu(t,e)}var Rd=W(function(n,e){n=Y(n);var t=-1,r=e.length,i=r>2?e[2]:s;for(i&&bn(e[0],e[1],i)&&(r=1);++t1),o}),se(n,Ci(n),t),r&&(t=jn(t,q|ln|_n,Gl));for(var i=e.length;i--;)mi(t,e[i]);return t});function jd(n,e){return ys(n,vr(A(e)))}var Zd=ge(function(n,e){return n==null?{}:yl(n,e)});function ys(n,e){if(n==null)return{};var t=V(Ci(n),function(r){return[r]});return e=A(e),co(n,t,function(r,i){return e(r,i[0])})}function Yd(n,e,t){e=Ce(e,n);var r=-1,i=e.length;for(i||(i=1,n=s);++re){var r=n;n=e,e=r}if(t||n%1||e%1){var i=qu();return mn(n+i*(e-n+Uf("1e-"+((i+"").length-1))),e)}return _i(n,e)}var o0=nt(function(n,e,t){return e=e.toLowerCase(),n+(t?Es(e):e)});function Es(n){return Hi(K(n).toLowerCase())}function Ss(n){return n=K(n),n&&n.replace(ff,Xf).replace(Cf,"")}function s0(n,e,t){n=K(n),e=Un(e);var r=n.length;t=t===s?r:Ue(M(t),0,r);var i=t;return t-=e.length,t>=0&&n.slice(t,i)==e}function f0(n){return n=K(n),n&&ks.test(n)?n.replace(eu,Jf):n}function a0(n){return n=K(n),n&&js.test(n)?n.replace(Br,"\\$&"):n}var l0=nt(function(n,e,t){return n+(t?"-":"")+e.toLowerCase()}),c0=nt(function(n,e,t){return n+(t?" ":"")+e.toLowerCase()}),h0=Lo("toLowerCase");function d0(n,e,t){n=K(n),e=M(e);var r=e?je(n):0;if(!e||r>=e)return n;var i=(e-r)/2;return fr(Yt(i),t)+n+fr(Zt(i),t)}function g0(n,e,t){n=K(n),e=M(e);var r=e?je(n):0;return e&&r>>0,t?(n=K(n),n&&(typeof e=="string"||e!=null&&!Gi(e))&&(e=Un(e),!e&&qe(n))?Le(ne(n),0,t):n.split(e,t)):[]}var y0=nt(function(n,e,t){return n+(t?" ":"")+Hi(e)});function b0(n,e,t){return n=K(n),t=t==null?0:Ue(M(t),0,n.length),e=Un(e),n.slice(t,t+e.length)==e}function A0(n,e,t){var r=u.templateSettings;t&&bn(n,e,t)&&(e=s),n=K(n),e=wr({},e,r,Do);var i=wr({},e.imports,r.imports,Do),o=hn(i),f=ni(i,o),a,c,g=0,p=e.interpolate||Ot,v="__p += '",x=ti((e.escape||Ot).source+"|"+p.source+"|"+(p===tu?ef:Ot).source+"|"+(e.evaluate||Ot).source+"|$","g"),b="//# sourceURL="+($.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Mf+"]")+` +`;n.replace(x,function(S,P,F,Fn,An,Gn){return F||(F=Fn),v+=n.slice(g,Gn).replace(af,Qf),P&&(a=!0,v+=`' + __e(`+P+`) + -'`),An&&(c=!0,_+=`'; +'`),An&&(c=!0,v+=`'; `+An+`; -__p += '`),F&&(_+=`' + +__p += '`),F&&(v+=`' + ((__t = (`+F+`)) == null ? '' : __t) + -'`),g=Gn+S.length,S}),_+=`'; -`;var E=$.call(e,"variable")&&e.variable;if(!E)_=`with (obj) { -`+_+` +'`),g=Gn+S.length,S}),v+=`'; +`;var E=$.call(e,"variable")&&e.variable;if(!E)v=`with (obj) { +`+v+` } -`;else if(Vs.test(E))throw new L(Z);_=(c?_.replace(Us,""):_).replace(Bs,"$1").replace(Fs,"$1;"),_="function("+(E||"obj")+`) { +`;else if(Vs.test(E))throw new L(Z);v=(c?v.replace(Us,""):v).replace(Bs,"$1").replace(Fs,"$1;"),v="function("+(E||"obj")+`) { `+(E?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(a?", __e = _.escape":"")+(c?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; -`)+_+`return __p -}`;var O=Cs(function(){return H(o,b+"return "+_).apply(s,f)});if(O.source=_,Fi(O))throw O;return O}function E0(n){return K(n).toLowerCase()}function S0(n){return K(n).toUpperCase()}function I0(n,e,t){if(n=K(n),n&&(t||e===s))return Du(n);if(!n||!(e=Un(e)))return n;var r=ne(n),i=ne(e),o=Pu(r,i),f=Uu(r,i)+1;return Le(r,o,f).join("")}function C0(n,e,t){if(n=K(n),n&&(t||e===s))return n.slice(0,Fu(n)+1);if(!n||!(e=Un(e)))return n;var r=ne(n),i=Uu(r,ne(e))+1;return Le(r,0,i).join("")}function L0(n,e,t){if(n=K(n),n&&(t||e===s))return n.replace(Fr,"");if(!n||!(e=Un(e)))return n;var r=ne(n),i=Pu(r,ne(e));return Le(r,i).join("")}function R0(n,e){var t=In,r=ot;if(nn(e)){var i="separator"in e?e.separator:i;t="length"in e?M(e.length):t,r="omission"in e?Un(e.omission):r}n=K(n);var o=n.length;if(qe(n)){var f=ne(n);o=f.length}if(t>=o)return n;var a=t-je(r);if(a<1)return r;var c=f?Le(f,0,a).join(""):n.slice(0,a);if(i===s)return c+r;if(f&&(a+=c.length-a),Gi(i)){if(n.slice(a).search(i)){var g,p=c;for(i.global||(i=ti(i.source,K(ru.exec(i))+"g")),i.lastIndex=0;g=i.exec(p);)var _=g.index;c=c.slice(0,_===s?a:_)}}else if(n.indexOf(Un(i),a)!=a){var x=c.lastIndexOf(i);x>-1&&(c=c.slice(0,x))}return c+r}function N0(n){return n=K(n),n&&Gs.test(n)?n.replace(nu,ua):n}var T0=nt(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Hi=Lo("toUpperCase");function Is(n,e,t){return n=K(n),e=t?s:e,e===s?na(n)?fa(n):$f(n):n.match(e)||[]}var Cs=W(function(n,e){try{return Dn(n,s,e)}catch(t){return Fi(t)?t:new L(t)}}),M0=ge(function(n,e){return Kn(e,function(t){t=fe(t),he(n,t,Ui(n[t],n))}),n});function O0(n){var e=n==null?0:n.length,t=A();return n=e?V(n,function(r){if(typeof r[1]!="function")throw new $n(T);return[t(r[0]),r[1]]}):[],W(function(r){for(var i=-1;++iwe)return[];var t=kn,r=mn(n,kn);e=A(e),n-=kn;for(var i=Vr(r,e);++t0||e<0)?new U(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==s&&(e=M(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},U.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},U.prototype.toArray=function(){return this.take(kn)},oe(U.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],o=r||/^find/.test(e);i&&(u.prototype[e]=function(){var f=this.__wrapped__,a=r?[1]:arguments,c=f instanceof U,g=a[0],p=c||N(f),_=function(P){var F=i.apply(u,be([P],a));return r&&x?F[0]:F};p&&t&&typeof g=="function"&&g.length!=1&&(c=p=!1);var x=this.__chain__,b=!!this.__actions__.length,E=o&&!x,O=c&&!b;if(!o&&p){f=O?f:new U(this);var S=n.apply(f,a);return S.__actions__.push({func:dr,args:[_],thisArg:s}),new qn(S,x)}return E&&O?n.apply(this,a):(S=this.thru(_),E?r?S.value()[0]:S.value():S)})}),Kn(["pop","push","shift","sort","splice","unshift"],function(n){var e=Ft[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return e.apply(N(o)?o:[],i)}return this[t](function(f){return e.apply(N(f)?f:[],i)})}}),oe(U.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";$.call(Je,r)||(Je[r]=[]),Je[r].push({name:e,func:t})}}),Je[or(s,k).name]=[{name:"wrapper",func:s}],U.prototype.clone=Na,U.prototype.reverse=Ta,U.prototype.value=Ma,u.prototype.at=sh,u.prototype.chain=fh,u.prototype.commit=ah,u.prototype.next=lh,u.prototype.plant=hh,u.prototype.reverse=dh,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=gh,u.prototype.first=u.prototype.head,dt&&(u.prototype[dt]=ch),u},Ze=aa();Oe?((Oe.exports=Ze)._=Ze,$r._=Ze):gn._=Ze}).call(Ct)})(br,br.exports);var Ar=br.exports;function Qg(m=!0){D.useEffect(()=>{if(!m)return;const C=Ar.debounce(s=>{document.documentElement.style.setProperty("--mouse-x",`${s.clientX}px`),document.documentElement.style.setProperty("--mouse-y",`${s.clientY}px`)},16);return document.addEventListener("mousemove",C),()=>{C.cancel(),document.removeEventListener("mousemove",C)}},[m])}function Vg(m={},C=!0){const[s,B]=D.useState(!1),[j,R]=D.useState({width:window.innerWidth/3,height:window.innerHeight,top:0});D.useCallback(Ar.debounce(Z=>{s&&R(y=>{const en=window.innerWidth-Z.clientX,G=Math.min(Math.max(m.minWidth||300,en),m.maxWidth||window.innerWidth*.8);return{...y,width:G}})},16),[s,m]);const T=D.useCallback(Z=>{R(y=>{const en=y.height-Z,G=y.top+Z;return{...y,height:Math.min(Math.max(m.minHeight||300,en),m.maxHeight||window.innerHeight),top:Math.max(0,G)}})},[m]);return D.useEffect(()=>{if(!C||!s)return;const Z=Ar.debounce(en=>{R(G=>{const q=window.innerWidth-en.clientX,ln=Math.min(Math.max(m.minWidth||300,q),m.maxWidth||window.innerWidth*.8);return{...G,width:ln}})},16),y=()=>B(!1);return document.addEventListener("mousemove",Z),document.addEventListener("mouseup",y),()=>{Z.cancel(),document.removeEventListener("mousemove",Z),document.removeEventListener("mouseup",y)}},[s,m,C]),{isResizing:s,setIsResizing:B,dimensions:j,handleHeightResize:T}}function np(m=!0){const{dispatch:C}=Ts();D.useEffect(()=>{if(!m)return;const s=()=>{const B=ie.canvas.selected_nodes;if(Object.keys(B??{}).length){const j=Object.values(B)[0];C({type:"SET_SELECTED_NODE",payload:j})}else C({type:"SET_SELECTED_NODE",payload:null})};return document.addEventListener("click",s),()=>{document.removeEventListener("click",s)}},[C,m])}function op({onClose:m,visible:C=!0,triggerUsage:s=!1,onUsageTriggered:B}){const{state:j,dispatch:R}=Ts(),{messages:T,installedNodes:Z,loading:y,sessionId:en,selectedNode:G}=j,q=D.useRef(null),[ln,_n]=D.useState(""),[z,Mn]=D.useState(""),[X,k]=D.useState(window.innerWidth/3),[En,vn]=D.useState(!1),[Sn,dn]=D.useState([]),[On,cn]=D.useState("gpt-4o-mini");D.useState(window.innerHeight),D.useState(0),Qg(C),np(C);const{isResizing:rn,setIsResizing:Wn,dimensions:In,handleHeightResize:ot}=Vg({minWidth:300,maxWidth:window.innerWidth*.8,minHeight:300,maxHeight:window.innerHeight},C);D.useEffect(()=>{q.current&&(q.current.scrollTop=q.current.scrollHeight)},[T]),D.useEffect(()=>{(async()=>{console.log("[WorkflowChat] Fetching installed nodes");const un=await Jg();console.log("[WorkflowChat] Received installed nodes:",un),R({type:"SET_INSTALLED_NODES",payload:un})})()},[]);const Er=async I=>{try{const un=await Ji.fetchMessages(I);R({type:"SET_MESSAGES",payload:un})}catch(un){console.error("Error fetching messages:",un)}};D.useEffect(()=>{let I=localStorage.getItem("sessionId");I?(R({type:"SET_SESSION_ID",payload:I}),Er(I)):(I=me(),R({type:"SET_SESSION_ID",payload:I}),localStorage.setItem("sessionId",I))},[]);const Rt=it.useCallback(I=>{if(!En)return;const un=window.innerWidth-I.clientX,xn=Math.min(Math.max(300,un),window.innerWidth*.8);k(xn)},[En]),Ne=it.useMemo(()=>Ar.debounce(Rt,16),[Rt]);D.useEffect(()=>(En&&(document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",Tt)),()=>{document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",Tt),Ne.cancel()}),[En,Ne]);const Sr=I=>{_n(I.target.value)},Nt=async()=>{if(R({type:"SET_LOADING",payload:!0}),ln.trim()===""&&!G||!en)return;Mn(ln);const I=me(),un={id:me(),role:"user",content:ln,trace_id:I};R({type:"ADD_MESSAGE",payload:un}),_n("");try{const xn={type:"model_select",data:[On]},Jn=me();let zn=!0;for await(const ue of Ji.streamInvokeServer(en,ln,Sn.map(Cn=>Cn.file),null,xn,I)){const Cn={id:Jn,role:"ai",content:JSON.stringify(ue),type:ue.type,format:ue.format,finished:ue.finished,name:"Assistant"};zn?(R({type:"ADD_MESSAGE",payload:Cn}),zn=!1):R({type:"UPDATE_MESSAGE",payload:Cn}),ue.finished&&R({type:"SET_LOADING",payload:!1})}}catch(xn){console.error("Error sending message:",xn),R({type:"SET_LOADING",payload:!1})}finally{dn([])}},ze=I=>{I.metaKey&&I.key==="Enter"&&Nt()},we=()=>{R({type:"CLEAR_MESSAGES"}),localStorage.removeItem("sessionId");const I=me();R({type:"SET_SESSION_ID",payload:I}),localStorage.setItem("sessionId",I)},Ir=I=>{_n(I)},Te=async(I,un)=>{if(!en||!G)return;R({type:"SET_LOADING",payload:!0});const xn=me(),Jn={id:me(),role:"user",content:G.comfyClass||G.type,trace_id:xn};R({type:"ADD_MESSAGE",payload:Jn});try{const zn=me();let ue=!0;for await(const Cn of Ji.streamInvokeServer(en,G.comfyClass||G.type,[],I,un,xn)){const Me={id:zn,role:"ai",content:JSON.stringify(Cn),format:Cn.format,finished:Cn.finished,name:"Assistant"};ue?(R({type:"ADD_MESSAGE",payload:Me}),ue=!1):R({type:"UPDATE_MESSAGE",payload:Me}),Cn.finished&&R({type:"SET_LOADING",payload:!1})}}catch(zn){console.error("Error sending message:",zn),R({type:"SET_LOADING",payload:!1})}},kn=I=>{console.log("[WorkflowChat] Adding new message:",I),R({type:"ADD_MESSAGE",payload:I})},Tt=()=>{vn(!1)},Cr=I=>{const un=Array.from(I).map(xn=>({id:Math.random().toString(36).substr(2,9),file:xn,preview:URL.createObjectURL(xn)}));dn(xn=>[...xn,...un])},Lr=I=>{dn(un=>un.filter(Jn=>Jn.id!==I))};return it.useEffect(()=>()=>{Sn.forEach(I=>URL.revokeObjectURL(I.preview))},[Sn]),D.useEffect(()=>{s&&B&&(Te("node_explain"),B())},[s]),v.jsxs("div",{className:"fixed right-0 shadow-lg bg-white duration-200 ease-out",style:{display:C?"block":"none",width:`${In.width}px`,height:`${In.height}px`,top:`${In.top}px`},children:[v.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 cursor-ew-resize hover:bg-gray-300",onMouseDown:I=>{Wn(!0),I.preventDefault()}}),v.jsxs("div",{className:"flex h-full flex-col",children:[v.jsx(Ug,{onClose:m,onClear:we,hasMessages:T.length>0,onHeightResize:ot}),v.jsx("div",{children:Z.map(I=>v.jsx("div",{children:I.name},I.name))}),v.jsx("div",{className:"flex-1 overflow-y-auto p-4 scroll-smooth",ref:q,children:v.jsx(Yg,{messages:T,latestInput:z,onOptionClick:Ir,installedNodes:Z,onAddMessage:kn,loading:y})}),v.jsxs("div",{className:"border-t px-4 py-3 border-gray-200 bg-white sticky bottom-0",children:[G&&v.jsx(kg,{nodeInfo:G,onSendWithIntent:Te,loading:y}),v.jsx(Fg,{input:ln,loading:y,onChange:Sr,onSend:Nt,onKeyPress:ze,onUploadImages:Cr,uploadedImages:Sn,onRemoveImage:Lr,selectedModel:On,onModelChange:cn})]})]})]})}export{op as default}; +`)+v+`return __p +}`;var O=Cs(function(){return H(o,b+"return "+v).apply(s,f)});if(O.source=v,Fi(O))throw O;return O}function E0(n){return K(n).toLowerCase()}function S0(n){return K(n).toUpperCase()}function I0(n,e,t){if(n=K(n),n&&(t||e===s))return Du(n);if(!n||!(e=Un(e)))return n;var r=ne(n),i=ne(e),o=Pu(r,i),f=Uu(r,i)+1;return Le(r,o,f).join("")}function C0(n,e,t){if(n=K(n),n&&(t||e===s))return n.slice(0,Fu(n)+1);if(!n||!(e=Un(e)))return n;var r=ne(n),i=Uu(r,ne(e))+1;return Le(r,0,i).join("")}function L0(n,e,t){if(n=K(n),n&&(t||e===s))return n.replace(Fr,"");if(!n||!(e=Un(e)))return n;var r=ne(n),i=Pu(r,ne(e));return Le(r,i).join("")}function R0(n,e){var t=In,r=ot;if(nn(e)){var i="separator"in e?e.separator:i;t="length"in e?M(e.length):t,r="omission"in e?Un(e.omission):r}n=K(n);var o=n.length;if(qe(n)){var f=ne(n);o=f.length}if(t>=o)return n;var a=t-je(r);if(a<1)return r;var c=f?Le(f,0,a).join(""):n.slice(0,a);if(i===s)return c+r;if(f&&(a+=c.length-a),Gi(i)){if(n.slice(a).search(i)){var g,p=c;for(i.global||(i=ti(i.source,K(ru.exec(i))+"g")),i.lastIndex=0;g=i.exec(p);)var v=g.index;c=c.slice(0,v===s?a:v)}}else if(n.indexOf(Un(i),a)!=a){var x=c.lastIndexOf(i);x>-1&&(c=c.slice(0,x))}return c+r}function N0(n){return n=K(n),n&&Gs.test(n)?n.replace(nu,ua):n}var T0=nt(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Hi=Lo("toUpperCase");function Is(n,e,t){return n=K(n),e=t?s:e,e===s?na(n)?fa(n):$f(n):n.match(e)||[]}var Cs=W(function(n,e){try{return Dn(n,s,e)}catch(t){return Fi(t)?t:new L(t)}}),M0=ge(function(n,e){return Kn(e,function(t){t=fe(t),he(n,t,Ui(n[t],n))}),n});function O0(n){var e=n==null?0:n.length,t=A();return n=e?V(n,function(r){if(typeof r[1]!="function")throw new $n(T);return[t(r[0]),r[1]]}):[],W(function(r){for(var i=-1;++iwe)return[];var t=kn,r=mn(n,kn);e=A(e),n-=kn;for(var i=Vr(r,e);++t0||e<0)?new U(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==s&&(e=M(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},U.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},U.prototype.toArray=function(){return this.take(kn)},oe(U.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],o=r||/^find/.test(e);i&&(u.prototype[e]=function(){var f=this.__wrapped__,a=r?[1]:arguments,c=f instanceof U,g=a[0],p=c||N(f),v=function(P){var F=i.apply(u,be([P],a));return r&&x?F[0]:F};p&&t&&typeof g=="function"&&g.length!=1&&(c=p=!1);var x=this.__chain__,b=!!this.__actions__.length,E=o&&!x,O=c&&!b;if(!o&&p){f=O?f:new U(this);var S=n.apply(f,a);return S.__actions__.push({func:dr,args:[v],thisArg:s}),new qn(S,x)}return E&&O?n.apply(this,a):(S=this.thru(v),E?r?S.value()[0]:S.value():S)})}),Kn(["pop","push","shift","sort","splice","unshift"],function(n){var e=Ft[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return e.apply(N(o)?o:[],i)}return this[t](function(f){return e.apply(N(f)?f:[],i)})}}),oe(U.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";$.call(Je,r)||(Je[r]=[]),Je[r].push({name:e,func:t})}}),Je[or(s,k).name]=[{name:"wrapper",func:s}],U.prototype.clone=Na,U.prototype.reverse=Ta,U.prototype.value=Ma,u.prototype.at=sh,u.prototype.chain=fh,u.prototype.commit=ah,u.prototype.next=lh,u.prototype.plant=hh,u.prototype.reverse=dh,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=gh,u.prototype.first=u.prototype.head,dt&&(u.prototype[dt]=ch),u},Ze=aa();Oe?((Oe.exports=Ze)._=Ze,$r._=Ze):gn._=Ze}).call(Ct)})(br,br.exports);var Ar=br.exports;function Qg(m=!0){D.useEffect(()=>{if(!m)return;const C=Ar.debounce(s=>{document.documentElement.style.setProperty("--mouse-x",`${s.clientX}px`),document.documentElement.style.setProperty("--mouse-y",`${s.clientY}px`)},16);return document.addEventListener("mousemove",C),()=>{C.cancel(),document.removeEventListener("mousemove",C)}},[m])}function Vg(m={},C=!0){const[s,B]=D.useState(!1),[j,R]=D.useState({width:window.innerWidth/3,height:window.innerHeight,top:0});D.useCallback(Ar.debounce(Z=>{s&&R(y=>{const en=window.innerWidth-Z.clientX,G=Math.min(Math.max(m.minWidth||300,en),m.maxWidth||window.innerWidth*.8);return{...y,width:G}})},16),[s,m]);const T=D.useCallback(Z=>{R(y=>{const en=y.height-Z,G=y.top+Z;return{...y,height:Math.min(Math.max(m.minHeight||300,en),m.maxHeight||window.innerHeight),top:Math.max(0,G)}})},[m]);return D.useEffect(()=>{if(!C||!s)return;const Z=Ar.debounce(en=>{R(G=>{const q=window.innerWidth-en.clientX,ln=Math.min(Math.max(m.minWidth||300,q),m.maxWidth||window.innerWidth*.8);return{...G,width:ln}})},16),y=()=>B(!1);return document.addEventListener("mousemove",Z),document.addEventListener("mouseup",y),()=>{Z.cancel(),document.removeEventListener("mousemove",Z),document.removeEventListener("mouseup",y)}},[s,m,C]),{isResizing:s,setIsResizing:B,dimensions:j,handleHeightResize:T}}function np(m=!0){const{dispatch:C}=Ts();D.useEffect(()=>{if(!m)return;const s=()=>{const B=ie.canvas.selected_nodes;if(Object.keys(B??{}).length){const j=Object.values(B)[0];C({type:"SET_SELECTED_NODE",payload:j})}else C({type:"SET_SELECTED_NODE",payload:null})};return document.addEventListener("click",s),()=>{document.removeEventListener("click",s)}},[C,m])}function op({onClose:m,visible:C=!0,triggerUsage:s=!1,onUsageTriggered:B}){const{state:j,dispatch:R}=Ts(),{messages:T,installedNodes:Z,loading:y,sessionId:en,selectedNode:G}=j,q=D.useRef(null),[ln,_n]=D.useState(""),[z,Mn]=D.useState(""),[X,k]=D.useState(window.innerWidth/3),[En,vn]=D.useState(!1),[Sn,dn]=D.useState([]),[On,cn]=D.useState("gpt-4o-mini");D.useState(window.innerHeight),D.useState(0),Qg(C),np(C);const{isResizing:rn,setIsResizing:Wn,dimensions:In,handleHeightResize:ot}=Vg({minWidth:300,maxWidth:window.innerWidth*.8,minHeight:300,maxHeight:window.innerHeight},C);D.useEffect(()=>{q.current&&(q.current.scrollTop=q.current.scrollHeight)},[T]),D.useEffect(()=>{(async()=>{console.log("[WorkflowChat] Fetching installed nodes");const un=await Jg();console.log("[WorkflowChat] Received installed nodes:",un),R({type:"SET_INSTALLED_NODES",payload:un})})()},[]);const Er=async I=>{try{const un=await Ji.fetchMessages(I);R({type:"SET_MESSAGES",payload:un})}catch(un){console.error("Error fetching messages:",un)}};D.useEffect(()=>{let I=localStorage.getItem("sessionId");I?(R({type:"SET_SESSION_ID",payload:I}),Er(I)):(I=me(),R({type:"SET_SESSION_ID",payload:I}),localStorage.setItem("sessionId",I))},[]);const Rt=it.useCallback(I=>{if(!En)return;const un=window.innerWidth-I.clientX,xn=Math.min(Math.max(300,un),window.innerWidth*.8);k(xn)},[En]),Ne=it.useMemo(()=>Ar.debounce(Rt,16),[Rt]);D.useEffect(()=>(En&&(document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",Tt)),()=>{document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",Tt),Ne.cancel()}),[En,Ne]);const Sr=I=>{_n(I.target.value)},Nt=async()=>{if(R({type:"SET_LOADING",payload:!0}),ln.trim()===""&&!G||!en)return;Mn(ln);const I=me(),un={id:me(),role:"user",content:ln,trace_id:I};R({type:"ADD_MESSAGE",payload:un}),_n("");try{const xn={type:"model_select",data:[On]},Jn=me();let zn=!0;for await(const ue of Ji.streamInvokeServer(en,ln,Sn.map(Cn=>Cn.file),null,xn,I)){const Cn={id:Jn,role:"ai",content:JSON.stringify(ue),type:ue.type,format:ue.format,finished:ue.finished,name:"Assistant"};zn?(R({type:"ADD_MESSAGE",payload:Cn}),zn=!1):R({type:"UPDATE_MESSAGE",payload:Cn}),ue.finished&&R({type:"SET_LOADING",payload:!1})}}catch(xn){console.error("Error sending message:",xn),R({type:"SET_LOADING",payload:!1})}finally{dn([])}},ze=I=>{I.metaKey&&I.key==="Enter"&&Nt()},we=()=>{R({type:"CLEAR_MESSAGES"}),localStorage.removeItem("sessionId");const I=me();R({type:"SET_SESSION_ID",payload:I}),localStorage.setItem("sessionId",I)},Ir=I=>{_n(I)},Te=async(I,un)=>{if(!en||!G)return;R({type:"SET_LOADING",payload:!0});const xn=me(),Jn={id:me(),role:"user",content:G.comfyClass||G.type,trace_id:xn};R({type:"ADD_MESSAGE",payload:Jn});try{const zn=me();let ue=!0;for await(const Cn of Ji.streamInvokeServer(en,G.comfyClass||G.type,[],I,un,xn)){const Me={id:zn,role:"ai",content:JSON.stringify(Cn),format:Cn.format,finished:Cn.finished,name:"Assistant"};ue?(R({type:"ADD_MESSAGE",payload:Me}),ue=!1):R({type:"UPDATE_MESSAGE",payload:Me}),Cn.finished&&R({type:"SET_LOADING",payload:!1})}}catch(zn){console.error("Error sending message:",zn),R({type:"SET_LOADING",payload:!1})}},kn=I=>{console.log("[WorkflowChat] Adding new message:",I),R({type:"ADD_MESSAGE",payload:I})},Tt=()=>{vn(!1)},Cr=I=>{const un=Array.from(I).map(xn=>({id:Math.random().toString(36).substr(2,9),file:xn,preview:URL.createObjectURL(xn)}));dn(xn=>[...xn,...un])},Lr=I=>{dn(un=>un.filter(Jn=>Jn.id!==I))};return it.useEffect(()=>()=>{Sn.forEach(I=>URL.revokeObjectURL(I.preview))},[Sn]),D.useEffect(()=>{s&&B&&(Te("node_explain"),B())},[s]),_.jsxs("div",{className:"fixed right-0 shadow-lg bg-white duration-200 ease-out",style:{display:C?"block":"none",width:`${In.width}px`,height:`${In.height}px`,top:`${In.top}px`},children:[_.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 cursor-ew-resize hover:bg-gray-300",onMouseDown:I=>{Wn(!0),I.preventDefault()}}),_.jsxs("div",{className:"flex h-full flex-col",children:[_.jsx(Ug,{onClose:m,onClear:we,hasMessages:T.length>0,onHeightResize:ot}),_.jsx("div",{children:Z.map(I=>_.jsx("div",{children:I.name},I.name))}),_.jsx("div",{className:"flex-1 overflow-y-auto p-4 scroll-smooth",ref:q,children:_.jsx(Yg,{messages:T,latestInput:z,onOptionClick:Ir,installedNodes:Z,onAddMessage:kn,loading:y})}),_.jsxs("div",{className:"border-t px-4 py-3 border-gray-200 bg-white sticky bottom-0",children:[G&&_.jsx(kg,{nodeInfo:G,onSendWithIntent:Te,loading:y}),_.jsx(Fg,{input:ln,loading:y,onChange:Sr,onSend:Nt,onKeyPress:ze,onUploadImages:Cr,uploadedImages:Sn,onRemoveImage:Lr,selectedModel:On,onModelChange:cn})]})]})]})}export{op as default}; diff --git a/ui/src/components/chat/ChatInput.tsx b/ui/src/components/chat/ChatInput.tsx index a294973..2692ba6 100644 --- a/ui/src/components/chat/ChatInput.tsx +++ b/ui/src/components/chat/ChatInput.tsx @@ -131,6 +131,7 @@ export function ChatInput({ + {/* */}