-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({
+
{/* */}