fix in searchbox retenting the focus

This commit is contained in:
tamat
2021-11-25 16:49:22 +01:00
parent af19af2c51
commit 2401cec699
7 changed files with 106 additions and 102 deletions

View File

@@ -280,7 +280,7 @@ if(q&&e&&f.registered_slot_out_types[e]&&f.registered_slot_out_types[e].nodes&&(
f.registered_node_types[p.type];if((!l||l.filter==u)&&e(p.type)&&(a(p.desc,"searchbox_extra"),-1!==h.search_limit&&n++>h.search_limit))break}}p=null;if(Array.prototype.filter)p=Object.keys(f.registered_node_types).filter(e);else for(r in p=[],f.registered_node_types)e(r)&&p.push(r);for(r=0;r<p.length&&!(a(p[r]),-1!==h.search_limit&&n++>h.search_limit);r++);if(b.show_general_after_typefiltered&&(y.value||q.value)){filtered_extra=[];for(r in f.registered_node_types)e(r,{inTypeOverride:y&&y.value?"*":
!1,outTypeOverride:q&&q.value?"*":!1})&&filtered_extra.push(r);for(r=0;r<filtered_extra.length&&!(a(filtered_extra[r],"generic_type"),-1!==h.search_limit&&n++>h.search_limit);r++);}if((y.value||q.value)&&0==v.childNodes.length&&b.show_general_if_none_on_typefilter){filtered_extra=[];for(r in f.registered_node_types)e(r,{skipFilter:!0})&&filtered_extra.push(r);for(r=0;r<filtered_extra.length&&!(a(filtered_extra[r],"not_in_filter"),-1!==h.search_limit&&n++>h.search_limit);r++);}}}def_options={slot_from:null,
node_from:null,node_to:null,do_type_filter:f.search_filter_enabled,type_filter_in:!1,type_filter_out:!1,show_general_if_none_on_typefilter:!0,show_general_after_typefiltered:!0,hide_on_mouse_leave:f.search_hide_on_mouse_leave,show_all_if_empty:!0,show_all_on_open:f.search_show_all_on_open};b=Object.assign(def_options,b||{});var g=this,k=h.active_canvas,n=k.canvas,p=n.ownerDocument||document,r=document.createElement("div");r.className="litegraph litesearchbox graphdialog rounded";r.innerHTML="<span class='name'>Search</span> <input autofocus type='text' class='value rounded'/>";
b.do_type_filter&&(r.innerHTML+="<select class='slot_in_type_filter'><option value=''></option></select>",r.innerHTML+="<select class='slot_out_type_filter'><option value=''></option></select>");r.innerHTML+="<div class='helper'></div>";p.fullscreenElement?p.fullscreenElement.appendChild(r):(p.body.appendChild(r),p.body.style.overflow="hidden");if(b.do_type_filter)var u=r.querySelector(".slot_in_type_filter"),q=r.querySelector(".slot_out_type_filter");r.close=function(){g.search_box=null;p.body.focus();
b.do_type_filter&&(r.innerHTML+="<select class='slot_in_type_filter'><option value=''></option></select>",r.innerHTML+="<select class='slot_out_type_filter'><option value=''></option></select>");r.innerHTML+="<div class='helper'></div>";p.fullscreenElement?p.fullscreenElement.appendChild(r):(p.body.appendChild(r),p.body.style.overflow="hidden");if(b.do_type_filter)var u=r.querySelector(".slot_in_type_filter"),q=r.querySelector(".slot_out_type_filter");r.close=function(){g.search_box=null;this.blur();
p.body.style.overflow="";setTimeout(function(){g.canvas.focus()},20);r.parentNode&&r.parentNode.removeChild(r)};1<this.ds.scale&&(r.style.transform="scale("+this.ds.scale+")");if(b.hide_on_mouse_leave){var y=!1,l=null;f.pointerListenerAdd(r,"enter",function(a){l&&(clearTimeout(l),l=null)});f.pointerListenerAdd(r,"leave",function(a){y||(l=setTimeout(function(){r.close()},500))});b.do_type_filter&&(u.addEventListener("click",function(a){y++}),u.addEventListener("blur",function(a){y=0}),u.addEventListener("change",
function(a){y=-1}),q.addEventListener("click",function(a){y++}),q.addEventListener("blur",function(a){y=0}),q.addEventListener("change",function(a){y=-1}))}g.search_box&&g.search_box.close();g.search_box=r;var v=r.querySelector(".helper"),m=null,w=null,t=null,z=r.querySelector("input");z&&(z.addEventListener("blur",function(a){this.focus()}),z.addEventListener("keydown",function(a){if(38==a.keyCode)d(!1);else if(40==a.keyCode)d(!0);else if(27==a.keyCode)r.close();else if(13==a.keyCode)t?c(t.innerHTML):
m?c(m):r.close();else{w&&clearInterval(w);w=setTimeout(e,250);return}a.preventDefault();a.stopPropagation();a.stopImmediatePropagation();return!0}));if(b.do_type_filter){if(u){var x=f.slot_types_in,L=x.length;if(b.type_filter_in==f.EVENT||b.type_filter_in==f.ACTION)b.type_filter_in="_event_";for(var A=0;A<L;A++){var B=document.createElement("option");B.value=x[A];B.innerHTML=x[A];u.appendChild(B);!1!==b.type_filter_in&&(b.type_filter_in+"").toLowerCase()==(x[A]+"").toLowerCase()&&(B.selected=!0)}u.addEventListener("change",