From c05e230b9d4fe3946f8857ebeb6dd58a8e40a710 Mon Sep 17 00:00:00 2001 From: zombieyang Date: Mon, 5 May 2025 21:22:47 +0800 Subject: [PATCH] rebuild --- javascript/sdppp-comfy.js | 4 ++-- plugins/photoshop/dist/index.js | 2 +- plugins/photoshop/dist/index.js.map | 4 ++-- plugins/photoshop/dist/photoshop-internal.js | 6 +++--- static/sd-ppp_PS.ccx | Bin 518433 -> 518523 bytes 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/javascript/sdppp-comfy.js b/javascript/sdppp-comfy.js index 267c6a1..b297315 100644 --- a/javascript/sdppp-comfy.js +++ b/javascript/sdppp-comfy.js @@ -5,9 +5,9 @@ var J4=Object.create;var sm=Object.defineProperty;var VR=Object.getOwnPropertyDe `+n[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{fb=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?od(e):""}function lW(e){switch(e.tag){case 5:return od(e.type);case 16:return od("Lazy");case 13:return od("Suspense");case 19:return od("SuspenseList");case 0:case 2:case 15:return e=db(e.type,!1),e;case 11:return e=db(e.type.render,!1),e;case 1:return e=db(e.type,!0),e;default:return""}}function Lb(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case zc:return"Fragment";case Fc:return"Portal";case Db:return"Profiler";case _S:return"StrictMode";case Ab:return"Suspense";case Mb:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case yP:return(e.displayName||"Context")+".Consumer";case vP:return(e._context.displayName||"Context")+".Provider";case PS:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case TS:return t=e.displayName||null,t!==null?t:Lb(e.type)||"Memo";case us:t=e._payload,e=e._init;try{return Lb(e(t))}catch{}}return null}function cW(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Lb(t);case 8:return t===_S?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Es(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function bP(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function uW(e){var t=bP(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),o=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var n=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return n.call(this)},set:function(a){o=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return o},setValue:function(a){o=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Jm(e){e._valueTracker||(e._valueTracker=uW(e))}function SP(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),o="";return e&&(o=bP(e)?e.checked?"true":"false":e.value),e=o,e!==r?(t.setValue(e),!0):!1}function _g(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function kb(e,t){var r=t.checked;return Sr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function p_(e,t){var r=t.defaultValue==null?"":t.defaultValue,o=t.checked!=null?t.checked:t.defaultChecked;r=Es(t.value!=null?t.value:r),e._wrapperState={initialChecked:o,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function CP(e,t){t=t.checked,t!=null&&OS(e,"checked",t,!1)}function Fb(e,t){CP(e,t);var r=Es(t.value),o=t.type;if(r!=null)o==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(o==="submit"||o==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?zb(e,t.type,r):t.hasOwnProperty("defaultValue")&&zb(e,t.type,Es(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function m_(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var o=t.type;if(!(o!=="submit"&&o!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function zb(e,t,r){(t!=="number"||_g(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var nd=Array.isArray;function Yc(e,t,r,o){if(e=e.options,t){t={};for(var n=0;n"+t.valueOf().toString()+"",t=eg.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function vd(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var sd={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fW=["Webkit","ms","Moz","O"];Object.keys(sd).forEach(function(e){fW.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),sd[t]=sd[e]})});function OP(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||sd.hasOwnProperty(e)&&sd[e]?(""+t).trim():t+"px"}function _P(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var o=r.indexOf("--")===0,n=OP(r,t[r],o);r==="float"&&(r="cssFloat"),o?e.setProperty(r,n):e[r]=n}}var dW=Sr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function jb(e,t){if(t){if(dW[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ge(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ge(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ge(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ge(62))}}function Vb(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Hb=null;function NS(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ub=null,Qc=null,Zc=null;function v_(e){if(e=Md(e)){if(typeof Ub!="function")throw Error(ge(280));var t=e.stateNode;t&&(t=th(t),Ub(e.stateNode,e.type,t))}}function PP(e){Qc?Zc?Zc.push(e):Zc=[e]:Qc=e}function TP(){if(Qc){var e=Qc,t=Zc;if(Zc=Qc=null,v_(e),t)for(e=0;e>>=0,e===0?32:31-(wW(e)/EW|0)|0}var tg=64,rg=4194304;function id(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ig(e,t){var r=e.pendingLanes;if(r===0)return 0;var o=0,n=e.suspendedLanes,i=e.pingedLanes,a=r&268435455;if(a!==0){var s=a&~n;s!==0?o=id(s):(i&=a,i!==0&&(o=id(i)))}else a=r&~n,a!==0?o=id(a):i!==0&&(o=id(i));if(o===0)return 0;if(t!==0&&t!==o&&(t&n)===0&&(n=o&-o,i=t&-t,n>=i||n===16&&(i&4194240)!==0))return t;if((o&4)!==0&&(o|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=o;0r;r++)t.push(e);return t}function Dd(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-vi(t),e[t]=r}function PW(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var o=e.eventTimes;for(e=e.expirationTimes;0=cd),O_=" ",__=!1;function XP(e,t){switch(e){case"keyup":return r6.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function YP(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Wc=!1;function n6(e,t){switch(e){case"compositionend":return YP(t);case"keypress":return t.which!==32?null:(__=!0,O_);case"textInput":return e=t.data,e===O_&&__?null:e;default:return null}}function i6(e,t){if(Wc)return e==="compositionend"||!FS&&XP(e,t)?(e=qP(),yg=MS=ms=null,Wc=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=o}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=N_(r)}}function eT(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?eT(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function tT(){for(var e=window,t=_g();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=_g(e.document)}return t}function zS(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function m6(e){var t=tT(),r=e.focusedElem,o=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&eT(r.ownerDocument.documentElement,r)){if(o!==null&&zS(r)){if(t=o.start,e=o.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var n=r.textContent.length,i=Math.min(o.start,n);o=o.end===void 0?i:Math.min(o.end,n),!e.extend&&i>o&&(n=o,o=i,i=n),n=I_(r,i);var a=I_(r,o);n&&a&&(e.rangeCount!==1||e.anchorNode!==n.node||e.anchorOffset!==n.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(n.node,n.offset),e.removeAllRanges(),i>o?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Bc=null,Qb=null,fd=null,Zb=!1;function $_(e,t,r){var o=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Zb||Bc==null||Bc!==_g(o)||(o=Bc,"selectionStart"in o&&zS(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),fd&&wd(fd,o)||(fd=o,o=Ag(Qb,"onSelect"),0Hc||(e.current=nS[Hc],nS[Hc]=null,Hc--)}function er(e,t){Hc++,nS[Hc]=e.current,e.current=t}var Rs={},Io=_s(Rs),an=_s(!1),_l=Rs;function ou(e,t){var r=e.type.contextTypes;if(!r)return Rs;var o=e.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===t)return o.__reactInternalMemoizedMaskedChildContext;var n={},i;for(i in r)n[i]=t[i];return o&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=n),n}function sn(e){return e=e.childContextTypes,e!=null}function Lg(){nr(an),nr(Io)}function B_(e,t,r){if(Io.current!==Rs)throw Error(ge(168));er(Io,t),er(an,r)}function uT(e,t,r){var o=e.stateNode;if(t=t.childContextTypes,typeof o.getChildContext!="function")return r;o=o.getChildContext();for(var n in o)if(!(n in t))throw Error(ge(108,cW(e)||"Unknown",n));return Sr({},r,o)}function kg(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Rs,_l=Io.current,er(Io,e),er(an,an.current),!0}function j_(e,t,r){var o=e.stateNode;if(!o)throw Error(ge(169));r?(e=uT(e,t,_l),o.__reactInternalMemoizedMergedChildContext=e,nr(an),nr(Io),er(Io,e)):nr(an),er(an,r)}var ba=null,rh=!1,wb=!1;function fT(e){ba===null?ba=[e]:ba.push(e)}function E6(e){rh=!0,fT(e)}function Ps(){if(!wb&&ba!==null){wb=!0;var e=0,t=jt;try{var r=ba;for(jt=1;e>=a,n-=a,Sa=1<<32-vi(t)+n|r<R?(_=C,C=null):_=C.sibling;var O=d(g,C,x[R],S);if(O===null){C===null&&(C=_);break}e&&C&&O.alternate===null&&t(g,C),p=i(O,p,R),w===null?b=O:w.sibling=O,w=O,C=_}if(R===x.length)return r(g,C),gr&&bl(g,R),b;if(C===null){for(;RR?(_=C,C=null):_=C.sibling;var N=d(g,C,O.value,S);if(N===null){C===null&&(C=_);break}e&&C&&N.alternate===null&&t(g,C),p=i(N,p,R),w===null?b=N:w.sibling=N,w=N,C=_}if(O.done)return r(g,C),gr&&bl(g,R),b;if(C===null){for(;!O.done;R++,O=x.next())O=f(g,O.value,S),O!==null&&(p=i(O,p,R),w===null?b=O:w.sibling=O,w=O);return gr&&bl(g,R),b}for(C=o(g,C);!O.done;R++,O=x.next())O=m(C,g,R,O.value,S),O!==null&&(e&&O.alternate!==null&&C.delete(O.key===null?R:O.key),p=i(O,p,R),w===null?b=O:w.sibling=O,w=O);return e&&C.forEach(function(k){return t(g,k)}),gr&&bl(g,R),b}function y(g,p,x,S){if(typeof x=="object"&&x!==null&&x.type===zc&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Zm:e:{for(var b=x.key,w=p;w!==null;){if(w.key===b){if(b=x.type,b===zc){if(w.tag===7){r(g,w.sibling),p=n(w,x.props.children),p.return=g,g=p;break e}}else if(w.elementType===b||typeof b=="object"&&b!==null&&b.$$typeof===us&&U_(b)===w.type){r(g,w.sibling),p=n(w,x.props),p.ref=Jf(g,w,x),p.return=g,g=p;break e}r(g,w);break}else t(g,w);w=w.sibling}x.type===zc?(p=Ol(x.props.children,g.mode,S,x.key),p.return=g,g=p):(S=Og(x.type,x.key,x.props,null,g.mode,S),S.ref=Jf(g,p,x),S.return=g,g=S)}return a(g);case Fc:e:{for(w=x.key;p!==null;){if(p.key===w)if(p.tag===4&&p.stateNode.containerInfo===x.containerInfo&&p.stateNode.implementation===x.implementation){r(g,p.sibling),p=n(p,x.children||[]),p.return=g,g=p;break e}else{r(g,p);break}else t(g,p);p=p.sibling}p=Ib(x,g.mode,S),p.return=g,g=p}return a(g);case us:return w=x._init,y(g,p,w(x._payload),S)}if(nd(x))return h(g,p,x,S);if(Xf(x))return v(g,p,x,S);pg(g,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,p!==null&&p.tag===6?(r(g,p.sibling),p=n(p,x),p.return=g,g=p):(r(g,p),p=Nb(x,g.mode,S),p.return=g,g=p),a(g)):r(g,p)}return y}var iu=gT(!0),hT=gT(!1),Wg=_s(null),Bg=null,qc=null,VS=null;function HS(){VS=qc=Bg=null}function US(e){var t=Wg.current;nr(Wg),e._currentValue=t}function sS(e,t,r){for(;e!==null;){var o=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,o!==null&&(o.childLanes|=t)):o!==null&&(o.childLanes&t)!==t&&(o.childLanes|=t),e===r)break;e=e.return}}function eu(e,t){Bg=e,VS=qc=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(nn=!0),e.firstContext=null)}function Gn(e){var t=e._currentValue;if(VS!==e)if(e={context:e,memoizedValue:t,next:null},qc===null){if(Bg===null)throw Error(ge(308));qc=e,Bg.dependencies={lanes:0,firstContext:e}}else qc=qc.next=e;return t}var wl=null;function GS(e){wl===null?wl=[e]:wl.push(e)}function vT(e,t,r,o){var n=t.interleaved;return n===null?(r.next=r,GS(t)):(r.next=n.next,n.next=r),t.interleaved=r,Oa(e,o)}function Oa(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var fs=!1;function qS(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function yT(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function wa(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function bs(e,t,r){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(At&2)!==0){var n=o.pending;return n===null?t.next=t:(t.next=n.next,n.next=t),o.pending=t,Oa(e,r)}return n=o.interleaved,n===null?(t.next=t,GS(o)):(t.next=n.next,n.next=t),o.interleaved=t,Oa(e,r)}function bg(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var o=t.lanes;o&=e.pendingLanes,r|=o,t.lanes=r,$S(e,r)}}function G_(e,t){var r=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,r===o)){var n=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var a={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?n=i=a:i=i.next=a,r=r.next}while(r!==null);i===null?n=i=t:i=i.next=t}else n=i=t;r={baseState:o.baseState,firstBaseUpdate:n,lastBaseUpdate:i,shared:o.shared,effects:o.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function jg(e,t,r,o){var n=e.updateQueue;fs=!1;var i=n.firstBaseUpdate,a=n.lastBaseUpdate,s=n.shared.pending;if(s!==null){n.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?i=c:a.next=c,a=l;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==a&&(s===null?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(i!==null){var f=n.baseState;a=0,u=c=l=null,s=i;do{var d=s.lane,m=s.eventTime;if((o&d)===d){u!==null&&(u=u.next={eventTime:m,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,v=s;switch(d=t,m=r,v.tag){case 1:if(h=v.payload,typeof h=="function"){f=h.call(m,f,d);break e}f=h;break e;case 3:h.flags=h.flags&-65537|128;case 0:if(h=v.payload,d=typeof h=="function"?h.call(m,f,d):h,d==null)break e;f=Sr({},f,d);break e;case 2:fs=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,d=n.effects,d===null?n.effects=[s]:d.push(s))}else m={eventTime:m,lane:d,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(c=u=m,l=f):u=u.next=m,a|=d;if(s=s.next,s===null){if(s=n.shared.pending,s===null)break;d=s,s=d.next,d.next=null,n.lastBaseUpdate=d,n.shared.pending=null}}while(!0);if(u===null&&(l=f),n.baseState=l,n.firstBaseUpdate=c,n.lastBaseUpdate=u,t=n.shared.interleaved,t!==null){n=t;do a|=n.lane,n=n.next;while(n!==t)}else i===null&&(n.shared.lanes=0);Nl|=a,e.lanes=a,e.memoizedState=f}}function q_(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var o=Rb.transition;Rb.transition={};try{e(!1),t()}finally{jt=r,Rb.transition=o}}function MT(){return qn().memoizedState}function P6(e,t,r){var o=Cs(e);if(r={lane:o,action:r,hasEagerState:!1,eagerState:null,next:null},LT(e))kT(t,r);else if(r=vT(e,t,r,o),r!==null){var n=qo();yi(r,e,o,n),FT(r,t,o)}}function T6(e,t,r){var o=Cs(e),n={lane:o,action:r,hasEagerState:!1,eagerState:null,next:null};if(LT(e))kT(t,n);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,r);if(n.hasEagerState=!0,n.eagerState=s,xi(s,a)){var l=t.interleaved;l===null?(n.next=n,GS(t)):(n.next=l.next,l.next=n),t.interleaved=n;return}}catch{}finally{}r=vT(e,t,n,o),r!==null&&(n=qo(),yi(r,e,o,n),FT(r,t,o))}}function LT(e){var t=e.alternate;return e===br||t!==null&&t===br}function kT(e,t){dd=Hg=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function FT(e,t,r){if((r&4194240)!==0){var o=t.lanes;o&=e.pendingLanes,r|=o,t.lanes=r,$S(e,r)}}var Ug={readContext:Gn,useCallback:Po,useContext:Po,useEffect:Po,useImperativeHandle:Po,useInsertionEffect:Po,useLayoutEffect:Po,useMemo:Po,useReducer:Po,useRef:Po,useState:Po,useDebugValue:Po,useDeferredValue:Po,useTransition:Po,useMutableSource:Po,useSyncExternalStore:Po,useId:Po,unstable_isNewReconciler:!1},N6={readContext:Gn,useCallback:function(e,t){return Hi().memoizedState=[e,t===void 0?null:t],e},useContext:Gn,useEffect:X_,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Cg(4194308,4,NT.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Cg(4194308,4,e,t)},useInsertionEffect:function(e,t){return Cg(4,2,e,t)},useMemo:function(e,t){var r=Hi();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var o=Hi();return t=r!==void 0?r(t):t,o.memoizedState=o.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},o.queue=e,e=e.dispatch=P6.bind(null,br,e),[o.memoizedState,e]},useRef:function(e){var t=Hi();return e={current:e},t.memoizedState=e},useState:K_,useDebugValue:tC,useDeferredValue:function(e){return Hi().memoizedState=e},useTransition:function(){var e=K_(!1),t=e[0];return e=_6.bind(null,e[1]),Hi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var o=br,n=Hi();if(gr){if(r===void 0)throw Error(ge(407));r=r()}else{if(r=t(),no===null)throw Error(ge(349));(Tl&30)!==0||CT(o,t,r)}n.memoizedState=r;var i={value:r,getSnapshot:t};return n.queue=i,X_(ET.bind(null,o,i,e),[e]),o.flags|=2048,Id(9,wT.bind(null,o,i,r,t),void 0,null),r},useId:function(){var e=Hi(),t=no.identifierPrefix;if(gr){var r=Ca,o=Sa;r=(o&~(1<<32-vi(o)-1)).toString(32)+r,t=":"+t+"R"+r,r=Td++,0<\/script>",e=e.removeChild(e.firstChild)):typeof o.is=="string"?e=a.createElement(r,{is:o.is}):(e=a.createElement(r),r==="select"&&(a=e,o.multiple?a.multiple=!0:o.size&&(a.size=o.size))):e=a.createElementNS(e,r),e[Ui]=t,e[Od]=o,KT(e,t,!1,!1),t.stateNode=e;e:{switch(a=Vb(r,o),r){case"dialog":or("cancel",e),or("close",e),n=o;break;case"iframe":case"object":case"embed":or("load",e),n=o;break;case"video":case"audio":for(n=0;nlu&&(t.flags|=128,o=!0,ed(i,!1),t.lanes=4194304)}else{if(!o)if(e=Vg(a),e!==null){if(t.flags|=128,o=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),ed(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!gr)return To(t),null}else 2*kr()-i.renderingStartTime>lu&&r!==1073741824&&(t.flags|=128,o=!0,ed(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(r=i.last,r!==null?r.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=kr(),t.sibling=null,r=xr.current,er(xr,o?r&1|2:r&1),t):(To(t),null);case 22:case 23:return sC(),o=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==o&&(t.flags|=8192),o&&(t.mode&1)!==0?(Sn&1073741824)!==0&&(To(t),t.subtreeFlags&6&&(t.flags|=8192)):To(t),null;case 24:return null;case 25:return null}throw Error(ge(156,t.tag))}function F6(e,t){switch(BS(t),t.tag){case 1:return sn(t.type)&&Lg(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return au(),nr(an),nr(Io),YS(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return XS(t),null;case 13:if(nr(xr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ge(340));nu()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return nr(xr),null;case 4:return au(),null;case 10:return US(t.type._context),null;case 22:case 23:return sC(),null;case 24:return null;default:return null}}var gg=!1,No=!1,z6=typeof WeakSet=="function"?WeakSet:Set,qe=null;function Kc(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(o){Tr(e,t,o)}else r.current=null}function hS(e,t,r){try{r()}catch(o){Tr(e,t,o)}}var aP=!1;function W6(e,t){if(Jb=$g,e=tT(),zS(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var o=r.getSelection&&r.getSelection();if(o&&o.rangeCount!==0){r=o.anchorNode;var n=o.anchorOffset,i=o.focusNode;o=o.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var a=0,s=-1,l=-1,c=0,u=0,f=e,d=null;t:for(;;){for(var m;f!==r||n!==0&&f.nodeType!==3||(s=a+n),f!==i||o!==0&&f.nodeType!==3||(l=a+o),f.nodeType===3&&(a+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===e)break t;if(d===r&&++c===n&&(s=a),d===i&&++u===o&&(l=a),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(eS={focusedElem:e,selectionRange:r},$g=!1,qe=t;qe!==null;)if(t=qe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,qe=e;else for(;qe!==null;){t=qe;try{var h=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var v=h.memoizedProps,y=h.memoizedState,g=t.stateNode,p=g.getSnapshotBeforeUpdate(t.elementType===t.type?v:mi(t.type,v),y);g.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ge(163))}}catch(S){Tr(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,qe=e;break}qe=t.return}return h=aP,aP=!1,h}function pd(e,t,r){var o=t.updateQueue;if(o=o!==null?o.lastEffect:null,o!==null){var n=o=o.next;do{if((n.tag&e)===e){var i=n.destroy;n.destroy=void 0,i!==void 0&&hS(t,r,i)}n=n.next}while(n!==o)}}function ih(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var o=r.create;r.destroy=o()}r=r.next}while(r!==t)}}function vS(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function QT(e){var t=e.alternate;t!==null&&(e.alternate=null,QT(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ui],delete t[Od],delete t[oS],delete t[C6],delete t[w6])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ZT(e){return e.tag===5||e.tag===3||e.tag===4}function sP(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ZT(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function yS(e,t,r){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Mg));else if(o!==4&&(e=e.child,e!==null))for(yS(e,t,r),e=e.sibling;e!==null;)yS(e,t,r),e=e.sibling}function xS(e,t,r){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(o!==4&&(e=e.child,e!==null))for(xS(e,t,r),e=e.sibling;e!==null;)xS(e,t,r),e=e.sibling}var go=null,gi=!1;function cs(e,t,r){for(r=r.child;r!==null;)JT(e,t,r),r=r.sibling}function JT(e,t,r){if(Gi&&typeof Gi.onCommitFiberUnmount=="function")try{Gi.onCommitFiberUnmount(Qg,r)}catch{}switch(r.tag){case 5:No||Kc(r,t);case 6:var o=go,n=gi;go=null,cs(e,t,r),go=o,gi=n,go!==null&&(gi?(e=go,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):go.removeChild(r.stateNode));break;case 18:go!==null&&(gi?(e=go,r=r.stateNode,e.nodeType===8?Cb(e.parentNode,r):e.nodeType===1&&Cb(e,r),Sd(e)):Cb(go,r.stateNode));break;case 4:o=go,n=gi,go=r.stateNode.containerInfo,gi=!0,cs(e,t,r),go=o,gi=n;break;case 0:case 11:case 14:case 15:if(!No&&(o=r.updateQueue,o!==null&&(o=o.lastEffect,o!==null))){n=o=o.next;do{var i=n,a=i.destroy;i=i.tag,a!==void 0&&((i&2)!==0||(i&4)!==0)&&hS(r,t,a),n=n.next}while(n!==o)}cs(e,t,r);break;case 1:if(!No&&(Kc(r,t),o=r.stateNode,typeof o.componentWillUnmount=="function"))try{o.props=r.memoizedProps,o.state=r.memoizedState,o.componentWillUnmount()}catch(s){Tr(r,t,s)}cs(e,t,r);break;case 21:cs(e,t,r);break;case 22:r.mode&1?(No=(o=No)||r.memoizedState!==null,cs(e,t,r),No=o):cs(e,t,r);break;default:cs(e,t,r)}}function lP(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new z6),t.forEach(function(o){var n=X6.bind(null,e,o);r.has(o)||(r.add(o),o.then(n,n))})}}function pi(e,t){var r=t.deletions;if(r!==null)for(var o=0;on&&(n=a),o&=~i}if(o=n,o=kr()-o,o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*j6(o/1960))-o,10e?16:e,gs===null)var o=!1;else{if(e=gs,gs=null,Kg=0,(At&6)!==0)throw Error(ge(331));var n=At;for(At|=4,qe=e.current;qe!==null;){var i=qe,a=i.child;if((qe.flags&16)!==0){var s=i.deletions;if(s!==null){for(var l=0;lkr()-iC?Rl(e,0):nC|=r),ln(e,t)}function sN(e,t){t===0&&((e.mode&1)===0?t=1:(t=rg,rg<<=1,(rg&130023424)===0&&(rg=4194304)));var r=qo();e=Oa(e,t),e!==null&&(Dd(e,t,r),ln(e,r))}function K6(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),sN(e,r)}function X6(e,t){var r=0;switch(e.tag){case 13:var o=e.stateNode,n=e.memoizedState;n!==null&&(r=n.retryLane);break;case 19:o=e.stateNode;break;default:throw Error(ge(314))}o!==null&&o.delete(t),sN(e,r)}var lN;lN=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||an.current)nn=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return nn=!1,L6(e,t,r);nn=(e.flags&131072)!==0}else nn=!1,gr&&(t.flags&1048576)!==0&&dT(t,zg,t.index);switch(t.lanes=0,t.tag){case 2:var o=t.type;wg(e,t),e=t.pendingProps;var n=ou(t,Io.current);eu(t,r),n=ZS(null,t,o,e,n,r);var i=JS();return t.flags|=1,typeof n=="object"&&n!==null&&typeof n.render=="function"&&n.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,sn(o)?(i=!0,kg(t)):i=!1,t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,qS(t),n.updater=nh,t.stateNode=n,n._reactInternals=t,cS(t,o,e,r),t=dS(null,t,o,!0,i,r)):(t.tag=0,gr&&i&&WS(t),Go(null,t,n,r),t=t.child),t;case 16:o=t.elementType;e:{switch(wg(e,t),e=t.pendingProps,n=o._init,o=n(o._payload),t.type=o,n=t.tag=Q6(o),e=mi(o,e),n){case 0:t=fS(null,t,o,e,r);break e;case 1:t=oP(null,t,o,e,r);break e;case 11:t=tP(null,t,o,e,r);break e;case 14:t=rP(null,t,o,mi(o.type,e),r);break e}throw Error(ge(306,o,""))}return t;case 0:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),fS(e,t,o,n,r);case 1:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),oP(e,t,o,n,r);case 3:e:{if(UT(t),e===null)throw Error(ge(387));o=t.pendingProps,i=t.memoizedState,n=i.element,yT(e,t),jg(t,o,null,r);var a=t.memoizedState;if(o=a.element,i.isDehydrated)if(i={element:o,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){n=su(Error(ge(423)),t),t=nP(e,t,o,r,n);break e}else if(o!==n){n=su(Error(ge(424)),t),t=nP(e,t,o,r,n);break e}else for(Cn=xs(t.stateNode.containerInfo.firstChild),wn=t,gr=!0,hi=null,r=hT(t,null,o,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(nu(),o===n){t=_a(e,t,r);break e}Go(e,t,o,r)}t=t.child}return t;case 5:return xT(t),e===null&&aS(t),o=t.type,n=t.pendingProps,i=e!==null?e.memoizedProps:null,a=n.children,tS(o,n)?a=null:i!==null&&tS(o,i)&&(t.flags|=32),HT(e,t),Go(e,t,a,r),t.child;case 6:return e===null&&aS(t),null;case 13:return GT(e,t,r);case 4:return KS(t,t.stateNode.containerInfo),o=t.pendingProps,e===null?t.child=iu(t,null,o,r):Go(e,t,o,r),t.child;case 11:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),tP(e,t,o,n,r);case 7:return Go(e,t,t.pendingProps,r),t.child;case 8:return Go(e,t,t.pendingProps.children,r),t.child;case 12:return Go(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(o=t.type._context,n=t.pendingProps,i=t.memoizedProps,a=n.value,er(Wg,o._currentValue),o._currentValue=a,i!==null)if(xi(i.value,a)){if(i.children===n.children&&!an.current){t=_a(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===o){if(i.tag===1){l=wa(-1,r&-r),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}i.lanes|=r,l=i.alternate,l!==null&&(l.lanes|=r),sS(i.return,r,t),s.lanes|=r;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ge(341));a.lanes|=r,s=a.alternate,s!==null&&(s.lanes|=r),sS(a,r,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Go(e,t,n.children,r),t=t.child}return t;case 9:return n=t.type,o=t.pendingProps.children,eu(t,r),n=Gn(n),o=o(n),t.flags|=1,Go(e,t,o,r),t.child;case 14:return o=t.type,n=mi(o,t.pendingProps),n=mi(o.type,n),rP(e,t,o,n,r);case 15:return jT(e,t,t.type,t.pendingProps,r);case 17:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),wg(e,t),t.tag=1,sn(o)?(e=!0,kg(t)):e=!1,eu(t,r),zT(t,o,n),cS(t,o,n,r),dS(null,t,o,!0,e,r);case 19:return qT(e,t,r);case 22:return VT(e,t,r)}throw Error(ge(156,t.tag))};function cN(e,t){return LP(e,t)}function Y6(e,t,r,o){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Hn(e,t,r,o){return new Y6(e,t,r,o)}function cC(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Q6(e){if(typeof e=="function")return cC(e)?1:0;if(e!=null){if(e=e.$$typeof,e===PS)return 11;if(e===TS)return 14}return 2}function ws(e,t){var r=e.alternate;return r===null?(r=Hn(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Og(e,t,r,o,n,i){var a=2;if(o=e,typeof e=="function")cC(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case zc:return Ol(r.children,n,i,t);case _S:a=8,n|=8;break;case Db:return e=Hn(12,r,t,n|2),e.elementType=Db,e.lanes=i,e;case Ab:return e=Hn(13,r,t,n),e.elementType=Ab,e.lanes=i,e;case Mb:return e=Hn(19,r,t,n),e.elementType=Mb,e.lanes=i,e;case xP:return sh(r,n,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vP:a=10;break e;case yP:a=9;break e;case PS:a=11;break e;case TS:a=14;break e;case us:a=16,o=null;break e}throw Error(ge(130,e==null?e:typeof e,""))}return t=Hn(a,r,t,n),t.elementType=e,t.type=o,t.lanes=i,t}function Ol(e,t,r,o){return e=Hn(7,e,o,t),e.lanes=r,e}function sh(e,t,r,o){return e=Hn(22,e,o,t),e.elementType=xP,e.lanes=r,e.stateNode={isHidden:!1},e}function Nb(e,t,r){return e=Hn(6,e,null,t),e.lanes=r,e}function Ib(e,t,r){return t=Hn(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Z6(e,t,r,o,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=mb(0),this.expirationTimes=mb(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=mb(0),this.identifierPrefix=o,this.onRecoverableError=n,this.mutableSourceEagerHydrationData=null}function uC(e,t,r,o,n,i,a,s,l){return e=new Z6(e,t,r,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Hn(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:o,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},qS(i),e}function J6(e,t,r){var o=3{"use strict";function mN(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(mN)}catch(e){console.error(e)}}mN(),gN.exports=pN()});var vN=zn(mC=>{"use strict";var hN=bi();mC.createRoot=hN.createRoot,mC.hydrateRoot=hN.hydrateRoot;var OJ});var Ee=zn((TJ,dh)=>{"use strict";(function(){"use strict";var e={}.hasOwnProperty;function t(){for(var n="",i=0;i{"use strict";var vC=Symbol.for("react.element"),yC=Symbol.for("react.portal"),gh=Symbol.for("react.fragment"),hh=Symbol.for("react.strict_mode"),vh=Symbol.for("react.profiler"),yh=Symbol.for("react.provider"),xh=Symbol.for("react.context"),dB=Symbol.for("react.server_context"),bh=Symbol.for("react.forward_ref"),Sh=Symbol.for("react.suspense"),Ch=Symbol.for("react.suspense_list"),wh=Symbol.for("react.memo"),Eh=Symbol.for("react.lazy"),pB=Symbol.for("react.offscreen"),ON;ON=Symbol.for("react.module.reference");function Kn(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case vC:switch(e=e.type,e){case gh:case vh:case hh:case Sh:case Ch:return e;default:switch(e=e&&e.$$typeof,e){case dB:case xh:case bh:case Eh:case wh:case yh:return e;default:return t}}case yC:return t}}}Ht.ContextConsumer=xh;Ht.ContextProvider=yh;Ht.Element=vC;Ht.ForwardRef=bh;Ht.Fragment=gh;Ht.Lazy=Eh;Ht.Memo=wh;Ht.Portal=yC;Ht.Profiler=vh;Ht.StrictMode=hh;Ht.Suspense=Sh;Ht.SuspenseList=Ch;Ht.isAsyncMode=function(){return!1};Ht.isConcurrentMode=function(){return!1};Ht.isContextConsumer=function(e){return Kn(e)===xh};Ht.isContextProvider=function(e){return Kn(e)===yh};Ht.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===vC};Ht.isForwardRef=function(e){return Kn(e)===bh};Ht.isFragment=function(e){return Kn(e)===gh};Ht.isLazy=function(e){return Kn(e)===Eh};Ht.isMemo=function(e){return Kn(e)===wh};Ht.isPortal=function(e){return Kn(e)===yC};Ht.isProfiler=function(e){return Kn(e)===vh};Ht.isStrictMode=function(e){return Kn(e)===hh};Ht.isSuspense=function(e){return Kn(e)===Sh};Ht.isSuspenseList=function(e){return Kn(e)===Ch};Ht.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===gh||e===vh||e===hh||e===Sh||e===Ch||e===pB||typeof e=="object"&&e!==null&&(e.$$typeof===Eh||e.$$typeof===wh||e.$$typeof===yh||e.$$typeof===xh||e.$$typeof===bh||e.$$typeof===ON||e.getModuleId!==void 0)};Ht.typeOf=Kn});var TN=zn((XJ,PN)=>{"use strict";PN.exports=_N()});var I4=zn(dx=>{"use strict";var HK=I(),UK=Symbol.for("react.element"),GK=Symbol.for("react.fragment"),qK=Object.prototype.hasOwnProperty,KK=HK.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,XK={key:!0,ref:!0,__self:!0,__source:!0};function N4(e,t,r){var o,n={},i=null,a=null;r!==void 0&&(i=""+r),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(a=t.ref);for(o in t)qK.call(t,o)&&!XK.hasOwnProperty(o)&&(n[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps,t)n[o]===void 0&&(n[o]=t[o]);return{$$typeof:UK,type:e,key:i,ref:a,props:n,_owner:KK.current}}dx.Fragment=GK;dx.jsx=N4;dx.jsxs=N4});var wr=zn((Y4e,$4)=>{"use strict";$4.exports=I4()});var bx={"SDPPP Get Document":"SDPPP Get Document","SDPPP Get Layer By ID":"SDPPP Get Layer","SDPPP Get Linked Layers":"SDPPP Get Linked Layers","SDPPP Get Layers In Group":"SDPPP Get Layers In Group","SDPPP Get Text From Layer":"SDPPP Get Text From Layer","SDPPP Parse Layer Info":"SDPPP Parse Layer Info","SDPPP Get Selection":"SDPPP Get Selection","SDPPP Get Image From Photoshop":"SDPPP Get Image From Photoshop","SDPPP Send Images To Photoshop":"SDPPP Send Images To Photoshop","SDPPP Settings":"SDPPP Settings/Misc"};var Sx={"### Active Document ###":"### \u5F53\u524D\u6587\u6863 ###","### The Canvas ###":"### \u6574\u4E2A\u753B\u5E03 ###","### New Layer ###":"### \u65B0\u56FE\u5C42 ###","### Selected Layer ###":"### \u6240\u9009\u56FE\u5C42 ###","### Keep Size or Fit Canvas ###":"### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###",_SDPPP_PSD_:"_SDPPP_PSD_","Save and run immediately":"\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C",Close:"\u5173\u95ED","Select a {0}":"\u9009\u62E9\u4E00\u4E2A {0}","How to use .ccx file":"\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6","1. If you have installed Adobe Creative Cloud":"1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud","Just double click the .ccx file, it will install the plugin automatically":"\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5","2. If you don't have Adobe Creative Cloud":"2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud","Rename .ccx to .zip and extract it into ":"\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230",or:"\u6216","Photoshop directory":"Photoshop \u5B89\u88C5\u76EE\u5F55","Cannot connect multiple different document widgets with same value":"\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6","You can only have one SDPPP Settings node in a workflow":"\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9","convert widget {0} failed:":"\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A","hidden webview load failed: {0}, please select a browser page to continue":"\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED","SDPPP Get Document":"SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)","SDPPP Get Layer By ID":"SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)","SDPPP Get Linked Layers":"SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)","SDPPP Get Layers In Group":"SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)","SDPPP Get Text From Layer":"SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)","SDPPP Parse Layer Info":"SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)","SDPPP Get Selection":"SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)","SDPPP Get Image From Photoshop":"SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)","SDPPP Send Images To Photoshop":"SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)","SDPPP Send Text To Layer":"SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)","SDPPP Run Photoshop Action":"SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)","download PS plugin (.ccx)":"\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)","current ComfyUI pageid: {0}":"\u5F53\u524D ComfyUI \u9875\u9762ID: {0}","current A1111 pageid: {0}":"\u5F53\u524D A1111 \u9875\u9762ID: {0}","document linked":"\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5","layer linked":"\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5","bound linked":"\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5",document:"\u6587\u6863",Document:"\u6587\u6863",DOCUMENT:"\u6587\u6863",document_name:"\u6587\u6863\u540D\u5B57id",layer_nameid:"\u56FE\u5C42\u540D\u5B57id",layer_name:"\u56FE\u5C42\u540D\u5B57",layer_info:"\u56FE\u5C42\u4FE1\u606F",bound_top:"\u8303\u56F4\u4E0A\u8FB9\u8DDD",bound_left:"\u8303\u56F4\u5DE6\u8FB9\u8DDD",bound_width:"\u8303\u56F4\u5BBD\u5EA6",bound_height:"\u8303\u56F4\u9AD8\u5EA6",center_x:"\u4E2D\u5FC3\u70B9x",center_y:"\u4E2D\u5FC3\u70B9y",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",Layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",bound:"\u8303\u56F4",bounds:"\u8303\u56F4","bounds [optional]":"\u8303\u56F4[\u53EF\u9009]",boundary:"\u8303\u56F4",Boundary:"\u8303\u56F4",canvas_boundary:"\u753B\u5E03\u8303\u56F4",canvas_bound:"\u753B\u5E03\u8303\u56F4",layer_boundary:"\u56FE\u5C42\u8303\u56F4",layer_bound:"\u56FE\u5C42\u8303\u56F4","Photoshop Disconnected!":"Photoshop \u672A\u8FDE\u63A5\uFF01",rgb_out:"RGB\u8F93\u51FA",alpha_out:"Alpha\u8F93\u51FA",images:"\u56FE\u50CF",text:"\u6587\u672C",ID_mode:"\u7CBE\u786EID\u6A21\u5F0F",name_mode:"\u540D\u5B57\u5339\u914D\u6A21\u5F0F",select:"\u9009\u62E9","document boundary":"\u6587\u6863\u8303\u56F4","layer boundary":"\u56FE\u5C42\u8303\u56F4","selection boundary":"\u9009\u4E2D\u8303\u56F4","save .psd to this workflow":"\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41","extract saved .psd to Photoshop":"\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop","sample .psd":"\u793A\u4F8B.psd",mask:"\u906E\u7F69",name:"\u540D\u79F0",quality:"\u56FE\u50CF\u8D28\u91CF",timeout:"\u8D85\u65F6","--multi-user activated, Not Login!":"--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01",Logout:"\u767B\u51FA","User: ":"\u7528\u6237: ",connect:"\u8FDE\u63A5",connected:"\u5DF2\u8FDE\u63A5",disconnect:"\u65AD\u5F00",disconnected:"\u5DF2\u65AD\u5F00\u8FDE\u63A5","reconnecting...":"\u91CD\u8FDE\u4E2D...",connecting:"\u8FDE\u63A5\u4E2D",webpages:"\u7F51\u9875\u5217\u8868",workflows:"\u5DE5\u4F5C\u6D41",workflow:"\u5DE5\u4F5C\u6D41","auto run page [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..","auto run workflow [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..","auto run workflow after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..",selection_only:"\u4EC5\u9009\u533A","Queue:":"\u961F\u5217:","Set As:":"\u8BBE\u7F6E\u4E3A:","Error {0}... please contact me via Discord/Github":"\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211","Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System":"Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF","Workflow List of ComfyUI with --multi-user is only available for sponsors":'\u5E26"--multi-user"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',"(Page ID: {0})Queue: {1}":"(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}","no suitable node to control in this workflow":"\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9",Save:"\u4FDD\u5B58",Edit:"\u7F16\u8F91","Edit in ComfyUI":"\u5728 ComfyUI \u4E2D\u7F16\u8F91","using browser page [{0}] for workflow running":"\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41","workflow running by hidden webview":"\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C","Lock Image":"\u9501\u5B9A\u56FE\u50CF","Unlock Image":"\u89E3\u9501\u56FE\u50CF","search...":"\u641C\u7D22...","disabled when running in browser page":"\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528","only supported in Photoshop":"\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301",Login:"\u767B\u5F55","Invitation Code":"\u9080\u8BF7\u7801",Username:"\u7528\u6237\u540D",Password:"\u5BC6\u7801","Please input invitation code":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","Please input username":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","Please input password":"\u8BF7\u8F93\u5165\u5BC6\u7801","502: Maybe the server is not running":"502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C","404: Maybe SDPPP is not installed or failed to run in ComfyUI":"404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25","{0}. reconnecting...":"{0}. \u91CD\u8FDE\u4E2D...","disconnected to {0} failed {1}":"\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}","version mismatch, please reinstall PS plugin":"\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6","instance type not recognized":"\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B","Error: {0}":"\u9519\u8BEF: {0}","Verification Error":"\u9A8C\u8BC1\u9519\u8BEF","document {0} not found":"\u627E\u4E0D\u5230\u6587\u6863: {0}",'only layer kind "TEXT" is supported, invalid layer: {0}':"\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}","create layer failed":"\u521B\u5EFA\u56FE\u5C42\u5931\u8D25","layer not found {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","no linked layer for {0}":"\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}","layer {0} is not a group":"\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4","no layer in group {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42","layer not found: {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","No upload_name":"\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25","get pixel of {0} failed":"\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}","merge group failed":"\u5408\u5E76\u7EC4\u5931\u8D25","invalid name: {0}":"\u975E\u6CD5\u7684\u540D\u79F0: {0}","get_layer_info: layer_identify required":"get_layer_info: \u9700\u8981 layer_identify","invalid action: {0}":"\u65E0\u6548\u7684\u64CD\u4F5C: {0}","create document failed":"\u521B\u5EFA\u6587\u6863\u5931\u8D25","create document for preview":"\u521B\u5EFA\u9884\u89C8\u6587\u6863","resize document for preview":"\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8","no first related layer in {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42","imageDataError: data length is not multiple of width * height":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570","imageDataError: originComponents must be 1 or 3":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3","unexpected connection lost, please try to reconnect":"\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5","Workflow list is empty, please save a workflow by Comfy's lastest UI":"\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41","No opened ComfyUI pages":"\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762","comfyAPI is not initialized, maybe comfyUI is too old":"\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7","unsupported channel counts: {0}":"\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}","Timeout, Maybe the URL is wrong":"\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF","Workflow list loading failed: {0}":"\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}","Please register a user in ComfyUI":"\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237","GetSelection need Photoshop version 25+":"GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C","Action {0} not found":"Action {0} \u672A\u627E\u5230","Action set {0} not found":"ActionSet {0} \u672A\u627E\u5230","create document for sent images":"\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863","show sent images":"\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","fallback show sent images":"\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","get content of layer {0}":"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","fallback get content of layer {0}":"\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","get layer info":"\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F","sdppp extract PSD":"sdppp \u5BFC\u5165 PSD","sdppp get PSD":"sdppp \u83B7\u53D6 PSD","set text to layer":"\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C","sdppp Run Photoshop Action":"sdppp \u8FD0\u884C Photoshop Action","{0} wants to extract a PSD file to Photoshop, are you sure?":"{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F","should sdppp refuse extracting PSD to Photoshop in this session anymore?":"\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F","Wide Mode":"\u5BBD\u5C4F\u6A21\u5F0F","Quick Set":"\u5FEB\u901F\u8BBE\u7F6E","Selected Layer":"\u9009\u4E2D\u56FE\u5C42","Selected Layer (invert)":"\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)",Canvas:"\u753B\u5E03",Selection:"\u9009\u533A",Manual:"\u624B\u52A8\u6A21\u5F0F",Auto:"\u81EA\u52A8\u6A21\u5F0F","This plugin is based on sd-ppp":"\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1","And follows its open source license:":"\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A",Cloud:"\u4E91\u7AEF",Sponsors:"\u8D5E\u52A9","waiting...":"\u865A\u4F4D\u4EE5\u5F85",Links:"\u53CB\u60C5\u94FE\u63A5",Community:"\u793E\u533A","LICENSE:":"\u8BB8\u53EF\u8BC1\uFF1A",upload:"\u4E0A\u4F20","Simplify Workflow":"\u7B80\u5316\u5DE5\u4F5C\u6D41",Photoshop:"Photoshop","Photoshop plugin settings":"Photoshop \u63D2\u4EF6\u8BBE\u7F6E","Photoshop plugin":"Photoshop \u63D2\u4EF6","SDPPP Settings/Misc":"SDPPP \u8BBE\u7F6E/\u6742\u9879","Sample .PSD for this workflow:":"\u793A\u4F8B.PSD","Download Example .PSD":"\u4E0B\u8F7D\u793A\u4F8B.PSD","Maximum Image Size (px):":"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)",Download:"\u4E0B\u8F7D",Upload:"\u4E0A\u4F20",Reset:"\u91CD\u7F6E",Refresh:"\u5237\u65B0","Comfy URL (You can copy it to connect ComfyUI in the plugin):":"Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):","use slider for number widget:":"\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757","Photoshop is not connected":"Photoshop \u672A\u8FDE\u63A5","select...":"\u8BF7\u9009\u62E9","click to edit":"\u70B9\u51FB\u7F16\u8F91","ComfyManager not found, cannot reboot":"Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F","Failed to reboot ComfyUI":"\u91CD\u542FComfyUI\u5931\u8D25"};var HR=typeof yx<"u"?yx:void 0,Cx="en";typeof navigator<"u"&&navigator.language?Cx=navigator.language=="zh-CN"?"zhcn":"en":HR&&(Cx=HR("uxp").host.uiLocale.startsWith("zh")?"zhcn":"en");function ve(e,...t){let r=Cx=="zhcn"?Sx[e]:e in bx?bx[e]:e;if(!r)throw new Error(`i18n key not found: ${e}`);return r.replace(/{(\d+)}/g,function(o,n){return typeof t[n]<"u"?t[n]:o})}function dl(e,t){return e==t||Sx[e]==t}var Xt=class e{static SPECIAL_DOCUMENT_CURRENT="### Active Document ###";static is_SPECIAL_DOCUMENT_CURRENT(t){return dl(this.SPECIAL_DOCUMENT_CURRENT,t)}static get_SPECIAL_DOCUMENT_CURRENT(){return ve(this.SPECIAL_DOCUMENT_CURRENT)}static SPECIAL_LAYER_KEEP_SIZE="### Keep Size or Fit Canvas ###";static is_SPECIAL_LAYER_FIT(t){return dl(this.SPECIAL_LAYER_KEEP_SIZE,t)}static get_SPECIAL_LAYER_FIT(){return ve(this.SPECIAL_LAYER_KEEP_SIZE)}static SPECIAL_LAYER_USE_CANVAS="### The Canvas ###";static is_SPECIAL_LAYER_USE_CANVAS(t){return dl(this.SPECIAL_LAYER_USE_CANVAS,t)}static get_SPECIAL_LAYER_USE_CANVAS(){return ve(this.SPECIAL_LAYER_USE_CANVAS)}static SPECIAL_LAYER_NEW_LAYER="### New Layer ###";static is_SPECIAL_LAYER_NEW_LAYER(t){return dl(this.SPECIAL_LAYER_NEW_LAYER,t)}static get_SPECIAL_LAYER_NEW_LAYER(){return ve(this.SPECIAL_LAYER_NEW_LAYER)}static SPECIAL_LAYER_SELECTED_LAYER="### Selected Layer ###";static is_SPECIAL_LAYER_SELECTED_LAYER(t){return dl(this.SPECIAL_LAYER_SELECTED_LAYER,t)}static get_SPECIAL_LAYER_SELECTED_LAYER(){return ve(this.SPECIAL_LAYER_SELECTED_LAYER)}static SPECIAL_LAYER_PREVIEW_DOCUMENT="_SDPPP_PSD_";static is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t){return dl(this.SPECIAL_LAYER_PREVIEW_DOCUMENT,t)}static get_SPECIAL_LAYER_PREVIEW_DOCUMENT(){return ve(this.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static getSpecialDocumentCurrent(){return ve(e.SPECIAL_DOCUMENT_CURRENT)}static getSpecialLayerForGet(){return[ve(e.SPECIAL_LAYER_USE_CANVAS),ve(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialLayerForSend(){return[ve(e.SPECIAL_LAYER_NEW_LAYER),ve(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialDocumentForPreview(){return ve(e.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static fixI18n(t){return this.is_SPECIAL_DOCUMENT_CURRENT(t)?this.SPECIAL_DOCUMENT_CURRENT:this.is_SPECIAL_LAYER_NEW_LAYER(t)?this.SPECIAL_LAYER_NEW_LAYER:this.is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t)?this.SPECIAL_LAYER_PREVIEW_DOCUMENT:this.is_SPECIAL_LAYER_USE_CANVAS(t)?this.SPECIAL_LAYER_USE_CANVAS:this.is_SPECIAL_LAYER_SELECTED_LAYER(t)?this.SPECIAL_LAYER_SELECTED_LAYER:t}};var wx={};xx(wx,{JsonPatchError:()=>Pr,_areEquals:()=>Nf,applyOperation:()=>pl,applyPatch:()=>Rc,applyReducer:()=>lz,deepClone:()=>az,getValueByPointer:()=>ml,validate:()=>GR,validator:()=>dm});var nz=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var i in n)n.hasOwnProperty(i)&&(o[i]=n[i])},e(t,r)};return function(t,r){e(t,r);function o(){this.constructor=t}t.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}(),iz=Object.prototype.hasOwnProperty;function cm(e,t){return iz.call(e,t)}function um(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&o<=57){t++;continue}return!1}return!0}function Fi(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function Pf(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function lm(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t<\/script>",e=e.removeChild(e.firstChild)):typeof o.is=="string"?e=a.createElement(r,{is:o.is}):(e=a.createElement(r),r==="select"&&(a=e,o.multiple?a.multiple=!0:o.size&&(a.size=o.size))):e=a.createElementNS(e,r),e[Ui]=t,e[Od]=o,KT(e,t,!1,!1),t.stateNode=e;e:{switch(a=Vb(r,o),r){case"dialog":or("cancel",e),or("close",e),n=o;break;case"iframe":case"object":case"embed":or("load",e),n=o;break;case"video":case"audio":for(n=0;nlu&&(t.flags|=128,o=!0,ed(i,!1),t.lanes=4194304)}else{if(!o)if(e=Vg(a),e!==null){if(t.flags|=128,o=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),ed(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!gr)return To(t),null}else 2*kr()-i.renderingStartTime>lu&&r!==1073741824&&(t.flags|=128,o=!0,ed(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(r=i.last,r!==null?r.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=kr(),t.sibling=null,r=xr.current,er(xr,o?r&1|2:r&1),t):(To(t),null);case 22:case 23:return sC(),o=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==o&&(t.flags|=8192),o&&(t.mode&1)!==0?(Sn&1073741824)!==0&&(To(t),t.subtreeFlags&6&&(t.flags|=8192)):To(t),null;case 24:return null;case 25:return null}throw Error(ge(156,t.tag))}function F6(e,t){switch(BS(t),t.tag){case 1:return sn(t.type)&&Lg(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return au(),nr(an),nr(Io),YS(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return XS(t),null;case 13:if(nr(xr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ge(340));nu()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return nr(xr),null;case 4:return au(),null;case 10:return US(t.type._context),null;case 22:case 23:return sC(),null;case 24:return null;default:return null}}var gg=!1,No=!1,z6=typeof WeakSet=="function"?WeakSet:Set,qe=null;function Kc(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(o){Tr(e,t,o)}else r.current=null}function hS(e,t,r){try{r()}catch(o){Tr(e,t,o)}}var aP=!1;function W6(e,t){if(Jb=$g,e=tT(),zS(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var o=r.getSelection&&r.getSelection();if(o&&o.rangeCount!==0){r=o.anchorNode;var n=o.anchorOffset,i=o.focusNode;o=o.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var a=0,s=-1,l=-1,c=0,u=0,f=e,d=null;t:for(;;){for(var m;f!==r||n!==0&&f.nodeType!==3||(s=a+n),f!==i||o!==0&&f.nodeType!==3||(l=a+o),f.nodeType===3&&(a+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===e)break t;if(d===r&&++c===n&&(s=a),d===i&&++u===o&&(l=a),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(eS={focusedElem:e,selectionRange:r},$g=!1,qe=t;qe!==null;)if(t=qe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,qe=e;else for(;qe!==null;){t=qe;try{var h=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var v=h.memoizedProps,y=h.memoizedState,g=t.stateNode,p=g.getSnapshotBeforeUpdate(t.elementType===t.type?v:mi(t.type,v),y);g.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ge(163))}}catch(S){Tr(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,qe=e;break}qe=t.return}return h=aP,aP=!1,h}function pd(e,t,r){var o=t.updateQueue;if(o=o!==null?o.lastEffect:null,o!==null){var n=o=o.next;do{if((n.tag&e)===e){var i=n.destroy;n.destroy=void 0,i!==void 0&&hS(t,r,i)}n=n.next}while(n!==o)}}function ih(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var o=r.create;r.destroy=o()}r=r.next}while(r!==t)}}function vS(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function QT(e){var t=e.alternate;t!==null&&(e.alternate=null,QT(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ui],delete t[Od],delete t[oS],delete t[C6],delete t[w6])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ZT(e){return e.tag===5||e.tag===3||e.tag===4}function sP(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ZT(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function yS(e,t,r){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Mg));else if(o!==4&&(e=e.child,e!==null))for(yS(e,t,r),e=e.sibling;e!==null;)yS(e,t,r),e=e.sibling}function xS(e,t,r){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(o!==4&&(e=e.child,e!==null))for(xS(e,t,r),e=e.sibling;e!==null;)xS(e,t,r),e=e.sibling}var go=null,gi=!1;function cs(e,t,r){for(r=r.child;r!==null;)JT(e,t,r),r=r.sibling}function JT(e,t,r){if(Gi&&typeof Gi.onCommitFiberUnmount=="function")try{Gi.onCommitFiberUnmount(Qg,r)}catch{}switch(r.tag){case 5:No||Kc(r,t);case 6:var o=go,n=gi;go=null,cs(e,t,r),go=o,gi=n,go!==null&&(gi?(e=go,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):go.removeChild(r.stateNode));break;case 18:go!==null&&(gi?(e=go,r=r.stateNode,e.nodeType===8?Cb(e.parentNode,r):e.nodeType===1&&Cb(e,r),Sd(e)):Cb(go,r.stateNode));break;case 4:o=go,n=gi,go=r.stateNode.containerInfo,gi=!0,cs(e,t,r),go=o,gi=n;break;case 0:case 11:case 14:case 15:if(!No&&(o=r.updateQueue,o!==null&&(o=o.lastEffect,o!==null))){n=o=o.next;do{var i=n,a=i.destroy;i=i.tag,a!==void 0&&((i&2)!==0||(i&4)!==0)&&hS(r,t,a),n=n.next}while(n!==o)}cs(e,t,r);break;case 1:if(!No&&(Kc(r,t),o=r.stateNode,typeof o.componentWillUnmount=="function"))try{o.props=r.memoizedProps,o.state=r.memoizedState,o.componentWillUnmount()}catch(s){Tr(r,t,s)}cs(e,t,r);break;case 21:cs(e,t,r);break;case 22:r.mode&1?(No=(o=No)||r.memoizedState!==null,cs(e,t,r),No=o):cs(e,t,r);break;default:cs(e,t,r)}}function lP(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new z6),t.forEach(function(o){var n=X6.bind(null,e,o);r.has(o)||(r.add(o),o.then(n,n))})}}function pi(e,t){var r=t.deletions;if(r!==null)for(var o=0;on&&(n=a),o&=~i}if(o=n,o=kr()-o,o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*j6(o/1960))-o,10e?16:e,gs===null)var o=!1;else{if(e=gs,gs=null,Kg=0,(At&6)!==0)throw Error(ge(331));var n=At;for(At|=4,qe=e.current;qe!==null;){var i=qe,a=i.child;if((qe.flags&16)!==0){var s=i.deletions;if(s!==null){for(var l=0;lkr()-iC?Rl(e,0):nC|=r),ln(e,t)}function sN(e,t){t===0&&((e.mode&1)===0?t=1:(t=rg,rg<<=1,(rg&130023424)===0&&(rg=4194304)));var r=qo();e=Oa(e,t),e!==null&&(Dd(e,t,r),ln(e,r))}function K6(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),sN(e,r)}function X6(e,t){var r=0;switch(e.tag){case 13:var o=e.stateNode,n=e.memoizedState;n!==null&&(r=n.retryLane);break;case 19:o=e.stateNode;break;default:throw Error(ge(314))}o!==null&&o.delete(t),sN(e,r)}var lN;lN=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||an.current)nn=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return nn=!1,L6(e,t,r);nn=(e.flags&131072)!==0}else nn=!1,gr&&(t.flags&1048576)!==0&&dT(t,zg,t.index);switch(t.lanes=0,t.tag){case 2:var o=t.type;wg(e,t),e=t.pendingProps;var n=ou(t,Io.current);eu(t,r),n=ZS(null,t,o,e,n,r);var i=JS();return t.flags|=1,typeof n=="object"&&n!==null&&typeof n.render=="function"&&n.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,sn(o)?(i=!0,kg(t)):i=!1,t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,qS(t),n.updater=nh,t.stateNode=n,n._reactInternals=t,cS(t,o,e,r),t=dS(null,t,o,!0,i,r)):(t.tag=0,gr&&i&&WS(t),Go(null,t,n,r),t=t.child),t;case 16:o=t.elementType;e:{switch(wg(e,t),e=t.pendingProps,n=o._init,o=n(o._payload),t.type=o,n=t.tag=Q6(o),e=mi(o,e),n){case 0:t=fS(null,t,o,e,r);break e;case 1:t=oP(null,t,o,e,r);break e;case 11:t=tP(null,t,o,e,r);break e;case 14:t=rP(null,t,o,mi(o.type,e),r);break e}throw Error(ge(306,o,""))}return t;case 0:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),fS(e,t,o,n,r);case 1:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),oP(e,t,o,n,r);case 3:e:{if(UT(t),e===null)throw Error(ge(387));o=t.pendingProps,i=t.memoizedState,n=i.element,yT(e,t),jg(t,o,null,r);var a=t.memoizedState;if(o=a.element,i.isDehydrated)if(i={element:o,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){n=su(Error(ge(423)),t),t=nP(e,t,o,r,n);break e}else if(o!==n){n=su(Error(ge(424)),t),t=nP(e,t,o,r,n);break e}else for(Cn=xs(t.stateNode.containerInfo.firstChild),wn=t,gr=!0,hi=null,r=hT(t,null,o,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(nu(),o===n){t=_a(e,t,r);break e}Go(e,t,o,r)}t=t.child}return t;case 5:return xT(t),e===null&&aS(t),o=t.type,n=t.pendingProps,i=e!==null?e.memoizedProps:null,a=n.children,tS(o,n)?a=null:i!==null&&tS(o,i)&&(t.flags|=32),HT(e,t),Go(e,t,a,r),t.child;case 6:return e===null&&aS(t),null;case 13:return GT(e,t,r);case 4:return KS(t,t.stateNode.containerInfo),o=t.pendingProps,e===null?t.child=iu(t,null,o,r):Go(e,t,o,r),t.child;case 11:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),tP(e,t,o,n,r);case 7:return Go(e,t,t.pendingProps,r),t.child;case 8:return Go(e,t,t.pendingProps.children,r),t.child;case 12:return Go(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(o=t.type._context,n=t.pendingProps,i=t.memoizedProps,a=n.value,er(Wg,o._currentValue),o._currentValue=a,i!==null)if(xi(i.value,a)){if(i.children===n.children&&!an.current){t=_a(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===o){if(i.tag===1){l=wa(-1,r&-r),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}i.lanes|=r,l=i.alternate,l!==null&&(l.lanes|=r),sS(i.return,r,t),s.lanes|=r;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ge(341));a.lanes|=r,s=a.alternate,s!==null&&(s.lanes|=r),sS(a,r,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Go(e,t,n.children,r),t=t.child}return t;case 9:return n=t.type,o=t.pendingProps.children,eu(t,r),n=Gn(n),o=o(n),t.flags|=1,Go(e,t,o,r),t.child;case 14:return o=t.type,n=mi(o,t.pendingProps),n=mi(o.type,n),rP(e,t,o,n,r);case 15:return jT(e,t,t.type,t.pendingProps,r);case 17:return o=t.type,n=t.pendingProps,n=t.elementType===o?n:mi(o,n),wg(e,t),t.tag=1,sn(o)?(e=!0,kg(t)):e=!1,eu(t,r),zT(t,o,n),cS(t,o,n,r),dS(null,t,o,!0,e,r);case 19:return qT(e,t,r);case 22:return VT(e,t,r)}throw Error(ge(156,t.tag))};function cN(e,t){return LP(e,t)}function Y6(e,t,r,o){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Hn(e,t,r,o){return new Y6(e,t,r,o)}function cC(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Q6(e){if(typeof e=="function")return cC(e)?1:0;if(e!=null){if(e=e.$$typeof,e===PS)return 11;if(e===TS)return 14}return 2}function ws(e,t){var r=e.alternate;return r===null?(r=Hn(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Og(e,t,r,o,n,i){var a=2;if(o=e,typeof e=="function")cC(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case zc:return Ol(r.children,n,i,t);case _S:a=8,n|=8;break;case Db:return e=Hn(12,r,t,n|2),e.elementType=Db,e.lanes=i,e;case Ab:return e=Hn(13,r,t,n),e.elementType=Ab,e.lanes=i,e;case Mb:return e=Hn(19,r,t,n),e.elementType=Mb,e.lanes=i,e;case xP:return sh(r,n,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vP:a=10;break e;case yP:a=9;break e;case PS:a=11;break e;case TS:a=14;break e;case us:a=16,o=null;break e}throw Error(ge(130,e==null?e:typeof e,""))}return t=Hn(a,r,t,n),t.elementType=e,t.type=o,t.lanes=i,t}function Ol(e,t,r,o){return e=Hn(7,e,o,t),e.lanes=r,e}function sh(e,t,r,o){return e=Hn(22,e,o,t),e.elementType=xP,e.lanes=r,e.stateNode={isHidden:!1},e}function Nb(e,t,r){return e=Hn(6,e,null,t),e.lanes=r,e}function Ib(e,t,r){return t=Hn(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Z6(e,t,r,o,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=mb(0),this.expirationTimes=mb(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=mb(0),this.identifierPrefix=o,this.onRecoverableError=n,this.mutableSourceEagerHydrationData=null}function uC(e,t,r,o,n,i,a,s,l){return e=new Z6(e,t,r,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Hn(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:o,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},qS(i),e}function J6(e,t,r){var o=3{"use strict";function mN(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(mN)}catch(e){console.error(e)}}mN(),gN.exports=pN()});var vN=zn(mC=>{"use strict";var hN=bi();mC.createRoot=hN.createRoot,mC.hydrateRoot=hN.hydrateRoot;var OJ});var Ee=zn((TJ,dh)=>{"use strict";(function(){"use strict";var e={}.hasOwnProperty;function t(){for(var n="",i=0;i{"use strict";var vC=Symbol.for("react.element"),yC=Symbol.for("react.portal"),gh=Symbol.for("react.fragment"),hh=Symbol.for("react.strict_mode"),vh=Symbol.for("react.profiler"),yh=Symbol.for("react.provider"),xh=Symbol.for("react.context"),dB=Symbol.for("react.server_context"),bh=Symbol.for("react.forward_ref"),Sh=Symbol.for("react.suspense"),Ch=Symbol.for("react.suspense_list"),wh=Symbol.for("react.memo"),Eh=Symbol.for("react.lazy"),pB=Symbol.for("react.offscreen"),ON;ON=Symbol.for("react.module.reference");function Kn(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case vC:switch(e=e.type,e){case gh:case vh:case hh:case Sh:case Ch:return e;default:switch(e=e&&e.$$typeof,e){case dB:case xh:case bh:case Eh:case wh:case yh:return e;default:return t}}case yC:return t}}}Ht.ContextConsumer=xh;Ht.ContextProvider=yh;Ht.Element=vC;Ht.ForwardRef=bh;Ht.Fragment=gh;Ht.Lazy=Eh;Ht.Memo=wh;Ht.Portal=yC;Ht.Profiler=vh;Ht.StrictMode=hh;Ht.Suspense=Sh;Ht.SuspenseList=Ch;Ht.isAsyncMode=function(){return!1};Ht.isConcurrentMode=function(){return!1};Ht.isContextConsumer=function(e){return Kn(e)===xh};Ht.isContextProvider=function(e){return Kn(e)===yh};Ht.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===vC};Ht.isForwardRef=function(e){return Kn(e)===bh};Ht.isFragment=function(e){return Kn(e)===gh};Ht.isLazy=function(e){return Kn(e)===Eh};Ht.isMemo=function(e){return Kn(e)===wh};Ht.isPortal=function(e){return Kn(e)===yC};Ht.isProfiler=function(e){return Kn(e)===vh};Ht.isStrictMode=function(e){return Kn(e)===hh};Ht.isSuspense=function(e){return Kn(e)===Sh};Ht.isSuspenseList=function(e){return Kn(e)===Ch};Ht.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===gh||e===vh||e===hh||e===Sh||e===Ch||e===pB||typeof e=="object"&&e!==null&&(e.$$typeof===Eh||e.$$typeof===wh||e.$$typeof===yh||e.$$typeof===xh||e.$$typeof===bh||e.$$typeof===ON||e.getModuleId!==void 0)};Ht.typeOf=Kn});var TN=zn((XJ,PN)=>{"use strict";PN.exports=_N()});var I4=zn(dx=>{"use strict";var HK=I(),UK=Symbol.for("react.element"),GK=Symbol.for("react.fragment"),qK=Object.prototype.hasOwnProperty,KK=HK.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,XK={key:!0,ref:!0,__self:!0,__source:!0};function N4(e,t,r){var o,n={},i=null,a=null;r!==void 0&&(i=""+r),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(a=t.ref);for(o in t)qK.call(t,o)&&!XK.hasOwnProperty(o)&&(n[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps,t)n[o]===void 0&&(n[o]=t[o]);return{$$typeof:UK,type:e,key:i,ref:a,props:n,_owner:KK.current}}dx.Fragment=GK;dx.jsx=N4;dx.jsxs=N4});var wr=zn((Y4e,$4)=>{"use strict";$4.exports=I4()});var bx={"SDPPP Get Document":"SDPPP Get Document","SDPPP Get Layer By ID":"SDPPP Get Layer","SDPPP Get Linked Layers":"SDPPP Get Linked Layers","SDPPP Get Layers In Group":"SDPPP Get Layers In Group","SDPPP Get Text From Layer":"SDPPP Get Text From Layer","SDPPP Parse Layer Info":"SDPPP Parse Layer Info","SDPPP Get Selection":"SDPPP Get Selection","SDPPP Get Image From Photoshop":"SDPPP Get Image From Photoshop","SDPPP Send Images To Photoshop":"SDPPP Send Images To Photoshop","SDPPP Settings":"SDPPP Settings/Misc"};var Sx={"### Active Document ###":"### \u5F53\u524D\u6587\u6863 ###","### The Canvas ###":"### \u6574\u4E2A\u753B\u5E03 ###","### New Layer ###":"### \u65B0\u56FE\u5C42 ###","### Selected Layer ###":"### \u6240\u9009\u56FE\u5C42 ###","### Keep Size or Fit Canvas ###":"### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###",_SDPPP_PSD_:"_SDPPP_PSD_","Save and run immediately":"\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C",Close:"\u5173\u95ED","Select a {0}":"\u9009\u62E9\u4E00\u4E2A {0}","How to use .ccx file":"\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6","1. If you have installed Adobe Creative Cloud":"1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud","Just double click the .ccx file, it will install the plugin automatically":"\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5","2. If you don't have Adobe Creative Cloud":"2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud","Rename .ccx to .zip and extract it into ":"\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230",or:"\u6216","Photoshop directory":"Photoshop \u5B89\u88C5\u76EE\u5F55","Cannot connect multiple different document widgets with same value":"\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6","You can only have one SDPPP Settings node in a workflow":"\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9","convert widget {0} failed:":"\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A","hidden webview load failed: {0}, please select a browser page to continue":"\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED","SDPPP Get Document":"SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)","SDPPP Get Layer By ID":"SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)","SDPPP Get Linked Layers":"SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)","SDPPP Get Layers In Group":"SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)","SDPPP Get Text From Layer":"SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)","SDPPP Parse Layer Info":"SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)","SDPPP Get Selection":"SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)","SDPPP Get Image From Photoshop":"SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)","SDPPP Send Images To Photoshop":"SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)","SDPPP Send Text To Layer":"SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)","SDPPP Run Photoshop Action":"SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)","download PS plugin (.ccx)":"\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)","current ComfyUI pageid: {0}":"\u5F53\u524D ComfyUI \u9875\u9762ID: {0}","current A1111 pageid: {0}":"\u5F53\u524D A1111 \u9875\u9762ID: {0}","document linked":"\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5","layer linked":"\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5","bound linked":"\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5",document:"\u6587\u6863",Document:"\u6587\u6863",DOCUMENT:"\u6587\u6863",document_name:"\u6587\u6863\u540D\u5B57id",layer_nameid:"\u56FE\u5C42\u540D\u5B57id",layer_name:"\u56FE\u5C42\u540D\u5B57",layer_info:"\u56FE\u5C42\u4FE1\u606F",bound_top:"\u8303\u56F4\u4E0A\u8FB9\u8DDD",bound_left:"\u8303\u56F4\u5DE6\u8FB9\u8DDD",bound_width:"\u8303\u56F4\u5BBD\u5EA6",bound_height:"\u8303\u56F4\u9AD8\u5EA6",center_x:"\u4E2D\u5FC3\u70B9x",center_y:"\u4E2D\u5FC3\u70B9y",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",Layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",bound:"\u8303\u56F4",bounds:"\u8303\u56F4","bounds [optional]":"\u8303\u56F4[\u53EF\u9009]",boundary:"\u8303\u56F4",Boundary:"\u8303\u56F4",canvas_boundary:"\u753B\u5E03\u8303\u56F4",canvas_bound:"\u753B\u5E03\u8303\u56F4",layer_boundary:"\u56FE\u5C42\u8303\u56F4",layer_bound:"\u56FE\u5C42\u8303\u56F4","Photoshop Disconnected!":"Photoshop \u672A\u8FDE\u63A5\uFF01",rgb_out:"RGB\u8F93\u51FA",alpha_out:"Alpha\u8F93\u51FA",images:"\u56FE\u50CF",text:"\u6587\u672C",ID_mode:"\u7CBE\u786EID\u6A21\u5F0F",name_mode:"\u540D\u5B57\u5339\u914D\u6A21\u5F0F",select:"\u9009\u62E9","document boundary":"\u6587\u6863\u8303\u56F4","layer boundary":"\u56FE\u5C42\u8303\u56F4","selection boundary":"\u9009\u4E2D\u8303\u56F4","save .psd to this workflow":"\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41","extract saved .psd to Photoshop":"\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop","sample .psd":"\u793A\u4F8B.psd",mask:"\u906E\u7F69",name:"\u540D\u79F0",quality:"\u56FE\u50CF\u8D28\u91CF",timeout:"\u8D85\u65F6","--multi-user activated, Not Login!":"--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01",Logout:"\u767B\u51FA","User: ":"\u7528\u6237: ",connect:"\u8FDE\u63A5",connected:"\u5DF2\u8FDE\u63A5",disconnect:"\u65AD\u5F00",disconnected:"\u5DF2\u65AD\u5F00\u8FDE\u63A5","reconnecting...":"\u91CD\u8FDE\u4E2D...",connecting:"\u8FDE\u63A5\u4E2D",webpages:"\u7F51\u9875\u5217\u8868",workflows:"\u5DE5\u4F5C\u6D41",workflow:"\u5DE5\u4F5C\u6D41","auto run page [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..","auto run workflow [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..","auto run workflow after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..",selection_only:"\u4EC5\u9009\u533A","Queue:":"\u961F\u5217:","Set As:":"\u8BBE\u7F6E\u4E3A:","Error {0}... please contact me via Discord/Github":"\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211","Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System":"Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF","Workflow List of ComfyUI with --multi-user is only available for sponsors":'\u5E26"--multi-user"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',"(Page ID: {0})Queue: {1}":"(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}","no suitable node to control in this workflow":"\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9",Save:"\u4FDD\u5B58",Edit:"\u7F16\u8F91","Edit in ComfyUI":"\u5728 ComfyUI \u4E2D\u7F16\u8F91","using browser page [{0}] for workflow running":"\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41","workflow running by hidden webview":"\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C","Lock Image":"\u9501\u5B9A\u56FE\u50CF","Unlock Image":"\u89E3\u9501\u56FE\u50CF","search...":"\u641C\u7D22...","disabled when running in browser page":"\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528","only supported in Photoshop":"\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301",Login:"\u767B\u5F55","Invitation Code":"\u9080\u8BF7\u7801",Username:"\u7528\u6237\u540D",Password:"\u5BC6\u7801","Please input invitation code":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","Please input username":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","Please input password":"\u8BF7\u8F93\u5165\u5BC6\u7801","502: Maybe the server is not running":"502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C","404: Maybe SDPPP is not installed or failed to run in ComfyUI":"404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25","{0}. reconnecting...":"{0}. \u91CD\u8FDE\u4E2D...","disconnected to {0} failed {1}":"\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}","version mismatch, please reinstall PS plugin":"\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6","instance type not recognized":"\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B","Error: {0}":"\u9519\u8BEF: {0}","Verification Error":"\u9A8C\u8BC1\u9519\u8BEF","document {0} not found":"\u627E\u4E0D\u5230\u6587\u6863: {0}",'only layer kind "TEXT" is supported, invalid layer: {0}':"\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}","create layer failed":"\u521B\u5EFA\u56FE\u5C42\u5931\u8D25","layer not found {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","no linked layer for {0}":"\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}","layer {0} is not a group":"\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4","no layer in group {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42","layer not found: {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","No upload_name":"\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25","get pixel of {0} failed":"\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}","merge group failed":"\u5408\u5E76\u7EC4\u5931\u8D25","invalid name: {0}":"\u975E\u6CD5\u7684\u540D\u79F0: {0}","get_layer_info: layer_identify required":"get_layer_info: \u9700\u8981 layer_identify","invalid action: {0}":"\u65E0\u6548\u7684\u64CD\u4F5C: {0}","create document failed":"\u521B\u5EFA\u6587\u6863\u5931\u8D25","create document for preview":"\u521B\u5EFA\u9884\u89C8\u6587\u6863","resize document for preview":"\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8","no first related layer in {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42","imageDataError: data length is not multiple of width * height":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570","imageDataError: originComponents must be 1 or 3":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3","unexpected connection lost, please try to reconnect":"\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5","Workflow list is empty, please save a workflow by Comfy's lastest UI":"\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41","No opened ComfyUI pages":"\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762","comfyAPI is not initialized, maybe comfyUI is too old":"\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7","unsupported channel counts: {0}":"\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}","Timeout, Maybe the URL is wrong":"\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF","Workflow list loading failed: {0}":"\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}","Please register a user in ComfyUI":"\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237","GetSelection need Photoshop version 25+":"GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C","Action {0} not found":"Action {0} \u672A\u627E\u5230","Action set {0} not found":"ActionSet {0} \u672A\u627E\u5230","create document for sent images":"\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863","show sent images":"\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","fallback show sent images":"\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","get content of layer {0}":"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","fallback get content of layer {0}":"\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","get layer info":"\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F","sdppp extract PSD":"sdppp \u5BFC\u5165 PSD","sdppp get PSD":"sdppp \u83B7\u53D6 PSD","set text to layer":"\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C","sdppp Run Photoshop Action":"sdppp \u8FD0\u884C Photoshop Action","{0} wants to extract a PSD file to Photoshop, are you sure?":"{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F","should sdppp refuse extracting PSD to Photoshop in this session anymore?":"\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F","Wide Mode":"\u5BBD\u5C4F\u6A21\u5F0F","Quick Set":"\u5FEB\u901F\u8BBE\u7F6E","Selected Layer":"\u9009\u4E2D\u56FE\u5C42","Selected Layer (invert)":"\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)",Canvas:"\u753B\u5E03",Selection:"\u9009\u533A",Manual:"\u624B\u52A8\u6A21\u5F0F",Auto:"\u81EA\u52A8\u6A21\u5F0F","This plugin is based on sd-ppp":"\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1","And follows its open source license:":"\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A",Cloud:"\u4E91\u7AEF",Sponsors:"\u8D5E\u52A9","waiting...":"\u865A\u4F4D\u4EE5\u5F85",Links:"\u53CB\u60C5\u94FE\u63A5",Community:"\u793E\u533A","LICENSE:":"\u8BB8\u53EF\u8BC1\uFF1A","Official Site":"\u5B98\u65B9\u7F51\u7AD9",upload:"\u4E0A\u4F20","Simplify Workflow":"\u7B80\u5316\u5DE5\u4F5C\u6D41",Photoshop:"Photoshop","Photoshop plugin settings":"Photoshop \u63D2\u4EF6\u8BBE\u7F6E","Photoshop plugin":"Photoshop \u63D2\u4EF6","SDPPP Settings/Misc":"SDPPP \u8BBE\u7F6E/\u6742\u9879","Sample .PSD for this workflow:":"\u793A\u4F8B.PSD","Download Example .PSD":"\u4E0B\u8F7D\u793A\u4F8B.PSD","Maximum Image Size (px):":"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)",Download:"\u4E0B\u8F7D",Upload:"\u4E0A\u4F20",Reset:"\u91CD\u7F6E",Refresh:"\u5237\u65B0","Comfy URL (You can copy it to connect ComfyUI in the plugin):":"Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):","use slider for number widget:":"\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757","Photoshop is not connected":"Photoshop \u672A\u8FDE\u63A5","select...":"\u8BF7\u9009\u62E9","click to edit":"\u70B9\u51FB\u7F16\u8F91","ComfyManager not found, cannot reboot":"Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F","Failed to reboot ComfyUI":"\u91CD\u542FComfyUI\u5931\u8D25"};var HR=typeof yx<"u"?yx:void 0,Cx="en";typeof navigator<"u"&&navigator.language?Cx=navigator.language=="zh-CN"?"zhcn":"en":HR&&(Cx=HR("uxp").host.uiLocale.startsWith("zh")?"zhcn":"en");function ve(e,...t){let r=Cx=="zhcn"?Sx[e]:e in bx?bx[e]:e;if(!r)throw new Error(`i18n key not found: ${e}`);return r.replace(/{(\d+)}/g,function(o,n){return typeof t[n]<"u"?t[n]:o})}function dl(e,t){return e==t||Sx[e]==t}var Xt=class e{static SPECIAL_DOCUMENT_CURRENT="### Active Document ###";static is_SPECIAL_DOCUMENT_CURRENT(t){return dl(this.SPECIAL_DOCUMENT_CURRENT,t)}static get_SPECIAL_DOCUMENT_CURRENT(){return ve(this.SPECIAL_DOCUMENT_CURRENT)}static SPECIAL_LAYER_KEEP_SIZE="### Keep Size or Fit Canvas ###";static is_SPECIAL_LAYER_FIT(t){return dl(this.SPECIAL_LAYER_KEEP_SIZE,t)}static get_SPECIAL_LAYER_FIT(){return ve(this.SPECIAL_LAYER_KEEP_SIZE)}static SPECIAL_LAYER_USE_CANVAS="### The Canvas ###";static is_SPECIAL_LAYER_USE_CANVAS(t){return dl(this.SPECIAL_LAYER_USE_CANVAS,t)}static get_SPECIAL_LAYER_USE_CANVAS(){return ve(this.SPECIAL_LAYER_USE_CANVAS)}static SPECIAL_LAYER_NEW_LAYER="### New Layer ###";static is_SPECIAL_LAYER_NEW_LAYER(t){return dl(this.SPECIAL_LAYER_NEW_LAYER,t)}static get_SPECIAL_LAYER_NEW_LAYER(){return ve(this.SPECIAL_LAYER_NEW_LAYER)}static SPECIAL_LAYER_SELECTED_LAYER="### Selected Layer ###";static is_SPECIAL_LAYER_SELECTED_LAYER(t){return dl(this.SPECIAL_LAYER_SELECTED_LAYER,t)}static get_SPECIAL_LAYER_SELECTED_LAYER(){return ve(this.SPECIAL_LAYER_SELECTED_LAYER)}static SPECIAL_LAYER_PREVIEW_DOCUMENT="_SDPPP_PSD_";static is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t){return dl(this.SPECIAL_LAYER_PREVIEW_DOCUMENT,t)}static get_SPECIAL_LAYER_PREVIEW_DOCUMENT(){return ve(this.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static getSpecialDocumentCurrent(){return ve(e.SPECIAL_DOCUMENT_CURRENT)}static getSpecialLayerForGet(){return[ve(e.SPECIAL_LAYER_USE_CANVAS),ve(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialLayerForSend(){return[ve(e.SPECIAL_LAYER_NEW_LAYER),ve(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialDocumentForPreview(){return ve(e.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static fixI18n(t){return this.is_SPECIAL_DOCUMENT_CURRENT(t)?this.SPECIAL_DOCUMENT_CURRENT:this.is_SPECIAL_LAYER_NEW_LAYER(t)?this.SPECIAL_LAYER_NEW_LAYER:this.is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t)?this.SPECIAL_LAYER_PREVIEW_DOCUMENT:this.is_SPECIAL_LAYER_USE_CANVAS(t)?this.SPECIAL_LAYER_USE_CANVAS:this.is_SPECIAL_LAYER_SELECTED_LAYER(t)?this.SPECIAL_LAYER_SELECTED_LAYER:t}};var wx={};xx(wx,{JsonPatchError:()=>Pr,_areEquals:()=>Nf,applyOperation:()=>pl,applyPatch:()=>Rc,applyReducer:()=>lz,deepClone:()=>az,getValueByPointer:()=>ml,validate:()=>GR,validator:()=>dm});var nz=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var i in n)n.hasOwnProperty(i)&&(o[i]=n[i])},e(t,r)};return function(t,r){e(t,r);function o(){this.constructor=t}t.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}(),iz=Object.prototype.hasOwnProperty;function cm(e,t){return iz.call(e,t)}function um(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&o<=57){t++;continue}return!1}return!0}function Fi(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function Pf(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function lm(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&l[u-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&d===void 0&&(c[m]===void 0?d=l.slice(0,u).join("/"):u==f-1&&(d=t.path),d!==void 0&&h(t,0,e,d)),u++,Array.isArray(c)){if(m==="-")m=c.length;else{if(r&&!fm(m))throw new Pr("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",i,t,e);fm(m)&&(m=~~m)}if(u>=f){if(r&&t.op==="add"&&m>c.length)throw new Pr("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",i,t,e);var a=sz[t.op].call(t,c,m,e);if(a.test===!1)throw new Pr("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return a}}else if(u>=f){var a=Ec[t.op].call(t,c,m,e);if(a.test===!1)throw new Pr("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return a}if(c=c[m],r&&u0)throw new Pr('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new Pr("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new Pr("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&lm(e.value))throw new Pr("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var n=e.path.split("/").length,i=o.split("/").length;if(n!==i+1&&n!==i)throw new Pr("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==o)throw new Pr("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var a={op:"_get",path:e.from,value:void 0},s=GR([a],r);if(s&&s.name==="OPERATION_PATH_UNRESOLVABLE")throw new Pr("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new Pr("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function GR(e,t,r){try{if(!Array.isArray(e))throw new Pr("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)Rc(_r(t),_r(e),r||!0);else{r=r||dm;for(var o=0;opm,generate:()=>Ex,observe:()=>gz,unobserve:()=>mz});var Rx=new WeakMap,cz=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),uz=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function fz(e){return Rx.get(e)}function dz(e,t){return e.observers.get(t)}function pz(e,t){e.observers.delete(t.callback)}function mz(e,t){t.unobserve()}function gz(e,t){var r=[],o,n=fz(e);if(!n)n=new cz(e),Rx.set(e,n);else{var i=dz(n,t);o=i&&i.observer}if(o)return o;if(o={},n.value=_r(e),t){o.callback=t,o.next=null;var a=function(){Ex(o)},s=function(){clearTimeout(o.next),o.next=setTimeout(a)};typeof window<"u"&&(window.addEventListener("mouseup",s),window.addEventListener("keyup",s),window.addEventListener("mousedown",s),window.addEventListener("keydown",s),window.addEventListener("change",s))}return o.patches=r,o.object=e,o.unobserve=function(){Ex(o),clearTimeout(o.next),pz(n,o),typeof window<"u"&&(window.removeEventListener("mouseup",s),window.removeEventListener("keyup",s),window.removeEventListener("mousedown",s),window.removeEventListener("keydown",s),window.removeEventListener("change",s))},n.observers.set(t,new uz(t,o)),o}function Ex(e,t){t===void 0&&(t=!1);var r=Rx.get(e.object);Ox(r.value,e.object,e.patches,"",t),e.patches.length&&Rc(r.value,e.patches);var o=e.patches;return o.length>0&&(e.patches=[],e.callback&&e.callback(o)),o}function Ox(e,t,r,o,n){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var i=um(t),a=um(e),s=!1,l=!1,c=a.length-1;c>=0;c--){var u=a[c],f=e[u];if(cm(t,u)&&!(t[u]===void 0&&f!==void 0&&Array.isArray(t)===!1)){var d=t[u];typeof f=="object"&&f!=null&&typeof d=="object"&&d!=null&&Array.isArray(f)===Array.isArray(d)?Ox(f,d,r,o+"/"+Fi(u),n):f!==d&&(s=!0,n&&r.push({op:"test",path:o+"/"+Fi(u),value:_r(f)}),r.push({op:"replace",path:o+"/"+Fi(u),value:_r(d)}))}else Array.isArray(e)===Array.isArray(t)?(n&&r.push({op:"test",path:o+"/"+Fi(u),value:_r(f)}),r.push({op:"remove",path:o+"/"+Fi(u)}),l=!0):(n&&r.push({op:"test",path:o,value:e}),r.push({op:"replace",path:o,value:t}),s=!0)}if(!(!l&&i.length==a.length))for(var c=0;co!=t)}dispatch(t,r){let o=new Map;t.forEach(n=>{this.subscribers.forEach(([i,a])=>{n.path.startsWith(i)&&!o.has(i)&&o.set(i,JSON.stringify(i==="/"?r:ml(r,i)))})}),o.forEach((n,i)=>{let a=i==="/"?this._data:ml(this._data,i);n!==JSON.stringify(a)&&this.subscribers.filter(([s,l])=>s===i).forEach(([s,l])=>{let c={};try{c=l(a,JSON.parse(n||{}))}catch(u){console.error(u.stack||u.message||u)}c instanceof Promise&&c.catch(u=>{console.error(u.stack||u.message||u)})})})}};function Lr(e,t,r){return e.constructor[mm]||(e.constructor[mm]=[]),e.constructor[mm].push(t),{value:function(...o){let n=_r(this._data);r.value.apply(this,o);let i=pm(n,this._data);i.length!=0&&(this._mutationRecords.push(...i),this._version+=i.length,this.dispatch(i,n))}}}var gl=class extends Px{constructor(t){super(Object.assign({sid:"",ssid:""},t||{}))}setSID(t){this._data.sid=t,this._data.ssid=t.slice(0,4)}};Or([Lr],gl.prototype,"setSID",1);var Ro=class extends gl{constructor(t,r){super(t||{title:"",webviewFromSid:location.search.match(/webview_fromsid=([^&]+)/)?.[1]||"",progress:0,lastError:"",queueSize:0,executingNodeTitle:"",widgetTableStructure:{widgetTablePath:"",widgetTablePersisted:!1,widgetTableID:"",nodes:{},groups:{},nodeIndexes:[],extraOptions:{}},widgetTableValue:{},widgetTableErrors:{},useSliderForNumberWidget:!1,hasPSDNodes:!1,comfyUserToken:""}),this._version=r||0}setWebviewFromSid(t){this._data.webviewFromSid=t}setTitle(t){this._data.title=t}setProgress(t){this._data.progress=t}setLastError(t){this._data.lastError=t}setQueueSize(t){this._data.queueSize=t}setExecutingNodeTitle(t){this._data.executingNodeTitle=t}setWidgetTableStructure(t){this._data.widgetTableStructure=JSON.parse(JSON.stringify(t))}setWidgetTableValue(t){this._data.widgetTableValue=JSON.parse(JSON.stringify(t))}setWidgetTableErrors(t){this._data.widgetTableErrors=JSON.parse(JSON.stringify(t))}setHasPSDNodes(t){this._data.hasPSDNodes=t}setComfyUserToken(t){this._data.comfyUserToken=t}setUseSliderForNumberWidget(t){this._data.useSliderForNumberWidget=t}};Or([Lr],Ro.prototype,"setWebviewFromSid",1),Or([Lr],Ro.prototype,"setTitle",1),Or([Lr],Ro.prototype,"setProgress",1),Or([Lr],Ro.prototype,"setLastError",1),Or([Lr],Ro.prototype,"setQueueSize",1),Or([Lr],Ro.prototype,"setExecutingNodeTitle",1),Or([Lr],Ro.prototype,"setWidgetTableStructure",1),Or([Lr],Ro.prototype,"setWidgetTableValue",1),Or([Lr],Ro.prototype,"setWidgetTableErrors",1),Or([Lr],Ro.prototype,"setHasPSDNodes",1),Or([Lr],Ro.prototype,"setComfyUserToken",1),Or([Lr],Ro.prototype,"setUseSliderForNumberWidget",1);var zi=class extends gl{constructor(t,r){super(t||{uname:"",comfyUserToken:"",activeDocumentID:0,documents:{},canvasStateID:0,selectionStateID:"",historyStateID:0}),this._version=r||0}setUName(t){this._data.uname="PS_"+t}setDocument(t,r){this._data.activeDocumentID=t,this._data.documents=r}setCanvasStateID(t){this._data.canvasStateID=t}setSelectionStateID(t){this._data.selectionStateID=t}setHistoryStateID(t){this._data.historyStateID=t}setComfyUserToken(t){this._data.comfyUserToken=t}};Or([Lr],zi.prototype,"setUName",1),Or([Lr],zi.prototype,"setDocument",1),Or([Lr],zi.prototype,"setCanvasStateID",1),Or([Lr],zi.prototype,"setSelectionStateID",1),Or([Lr],zi.prototype,"setHistoryStateID",1),Or([Lr],zi.prototype,"setComfyUserToken",1);var gm=class{storeMap=new Map;storeCount(){return this.storeMap.size}getStore(t){return this.storeMap.get(t)}getAllStore(){return Object.fromEntries(this.storeMap.entries())}subscribers=[];subscribersWithoutKey=new WeakMap;subscribe(t,r){this.subscribers.push([t,r]);let o={};this.subscribersWithoutKey.set(r,o),this.storeMap.forEach((n,i)=>{o[i]=r.bind(this,i),n.subscribe(t,o[i])})}unsubscribe(t){this.subscribers=this.subscribers.filter(([o,n])=>n!=t);let r=this.subscribersWithoutKey.get(t);r&&this.storeMap.forEach((o,n)=>{o.unsubscribe(r[n])})}addStore(t,r,o){let n=this.createStore(r,o);this.storeMap.set(t,n),this.subscribers.forEach(([i,a])=>{let s=this.subscribersWithoutKey.get(a);s||(s={},this.subscribersWithoutKey.set(a,s)),s[t]=a.bind(this,t),n.subscribe(i,s[t]),i=="/"&&a(t,r,null)})}removeStore(t){let r=this.storeMap.get(t);r&&(this.subscribers.forEach(([o,n])=>{let i=this.subscribersWithoutKey.get(n);i&&(r.unsubscribe(i[t]),o=="/"&&n(t,null,r.data))}),this.storeMap.delete(t))}sync(t){if(t instanceof Array){let r=Array.from(this.storeMap.keys()),o=t.filter(i=>!r.includes(i)),n=r.filter(i=>!t.includes(i));o.forEach(i=>this.addStore(i,{},0)),n.forEach(i=>this.removeStore(i))}else{Array.from(this.storeMap.keys()).filter(o=>!Object.keys(t).includes(o)).forEach(o=>this.removeStore(o));for(let o in t){let{data:n,version:i}=t[o];this.storeMap.has(o)?this.storeMap.get(o)?.sync(n,i):this.addStore(o,n,i)}}}};var Dt=window.comfyAPI.app.app,NX=window.comfyAPI.ui.$el,Oo=window.comfyAPI.api.api;var Tx=class extends gm{createStore(t,r){return new zi(t,r)}getStoreByName(t){for(let r of this.storeMap.values())if(r.data.uname===t)return r}getAllPhotoshopDocumentData(){let t={};return this.storeMap.forEach(r=>{t[r.data.uname]={sid:r.data.sid,activeDocumentID:r.data.activeDocumentID,documents:r.data.documents}}),t}},xn=new Tx,Je=new Ro;if(window.uxpHost){let e=t=>{if(t.data.action!=="webview-connect"||!t.data.payload.webviewFromSid)return console.log(t);t.data.payload.webviewFromSid=t.data.payload.webviewFromSid,Je.setWebviewFromSid(t.data.payload.webviewFromSid),window.removeEventListener("message",e)};window.addEventListener("message",e),window.uxpHost.postMessage({from:"sdppp-webview",action:"webview-connect"},"*")}function KR(){document.title!==Je.data.title&&Je.setTitle(document.title),requestAnimationFrame(KR)}requestAnimationFrame(KR);var qR=!1;async function XR(){if(qR)return Promise.resolve();Oo.user&&Je.setComfyUserToken(Oo.user);let e=await Oo.getSetting("sdppp.useSliderForNumberWidget");e&&Je.setUseSliderForNumberWidget(e),qR=!0}function hz(e){let t=e.split(" (id:");return{name:t[0],id:parseInt(t[1].slice(0,-1))}}function hm(e){return hz(e)}globalThis.sdpppX=globalThis.sdpppX||{};var ma=globalThis.sdpppX;var Wi=class{static makeDocumentDataOptions(t){let r=t.data,o=[`${Xt.getSpecialDocumentCurrent()}`];return Object.keys(r.documents).forEach(n=>{let i=r.documents[n];o.push(i.identify)}),o}static findDocumentData(t,r){let o=Xt.is_SPECIAL_DOCUMENT_CURRENT(r)?t.data.activeDocumentID:hm(r).id;return t.data.documents[o]}static makeLayerOptions(t,r){return r.concat(t.layers.map(n=>n.identify))}static getLayerDirtyID(t,r){return t.layers.find(n=>n.identify===r)?.dirtyID||0}static getCanvasDirtyID(t){return t.canvasDirtyID||0}static getSelectionDirtyID(t){return t.selectionDirtyID||0}};function Nx(){let e=xn.getAllStore(),t=[];return Object.values(e).forEach(r=>{if(Oo.user&&Oo.user!=r.data.comfyUserToken)return;let o=Wi.makeDocumentDataOptions(r).map(n=>Ix(n,r.data.uname));t.push(...o)}),t}function YR(e,t){let r=[""],o=Oc(e);if(!o)return[];let n=Wi.makeLayerOptions(o.documentData,t);return r.push(...n),r}function QR(){return Oo.user?Object.values(xn.getAllStore()).filter(e=>Oo.user==e.data.comfyUserToken).length>0:xn.storeCount()}function Ix(e,t){return`${t}/${e}`}function Oc(e){if(!e||!e.split)return null;let t=xn.getAllPhotoshopDocumentData(),[r,o]=e.split("/");if(o||(o=r,r=Object.keys(t)[0]),!t[r])return null;let n=Xt.is_SPECIAL_DOCUMENT_CURRENT(o)?t[r].activeDocumentID:hm(o).id;if(t[r]?.documents[n]){let i=t[r].documents[n];return{instance_id:t[r].sid,identify:o,documentData:i}}return null}var vz=function(e){let t=Dt.graph.links;return Array.isArray(t)?t.find(o=>o&&o.origin_id==e):t.get(e)};function $x(e){let t=Dt.graph.nodes,r=t.find(i=>e.id==i.id);if(!r)return null;let o=[];if(n(r,o),o.length>2){let i=o[0].widgets[0].value;if(!o.map(a=>a.widgets[0].value).every(a=>a==i))throw new Error(ve("Cannot connect multiple different document widgets with same value"))}return o?.[0]||null;function n(i,a){if(i.type=="SDPPP Get Document")return a.push(i),i;if(i.inputs.length==0)return null;for(let s of i.inputs)if(s.link){let l=vz(s.link);if(!l)continue;let c=t.find(f=>f.id==l.origin_id);if(!c)continue;let u=n(c,a);if(u)return u}return null}}ma.findDocumentNodeRecursive=$x;var vm=class{flushing=Promise.resolve();newFlushPending=!1;constructor(t){this.doFlush=t,this.pause()}doFlush;runFlush(){this.newFlushPending||(this.newFlushPending=!0,this.flushing=this.flushing.then(async()=>{await new Promise(t=>requestAnimationFrame(t)),this.newFlushPending=!1,await this.doFlush()}))}pause(){this.flushing=this.flushing.then(t=>new Promise(r=>{this.resume=r})).then(()=>{this.resume=()=>{}})}resume=()=>{}};function ZR(e,t){return function(r){return class extends r{constructor(o){super(o),this.socket.on("store_request",(i,a)=>{a({data:e.data,version:e.version})});let n=new vm(async()=>{let{operations:i,fromVersion:a,toVersion:s}=e.flush();await new Promise(l=>{let c=!1;setTimeout(()=>{c||(console.warn("flush timeout"),l())},5e3),this.socket.emit("store_flush",{operations:i,fromVersion:a},u=>{c=!0,l(),u?.error?console.error("flush error",u.error):e.flushDone(s)})})});e.subscribe("/",()=>{n.runFlush()}),this.socket.on("disconnect",()=>{n.pause()}),this.socket.on("connect",()=>{e.setSID(this.socket.id||""),requestAnimationFrame(()=>{this.socket.emit("sdppp_init",{type:t,data:e.data,version:e.version})})}),this.socket.on("sdppp_inited",i=>{n.resume()})}}}}function JR(e,t){return function(r){return class extends r{constructor(o){super(o),this.socket.on("store_flush",n=>{if(n.type!==t)return;let i=e.getStore(n.sid);if(i)i.patchVersionAcceptable(n.fromVersion)?i.patchData(n.operations):(console.warn("patch version not acceptable from",n.fromVersion,"current version is",i.version),this.socket.emit("store_request",{type:t},a=>{e.sync(a)}));else return this.socket.emit("store_request",{sid:n.sid},a=>{e.addStore(a.sid,a.data,a.version)})}),this.socket.on("store_remove",n=>{e.removeStore(n.sid)}),this.socket.on("sdppp_inited",n=>{this.socket.emit("store_request",{type:t},i=>{e.sync(i)})})}}}}var fi=Object.create(null);fi.open="0";fi.close="1";fi.ping="2";fi.pong="3";fi.message="4";fi.upgrade="5";fi.noop="6";var If=Object.create(null);Object.keys(fi).forEach(e=>{If[fi[e]]=e});var $f={type:"error",data:"parser error"};var rO=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",oO=typeof ArrayBuffer=="function",nO=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Df=({type:e,data:t},r,o)=>rO&&t instanceof Blob?r?o(t):eO(t,o):oO&&(t instanceof ArrayBuffer||nO(t))?r?o(t):eO(new Blob([t]),o):o(fi[e]+(t||"")),eO=(e,t)=>{let r=new FileReader;return r.onload=function(){let o=r.result.split(",")[1];t("b"+(o||""))},r.readAsDataURL(e)};function tO(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var Dx;function iO(e,t){if(rO&&e.data instanceof Blob)return e.data.arrayBuffer().then(tO).then(t);if(oO&&(e.data instanceof ArrayBuffer||nO(e.data)))return t(tO(e.data));Df(e,!1,r=>{Dx||(Dx=new TextEncoder),t(Dx.encode(r))})}var aO="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Af=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let t=e.length*.75,r=e.length,o,n=0,i,a,s,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);let c=new ArrayBuffer(t),u=new Uint8Array(c);for(o=0;o>4,u[n++]=(a&15)<<4|s>>2,u[n++]=(s&3)<<6|l&63;return c};var yz=typeof ArrayBuffer=="function",Mf=(e,t)=>{if(typeof e!="string")return{type:"message",data:lO(e,t)};let r=e.charAt(0);return r==="b"?{type:"message",data:xz(e.substring(1),t)}:If[r]?e.length>1?{type:If[r],data:e.substring(1)}:{type:If[r]}:$f},xz=(e,t)=>{if(yz){let r=sO(e);return lO(r,t)}else return{base64:!0,data:e}},lO=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}};var cO="",uO=(e,t)=>{let r=e.length,o=new Array(r),n=0;e.forEach((i,a)=>{Df(i,!1,s=>{o[a]=s,++n===r&&t(o.join(cO))})})},fO=(e,t)=>{let r=e.split(cO),o=[];for(let n=0;n{let o=r.length,n;if(o<126)n=new Uint8Array(1),new DataView(n.buffer).setUint8(0,o);else if(o<65536){n=new Uint8Array(3);let i=new DataView(n.buffer);i.setUint8(0,126),i.setUint16(1,o)}else{n=new Uint8Array(9);let i=new DataView(n.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(o))}e.data&&typeof e.data!="string"&&(n[0]|=128),t.enqueue(n),t.enqueue(r)})}})}var Ax;function ym(e){return e.reduce((t,r)=>t+r.length,0)}function xm(e,t){if(e[0].length===t)return e.shift();let r=new Uint8Array(t),o=0;for(let n=0;nMath.pow(2,21)-1){s.enqueue($f);break}n=u*Math.pow(2,32)+c.getUint32(4),o=3}else{if(ym(r)e){s.enqueue($f);break}}}})}var Mx=4;function Zt(e){if(e)return bz(e)}function bz(e){for(var t in Zt.prototype)e[t]=Zt.prototype[t];return e}Zt.prototype.on=Zt.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Zt.prototype.once=function(e,t){function r(){this.off(e,r),t.apply(this,arguments)}return r.fn=t,this.on(e,r),this};Zt.prototype.off=Zt.prototype.removeListener=Zt.prototype.removeAllListeners=Zt.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var r=this._callbacks["$"+e];if(!r)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var o,n=0;nPromise.resolve().then(t):(t,r)=>r(t,0),Vo=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),mO="arraybuffer";function bm(e,...t){return t.reduce((r,o)=>(e.hasOwnProperty(o)&&(r[o]=e[o]),r),{})}var Sz=Vo.setTimeout,Cz=Vo.clearTimeout;function ha(e,t){t.useNativeTimers?(e.setTimeoutFn=Sz.bind(Vo),e.clearTimeoutFn=Cz.bind(Vo)):(e.setTimeoutFn=Vo.setTimeout.bind(Vo),e.clearTimeoutFn=Vo.clearTimeout.bind(Vo))}var wz=1.33;function gO(e){return typeof e=="string"?Ez(e):Math.ceil((e.byteLength||e.size)*wz)}function Ez(e){let t=0,r=0;for(let o=0,n=e.length;o=57344?r+=3:(o++,r+=4);return r}function Sm(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function hO(e){let t="";for(let r in e)e.hasOwnProperty(r)&&(t.length&&(t+="&"),t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t}function vO(e){let t={},r=e.split("&");for(let o=0,n=r.length;o{this.readyState="paused",t()};if(this._polling||!this.writable){let o=0;this._polling&&(o++,this.once("pollComplete",function(){--o||r()})),this.writable||(o++,this.once("drain",function(){--o||r()}))}else r()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){let r=o=>{if(this.readyState==="opening"&&o.type==="open"&&this.onOpen(),o.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(o)};fO(t,this.socket.binaryType).forEach(r),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){let t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,uO(t,r=>{this.doWrite(r,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let t=this.opts.secure?"https":"http",r=this.query||{};return this.opts.timestampRequests!==!1&&(r[this.opts.timestampParam]=Sm()),!this.supportsBinary&&!r.sid&&(r.b64=1),this.createUri(t,r)}};var yO=!1;try{yO=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}var xO=yO;function Rz(){}var Lx=class extends Lf{constructor(t){if(super(t),typeof location<"u"){let r=location.protocol==="https:",o=location.port;o||(o=r?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||o!==t.port}}doWrite(t,r){let o=this.request({method:"POST",data:t});o.on("success",r),o.on("error",(n,i)=>{this.onError("xhr post error",n,i)})}doPoll(){let t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(r,o)=>{this.onError("xhr poll error",r,o)}),this.pollXhr=t}},os=class e extends Zt{constructor(t,r,o){super(),this.createRequest=t,ha(this,o),this._opts=o,this._method=o.method||"GET",this._uri=r,this._data=o.data!==void 0?o.data:null,this._create()}_create(){var t;let r=bm(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this._opts.xd;let o=this._xhr=this.createRequest(r);try{o.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){o.setDisableHeaderCheck&&o.setDisableHeaderCheck(!0);for(let n in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(n)&&o.setRequestHeader(n,this._opts.extraHeaders[n])}}catch{}if(this._method==="POST")try{o.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{o.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(o),"withCredentials"in o&&(o.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(o.timeout=this._opts.requestTimeout),o.onreadystatechange=()=>{var n;o.readyState===3&&((n=this._opts.cookieJar)===null||n===void 0||n.parseCookies(o.getResponseHeader("set-cookie"))),o.readyState===4&&(o.status===200||o.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof o.status=="number"?o.status:0)},0))},o.send(this._data)}catch(n){this.setTimeoutFn(()=>{this._onError(n)},0);return}typeof document<"u"&&(this._index=e.requestsCount++,e.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=Rz,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete e.requests[this._index],this._xhr=null}}_onLoad(){let t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};os.requestsCount=0;os.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",bO);else if(typeof addEventListener=="function"){let e="onpagehide"in Vo?"pagehide":"unload";addEventListener(e,bO,!1)}}function bO(){for(let e in os.requests)os.requests.hasOwnProperty(e)&&os.requests[e].abort()}var Oz=function(){let e=SO({xdomain:!1});return e&&e.responseType!==null}(),ns=class extends Lx{constructor(t){super(t);let r=t&&t.forceBase64;this.supportsBinary=Oz&&!r}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new os(SO,this.uri(),t)}};function SO(e){let t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||xO))return new XMLHttpRequest}catch{}if(!t)try{return new Vo[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}var CO=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",Fx=class extends va{get name(){return"websocket"}doOpen(){let t=this.uri(),r=this.opts.protocols,o=CO?{}:bm(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(o.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,r,o)}catch(n){return this.emitReserved("error",n)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let r=0;r{try{this.doWrite(o,i)}catch{}n&&ga(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let t=this.opts.secure?"wss":"ws",r=this.query||{};return this.opts.timestampRequests&&(r[this.opts.timestampParam]=Sm()),this.supportsBinary||(r.b64=1),this.createUri(t,r)}},kx=Vo.WebSocket||Vo.MozWebSocket,is=class extends Fx{createSocket(t,r,o){return CO?new kx(t,r,o):r?new kx(t,r):new kx(t)}doWrite(t,r){this.ws.send(r)}};var _c=class extends va{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{let r=pO(Number.MAX_SAFE_INTEGER,this.socket.binaryType),o=t.readable.pipeThrough(r).getReader(),n=dO();n.readable.pipeTo(t.writable),this._writer=n.writable.getWriter();let i=()=>{o.read().then(({done:s,value:l})=>{s||(this.onPacket(l),i())}).catch(s=>{})};i();let a={type:"open"};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let r=0;r{n&&ga(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}};var zx={websocket:is,webtransport:_c,polling:ns};var _z=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Pz=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Pc(e){if(e.length>8e3)throw"URI too long";let t=e,r=e.indexOf("["),o=e.indexOf("]");r!=-1&&o!=-1&&(e=e.substring(0,r)+e.substring(r,o).replace(/:/g,";")+e.substring(o,e.length));let n=_z.exec(e||""),i={},a=14;for(;a--;)i[Pz[a]]=n[a]||"";return r!=-1&&o!=-1&&(i.source=t,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=Tz(i,i.path),i.queryKey=Nz(i,i.query),i}function Tz(e,t){let r=/\/{2,9}/g,o=t.replace(r,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&o.splice(0,1),t.slice(-1)=="/"&&o.splice(o.length-1,1),o}function Nz(e,t){let r={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(o,n,i){n&&(r[n]=i)}),r}var Wx=typeof addEventListener=="function"&&typeof removeEventListener=="function",wm=[];Wx&&addEventListener("offline",()=>{wm.forEach(e=>e())},!1);var hl=class e extends Zt{constructor(t,r){if(super(),this.binaryType=mO,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(r=t,t=null),t){let o=Pc(t);r.hostname=o.host,r.secure=o.protocol==="https"||o.protocol==="wss",r.port=o.port,o.query&&(r.query=o.query)}else r.host&&(r.hostname=Pc(r.host).host);ha(this,r),this.secure=r.secure!=null?r.secure:typeof location<"u"&&location.protocol==="https:",r.hostname&&!r.port&&(r.port=this.secure?"443":"80"),this.hostname=r.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=r.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},r.transports.forEach(o=>{let n=o.prototype.name;this.transports.push(n),this._transportsByName[n]=o}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},r),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=vO(this.opts.query)),Wx&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},wm.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){let r=Object.assign({},this.opts.query);r.EIO=Mx,r.transport=t,this.id&&(r.sid=this.id);let o=Object.assign({},this.opts,{query:r,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](o)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let t=this.opts.rememberUpgrade&&e.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let r=this.createTransport(t);r.open(),this.setTransport(r)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",r=>this._onClose("transport close",r))}onOpen(){this.readyState="open",e.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let r=new Error("server error");r.code=t.data,this._onError(r);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let r=1;for(let o=0;o0&&r>this._maxPayload)return this.writeBuffer.slice(0,o);r+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,ga(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,r,o){return this._sendPacket("message",t,r,o),this}send(t,r,o){return this._sendPacket("message",t,r,o),this}_sendPacket(t,r,o,n){if(typeof r=="function"&&(n=r,r=void 0),typeof o=="function"&&(n=o,o=null),this.readyState==="closing"||this.readyState==="closed")return;o=o||{},o.compress=o.compress!==!1;let i={type:t,data:r,options:o};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),n&&this.once("flush",n),this.flush()}close(){let t=()=>{this._onClose("forced close"),this.transport.close()},r=()=>{this.off("upgrade",r),this.off("upgradeError",r),t()},o=()=>{this.once("upgrade",r),this.once("upgradeError",r)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?o():t()}):this.upgrading?o():t()),this}_onError(t){if(e.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,r){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Wx&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let o=wm.indexOf(this._offlineEventListener);o!==-1&&wm.splice(o,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,r),this.writeBuffer=[],this._prevBufferLen=0}}};hl.protocol=Mx;var Em=class extends hl{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t{o||(r.send([{type:"ping",data:"probe"}]),r.once("packet",f=>{if(!o)if(f.type==="pong"&&f.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",r),!r)return;hl.priorWebsocketSuccess=r.name==="websocket",this.transport.pause(()=>{o||this.readyState!=="closed"&&(u(),this.setTransport(r),r.send([{type:"upgrade"}]),this.emitReserved("upgrade",r),r=null,this.upgrading=!1,this.flush())})}else{let d=new Error("probe error");d.transport=r.name,this.emitReserved("upgradeError",d)}}))};function i(){o||(o=!0,u(),r.close(),r=null)}let a=f=>{let d=new Error("probe error: "+f);d.transport=r.name,i(),this.emitReserved("upgradeError",d)};function s(){a("transport closed")}function l(){a("socket closed")}function c(f){r&&f.name!==r.name&&i()}let u=()=>{r.removeListener("open",n),r.removeListener("error",a),r.removeListener("close",s),this.off("close",l),this.off("upgrading",c)};r.once("open",n),r.once("error",a),r.once("close",s),this.once("close",l),this.once("upgrading",c),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{o||r.open()},200):r.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){let r=[];for(let o=0;ozx[n]).filter(n=>!!n)),super(t,o)}};var sQ=Tc.protocol;function wO(e,t="",r){let o=e;r=r||typeof location<"u"&&location,e==null&&(e=r.protocol+"//"+r.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=r.protocol+e:e=r.host+e),/^(https?|wss?):\/\//.test(e)||(typeof r<"u"?e=r.protocol+"//"+e:e="https://"+e),o=Pc(e)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";let i=o.host.indexOf(":")!==-1?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+i+":"+o.port+t,o.href=o.protocol+"://"+i+(r&&r.port===o.port?"":":"+o.port),o}var Gx={};xx(Gx,{Decoder:()=>Hx,Encoder:()=>Vx,PacketType:()=>Rt,protocol:()=>PO});var $z=typeof ArrayBuffer=="function",Dz=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,EO=Object.prototype.toString,Az=typeof Blob=="function"||typeof Blob<"u"&&EO.call(Blob)==="[object BlobConstructor]",Mz=typeof File=="function"||typeof File<"u"&&EO.call(File)==="[object FileConstructor]";function Ff(e){return $z&&(e instanceof ArrayBuffer||Dz(e))||Az&&e instanceof Blob||Mz&&e instanceof File}function kf(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let r=0,o=e.length;r=0&&e.num{delete this.acks[t];for(let s=0;s{this.io.clearTimeoutFn(i),r.apply(this,s)};a.withError=!0,this.acks[t]=a}emitWithAck(t,...r){return new Promise((o,n)=>{let i=(a,s)=>a?n(a):o(s);i.withError=!0,r.push(i),this.emit(t,...r)})}_addToQueue(t){let r;typeof t[t.length-1]=="function"&&(r=t.pop());let o={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((n,...i)=>o!==this._queue[0]?void 0:(n!==null?o.tryCount>this._opts.retries&&(this._queue.shift(),r&&r(n)):(this._queue.shift(),r&&r(null,...i)),o.pending=!1,this._drainQueue())),this._queue.push(o),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;let r=this._queue[0];r.pending&&!t||(r.pending=!0,r.tryCount++,this.flags=r.flags,this.emit.apply(this,r.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:Rt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,r){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,r),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(o=>String(o.id)===t)){let o=this.acks[t];delete this.acks[t],o.withError&&o.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case Rt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Rt.EVENT:case Rt.BINARY_EVENT:this.onevent(t);break;case Rt.ACK:case Rt.BINARY_ACK:this.onack(t);break;case Rt.DISCONNECT:this.ondisconnect();break;case Rt.CONNECT_ERROR:this.destroy();let o=new Error(t.data.message);o.data=t.data.data,this.emitReserved("connect_error",o);break}}onevent(t){let r=t.data||[];t.id!=null&&r.push(this.ack(t.id)),this.connected?this.emitEvent(r):this.receiveBuffer.push(Object.freeze(r))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){let r=this._anyListeners.slice();for(let o of r)o.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){let r=this,o=!1;return function(...n){o||(o=!0,r.packet({type:Rt.ACK,id:t,data:n}))}}onack(t){let r=this.acks[t.id];typeof r=="function"&&(delete this.acks[t.id],r.withError&&t.data.unshift(null),r.apply(this,t.data))}onconnect(t,r){this.id=t,this.recovered=r&&this._pid===r,this._pid=r,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Rt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){let r=this._anyListeners;for(let o=0;o0&&e.jitter<=1?e.jitter:0,this.attempts=0}vl.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=(Math.floor(t*10)&1)==0?e-r:e+r}return Math.min(e,this.max)|0};vl.prototype.reset=function(){this.attempts=0};vl.prototype.setMin=function(e){this.ms=e};vl.prototype.setMax=function(e){this.max=e};vl.prototype.setJitter=function(e){this.jitter=e};var Ic=class extends Zt{constructor(t,r){var o;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(r=t,t=void 0),r=r||{},r.path=r.path||"/socket.io",this.opts=r,ha(this,r),this.reconnection(r.reconnection!==!1),this.reconnectionAttempts(r.reconnectionAttempts||1/0),this.reconnectionDelay(r.reconnectionDelay||1e3),this.reconnectionDelayMax(r.reconnectionDelayMax||5e3),this.randomizationFactor((o=r.randomizationFactor)!==null&&o!==void 0?o:.5),this.backoff=new vl({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(r.timeout==null?2e4:r.timeout),this._readyState="closed",this.uri=t;let n=r.parser||Gx;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=r.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var r;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(r=this.backoff)===null||r===void 0||r.setMin(t),this)}randomizationFactor(t){var r;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(r=this.backoff)===null||r===void 0||r.setJitter(t),this)}reconnectionDelayMax(t){var r;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(r=this.backoff)===null||r===void 0||r.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Tc(this.uri,this.opts);let r=this.engine,o=this;this._readyState="opening",this.skipReconnect=!1;let n=bn(r,"open",function(){o.onopen(),t&&t()}),i=s=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",s),t?t(s):this.maybeReconnectOnOpen()},a=bn(r,"error",i);if(this._timeout!==!1){let s=this._timeout,l=this.setTimeoutFn(()=>{n(),i(new Error("timeout")),r.close()},s);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(n),this.subs.push(a),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");let t=this.engine;this.subs.push(bn(t,"ping",this.onping.bind(this)),bn(t,"data",this.ondata.bind(this)),bn(t,"error",this.onerror.bind(this)),bn(t,"close",this.onclose.bind(this)),bn(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(r){this.onclose("parse error",r)}}ondecoded(t){ga(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,r){let o=this.nsps[t];return o?this._autoConnect&&!o.active&&o.connect():(o=new Nc(this,t,r),this.nsps[t]=o),o}_destroy(t){let r=Object.keys(this.nsps);for(let o of r)if(this.nsps[o].active)return;this._close()}_packet(t){let r=this.encoder.encode(t);for(let o=0;ot()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,r){var o;this.cleanup(),(o=this.engine)===null||o===void 0||o.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,r),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let r=this.backoff.duration();this._reconnecting=!0;let o=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(n=>{n?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",n)):t.onreconnect()}))},r);this.opts.autoUnref&&o.unref(),this.subs.push(()=>{this.clearTimeoutFn(o)})}}onreconnect(){let t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}};var zf={};function Wf(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};let r=wO(e,t.path||"/socket.io"),o=r.source,n=r.id,i=r.path,a=zf[n]&&i in zf[n].nsps,s=t.forceNew||t["force new connection"]||t.multiplex===!1||a,l;return s?l=new Ic(o,t):(zf[n]||(zf[n]=new Ic(o,t)),l=zf[n]),r.query&&!t.query&&(t.query=r.queryKey),l.socket(r.path,t)}Object.assign(Wf,{Manager:Ic,Socket:Nc,io:Wf,connect:Wf});var TO=`504 -`;var Rm=TO.trim();var qx=class{socket;constructor(t){let r="/"+[t.split("/").slice(3).filter(o=>o).join("/"),"sd-ppp/"].filter(o=>o).join("/");t=t.split("/").slice(0,3).join("/"),this.socket=Wf(t,{transports:["websocket"],path:r,query:{api_level:Rm},rejectUnauthorized:!1,autoConnect:!1}),this.socket.on("connect",()=>{this.socket.io.engine.binaryType="blob"})}get id(){return this.socket.id}connect(){this.socket.connect()}close(){this.socket.close(),this.socket.removeAllListeners()}};function NO(...e){return e.reduce((t,r)=>r(t),qx)}function IO(e){return class extends e{constructor(t){super(t),this.socket.on("F_photoshop",(r,o)=>{try{r.action=="extractPSD"&&Dt.graph.nodes.forEach(n=>{n.type=="SDPPP Get Document"&&this.extractPSD(n,r.params.from_sid,"")}),o({})}catch(n){o({error:n.message})}})}async importPSDDataURLFromPhotoshop(t,r,o){let n=await new Promise((a,s)=>{this.socket.emit("B_photoshop",{action:"psd",sid:t,params:{action:"get",fromSSID:o,document_identify:r}},l=>{a(l.data)})});var i=new FileReader;return i.readAsDataURL(n),new Promise(a=>{i.onloadend=function(){var s=i.result;a(s)}})}async exportPSDDataURLToPhotoshop(t,r,o,n){let i=await fetch(o).then(a=>a.arrayBuffer());await new Promise((a,s)=>{this.socket.emit("B_photoshop",{action:"psd",sid:t,params:{action:"extract",fromSSID:n,document_identify:r,data:i}},l=>{a(l)})})}async sendImage(t,r){return new Promise((o,n)=>{this.socket.emit("B_photoshop",{action:"sendImages",sid:t,params:r},i=>{i&&i.error?n(new Error(i.error)):o(i)})})}async getSpecialIdentifierValue(t,r){return new Promise((o,n)=>{this.socket.emit("B_photoshop",{action:"getSpecialIdentifierValue",sid:t,params:r},i=>{i&&i.error?n(new Error(i.error)):o(i)})})}async extractPSD(t,r,o){t.properties.psd&&await this.exportPSDDataURLToPhotoshop(r,o,t.properties.psd,this.socket.id||"??").then(async()=>{await new Promise(n=>setTimeout(n,300)),globalThis.app.canvas.draw(!0,!0)}).catch(console.error)}}}var $O={last_node_id:0,last_link_id:0,nodes:[],links:[],groups:[],config:{},extra:{},version:.4};var as=[];ma.widgetable=ma.widgetable||{};ma.widgetable.add=function(e,t){typeof t=="function"?as.push([e,{formatter:t,setter:null}]):as.push([e,t])};function _m(e,t,r){let o=as.find(([s])=>s=="__DEFAULT__"),n=as.find(([s])=>Kx(s,e.type))||o,i=!1;if(n){let s=n[1].setter;s&&(i=!!s(e,t,r))}i||(e.widgets[t].value=r,e.widgets[t].callback?.(r)),(Dt.workflowManager||Dt.extensionManager.workflow).activeWorkflow?.changeTracker.checkState()}function Bf(e){let t={},r=as.find(([o])=>o=="__DEFAULT__");return e.nodes.forEach(o=>{if(!o.widgets||o.widgets.length==0)return;let n=as.find(([i])=>Kx(i,o.type))||r;if(n){let i=n[1].formatter(o);i&&(t[o.id]=i.widgets.map(a=>a.value))}}),t}function Pm(e,t){if(!e)return{widgetTableID:"",widgetTablePath:"",widgetTablePersisted:!1,groups:{},nodes:{},nodeIndexes:[],extraOptions:{useSliderForNumberWidget:Je.data.useSliderForNumberWidget}};let r=e.groups.map(n=>(n.recomputeInsideNodes(),{id:n.id,name:n.title,color:n.color,nodeIDs:n.nodes.map(i=>i.id)})),o=e.nodes.map(n=>{if(n.mode!=0)return;let i=Om(n);if(!i||i.startsWith(".")||!n.widgets||n.widgets.length==0)return;let a=as.find(([u])=>Kx(u,n.type));if(a)try{let u=a[1].formatter(n);if(u)return u.id=n.id,u.uiWeightSum=u.widgets.reduce((f,d)=>f+(d.uiWeight||12),0),u}catch(u){return{id:n.id,title:i,uiWeightSum:12,widgets:[{outputType:"error",value:ve("convert widget {0} failed:",a[0])+(u.message||u||"")+(u?.stack||"")}]}}if(!i.startsWith("#"))return null;let s=n.widgets,l=as.find(([u])=>u=="__DEFAULT__");if(l){let u=l[1].formatter(n);if(u)return Object.assign(u,{uiWeightSum:u.widgets.reduce((f,d)=>f+(d.uiWeight||12),0)})}let c={id:n.id,title:i,widgets:s.map(u=>({name:u.label||u.name,outputType:u.type||"string",value:u.value,options:u.options}))};return Object.assign(c,{uiWeightSum:c.widgets.reduce((u,f)=>u+(f.uiWeight||12),0)})}).filter(Boolean).sort((n,i)=>{let a=Om(n),s=Om(i);return a=a.startsWith("#")?a.slice(1).trim():a.trim(),s=s.startsWith("#")?s.slice(1).trim():s.trim(),a.localeCompare(s)});return{widgetTablePath:t.path,widgetTablePersisted:t.isPersisted,widgetTableID:t.activeState.id,groups:r,nodes:o.reduce((n,i)=>(n[i.id]=i,n),{}),nodeIndexes:o.map(n=>n.id),extraOptions:{useSliderForNumberWidget:Je.data.useSliderForNumberWidget}}}function Kx(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}function Om(e,t=""){let r=t||e.title||"";return e.setProperty&&(r.startsWith("#")||r.startsWith("."))?e.setProperty("sdppp_widgetable_title",r):r=e.properties?.sdppp_widgetable_title||r,r}ma.getNodeTitle=Om;var zz=new Map,yl=zz;function AO(e){return class extends e{workflowManager;constructor(t){super(t),this.workflowManager=Dt.workflowManager||Dt.extensionManager.workflow,this.socket.on("F_workflow",async(r,o)=>{if(r.action=="open"||r.action=="save"||r.action=="list"||r.action=="setWidgetValue"||r.action=="run"||r.action=="setNodeTitle"||r.action=="logout"||r.action=="interrupt"||r.action=="clearQueue"||r.action=="reboot")try{let n=await this[r.action](r.params);o(n||{})}catch(n){o({error:n.stack||n.message||n})}else o({error:"Invalid action"})})}async logout(){this.socket.disconnect(),document.querySelector(".pi-sign-out").parentElement.click()}async run(t){let r=t.size,o=t.from_sid;for(let i=0;i{h[v.split(":")[0]]=m[v].errors.map(JSON.stringify).join(` +`;var Rm=TO.trim();var qx=class{socket;constructor(t){let r="/"+[t.split("/").slice(3).filter(o=>o).join("/"),"sd-ppp/"].filter(o=>o).join("/");t=t.split("/").slice(0,3).join("/"),this.socket=Wf(t,{transports:["websocket"],path:r,query:{api_level:Rm},rejectUnauthorized:!1,autoConnect:!1}),this.socket.on("connect",()=>{this.socket.io.engine.binaryType="blob"})}get id(){return this.socket.id}connect(){this.socket.connect()}close(){this.socket.close()}};function NO(...e){return e.reduce((t,r)=>r(t),qx)}function IO(e){return class extends e{constructor(t){super(t),this.socket.on("F_photoshop",(r,o)=>{try{r.action=="extractPSD"&&Dt.graph.nodes.forEach(n=>{n.type=="SDPPP Get Document"&&this.extractPSD(n,r.params.from_sid,"")}),o({})}catch(n){o({error:n.message})}})}async importPSDDataURLFromPhotoshop(t,r,o){let n=await new Promise((a,s)=>{this.socket.emit("B_photoshop",{action:"psd",sid:t,params:{action:"get",fromSSID:o,document_identify:r}},l=>{a(l.data)})});var i=new FileReader;return i.readAsDataURL(n),new Promise(a=>{i.onloadend=function(){var s=i.result;a(s)}})}async exportPSDDataURLToPhotoshop(t,r,o,n){let i=await fetch(o).then(a=>a.arrayBuffer());await new Promise((a,s)=>{this.socket.emit("B_photoshop",{action:"psd",sid:t,params:{action:"extract",fromSSID:n,document_identify:r,data:i}},l=>{a(l)})})}async sendImage(t,r){return new Promise((o,n)=>{this.socket.emit("B_photoshop",{action:"sendImages",sid:t,params:r},i=>{i&&i.error?n(new Error(i.error)):o(i)})})}async getSpecialIdentifierValue(t,r){return new Promise((o,n)=>{this.socket.emit("B_photoshop",{action:"getSpecialIdentifierValue",sid:t,params:r},i=>{i&&i.error?n(new Error(i.error)):o(i)})})}async extractPSD(t,r,o){t.properties.psd&&await this.exportPSDDataURLToPhotoshop(r,o,t.properties.psd,this.socket.id||"??").then(async()=>{await new Promise(n=>setTimeout(n,300)),globalThis.app.canvas.draw(!0,!0)}).catch(console.error)}}}var $O={last_node_id:0,last_link_id:0,nodes:[],links:[],groups:[],config:{},extra:{},version:.4};var as=[];ma.widgetable=ma.widgetable||{};ma.widgetable.add=function(e,t){typeof t=="function"?as.push([e,{formatter:t,setter:null}]):as.push([e,t])};function _m(e,t,r){let o=as.find(([s])=>s=="__DEFAULT__"),n=as.find(([s])=>Kx(s,e.type))||o,i=!1;if(n){let s=n[1].setter;s&&(i=!!s(e,t,r))}i||(e.widgets[t].value=r,e.widgets[t].callback?.(r)),(Dt.workflowManager||Dt.extensionManager.workflow).activeWorkflow?.changeTracker.checkState()}function Bf(e){let t={},r=as.find(([o])=>o=="__DEFAULT__");return e.nodes.forEach(o=>{if(!o.widgets||o.widgets.length==0)return;let n=as.find(([i])=>Kx(i,o.type))||r;if(n){let i=n[1].formatter(o);i&&(t[o.id]=i.widgets.map(a=>a.value))}}),t}function Pm(e,t){if(!e)return{widgetTableID:"",widgetTablePath:"",widgetTablePersisted:!1,groups:{},nodes:{},nodeIndexes:[],extraOptions:{useSliderForNumberWidget:Je.data.useSliderForNumberWidget}};let r=e.groups.map(n=>(n.recomputeInsideNodes(),{id:n.id,name:n.title,color:n.color,nodeIDs:n.nodes.map(i=>i.id)})),o=e.nodes.map(n=>{if(n.mode!=0)return;let i=Om(n);if(!i||i.startsWith(".")||!n.widgets||n.widgets.length==0)return;let a=as.find(([u])=>Kx(u,n.type));if(a)try{let u=a[1].formatter(n);if(u)return u.id=n.id,u.uiWeightSum=u.widgets.reduce((f,d)=>f+(d.uiWeight||12),0),u}catch(u){return{id:n.id,title:i,uiWeightSum:12,widgets:[{outputType:"error",value:ve("convert widget {0} failed:",a[0])+(u.message||u||"")+(u?.stack||"")}]}}if(!i.startsWith("#"))return null;let s=n.widgets,l=as.find(([u])=>u=="__DEFAULT__");if(l){let u=l[1].formatter(n);if(u)return Object.assign(u,{uiWeightSum:u.widgets.reduce((f,d)=>f+(d.uiWeight||12),0)})}let c={id:n.id,title:i,widgets:s.map(u=>({name:u.label||u.name,outputType:u.type||"string",value:u.value,options:u.options}))};return Object.assign(c,{uiWeightSum:c.widgets.reduce((u,f)=>u+(f.uiWeight||12),0)})}).filter(Boolean).sort((n,i)=>{let a=Om(n),s=Om(i);return a=a.startsWith("#")?a.slice(1).trim():a.trim(),s=s.startsWith("#")?s.slice(1).trim():s.trim(),a.localeCompare(s)});return{widgetTablePath:t.path,widgetTablePersisted:t.isPersisted,widgetTableID:t.activeState.id,groups:r,nodes:o.reduce((n,i)=>(n[i.id]=i,n),{}),nodeIndexes:o.map(n=>n.id),extraOptions:{useSliderForNumberWidget:Je.data.useSliderForNumberWidget}}}function Kx(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}function Om(e,t=""){let r=t||e.title||"";return e.setProperty&&(r.startsWith("#")||r.startsWith("."))?e.setProperty("sdppp_widgetable_title",r):r=e.properties?.sdppp_widgetable_title||r,r}ma.getNodeTitle=Om;var zz=new Map,yl=zz;function AO(e){return class extends e{workflowManager;constructor(t){super(t),this.workflowManager=Dt.workflowManager||Dt.extensionManager.workflow,this.socket.on("F_workflow",async(r,o)=>{if(r.action=="open"||r.action=="save"||r.action=="list"||r.action=="setWidgetValue"||r.action=="run"||r.action=="setNodeTitle"||r.action=="logout"||r.action=="interrupt"||r.action=="clearQueue"||r.action=="reboot")try{let n=await this[r.action](r.params);o(n||{})}catch(n){o({error:n.stack||n.message||n})}else o({error:"Invalid action"})})}async logout(){this.socket.disconnect(),document.querySelector(".pi-sign-out").parentElement.click()}async run(t){let r=t.size,o=t.from_sid;for(let i=0;i{h[v.split(":")[0]]=m[v].errors.map(JSON.stringify).join(` `)}),h};var n=f;let a=await Dt.graphToPrompt(),s=!1,l="",c={},u="";try{let m=await Oo.queuePrompt(0,a);m.node_errors&&Object.keys(m.node_errors).length>0&&(s=!0,c=f(m.node_errors)),u=m.prompt_id}catch(m){m.response?(s=!0,c=f(m.response.node_errors)):(s=!0,l=m.stack)}if(s){l?Je.setLastError(l):Je.setWidgetTableErrors(c);break}yl.set(u,o);for(let m of a.workflow.nodes){let h=Dt.graph.getNodeById(m.id);if(h.widgets)for(let v of h.widgets)v.afterQueued&&v.afterQueued()}this.workflowManager.activeWorkflow.changeTracker.checkState()}}async list(){let r=this.workflowManager.workflows.map(o=>o.path.replace("workflows/",""));try{let o=new Headers,n=localStorage.getItem("Comfy.userId");n&&o.set("comfy-user",n);let i=await fetch("./api/userdata/workflows%2F.index.json",{headers:o});if(i.ok){let s=(await i.json()).favorites.map(l=>l.replace("workflows/",""));r.sort((l,c)=>{let u=s.includes(l),f=s.includes(c);return u&&!f?-1:!u&&f?1:0})}}catch(o){console.warn("Error fetching favorites, returning unsorted workflows:",o)}return r}setWidgetValue(t){t.values.forEach(({nodeID:r,widgetIndex:o,value:n})=>{let i=Dt.graph.nodes.find(a=>a.id==r);!i||n==i.widgets[o].value||_m(i,o,n)})}async open(t){let{workflow_path:r}=t;try{r.startsWith("sdppp://")?await this.openSDPPPWorkflow(t):await this.openComfyWorkflow(t)}catch(o){throw o}}async openSDPPPWorkflow(t){let r=t.workflow_path.replace("sdppp://",""),o=await fetch("/sd-ppp-static/sdppp-workflows/"+r).then(n=>n.json());await Dt.loadGraphData(o)}async openComfyWorkflow(t){let{workflow_path:r,from_sid:o,reset:n}=t,i=this.workflowManager.workflows.find(a=>a.fullFilename===r||a.path===r||a.path==="workflows/"+r);(i.isOpen||this.workflowManager.isOpen?.(i))&&!n||(this.workflowManager.openWorkflows.length===1?await Dt.loadGraphData($O):await DO(this.workflowManager,this.workflowManager.openWorkflows[0]==i?this.workflowManager.openWorkflows[1]:this.workflowManager.openWorkflows[0]),await this.workflowManager.closeWorkflow(i,!1),await new Promise(a=>requestAnimationFrame(a)),await DO(this.workflowManager,i),await new Promise(a=>setTimeout(a,500)),Je.data.widgetTableStructure&&await this.socket.emit("B_workflow",{action:"getStoredWidgetValue",sid:o,params:{widgetTableID:Je.data.widgetTableStructure.widgetTableID,widgetTablePath:Je.data.widgetTableStructure.widgetTablePath,widgetTablePersisted:Je.data.widgetTableStructure.widgetTablePersisted}},a=>{this.setWidgetValue(a)}))}async save(t){let{workflow_path:r,from_sid:o}=t,n=this.workflowManager.workflows.find(i=>i.fullFilename===r||i.path===r||i.path==="workflows/"+r);if(!n)throw new Error("Workflow not found");this.workflowManager.activeWorkflow?.id!=n.id&&this.open({workflow_path:r,from_sid:o,reset:!1}),n.changeTracker.checkState(),await this.workflowManager.saveWorkflow(n)}setNodeTitle(t){let{node_id:r,title:o}=t,n=Dt.graph.nodes.find(i=>i.id==r);if(!n)throw new Error("Node not found");n.title=o,n.setProperty("sdppp_widgetable_title",o)}async interrupt(t){await Dt.api.interrupt()}async clearQueue(t){await Dt.api.clearItems("queue")}async reboot(t){let r=await fetch("./api/manager/reboot");return r.status==404?{error:ve("ComfyManager not found, cannot reboot"),success:!1}:r.status==200?{success:!0}:{error:ve("Failed to reboot ComfyUI")+r.statusText,success:!1}}}}async function DO(e,t){Dt.workflowManager==e?await t.load():(await e.openWorkflow(t),await Dt.loadGraphData(JSON.parse(JSON.stringify(t.activeState)),!0,!0,t,{}))}var Ho=class e extends NO(ZR(Je,"comfy"),JR(xn,"photoshop"),IO,AO){static instance;constructor(){super(location.href.split("?")[0].split("#")[0]),e.instance=this}};function Tm(e){return e.replace(/^workflows\//,"").replace(/\.json$/,"")}var Nm=class{widget;node;originLabel="";indexInNode=0;constructor(t,r){this.widget=r,this.node=t,this.indexInNode=t.widgets.indexOf(r);let o=this;r.callback=function(...n){o.widget!=this&&(o.widget=o.node.widgets[o.indexInNode]=this),o._callbacks.forEach(i=>i(...n))},this.originLabel=r.label}_callbacks=[];onChange(t){this._callbacks.push(t)}removeOnChange(t){this._callbacks.splice(this._callbacks.indexOf(t),1)}},Im=class extends Nm{lockMode(t,r){if(t){if(this.widget.type=="button")return;this.widget.type="button",this.widget.value="",this.widget.label=r}else{if(this.widget.type=="combo")return;this.widget.type="combo",this.widget.value="",this.widget.label=this.originLabel}}},ss=class e extends Im{static create(t,r){let o=Nx(),n=t.size.slice(0),i=t.addWidget("combo",r,o[0]||"",()=>{},{forceInput:!0,values:Nx});return i.serializeValue=async()=>{let a=Oc(i.value);if(!a)return JSON.stringify({instance_id:ve("document {0} not found",i.value),identify:"",dirtyID:0});let s=a.identify;return Xt.is_SPECIAL_DOCUMENT_CURRENT(s)&&(s=(await Ho.instance.getSpecialIdentifierValue(a.instance_id,{identifier:s})).value),JSON.stringify({instance_id:a.instance_id,identify:s,canvasDirtyID:a.documentData.canvasDirtyID,selectionDirtyID:a.documentData.selectionDirtyID})},t.size=[n[0],Math.max(n[1],t.size[1])],new e(t,i)}static link(t,r){if(r.type=="combo")return new e(t,r);let o=e.create(t,r.name),n=t.widgets.indexOf(r);return t.widgets[n]=t.widgets.pop(),o}constructor(t,r){super(t,r),this.onChange(o=>{if(!isNaN(+o))r.value=Object.keys(r.options.values)[+o];else if(typeof o=="string"){let n=o.split("/");Xt.is_SPECIAL_DOCUMENT_CURRENT(n[1])&&(r.value=n[0]+"/"+Xt.getSpecialDocumentCurrent())}})}update(){LO(this.widget,this.widget.options.values,!0)}selectConcreteDocument(){if(Xt.is_SPECIAL_DOCUMENT_CURRENT(this.widget.value)){let[t]=this.widget.value.split("/"),r=xn.getStoreByName(t);if(!r)return console.warn(`store ${t} not found`);this.widget.value=Ix(r.data.documents[r.data.activeDocumentID].identify,t)}}},$c=class e extends Im{documentWidgetByLinked=null;extraOptions;constructor(t,r,o){super(t,r),this.extraOptions=o.extraOptions,this.update=this.update.bind(this),this.onChange(n=>{this.node.setProperty("layerWidgetDetail"+this.indexInNode,this.currentOptionsDetail[Object.values(this.currentOptions).indexOf(this.widget.value)]),typeof n=="string"&&(n=Xt.fixI18n(n))}),r.serializeValue=async()=>{let n=this.documentWidgetByLinked;if(!n)return JSON.stringify({identify:r.value,dirtyID:0});let i=Oc(n.widget.value);if(!i)return JSON.stringify({identify:r.value,dirtyID:0});let a=r.value;Xt.is_SPECIAL_LAYER_SELECTED_LAYER(a)&&(a=(await Ho.instance.getSpecialIdentifierValue(i.instance_id,{identifier:a})).value);let s=0;return Xt.is_SPECIAL_LAYER_NEW_LAYER(a)||Xt.is_SPECIAL_LAYER_USE_CANVAS(a)?s=Wi.getCanvasDirtyID(i.documentData):s=Wi.getLayerDirtyID(i.documentData,a),JSON.stringify({identify:a,dirtyID:s})}}static link(t,r,o){if(r.type=="combo")return new e(t,r,o);let n=e.create(t,r.name,o),i=t.widgets.indexOf(r);return t.widgets[i]=t.widgets.pop(),n}linkDocumentWidget(t){this.documentWidgetByLinked&&t?.removeOnChange(this.update),this.documentWidgetByLinked=t,this.documentWidgetByLinked&&this.documentWidgetByLinked.onChange(this.update)}update(){let t=this.documentWidgetByLinked;this.updateOptions(t)}currentOptions=[];currentOptionsDetail=[];updateOptions(t){if(this.currentOptions=this.extraOptions.slice(0),this.currentOptionsDetail=new Array(this.currentOptions.length).fill({id:0,name:"",identify:"",level:0,fullPath:""}),t&&t.widget.value){let r=Oc(t.widget.value);if(!r)return;r.documentData.layers.map(o=>{this.currentOptions.push(o.identify),this.currentOptionsDetail.push(o)})}if(this.widget.options.values=this.currentOptions,Object.values(this.currentOptions).indexOf(this.widget.value)==-1){let r=this.node.properties["layerWidgetDetail"+this.indexInNode];if(r){let o=this.currentOptionsDetail.findIndex(n=>n.fullPath==r.fullPath);if(o!=-1){this.widget.value=this.currentOptions[o];return}}}}static create(t,r,o){let n=t.size.slice(0),i=t.addWidget("combo",r,o.extraOptions[0]||"",()=>{},{forceInput:!0,values:o.extraOptions});return t.size=[n[0],Math.max(n[1],t.size[1])],new e(t,i,{extraOptions:o.extraOptions})}},Wz={extraOptions:[],documentWidgetInNode:null},jf=class e extends $c{documentWidgetInNode;constructor(t,r,o=Wz){super(t,r,o),this.documentWidgetInNode=o.documentWidgetInNode,this.onChange(()=>{(this.documentWidgetInNode||this.documentWidgetByLinked)?.selectConcreteDocument()}),r.serializeValue=async()=>{let n=this.documentWidgetInNode||this.documentWidgetByLinked;if(!n)return JSON.stringify({identify:r.value,dirtyID:0});let i=Oc(n.widget.value);if(!i)return JSON.stringify({identify:r.value,dirtyID:0});let a=r.value;Xt.is_SPECIAL_LAYER_SELECTED_LAYER(a)&&(a=(await Ho.instance.getSpecialIdentifierValue(i.instance_id,{identifier:a})).value);let s=0;return Xt.is_SPECIAL_LAYER_NEW_LAYER(a)||Xt.is_SPECIAL_LAYER_USE_CANVAS(a)?s=Wi.getCanvasDirtyID(i.documentData):s=Wi.getLayerDirtyID(i.documentData,a),JSON.stringify({identify:a,dirtyID:s})},this.documentWidgetInNode?.onChange(this.update)}update(){let t=this.documentWidgetInNode||this.documentWidgetByLinked;t?.widget.value&&(this.widget.options.values=YR(t.widget.value,this.extraOptions),LO(this.widget,this.widget.options.values))}static create(t,r,o){let n=t.size.slice(0),i=t.addWidget("combo",r,o.extraOptions[0]||"",()=>{},{forceInput:!0,values:o.extraOptions});return t.size=[n[0],Math.max(n[1],t.size[1])],new e(t,i,{documentWidgetInNode:o.documentWidgetInNode,extraOptions:o.extraOptions})}},MO=0,Dc=class extends Nm{constructor(t,r){if(!r){let o=t.size.slice(0);r=t.addWidget("button","sdppp","",()=>{}),t.size=[o[0],Math.max(o[1],t.size[1])],r.serializeValue=async()=>{let n={lastOpenedWorkflow:Tm(Je.data.widgetTableStructure.widgetTablePath)},i=$x(t);if(i?.widgets[0]){let a=await i.widgets[0].serializeValue();try{n.document=JSON.parse(a)}catch{return""}}return JSON.stringify(n)}}super(t,r),this.onChange(()=>{xn.storeCount()==0&&Date.now()-MO>3e3&&(MO=Date.now(),location.href="/sd-ppp-static/sd-ppp_PS.ccx?_="+Date.now(),setTimeout(()=>{app.ui.dialog.show(`

${ve("How to use .ccx file")}

${ve("1. If you have installed Adobe Creative Cloud")}

{var Yo=Object.create;var ho=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var ro=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var O=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports);var so=(o,e,s,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of oe(e))!te.call(o,a)&&a!==s&&ho(o,a,{get:()=>e[a],enumerable:!(l=jo(e,a))||l.enumerable});return o},Po=(o,e,s)=>(so(o,e,"default"),s&&so(s,e,"default")),t=(o,e,s)=>(s=o!=null?Yo(ee(o)):{},so(e||!o||!o.__esModule?ho(s,"default",{value:o,enumerable:!0}):s,o));var go=O((Pe,wo)=>{"use strict";wo.exports=window.SDPPPInternal});var u=O((ke,bo)=>{"use strict";bo.exports=window.React});var r=O((De,Co)=>{"use strict";Co.exports=window.ReactJSXRuntime});var Vo=O((Lt,Fo)=>{"use strict";Fo.exports=window.ReactDOMClient});var n={};Po(n,t(go(),1));var lo={"SDPPP Get Document":"SDPPP Get Document","SDPPP Get Layer By ID":"SDPPP Get Layer","SDPPP Get Linked Layers":"SDPPP Get Linked Layers","SDPPP Get Layers In Group":"SDPPP Get Layers In Group","SDPPP Get Text From Layer":"SDPPP Get Text From Layer","SDPPP Parse Layer Info":"SDPPP Parse Layer Info","SDPPP Get Selection":"SDPPP Get Selection","SDPPP Get Image From Photoshop":"SDPPP Get Image From Photoshop","SDPPP Send Images To Photoshop":"SDPPP Send Images To Photoshop","SDPPP Settings":"SDPPP Settings/Misc"};var ao={"### Active Document ###":"### \u5F53\u524D\u6587\u6863 ###","### The Canvas ###":"### \u6574\u4E2A\u753B\u5E03 ###","### New Layer ###":"### \u65B0\u56FE\u5C42 ###","### Selected Layer ###":"### \u6240\u9009\u56FE\u5C42 ###","### Keep Size or Fit Canvas ###":"### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###",_SDPPP_PSD_:"_SDPPP_PSD_","Save and run immediately":"\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C",Close:"\u5173\u95ED","Select a {0}":"\u9009\u62E9\u4E00\u4E2A {0}","How to use .ccx file":"\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6","1. If you have installed Adobe Creative Cloud":"1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud","Just double click the .ccx file, it will install the plugin automatically":"\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5","2. If you don't have Adobe Creative Cloud":"2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud","Rename .ccx to .zip and extract it into ":"\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230",or:"\u6216","Photoshop directory":"Photoshop \u5B89\u88C5\u76EE\u5F55","Cannot connect multiple different document widgets with same value":"\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6","You can only have one SDPPP Settings node in a workflow":"\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9","convert widget {0} failed:":"\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A","hidden webview load failed: {0}, please select a browser page to continue":"\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED","SDPPP Get Document":"SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)","SDPPP Get Layer By ID":"SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)","SDPPP Get Linked Layers":"SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)","SDPPP Get Layers In Group":"SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)","SDPPP Get Text From Layer":"SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)","SDPPP Parse Layer Info":"SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)","SDPPP Get Selection":"SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)","SDPPP Get Image From Photoshop":"SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)","SDPPP Send Images To Photoshop":"SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)","SDPPP Send Text To Layer":"SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)","SDPPP Run Photoshop Action":"SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)","download PS plugin (.ccx)":"\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)","current ComfyUI pageid: {0}":"\u5F53\u524D ComfyUI \u9875\u9762ID: {0}","current A1111 pageid: {0}":"\u5F53\u524D A1111 \u9875\u9762ID: {0}","document linked":"\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5","layer linked":"\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5","bound linked":"\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5",document:"\u6587\u6863",Document:"\u6587\u6863",DOCUMENT:"\u6587\u6863",document_name:"\u6587\u6863\u540D\u5B57id",layer_nameid:"\u56FE\u5C42\u540D\u5B57id",layer_name:"\u56FE\u5C42\u540D\u5B57",layer_info:"\u56FE\u5C42\u4FE1\u606F",bound_top:"\u8303\u56F4\u4E0A\u8FB9\u8DDD",bound_left:"\u8303\u56F4\u5DE6\u8FB9\u8DDD",bound_width:"\u8303\u56F4\u5BBD\u5EA6",bound_height:"\u8303\u56F4\u9AD8\u5EA6",center_x:"\u4E2D\u5FC3\u70B9x",center_y:"\u4E2D\u5FC3\u70B9y",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",Layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",bound:"\u8303\u56F4",bounds:"\u8303\u56F4","bounds [optional]":"\u8303\u56F4[\u53EF\u9009]",boundary:"\u8303\u56F4",Boundary:"\u8303\u56F4",canvas_boundary:"\u753B\u5E03\u8303\u56F4",canvas_bound:"\u753B\u5E03\u8303\u56F4",layer_boundary:"\u56FE\u5C42\u8303\u56F4",layer_bound:"\u56FE\u5C42\u8303\u56F4","Photoshop Disconnected!":"Photoshop \u672A\u8FDE\u63A5\uFF01",rgb_out:"RGB\u8F93\u51FA",alpha_out:"Alpha\u8F93\u51FA",images:"\u56FE\u50CF",text:"\u6587\u672C",ID_mode:"\u7CBE\u786EID\u6A21\u5F0F",name_mode:"\u540D\u5B57\u5339\u914D\u6A21\u5F0F",select:"\u9009\u62E9","document boundary":"\u6587\u6863\u8303\u56F4","layer boundary":"\u56FE\u5C42\u8303\u56F4","selection boundary":"\u9009\u4E2D\u8303\u56F4","save .psd to this workflow":"\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41","extract saved .psd to Photoshop":"\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop","sample .psd":"\u793A\u4F8B.psd",mask:"\u906E\u7F69",name:"\u540D\u79F0",quality:"\u56FE\u50CF\u8D28\u91CF",timeout:"\u8D85\u65F6","--multi-user activated, Not Login!":"--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01",Logout:"\u767B\u51FA","User: ":"\u7528\u6237: ",connect:"\u8FDE\u63A5",connected:"\u5DF2\u8FDE\u63A5",disconnect:"\u65AD\u5F00",disconnected:"\u5DF2\u65AD\u5F00\u8FDE\u63A5","reconnecting...":"\u91CD\u8FDE\u4E2D...",connecting:"\u8FDE\u63A5\u4E2D",webpages:"\u7F51\u9875\u5217\u8868",workflows:"\u5DE5\u4F5C\u6D41",workflow:"\u5DE5\u4F5C\u6D41","auto run page [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..","auto run workflow [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..","auto run workflow after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..",selection_only:"\u4EC5\u9009\u533A","Queue:":"\u961F\u5217:","Set As:":"\u8BBE\u7F6E\u4E3A:","Error {0}... please contact me via Discord/Github":"\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211","Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System":"Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF","Workflow List of ComfyUI with --multi-user is only available for sponsors":'\u5E26"--multi-user"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',"(Page ID: {0})Queue: {1}":"(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}","no suitable node to control in this workflow":"\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9",Save:"\u4FDD\u5B58",Edit:"\u7F16\u8F91","Edit in ComfyUI":"\u5728 ComfyUI \u4E2D\u7F16\u8F91","using browser page [{0}] for workflow running":"\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41","workflow running by hidden webview":"\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C","Lock Image":"\u9501\u5B9A\u56FE\u50CF","Unlock Image":"\u89E3\u9501\u56FE\u50CF","search...":"\u641C\u7D22...","disabled when running in browser page":"\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528","only supported in Photoshop":"\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301",Login:"\u767B\u5F55","Invitation Code":"\u9080\u8BF7\u7801",Username:"\u7528\u6237\u540D",Password:"\u5BC6\u7801","Please input invitation code":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","Please input username":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","Please input password":"\u8BF7\u8F93\u5165\u5BC6\u7801","502: Maybe the server is not running":"502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C","404: Maybe SDPPP is not installed or failed to run in ComfyUI":"404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25","{0}. reconnecting...":"{0}. \u91CD\u8FDE\u4E2D...","disconnected to {0} failed {1}":"\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}","version mismatch, please reinstall PS plugin":"\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6","instance type not recognized":"\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B","Error: {0}":"\u9519\u8BEF: {0}","Verification Error":"\u9A8C\u8BC1\u9519\u8BEF","document {0} not found":"\u627E\u4E0D\u5230\u6587\u6863: {0}",'only layer kind "TEXT" is supported, invalid layer: {0}':"\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}","create layer failed":"\u521B\u5EFA\u56FE\u5C42\u5931\u8D25","layer not found {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","no linked layer for {0}":"\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}","layer {0} is not a group":"\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4","no layer in group {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42","layer not found: {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","No upload_name":"\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25","get pixel of {0} failed":"\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}","merge group failed":"\u5408\u5E76\u7EC4\u5931\u8D25","invalid name: {0}":"\u975E\u6CD5\u7684\u540D\u79F0: {0}","get_layer_info: layer_identify required":"get_layer_info: \u9700\u8981 layer_identify","invalid action: {0}":"\u65E0\u6548\u7684\u64CD\u4F5C: {0}","create document failed":"\u521B\u5EFA\u6587\u6863\u5931\u8D25","create document for preview":"\u521B\u5EFA\u9884\u89C8\u6587\u6863","resize document for preview":"\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8","no first related layer in {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42","imageDataError: data length is not multiple of width * height":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570","imageDataError: originComponents must be 1 or 3":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3","unexpected connection lost, please try to reconnect":"\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5","Workflow list is empty, please save a workflow by Comfy's lastest UI":"\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41","No opened ComfyUI pages":"\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762","comfyAPI is not initialized, maybe comfyUI is too old":"\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7","unsupported channel counts: {0}":"\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}","Timeout, Maybe the URL is wrong":"\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF","Workflow list loading failed: {0}":"\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}","Please register a user in ComfyUI":"\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237","GetSelection need Photoshop version 25+":"GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C","Action {0} not found":"Action {0} \u672A\u627E\u5230","Action set {0} not found":"ActionSet {0} \u672A\u627E\u5230","create document for sent images":"\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863","show sent images":"\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","fallback show sent images":"\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","get content of layer {0}":"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","fallback get content of layer {0}":"\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","get layer info":"\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F","sdppp extract PSD":"sdppp \u5BFC\u5165 PSD","sdppp get PSD":"sdppp \u83B7\u53D6 PSD","set text to layer":"\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C","sdppp Run Photoshop Action":"sdppp \u8FD0\u884C Photoshop Action","{0} wants to extract a PSD file to Photoshop, are you sure?":"{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F","should sdppp refuse extracting PSD to Photoshop in this session anymore?":"\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F","Wide Mode":"\u5BBD\u5C4F\u6A21\u5F0F","Quick Set":"\u5FEB\u901F\u8BBE\u7F6E","Selected Layer":"\u9009\u4E2D\u56FE\u5C42","Selected Layer (invert)":"\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)",Canvas:"\u753B\u5E03",Selection:"\u9009\u533A",Manual:"\u624B\u52A8\u6A21\u5F0F",Auto:"\u81EA\u52A8\u6A21\u5F0F","This plugin is based on sd-ppp":"\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1","And follows its open source license:":"\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A",Cloud:"\u4E91\u7AEF",Sponsors:"\u8D5E\u52A9","waiting...":"\u865A\u4F4D\u4EE5\u5F85",Links:"\u53CB\u60C5\u94FE\u63A5",Community:"\u793E\u533A","LICENSE:":"\u8BB8\u53EF\u8BC1\uFF1A",upload:"\u4E0A\u4F20","Simplify Workflow":"\u7B80\u5316\u5DE5\u4F5C\u6D41",Photoshop:"Photoshop","Photoshop plugin settings":"Photoshop \u63D2\u4EF6\u8BBE\u7F6E","Photoshop plugin":"Photoshop \u63D2\u4EF6","SDPPP Settings/Misc":"SDPPP \u8BBE\u7F6E/\u6742\u9879","Sample .PSD for this workflow:":"\u793A\u4F8B.PSD","Download Example .PSD":"\u4E0B\u8F7D\u793A\u4F8B.PSD","Maximum Image Size (px):":"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)",Download:"\u4E0B\u8F7D",Upload:"\u4E0A\u4F20",Reset:"\u91CD\u7F6E",Refresh:"\u5237\u65B0","Comfy URL (You can copy it to connect ComfyUI in the plugin):":"Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):","use slider for number widget:":"\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757","Photoshop is not connected":"Photoshop \u672A\u8FDE\u63A5","select...":"\u8BF7\u9009\u62E9","click to edit":"\u70B9\u51FB\u7F16\u8F91","ComfyManager not found, cannot reboot":"Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F","Failed to reboot ComfyUI":"\u91CD\u542FComfyUI\u5931\u8D25"};var vo=typeof ro<"u"?ro:void 0,po="en";typeof navigator<"u"&&navigator.language?po=navigator.language=="zh-CN"?"zhcn":"en":vo&&(po=vo("uxp").host.uiLocale.startsWith("zh")?"zhcn":"en");function p(o,...e){let s=po=="zhcn"?ao[o]:o in lo?lo[o]:o;if(!s)throw new Error(`i18n key not found: ${o}`);return s.replace(/{(\d+)}/g,function(l,a){return typeof e[a]<"u"?e[a]:l})}function yo(o){return o in ao}var So=t(u(),1),ko=t(r(),1),v=class extends So.default.Component{render(){return(0,ko.jsx)("div",{className:`action-button ${this.props.highlight?"highlight":""}`,onClick:this.props.onClick,children:this.props.children})}};var Do=t(u(),1),Z=t(r(),1),T=class extends Do.default.Component{render(){let e=this.props.size||1;return(0,Z.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,Z.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,Z.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M10 7.854a4.5 4.5 0 10-6 0V13a.5.5 0 00.497.5h.006c.127 0 .254-.05.35-.146L7 11.207l2.146 2.147A.5.5 0 0010 13V7.854zM7 8a3.5 3.5 0 100-7 3.5 3.5 0 000 7zm-.354 2.146a.5.5 0 01.708 0L9 11.793v-3.26C8.398 8.831 7.718 9 7 9a4.481 4.481 0 01-2-.468v3.26l1.646-1.646z"})})})}};var Io=t(u(),1),z=t(r(),1),y=class extends Io.default.Component{render(){let e=this.props.size||1;return(0,z.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,z.jsxs)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,z.jsx)("path",{fill:"currentColor",d:"M5.5 1A.5.5 0 005 .5H2a.5.5 0 000 1h1.535a6.502 6.502 0 002.383 11.91.5.5 0 10.165-.986A5.502 5.502 0 014.5 2.1V4a.5.5 0 001 0V1.353a.5.5 0 000-.023V1zM7.507 1a.5.5 0 01.576-.41 6.502 6.502 0 012.383 11.91H12a.5.5 0 010 1H9a.5.5 0 01-.5-.5v-3a.5.5 0 011 0v1.9A5.5 5.5 0 007.917 1.576.5.5 0 017.507 1z"}),(0,z.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M6.2 9.08L9.068 7 6.2 4.92v4.16zM5 4.214v5.574a.8.8 0 001.212.686l4.445-2.787a.8.8 0 000-1.372L6.212 3.527A.8.8 0 005 4.213z"})]})})}};var xo=t(u(),1),K=t(r(),1),b=class extends xo.default.Component{render(){let e=this.props.size||1;return(0,K.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,K.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,K.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M4.2 10.88L10.668 7 4.2 3.12v7.76zM3 2.414v9.174a.8.8 0 001.212.686l7.645-4.587a.8.8 0 000-1.372L4.212 1.727A.8.8 0 003 2.413z"})})})}};var P=t(r(),1),ne=({pageInstance:o})=>{let{autoRunning:e,setAutoRunning:s,workflowAgentSID:l,setWorkflowAgentSID:a}=(0,n.useSDPPPContext)(),{runPage:C}=(0,n.useSDPPPComfyCaller)(),m=l==o.sid,d=e?.value==o.sid;return(0,P.jsxs)("li",{className:`client-list-item${m?" show-tips":""}${m||d?" checked":""}`,children:[(0,P.jsx)("sp-label",{class:"client-list-item-left",onClick:()=>{a(m?"":o.sid)},children:(0,P.jsxs)("div",{children:["[",o.ssid,"] ",o.lastError?o.lastError?.replace("sdppp PS side error:",""):o.title]})}),(0,P.jsxs)("div",{className:"client-list-item-right",children:[(0,P.jsx)("div",{className:"tips-icon",children:(0,P.jsx)(T,{size:.6,onClick:()=>{a(m?"":o.sid)}})}),(0,P.jsx)(v,{highlight:d,onClick:()=>{s(d?null:{type:"page",value:o.sid})},children:(0,P.jsx)(y,{size:.6})}),(0,P.jsx)(v,{onClick:()=>{C(o.sid)},children:(0,P.jsx)(b,{size:.6})})]})]})},Lo=ne;var w=t(r(),1),ie=()=>{let{autoRunning:o}=(0,n.useSDPPPContext)(),{pageInstances:e}=(0,n.useSDPPPWebpageList)();return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("div",{className:"client-list-title",children:(0,w.jsx)("h3",{children:p("webpages")})}),!e.length&&(0,w.jsx)("sp-label",{children:p("No opened ComfyUI pages")}),(0,w.jsx)("ul",{className:"client-list",children:e.map(s=>(0,w.jsx)(Lo,{pageInstance:s},s.sid))}),o?.type=="page"?(0,w.jsx)("sp-label",{class:"autorun-desc",children:p("auto run page [{0}] after change..",e.find(s=>s.sid==o?.value)?.title)}):""]})},zo=ie;var Ao=t(u(),1),J=t(r(),1),U=class extends Ao.default.Component{render(){let e=this.props.size||1;return(0,J.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,J.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,J.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M13.854 2.146l-2-2a.5.5 0 00-.708 0l-1.5 1.5-8.995 8.995a.499.499 0 00-.143.268L.012 13.39a.495.495 0 00.135.463.5.5 0 00.462.134l2.482-.496a.495.495 0 00.267-.143l8.995-8.995 1.5-1.5a.5.5 0 000-.708zM12 3.293l.793-.793L11.5 1.207 10.707 2 12 3.293zm-2-.586L1.707 11 3 12.293 11.293 4 10 2.707zM1.137 12.863l.17-.849.679.679-.849.17z"})})})}};var Ro=t(u(),1),X=t(r(),1),H=class extends Ro.default.Component{render(){let e=this.props.size||1;return(0,X.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,X.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,X.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M6.586 3.504l-1.5-1.5H1v9h12v-7.5H6.586zm.414-1L5.793 1.297a1 1 0 00-.707-.293H.5a.5.5 0 00-.5.5v10a.5.5 0 00.5.5h13a.5.5 0 00.5-.5v-8.5a.5.5 0 00-.5-.5H7z"})})})}};var f=t(r(),1),se=({path:o,isDir:e,isChecked:s,workflow:l,onRun:a,dirname:C,onDirectorySet:m,setEditorMode:d})=>{let{setAutoRunning:S,workflowAgentSID:g}=(0,n.useSDPPPContext)(),{openWorkflow:x}=(0,n.useSDPPPComfyCaller)();return e?(0,f.jsx)("li",{className:"client-list-item",children:(0,f.jsxs)("sp-label",{class:"client-list-item-left",onClick:()=>{if(o=="../"){let D=C||"",I=D.lastIndexOf("/");I==-1?m?.(""):m?.(D.slice(0,I))}else m?.(o)},children:[(0,f.jsx)(H,{size:.6}),(0,f.jsx)("div",{children:o})]})}):l?(0,f.jsxs)("li",{className:"client-list-item"+(s?" checked":""),children:[(0,f.jsx)("sp-label",{class:"client-list-item-left",onClick:()=>{d(!0),x(g,l.path)},children:(0,f.jsx)("div",{children:l.error?l.error.replace("sdppp PS side error:",""):l.path})}),(0,f.jsxs)("div",{className:"client-list-item-right",children:[(0,f.jsx)("div",{className:"tips-icon",children:(0,f.jsx)(U,{size:.6,onClick:()=>{d(!0),x(g,l.path)}})}),(0,f.jsx)(v,{highlight:s,onClick:()=>{S(s?null:{type:"workflow",value:o})},children:(0,f.jsx)(y,{size:.6})}),(0,f.jsx)(v,{onClick:()=>{a(l.path)},children:(0,f.jsx)(b,{size:.6})})]})]}):null},Y=se;var h=t(r(),1),re=({setEditorMode:o})=>{let{autoRunning:e,webviewAgentSID:s,workflowAgentSID:l}=(0,n.useSDPPPContext)(),{runWorkflow:a}=(0,n.useSDPPPComfyCaller)(),{workflows:C,workflowsError:m,currentViewingDirectory:d,setCurrentViewingDirectory:S,showingList:g}=(0,n.useSDPPPWorkflowList)(),{ssid:x,lastError:D,progress:I,executingNodeTitle:io,queueSize:Ko}=(0,n.useAgentState)(l),B="",uo=" ",fo=!1;l&&(D?(B+=p("Error: {0}",D),fo=!0):I?B+=`(${I}% - ${io}...)`:l&&(l==s?B+=p("workflow running by hidden webview"):B+=p("using browser page [{0}] for workflow running",x)),uo+=`(${p("Queue:")} ${Ko})`);let mo=null;return m&&(mo=(0,h.jsx)("sp-label",{class:"list-error-label",children:m})),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{className:"client-list-title",children:[(0,h.jsxs)("h3",{children:[p("workflows"),uo]}),(0,h.jsx)("sp-label",{class:fo?"error-label":"",children:B})]}),mo||(0,h.jsxs)("ul",{className:"client-list",children:[d?(0,h.jsx)(Y,{setEditorMode:o,path:"../",isDir:!0,isChecked:!1,onRun:async E=>{},dirname:d.slice(0,-1),onDirectorySet:E=>{S(E)}},d):"",g.map(E=>{let L=E.path,Jo=C[L],Xo=e?.value==L;return E.isDir?(0,h.jsx)(Y,{setEditorMode:o,path:L,isDir:!0,isChecked:!1,onRun:async _=>{await a(_)},dirname:d.slice(0,-1),onDirectorySet:_=>{S(_)}},L):(0,h.jsx)(Y,{setEditorMode:o,path:L,isDir:!1,isChecked:Xo,workflow:Jo,onRun:async _=>{await a(_)}},L)})]}),e?.type=="workflow"?(0,h.jsx)("sp-label",{class:"autorun-desc",children:p("auto run workflow [{0}] after change..",C[e?.value]?.path)}):""]})},No=re;var k=t(u(),1);var G=t(u(),1);var Mo=t(u(),1),j=t(r(),1),F=class extends Mo.default.Component{render(){let e=this.props.size||1;return(0,j.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,j.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,j.jsx)("path",{fill:"currentColor",d:"M7.092.5H7a6.5 6.5 0 106.41 7.583.5.5 0 10-.986-.166A5.495 5.495 0 017 12.5a5.5 5.5 0 010-11h.006a5.5 5.5 0 014.894 3H10a.5.5 0 000 1h3a.5.5 0 00.5-.5V2a.5.5 0 00-1 0v1.535A6.495 6.495 0 007.092.5z"})})})}};var Wo=t(u(),1),A=t(r(),1),V=class extends Wo.default.Component{render(){return(0,A.jsx)("div",{slot:"icon",className:"sdppp-icon",style:{strokeWidth:1},children:(0,A.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,A.jsx)("path",{d:"M11.083 12.25H2.917a1.167 1.167 0 01-1.167-1.167V2.917A1.167 1.167 0 012.917 1.75h6.416l2.917 2.917v6.416a1.167 1.167 0 01-1.167 1.167z"}),(0,A.jsx)("path",{d:"M9.917 12.25V7.583H4.083v4.667M4.083 1.75v2.917H8.75"})]})})}};var Go=t(u(),1),R=t(r(),1),oo=class extends Go.default.Component{render(){return(0,R.jsxs)("div",{slot:"icon",className:"sdppp-icon",children:[(0,R.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,R.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M5.2 10.88L11.668 7 5.2 3.12v7.76zM4 2.414v9.174a.8.8 0 001.212.686l7.645-4.587a.8.8 0 000-1.372L5.212 1.727A.8.8 0 004 2.413zM1.5 1.6a.6.6 0 01.6.6v9.6a.6.6 0 11-1.2 0V2.2a.6.6 0 01.6-.6z"}),(0,R.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M.963 1.932a.6.6 0 01.805-.268l1 .5a.6.6 0 01-.536 1.073l-1-.5a.6.6 0 01-.269-.805zM3.037 11.132a.6.6 0 01-.269.805l-1 .5a.6.6 0 01-.536-1.073l1-.5a.6.6 0 01.805.268z"})]}),this.props.count]})}};var Bo=t(u(),1),N=t(r(),1),Q=class extends Bo.default.Component{render(){return(0,N.jsx)("div",{slot:"icon",className:"sdppp-icon",style:{strokeWidth:1},children:(0,N.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,N.jsx)("path",{transform:"scale(0.7)",fillRule:"evenodd",clipRule:"evenodd",d:"M14 7A7 7 0 100 7a7 7 0 0014 0zm-6.535 5.738c-.233.23-.389.262-.465.262-.076 0-.232-.032-.465-.262-.238-.234-.497-.623-.737-1.182-.434-1.012-.738-2.433-.79-4.056h3.984c-.052 1.623-.356 3.043-.79 4.056-.24.56-.5.948-.737 1.182zM8.992 6.5H5.008c.052-1.623.356-3.044.79-4.056.24-.56.5-.948.737-1.182C6.768 1.032 6.924 1 7 1c.076 0 .232.032.465.262.238.234.497.623.737 1.182.434 1.012.738 2.433.79 4.056zm1 1c-.065 2.176-.558 4.078-1.282 5.253A6.005 6.005 0 0012.98 7.5H9.992zm2.987-1H9.992c-.065-2.176-.558-4.078-1.282-5.253A6.005 6.005 0 0112.98 6.5zm-8.971 0c.065-2.176.558-4.078 1.282-5.253A6.005 6.005 0 001.02 6.5h2.988zm-2.987 1a6.005 6.005 0 004.27 5.253C4.565 11.578 4.072 9.676 4.007 7.5H1.02z"}),(0,N.jsx)("path",{transform:"scale(0.5) translate(12, 12)",fillRule:"evenodd",clipRule:"evenodd",d:"M13.854 2.146l-2-2a.5.5 0 00-.708 0l-1.5 1.5-8.995 8.995a.499.499 0 00-.143.268L.012 13.39a.495.495 0 00.135.463.5.5 0 00.462.134l2.482-.496a.495.495 0 00.267-.143l8.995-8.995 1.5-1.5a.5.5 0 000-.708zM12 3.293l.793-.793L11.5 1.207 10.707 2 12 3.293zm-2-.586L1.707 11 3 12.293 11.293 4 10 2.707zM1.137 12.863l.17-.849.679.679-.849.17z"})]})})}};var Eo=t(u(),1),M=t(r(),1),eo=class extends Eo.default.Component{render(){return(0,M.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,M.jsxs)("svg",{width:this.props.size||20,height:this.props.size||20,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,M.jsx)("path",{d:"M11.7879 2.2121C12.0732 2.49737 12.0732 2.96723 11.7879 3.2525L3.2525 11.7879C2.96723 12.0732 2.49737 12.0732 2.2121 11.7879C1.92684 11.5026 1.92684 11.0328 2.2121 10.7475L10.7475 2.2121C11.0328 1.92684 11.5026 1.92684 11.7879 2.2121Z",fill:"currentColor"}),(0,M.jsx)("path",{d:"M2.2121 2.2121C2.49737 1.92684 2.96723 1.92684 3.2525 2.2121L11.7879 10.7475C12.0732 11.0328 12.0732 11.5026 11.7879 11.7879C11.5026 12.0732 11.0328 12.0732 10.7475 11.7879L2.2121 3.2525C1.92684 2.96723 1.92684 2.49737 2.2121 2.2121Z",fill:"currentColor"})]})})}};var _o=t(u(),1),to=t(r(),1),no=class extends _o.default.Component{render(){return(0,to.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,to.jsx)("svg",{width:this.props.size||20,height:this.props.size||20,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,to.jsx)("path",{d:"M1 1.504a.5.5 0 01.5-.5h11a.5.5 0 01.5.5v11a.5.5 0 01-.5.5h-11a.5.5 0 01-.5-.5v-11z",fill:"currentColor"})})})}};var To=t(u(),1),W=t(r(),1),$=class extends To.default.Component{render(){return(0,W.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,W.jsxs)("svg",{width:this.props.size||20,height:this.props.size||20,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,W.jsx)("path",{d:"M2.35 10.95L3.05 11.65L11.65 3.05L10.95 2.35L2.35 10.95Z",fill:"currentColor"}),(0,W.jsx)("path",{d:"M7 14C3.13401 14 0 10.866 0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7C14 10.866 10.866 14 7 14ZM7 13C10.3137 13 13 10.3137 13 7C13 3.68629 10.3137 1 7 1C3.68629 1 1 3.68629 1 7C1 10.3137 3.68629 13 7 13Z",fill:"currentColor"})]})})}};var i=t(r(),1),le=()=>{let{workflowAgentSID:o,autoRunning:e}=(0,n.useSDPPPContext)(),{lastError:s,progress:l,executingNodeTitle:a}=(0,n.useAgentState)(o);return(0,i.jsxs)("div",{className:"workflow-run-status",children:[e?(0,i.jsx)("sp-label",{children:p("auto run workflow after change..")}):"",s?(0,i.jsx)("sp-label",{class:"error-label",children:s}):"",a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("sp-label",{children:`${l}% ${a}...`}),(0,i.jsx)("sp-progressbar",{value:l/100})]}):""]})},ae=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{saveWorkflow:e,reopenWorkflow:s}=(0,n.useSDPPPComfyCaller)(),l=(0,G.useCallback)(async()=>{await e(o)},[e,o]);return(0,i.jsx)("sp-action-button",{onClick:l,children:(0,i.jsx)(V,{})})};var pe=()=>{let{interrupt:o}=(0,n.useSDPPPComfyCaller)(),{clearQueue:e}=(0,n.useSDPPPComfyCaller)(),s=(0,G.useCallback)(async()=>{await e(),await o()},[e,o]);return(0,i.jsx)("sp-action-button",{onClick:s,children:(0,i.jsx)($,{})})},ce=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{reopenWorkflow:e}=(0,n.useSDPPPComfyCaller)(),s=(0,G.useCallback)(()=>{e(o)},[e,o]);return(0,i.jsx)("sp-action-button",{onClick:s,children:(0,i.jsx)(F,{})})};var de=()=>{let{workflowAgentSID:o,autoRunning:e,setAutoRunning:s}=(0,n.useSDPPPContext)();return(0,i.jsx)("sp-action-button",{class:e?.value==o?"highlight":"",onClick:()=>{e?.value==o?s(null):s({type:"page",value:o})},children:(0,i.jsx)(y,{})})},ue=()=>{let{workflowAgentSID:o,webviewAgentSID:e,toggleWebviewDialog:s}=(0,n.useSDPPPContext)(),l=o==e;return(0,i.jsx)("sp-action-button",{...l?{}:{disabled:!0},onClick:()=>{s()},title:l?p("Edit in ComfyUI"):p("disabled when running in browser page"),children:(0,i.jsx)(Q,{})})},fe=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{runPage:e}=(0,n.useSDPPPComfyCaller)();return(0,i.jsx)("sp-action-button",{onClick:()=>{e(o)},children:(0,i.jsx)(b,{})})},me=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{runPage:e}=(0,n.useSDPPPComfyCaller)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"action-button",onClick:()=>{e(o,2)},children:"x2"}),(0,i.jsx)("div",{className:"action-button",onClick:()=>{e(o,5)},children:"x5"}),(0,i.jsx)("div",{className:"action-button",onClick:()=>{e(o,9)},children:"x9"})]})};function Uo({WorkflowEditPhotoshop:o}){let{workflowAgentSID:e}=(0,n.useSDPPPContext)(),{ssid:s,queueSize:l}=(0,n.useAgentState)(e);return(0,G.useMemo)(()=>(0,i.jsxs)("div",{className:"workflow-edit-wrap",children:[(0,i.jsxs)("div",{className:"workflow-edit-top",children:[(0,i.jsx)("sp-label",{children:p("(Page ID: {0})Queue: {1}",s,l)}),(0,i.jsxs)("div",{className:"workflow-edit-controls",children:[(0,i.jsxs)("div",{className:"workflow-edit-controls-left",children:[(0,i.jsxs)("div",{className:"workflow-edit-button-line workflow-edit-button-lineone",children:[(0,i.jsxs)("div",{className:"workflow-edit-button-line-left",children:[(0,i.jsx)(ae,{}),(0,i.jsx)(ce,{})]}),(0,i.jsxs)("div",{className:"workflow-edit-button-line-right",children:[(0,i.jsx)(pe,{}),(0,i.jsx)(de,{})]})]}),(0,i.jsxs)("div",{className:"workflow-edit-button-line workflow-edit-controls-linetwo",children:[(0,i.jsx)(le,{}),(0,i.jsx)(ue,{})]})]}),(0,i.jsx)("div",{className:"workflow-edit-controls-center",children:(0,i.jsx)(fe,{})}),(0,i.jsx)("div",{className:"workflow-edit-controls-right",children:(0,i.jsx)(me,{})})]})]}),(0,i.jsx)("sp-divider",{}),(0,i.jsx)(o,{})]}),[s,l])}var c=t(r(),1);function Ho({connectState:o,AddressBar:e,WorkflowEditPhotoshop:s}){let[l,a]=(0,k.useState)(!1),[C,m]=(0,k.useState)(!1);(0,k.useEffect)(()=>{if(o==="connected"){let io=setTimeout(()=>{m(!0)},8e3);return()=>clearTimeout(io)}else m(!1)},[o]);let{workflowAgentSID:d,webviewAgentSID:S,lastConnectErrorMessage:g}=(0,n.useSDPPPContext)(),x=l?1:0,[D,I]=(0,k.useState)(!1);return(0,k.useEffect)(()=>{d?I(d!=S):D&&a(!1)},[d]),(0,k.useEffect)(()=>{o==="disconnected"&&a(!1)},[o]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"connect-box",children:[l?(0,c.jsx)("sp-action-button",{onClick:()=>{a(!1)},children:"\u2190"}):(0,c.jsx)("div",{className:"status-bar "+o,children:(0,c.jsx)("div",{className:"status-icon",title:g?.toString()||p(o),children:"\u2B24"})}),(0,c.jsx)(e,{})]}),g?(0,c.jsx)("div",{children:(0,c.jsx)("sp-label",{class:"error-label",children:yo(g)?p(g):g})}):"",(0,c.jsx)(n.Promote,{}),(0,c.jsx)("sp-divider",{size:"small"}),o==="connected"&&(0,c.jsxs)("div",{className:"panel-body",children:[(0,c.jsx)("div",{className:"editor-card",style:x===0?{}:{display:"none"},children:(0,c.jsxs)("div",{className:"comfy-list-wrap",children:[C&&!S&&(0,c.jsx)("sp-label",{class:"error-label",children:p("hidden webview load failed: {0}, please select a browser page to continue",p("timeout"))}),(0,c.jsx)(zo,{}),d&&(0,c.jsx)(No,{setEditorMode:a})]})}),(0,c.jsx)("div",{className:"editor-card",style:l?{}:{display:"none"},children:l&&d&&(0,c.jsx)(Uo,{WorkflowEditPhotoshop:s})})]})]})}var q=t(r(),1);function co(){return(0,q.jsx)(n.SDPPPProvider,{loginAppID:"",children:(0,q.jsx)("div",{className:"container",children:(0,q.jsx)(n.SDPPP,{renderContent:(o,e,s)=>(0,q.jsx)(Ho,{connectState:o,AddressBar:e,WorkflowEditPhotoshop:s})})})})}var Qo=t(Vo(),1),Zo=t(r(),1);globalThis.sdppp=globalThis.sdppp||{};globalThis.sdppp.renderPhotoshopPlugin=o=>{(0,Qo.createRoot)(o).render((0,Zo.jsx)(co,{}))};var $o=[],qo=[],Oo=[];globalThis.sdppp.getLogs=()=>({logs:$o,warningLogs:qo,errorLogs:Oo});globalThis.sdppp.enableLogCapture=()=>{console.log=function(o){return function(...e){o(...e),$o.push(e)}}(console.log),console.warn=function(o){return function(...e){o(...e),qo.push(e)}}(console.warn),console.error=function(o){return function(...e){o(...e),Oo.push(e)}}(console.error)};})(); +"use strict";(()=>{var Yo=Object.create;var ho=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var ro=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var O=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports);var so=(o,e,s,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of oe(e))!te.call(o,a)&&a!==s&&ho(o,a,{get:()=>e[a],enumerable:!(l=jo(e,a))||l.enumerable});return o},Po=(o,e,s)=>(so(o,e,"default"),s&&so(s,e,"default")),t=(o,e,s)=>(s=o!=null?Yo(ee(o)):{},so(e||!o||!o.__esModule?ho(s,"default",{value:o,enumerable:!0}):s,o));var go=O((Pe,wo)=>{"use strict";wo.exports=window.SDPPPInternal});var u=O((ke,bo)=>{"use strict";bo.exports=window.React});var r=O((De,Co)=>{"use strict";Co.exports=window.ReactJSXRuntime});var Vo=O((Lt,Fo)=>{"use strict";Fo.exports=window.ReactDOMClient});var n={};Po(n,t(go(),1));var lo={"SDPPP Get Document":"SDPPP Get Document","SDPPP Get Layer By ID":"SDPPP Get Layer","SDPPP Get Linked Layers":"SDPPP Get Linked Layers","SDPPP Get Layers In Group":"SDPPP Get Layers In Group","SDPPP Get Text From Layer":"SDPPP Get Text From Layer","SDPPP Parse Layer Info":"SDPPP Parse Layer Info","SDPPP Get Selection":"SDPPP Get Selection","SDPPP Get Image From Photoshop":"SDPPP Get Image From Photoshop","SDPPP Send Images To Photoshop":"SDPPP Send Images To Photoshop","SDPPP Settings":"SDPPP Settings/Misc"};var ao={"### Active Document ###":"### \u5F53\u524D\u6587\u6863 ###","### The Canvas ###":"### \u6574\u4E2A\u753B\u5E03 ###","### New Layer ###":"### \u65B0\u56FE\u5C42 ###","### Selected Layer ###":"### \u6240\u9009\u56FE\u5C42 ###","### Keep Size or Fit Canvas ###":"### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###",_SDPPP_PSD_:"_SDPPP_PSD_","Save and run immediately":"\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C",Close:"\u5173\u95ED","Select a {0}":"\u9009\u62E9\u4E00\u4E2A {0}","How to use .ccx file":"\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6","1. If you have installed Adobe Creative Cloud":"1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud","Just double click the .ccx file, it will install the plugin automatically":"\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5","2. If you don't have Adobe Creative Cloud":"2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud","Rename .ccx to .zip and extract it into ":"\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230",or:"\u6216","Photoshop directory":"Photoshop \u5B89\u88C5\u76EE\u5F55","Cannot connect multiple different document widgets with same value":"\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6","You can only have one SDPPP Settings node in a workflow":"\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9","convert widget {0} failed:":"\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A","hidden webview load failed: {0}, please select a browser page to continue":"\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED","SDPPP Get Document":"SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)","SDPPP Get Layer By ID":"SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)","SDPPP Get Linked Layers":"SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)","SDPPP Get Layers In Group":"SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)","SDPPP Get Text From Layer":"SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)","SDPPP Parse Layer Info":"SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)","SDPPP Get Selection":"SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)","SDPPP Get Image From Photoshop":"SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)","SDPPP Send Images To Photoshop":"SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)","SDPPP Send Text To Layer":"SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)","SDPPP Run Photoshop Action":"SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)","download PS plugin (.ccx)":"\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)","current ComfyUI pageid: {0}":"\u5F53\u524D ComfyUI \u9875\u9762ID: {0}","current A1111 pageid: {0}":"\u5F53\u524D A1111 \u9875\u9762ID: {0}","document linked":"\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5","layer linked":"\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5","bound linked":"\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5",document:"\u6587\u6863",Document:"\u6587\u6863",DOCUMENT:"\u6587\u6863",document_name:"\u6587\u6863\u540D\u5B57id",layer_nameid:"\u56FE\u5C42\u540D\u5B57id",layer_name:"\u56FE\u5C42\u540D\u5B57",layer_info:"\u56FE\u5C42\u4FE1\u606F",bound_top:"\u8303\u56F4\u4E0A\u8FB9\u8DDD",bound_left:"\u8303\u56F4\u5DE6\u8FB9\u8DDD",bound_width:"\u8303\u56F4\u5BBD\u5EA6",bound_height:"\u8303\u56F4\u9AD8\u5EA6",center_x:"\u4E2D\u5FC3\u70B9x",center_y:"\u4E2D\u5FC3\u70B9y",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",Layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",bound:"\u8303\u56F4",bounds:"\u8303\u56F4","bounds [optional]":"\u8303\u56F4[\u53EF\u9009]",boundary:"\u8303\u56F4",Boundary:"\u8303\u56F4",canvas_boundary:"\u753B\u5E03\u8303\u56F4",canvas_bound:"\u753B\u5E03\u8303\u56F4",layer_boundary:"\u56FE\u5C42\u8303\u56F4",layer_bound:"\u56FE\u5C42\u8303\u56F4","Photoshop Disconnected!":"Photoshop \u672A\u8FDE\u63A5\uFF01",rgb_out:"RGB\u8F93\u51FA",alpha_out:"Alpha\u8F93\u51FA",images:"\u56FE\u50CF",text:"\u6587\u672C",ID_mode:"\u7CBE\u786EID\u6A21\u5F0F",name_mode:"\u540D\u5B57\u5339\u914D\u6A21\u5F0F",select:"\u9009\u62E9","document boundary":"\u6587\u6863\u8303\u56F4","layer boundary":"\u56FE\u5C42\u8303\u56F4","selection boundary":"\u9009\u4E2D\u8303\u56F4","save .psd to this workflow":"\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41","extract saved .psd to Photoshop":"\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop","sample .psd":"\u793A\u4F8B.psd",mask:"\u906E\u7F69",name:"\u540D\u79F0",quality:"\u56FE\u50CF\u8D28\u91CF",timeout:"\u8D85\u65F6","--multi-user activated, Not Login!":"--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01",Logout:"\u767B\u51FA","User: ":"\u7528\u6237: ",connect:"\u8FDE\u63A5",connected:"\u5DF2\u8FDE\u63A5",disconnect:"\u65AD\u5F00",disconnected:"\u5DF2\u65AD\u5F00\u8FDE\u63A5","reconnecting...":"\u91CD\u8FDE\u4E2D...",connecting:"\u8FDE\u63A5\u4E2D",webpages:"\u7F51\u9875\u5217\u8868",workflows:"\u5DE5\u4F5C\u6D41",workflow:"\u5DE5\u4F5C\u6D41","auto run page [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..","auto run workflow [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..","auto run workflow after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..",selection_only:"\u4EC5\u9009\u533A","Queue:":"\u961F\u5217:","Set As:":"\u8BBE\u7F6E\u4E3A:","Error {0}... please contact me via Discord/Github":"\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211","Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System":"Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF","Workflow List of ComfyUI with --multi-user is only available for sponsors":'\u5E26"--multi-user"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',"(Page ID: {0})Queue: {1}":"(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}","no suitable node to control in this workflow":"\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9",Save:"\u4FDD\u5B58",Edit:"\u7F16\u8F91","Edit in ComfyUI":"\u5728 ComfyUI \u4E2D\u7F16\u8F91","using browser page [{0}] for workflow running":"\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41","workflow running by hidden webview":"\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C","Lock Image":"\u9501\u5B9A\u56FE\u50CF","Unlock Image":"\u89E3\u9501\u56FE\u50CF","search...":"\u641C\u7D22...","disabled when running in browser page":"\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528","only supported in Photoshop":"\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301",Login:"\u767B\u5F55","Invitation Code":"\u9080\u8BF7\u7801",Username:"\u7528\u6237\u540D",Password:"\u5BC6\u7801","Please input invitation code":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","Please input username":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","Please input password":"\u8BF7\u8F93\u5165\u5BC6\u7801","502: Maybe the server is not running":"502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C","404: Maybe SDPPP is not installed or failed to run in ComfyUI":"404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25","{0}. reconnecting...":"{0}. \u91CD\u8FDE\u4E2D...","disconnected to {0} failed {1}":"\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}","version mismatch, please reinstall PS plugin":"\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6","instance type not recognized":"\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B","Error: {0}":"\u9519\u8BEF: {0}","Verification Error":"\u9A8C\u8BC1\u9519\u8BEF","document {0} not found":"\u627E\u4E0D\u5230\u6587\u6863: {0}",'only layer kind "TEXT" is supported, invalid layer: {0}':"\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}","create layer failed":"\u521B\u5EFA\u56FE\u5C42\u5931\u8D25","layer not found {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","no linked layer for {0}":"\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}","layer {0} is not a group":"\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4","no layer in group {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42","layer not found: {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","No upload_name":"\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25","get pixel of {0} failed":"\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}","merge group failed":"\u5408\u5E76\u7EC4\u5931\u8D25","invalid name: {0}":"\u975E\u6CD5\u7684\u540D\u79F0: {0}","get_layer_info: layer_identify required":"get_layer_info: \u9700\u8981 layer_identify","invalid action: {0}":"\u65E0\u6548\u7684\u64CD\u4F5C: {0}","create document failed":"\u521B\u5EFA\u6587\u6863\u5931\u8D25","create document for preview":"\u521B\u5EFA\u9884\u89C8\u6587\u6863","resize document for preview":"\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8","no first related layer in {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42","imageDataError: data length is not multiple of width * height":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570","imageDataError: originComponents must be 1 or 3":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3","unexpected connection lost, please try to reconnect":"\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5","Workflow list is empty, please save a workflow by Comfy's lastest UI":"\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41","No opened ComfyUI pages":"\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762","comfyAPI is not initialized, maybe comfyUI is too old":"\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7","unsupported channel counts: {0}":"\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}","Timeout, Maybe the URL is wrong":"\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF","Workflow list loading failed: {0}":"\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}","Please register a user in ComfyUI":"\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237","GetSelection need Photoshop version 25+":"GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C","Action {0} not found":"Action {0} \u672A\u627E\u5230","Action set {0} not found":"ActionSet {0} \u672A\u627E\u5230","create document for sent images":"\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863","show sent images":"\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","fallback show sent images":"\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","get content of layer {0}":"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","fallback get content of layer {0}":"\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","get layer info":"\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F","sdppp extract PSD":"sdppp \u5BFC\u5165 PSD","sdppp get PSD":"sdppp \u83B7\u53D6 PSD","set text to layer":"\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C","sdppp Run Photoshop Action":"sdppp \u8FD0\u884C Photoshop Action","{0} wants to extract a PSD file to Photoshop, are you sure?":"{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F","should sdppp refuse extracting PSD to Photoshop in this session anymore?":"\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F","Wide Mode":"\u5BBD\u5C4F\u6A21\u5F0F","Quick Set":"\u5FEB\u901F\u8BBE\u7F6E","Selected Layer":"\u9009\u4E2D\u56FE\u5C42","Selected Layer (invert)":"\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)",Canvas:"\u753B\u5E03",Selection:"\u9009\u533A",Manual:"\u624B\u52A8\u6A21\u5F0F",Auto:"\u81EA\u52A8\u6A21\u5F0F","This plugin is based on sd-ppp":"\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1","And follows its open source license:":"\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A",Cloud:"\u4E91\u7AEF",Sponsors:"\u8D5E\u52A9","waiting...":"\u865A\u4F4D\u4EE5\u5F85",Links:"\u53CB\u60C5\u94FE\u63A5",Community:"\u793E\u533A","LICENSE:":"\u8BB8\u53EF\u8BC1\uFF1A","Official Site":"\u5B98\u65B9\u7F51\u7AD9",upload:"\u4E0A\u4F20","Simplify Workflow":"\u7B80\u5316\u5DE5\u4F5C\u6D41",Photoshop:"Photoshop","Photoshop plugin settings":"Photoshop \u63D2\u4EF6\u8BBE\u7F6E","Photoshop plugin":"Photoshop \u63D2\u4EF6","SDPPP Settings/Misc":"SDPPP \u8BBE\u7F6E/\u6742\u9879","Sample .PSD for this workflow:":"\u793A\u4F8B.PSD","Download Example .PSD":"\u4E0B\u8F7D\u793A\u4F8B.PSD","Maximum Image Size (px):":"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)",Download:"\u4E0B\u8F7D",Upload:"\u4E0A\u4F20",Reset:"\u91CD\u7F6E",Refresh:"\u5237\u65B0","Comfy URL (You can copy it to connect ComfyUI in the plugin):":"Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):","use slider for number widget:":"\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757","Photoshop is not connected":"Photoshop \u672A\u8FDE\u63A5","select...":"\u8BF7\u9009\u62E9","click to edit":"\u70B9\u51FB\u7F16\u8F91","ComfyManager not found, cannot reboot":"Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F","Failed to reboot ComfyUI":"\u91CD\u542FComfyUI\u5931\u8D25"};var vo=typeof ro<"u"?ro:void 0,co="en";typeof navigator<"u"&&navigator.language?co=navigator.language=="zh-CN"?"zhcn":"en":vo&&(co=vo("uxp").host.uiLocale.startsWith("zh")?"zhcn":"en");function c(o,...e){let s=co=="zhcn"?ao[o]:o in lo?lo[o]:o;if(!s)throw new Error(`i18n key not found: ${o}`);return s.replace(/{(\d+)}/g,function(l,a){return typeof e[a]<"u"?e[a]:l})}function yo(o){return o in ao}var So=t(u(),1),ko=t(r(),1),v=class extends So.default.Component{render(){return(0,ko.jsx)("div",{className:`action-button ${this.props.highlight?"highlight":""}`,onClick:this.props.onClick,children:this.props.children})}};var Do=t(u(),1),Z=t(r(),1),T=class extends Do.default.Component{render(){let e=this.props.size||1;return(0,Z.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,Z.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,Z.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M10 7.854a4.5 4.5 0 10-6 0V13a.5.5 0 00.497.5h.006c.127 0 .254-.05.35-.146L7 11.207l2.146 2.147A.5.5 0 0010 13V7.854zM7 8a3.5 3.5 0 100-7 3.5 3.5 0 000 7zm-.354 2.146a.5.5 0 01.708 0L9 11.793v-3.26C8.398 8.831 7.718 9 7 9a4.481 4.481 0 01-2-.468v3.26l1.646-1.646z"})})})}};var Io=t(u(),1),z=t(r(),1),y=class extends Io.default.Component{render(){let e=this.props.size||1;return(0,z.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,z.jsxs)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,z.jsx)("path",{fill:"currentColor",d:"M5.5 1A.5.5 0 005 .5H2a.5.5 0 000 1h1.535a6.502 6.502 0 002.383 11.91.5.5 0 10.165-.986A5.502 5.502 0 014.5 2.1V4a.5.5 0 001 0V1.353a.5.5 0 000-.023V1zM7.507 1a.5.5 0 01.576-.41 6.502 6.502 0 012.383 11.91H12a.5.5 0 010 1H9a.5.5 0 01-.5-.5v-3a.5.5 0 011 0v1.9A5.5 5.5 0 007.917 1.576.5.5 0 017.507 1z"}),(0,z.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M6.2 9.08L9.068 7 6.2 4.92v4.16zM5 4.214v5.574a.8.8 0 001.212.686l4.445-2.787a.8.8 0 000-1.372L6.212 3.527A.8.8 0 005 4.213z"})]})})}};var xo=t(u(),1),K=t(r(),1),b=class extends xo.default.Component{render(){let e=this.props.size||1;return(0,K.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,K.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,K.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M4.2 10.88L10.668 7 4.2 3.12v7.76zM3 2.414v9.174a.8.8 0 001.212.686l7.645-4.587a.8.8 0 000-1.372L4.212 1.727A.8.8 0 003 2.413z"})})})}};var P=t(r(),1),ne=({pageInstance:o})=>{let{autoRunning:e,setAutoRunning:s,workflowAgentSID:l,setWorkflowAgentSID:a}=(0,n.useSDPPPContext)(),{runPage:C}=(0,n.useSDPPPComfyCaller)(),m=l==o.sid,d=e?.value==o.sid;return(0,P.jsxs)("li",{className:`client-list-item${m?" show-tips":""}${m||d?" checked":""}`,children:[(0,P.jsx)("sp-label",{class:"client-list-item-left",onClick:()=>{a(m?"":o.sid)},children:(0,P.jsxs)("div",{children:["[",o.ssid,"] ",o.lastError?o.lastError?.replace("sdppp PS side error:",""):o.title]})}),(0,P.jsxs)("div",{className:"client-list-item-right",children:[(0,P.jsx)("div",{className:"tips-icon",children:(0,P.jsx)(T,{size:.6,onClick:()=>{a(m?"":o.sid)}})}),(0,P.jsx)(v,{highlight:d,onClick:()=>{s(d?null:{type:"page",value:o.sid})},children:(0,P.jsx)(y,{size:.6})}),(0,P.jsx)(v,{onClick:()=>{C(o.sid)},children:(0,P.jsx)(b,{size:.6})})]})]})},Lo=ne;var w=t(r(),1),ie=()=>{let{autoRunning:o}=(0,n.useSDPPPContext)(),{pageInstances:e}=(0,n.useSDPPPWebpageList)();return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("div",{className:"client-list-title",children:(0,w.jsx)("h3",{children:c("webpages")})}),!e.length&&(0,w.jsx)("sp-label",{children:c("No opened ComfyUI pages")}),(0,w.jsx)("ul",{className:"client-list",children:e.map(s=>(0,w.jsx)(Lo,{pageInstance:s},s.sid))}),o?.type=="page"?(0,w.jsx)("sp-label",{class:"autorun-desc",children:c("auto run page [{0}] after change..",e.find(s=>s.sid==o?.value)?.title)}):""]})},zo=ie;var Ao=t(u(),1),J=t(r(),1),U=class extends Ao.default.Component{render(){let e=this.props.size||1;return(0,J.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,J.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,J.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M13.854 2.146l-2-2a.5.5 0 00-.708 0l-1.5 1.5-8.995 8.995a.499.499 0 00-.143.268L.012 13.39a.495.495 0 00.135.463.5.5 0 00.462.134l2.482-.496a.495.495 0 00.267-.143l8.995-8.995 1.5-1.5a.5.5 0 000-.708zM12 3.293l.793-.793L11.5 1.207 10.707 2 12 3.293zm-2-.586L1.707 11 3 12.293 11.293 4 10 2.707zM1.137 12.863l.17-.849.679.679-.849.17z"})})})}};var Ro=t(u(),1),X=t(r(),1),H=class extends Ro.default.Component{render(){let e=this.props.size||1;return(0,X.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,X.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,X.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M6.586 3.504l-1.5-1.5H1v9h12v-7.5H6.586zm.414-1L5.793 1.297a1 1 0 00-.707-.293H.5a.5.5 0 00-.5.5v10a.5.5 0 00.5.5h13a.5.5 0 00.5-.5v-8.5a.5.5 0 00-.5-.5H7z"})})})}};var f=t(r(),1),se=({path:o,isDir:e,isChecked:s,workflow:l,onRun:a,dirname:C,onDirectorySet:m,setEditorMode:d})=>{let{setAutoRunning:S,workflowAgentSID:g}=(0,n.useSDPPPContext)(),{openWorkflow:x}=(0,n.useSDPPPComfyCaller)();return e?(0,f.jsx)("li",{className:"client-list-item",children:(0,f.jsxs)("sp-label",{class:"client-list-item-left",onClick:()=>{if(o=="../"){let D=C||"",I=D.lastIndexOf("/");I==-1?m?.(""):m?.(D.slice(0,I))}else m?.(o)},children:[(0,f.jsx)(H,{size:.6}),(0,f.jsx)("div",{children:o})]})}):l?(0,f.jsxs)("li",{className:"client-list-item"+(s?" checked":""),children:[(0,f.jsx)("sp-label",{class:"client-list-item-left",onClick:()=>{d(!0),x(g,l.path)},children:(0,f.jsx)("div",{children:l.error?l.error.replace("sdppp PS side error:",""):l.path})}),(0,f.jsxs)("div",{className:"client-list-item-right",children:[(0,f.jsx)("div",{className:"tips-icon",children:(0,f.jsx)(U,{size:.6,onClick:()=>{d(!0),x(g,l.path)}})}),(0,f.jsx)(v,{highlight:s,onClick:()=>{S(s?null:{type:"workflow",value:o})},children:(0,f.jsx)(y,{size:.6})}),(0,f.jsx)(v,{onClick:()=>{a(l.path)},children:(0,f.jsx)(b,{size:.6})})]})]}):null},Y=se;var h=t(r(),1),re=({setEditorMode:o})=>{let{autoRunning:e,webviewAgentSID:s,workflowAgentSID:l}=(0,n.useSDPPPContext)(),{runWorkflow:a}=(0,n.useSDPPPComfyCaller)(),{workflows:C,workflowsError:m,currentViewingDirectory:d,setCurrentViewingDirectory:S,showingList:g}=(0,n.useSDPPPWorkflowList)(),{ssid:x,lastError:D,progress:I,executingNodeTitle:io,queueSize:Ko}=(0,n.useAgentState)(l),B="",uo=" ",fo=!1;l&&(D?(B+=c("Error: {0}",D),fo=!0):I?B+=`(${I}% - ${io}...)`:l&&(l==s?B+=c("workflow running by hidden webview"):B+=c("using browser page [{0}] for workflow running",x)),uo+=`(${c("Queue:")} ${Ko})`);let mo=null;return m&&(mo=(0,h.jsx)("sp-label",{class:"list-error-label",children:m})),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{className:"client-list-title",children:[(0,h.jsxs)("h3",{children:[c("workflows"),uo]}),(0,h.jsx)("sp-label",{class:fo?"error-label":"",children:B})]}),mo||(0,h.jsxs)("ul",{className:"client-list",children:[d?(0,h.jsx)(Y,{setEditorMode:o,path:"../",isDir:!0,isChecked:!1,onRun:async E=>{},dirname:d.slice(0,-1),onDirectorySet:E=>{S(E)}},d):"",g.map(E=>{let L=E.path,Jo=C[L],Xo=e?.value==L;return E.isDir?(0,h.jsx)(Y,{setEditorMode:o,path:L,isDir:!0,isChecked:!1,onRun:async _=>{await a(_)},dirname:d.slice(0,-1),onDirectorySet:_=>{S(_)}},L):(0,h.jsx)(Y,{setEditorMode:o,path:L,isDir:!1,isChecked:Xo,workflow:Jo,onRun:async _=>{await a(_)}},L)})]}),e?.type=="workflow"?(0,h.jsx)("sp-label",{class:"autorun-desc",children:c("auto run workflow [{0}] after change..",C[e?.value]?.path)}):""]})},No=re;var k=t(u(),1);var G=t(u(),1);var Mo=t(u(),1),j=t(r(),1),F=class extends Mo.default.Component{render(){let e=this.props.size||1;return(0,j.jsx)("div",{slot:"icon",className:"sdppp-icon",onClick:this.props.onClick,children:(0,j.jsx)("svg",{width:20*e,height:20*e,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,j.jsx)("path",{fill:"currentColor",d:"M7.092.5H7a6.5 6.5 0 106.41 7.583.5.5 0 10-.986-.166A5.495 5.495 0 017 12.5a5.5 5.5 0 010-11h.006a5.5 5.5 0 014.894 3H10a.5.5 0 000 1h3a.5.5 0 00.5-.5V2a.5.5 0 00-1 0v1.535A6.495 6.495 0 007.092.5z"})})})}};var Wo=t(u(),1),A=t(r(),1),V=class extends Wo.default.Component{render(){return(0,A.jsx)("div",{slot:"icon",className:"sdppp-icon",style:{strokeWidth:1},children:(0,A.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,A.jsx)("path",{d:"M11.083 12.25H2.917a1.167 1.167 0 01-1.167-1.167V2.917A1.167 1.167 0 012.917 1.75h6.416l2.917 2.917v6.416a1.167 1.167 0 01-1.167 1.167z"}),(0,A.jsx)("path",{d:"M9.917 12.25V7.583H4.083v4.667M4.083 1.75v2.917H8.75"})]})})}};var Go=t(u(),1),R=t(r(),1),oo=class extends Go.default.Component{render(){return(0,R.jsxs)("div",{slot:"icon",className:"sdppp-icon",children:[(0,R.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,R.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M5.2 10.88L11.668 7 5.2 3.12v7.76zM4 2.414v9.174a.8.8 0 001.212.686l7.645-4.587a.8.8 0 000-1.372L5.212 1.727A.8.8 0 004 2.413zM1.5 1.6a.6.6 0 01.6.6v9.6a.6.6 0 11-1.2 0V2.2a.6.6 0 01.6-.6z"}),(0,R.jsx)("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M.963 1.932a.6.6 0 01.805-.268l1 .5a.6.6 0 01-.536 1.073l-1-.5a.6.6 0 01-.269-.805zM3.037 11.132a.6.6 0 01-.269.805l-1 .5a.6.6 0 01-.536-1.073l1-.5a.6.6 0 01.805.268z"})]}),this.props.count]})}};var Bo=t(u(),1),N=t(r(),1),Q=class extends Bo.default.Component{render(){return(0,N.jsx)("div",{slot:"icon",className:"sdppp-icon",style:{strokeWidth:1},children:(0,N.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,N.jsx)("path",{transform:"scale(0.7)",fillRule:"evenodd",clipRule:"evenodd",d:"M14 7A7 7 0 100 7a7 7 0 0014 0zm-6.535 5.738c-.233.23-.389.262-.465.262-.076 0-.232-.032-.465-.262-.238-.234-.497-.623-.737-1.182-.434-1.012-.738-2.433-.79-4.056h3.984c-.052 1.623-.356 3.043-.79 4.056-.24.56-.5.948-.737 1.182zM8.992 6.5H5.008c.052-1.623.356-3.044.79-4.056.24-.56.5-.948.737-1.182C6.768 1.032 6.924 1 7 1c.076 0 .232.032.465.262.238.234.497.623.737 1.182.434 1.012.738 2.433.79 4.056zm1 1c-.065 2.176-.558 4.078-1.282 5.253A6.005 6.005 0 0012.98 7.5H9.992zm2.987-1H9.992c-.065-2.176-.558-4.078-1.282-5.253A6.005 6.005 0 0112.98 6.5zm-8.971 0c.065-2.176.558-4.078 1.282-5.253A6.005 6.005 0 001.02 6.5h2.988zm-2.987 1a6.005 6.005 0 004.27 5.253C4.565 11.578 4.072 9.676 4.007 7.5H1.02z"}),(0,N.jsx)("path",{transform:"scale(0.5) translate(12, 12)",fillRule:"evenodd",clipRule:"evenodd",d:"M13.854 2.146l-2-2a.5.5 0 00-.708 0l-1.5 1.5-8.995 8.995a.499.499 0 00-.143.268L.012 13.39a.495.495 0 00.135.463.5.5 0 00.462.134l2.482-.496a.495.495 0 00.267-.143l8.995-8.995 1.5-1.5a.5.5 0 000-.708zM12 3.293l.793-.793L11.5 1.207 10.707 2 12 3.293zm-2-.586L1.707 11 3 12.293 11.293 4 10 2.707zM1.137 12.863l.17-.849.679.679-.849.17z"})]})})}};var Eo=t(u(),1),M=t(r(),1),eo=class extends Eo.default.Component{render(){return(0,M.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,M.jsxs)("svg",{width:this.props.size||20,height:this.props.size||20,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,M.jsx)("path",{d:"M11.7879 2.2121C12.0732 2.49737 12.0732 2.96723 11.7879 3.2525L3.2525 11.7879C2.96723 12.0732 2.49737 12.0732 2.2121 11.7879C1.92684 11.5026 1.92684 11.0328 2.2121 10.7475L10.7475 2.2121C11.0328 1.92684 11.5026 1.92684 11.7879 2.2121Z",fill:"currentColor"}),(0,M.jsx)("path",{d:"M2.2121 2.2121C2.49737 1.92684 2.96723 1.92684 3.2525 2.2121L11.7879 10.7475C12.0732 11.0328 12.0732 11.5026 11.7879 11.7879C11.5026 12.0732 11.0328 12.0732 10.7475 11.7879L2.2121 3.2525C1.92684 2.96723 1.92684 2.49737 2.2121 2.2121Z",fill:"currentColor"})]})})}};var _o=t(u(),1),to=t(r(),1),no=class extends _o.default.Component{render(){return(0,to.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,to.jsx)("svg",{width:this.props.size||20,height:this.props.size||20,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,to.jsx)("path",{d:"M1 1.504a.5.5 0 01.5-.5h11a.5.5 0 01.5.5v11a.5.5 0 01-.5.5h-11a.5.5 0 01-.5-.5v-11z",fill:"currentColor"})})})}};var To=t(u(),1),W=t(r(),1),$=class extends To.default.Component{render(){return(0,W.jsx)("div",{slot:"icon",className:"sdppp-icon",children:(0,W.jsxs)("svg",{width:this.props.size||20,height:this.props.size||20,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,W.jsx)("path",{d:"M2.35 10.95L3.05 11.65L11.65 3.05L10.95 2.35L2.35 10.95Z",fill:"currentColor"}),(0,W.jsx)("path",{d:"M7 14C3.13401 14 0 10.866 0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7C14 10.866 10.866 14 7 14ZM7 13C10.3137 13 13 10.3137 13 7C13 3.68629 10.3137 1 7 1C3.68629 1 1 3.68629 1 7C1 10.3137 3.68629 13 7 13Z",fill:"currentColor"})]})})}};var i=t(r(),1),le=()=>{let{workflowAgentSID:o,autoRunning:e}=(0,n.useSDPPPContext)(),{lastError:s,progress:l,executingNodeTitle:a}=(0,n.useAgentState)(o);return(0,i.jsxs)("div",{className:"workflow-run-status",children:[e?(0,i.jsx)("sp-label",{children:c("auto run workflow after change..")}):"",s?(0,i.jsx)("sp-label",{class:"error-label",children:s}):"",a?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("sp-label",{children:`${l}% ${a}...`}),(0,i.jsx)("sp-progressbar",{value:l/100})]}):""]})},ae=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{saveWorkflow:e,reopenWorkflow:s}=(0,n.useSDPPPComfyCaller)(),l=(0,G.useCallback)(async()=>{await e(o)},[e,o]);return(0,i.jsx)("sp-action-button",{onClick:l,children:(0,i.jsx)(V,{})})};var ce=()=>{let{interrupt:o}=(0,n.useSDPPPComfyCaller)(),{clearQueue:e}=(0,n.useSDPPPComfyCaller)(),s=(0,G.useCallback)(async()=>{await e(),await o()},[e,o]);return(0,i.jsx)("sp-action-button",{onClick:s,children:(0,i.jsx)($,{})})},pe=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{reopenWorkflow:e}=(0,n.useSDPPPComfyCaller)(),s=(0,G.useCallback)(()=>{e(o)},[e,o]);return(0,i.jsx)("sp-action-button",{onClick:s,children:(0,i.jsx)(F,{})})};var de=()=>{let{workflowAgentSID:o,autoRunning:e,setAutoRunning:s}=(0,n.useSDPPPContext)();return(0,i.jsx)("sp-action-button",{class:e?.value==o?"highlight":"",onClick:()=>{e?.value==o?s(null):s({type:"page",value:o})},children:(0,i.jsx)(y,{})})},ue=()=>{let{workflowAgentSID:o,webviewAgentSID:e,toggleWebviewDialog:s}=(0,n.useSDPPPContext)(),l=o==e;return(0,i.jsx)("sp-action-button",{...l?{}:{disabled:!0},onClick:()=>{s()},title:l?c("Edit in ComfyUI"):c("disabled when running in browser page"),children:(0,i.jsx)(Q,{})})},fe=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{runPage:e}=(0,n.useSDPPPComfyCaller)();return(0,i.jsx)("sp-action-button",{onClick:()=>{e(o)},children:(0,i.jsx)(b,{})})},me=()=>{let{workflowAgentSID:o}=(0,n.useSDPPPContext)(),{runPage:e}=(0,n.useSDPPPComfyCaller)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"action-button",onClick:()=>{e(o,2)},children:"x2"}),(0,i.jsx)("div",{className:"action-button",onClick:()=>{e(o,5)},children:"x5"}),(0,i.jsx)("div",{className:"action-button",onClick:()=>{e(o,9)},children:"x9"})]})};function Uo({WorkflowEditPhotoshop:o}){let{workflowAgentSID:e}=(0,n.useSDPPPContext)(),{ssid:s,queueSize:l}=(0,n.useAgentState)(e);return(0,G.useMemo)(()=>(0,i.jsxs)("div",{className:"workflow-edit-wrap",children:[(0,i.jsxs)("div",{className:"workflow-edit-top",children:[(0,i.jsx)("sp-label",{children:c("(Page ID: {0})Queue: {1}",s,l)}),(0,i.jsxs)("div",{className:"workflow-edit-controls",children:[(0,i.jsxs)("div",{className:"workflow-edit-controls-left",children:[(0,i.jsxs)("div",{className:"workflow-edit-button-line workflow-edit-button-lineone",children:[(0,i.jsxs)("div",{className:"workflow-edit-button-line-left",children:[(0,i.jsx)(ae,{}),(0,i.jsx)(pe,{})]}),(0,i.jsxs)("div",{className:"workflow-edit-button-line-right",children:[(0,i.jsx)(ce,{}),(0,i.jsx)(de,{})]})]}),(0,i.jsxs)("div",{className:"workflow-edit-button-line workflow-edit-controls-linetwo",children:[(0,i.jsx)(le,{}),(0,i.jsx)(ue,{})]})]}),(0,i.jsx)("div",{className:"workflow-edit-controls-center",children:(0,i.jsx)(fe,{})}),(0,i.jsx)("div",{className:"workflow-edit-controls-right",children:(0,i.jsx)(me,{})})]})]}),(0,i.jsx)("sp-divider",{}),(0,i.jsx)(o,{})]}),[s,l])}var p=t(r(),1);function Ho({connectState:o,AddressBar:e,WorkflowEditPhotoshop:s}){let[l,a]=(0,k.useState)(!1),[C,m]=(0,k.useState)(!1);(0,k.useEffect)(()=>{if(o==="connected"){let io=setTimeout(()=>{m(!0)},8e3);return()=>clearTimeout(io)}else m(!1)},[o]);let{workflowAgentSID:d,webviewAgentSID:S,lastConnectErrorMessage:g}=(0,n.useSDPPPContext)(),x=l?1:0,[D,I]=(0,k.useState)(!1);return(0,k.useEffect)(()=>{d?I(d!=S):D&&a(!1)},[d]),(0,k.useEffect)(()=>{o==="disconnected"&&a(!1)},[o]),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("div",{className:"connect-box",children:[l?(0,p.jsx)("sp-action-button",{onClick:()=>{a(!1)},children:"\u2190"}):(0,p.jsx)("div",{className:"status-bar "+o,children:(0,p.jsx)("div",{className:"status-icon",title:g?.toString()||c(o),children:"\u2B24"})}),(0,p.jsx)(e,{})]}),g?(0,p.jsx)("div",{children:(0,p.jsx)("sp-label",{class:"error-label",children:yo(g)?c(g):g})}):"",(0,p.jsx)(n.Promote,{}),(0,p.jsx)("sp-divider",{size:"small"}),o==="connected"&&(0,p.jsxs)("div",{className:"panel-body",children:[(0,p.jsx)("div",{className:"editor-card",style:x===0?{}:{display:"none"},children:(0,p.jsxs)("div",{className:"comfy-list-wrap",children:[C&&!S&&(0,p.jsx)("sp-label",{class:"error-label",children:c("hidden webview load failed: {0}, please select a browser page to continue",c("timeout"))}),(0,p.jsx)(zo,{}),d&&(0,p.jsx)(No,{setEditorMode:a})]})}),(0,p.jsx)("div",{className:"editor-card",style:l?{}:{display:"none"},children:l&&d&&(0,p.jsx)(Uo,{WorkflowEditPhotoshop:s})})]})]})}var q=t(r(),1);function po(){return(0,q.jsx)(n.SDPPPProvider,{loginAppID:"",children:(0,q.jsx)("div",{className:"container",children:(0,q.jsx)(n.SDPPP,{renderContent:(o,e,s)=>(0,q.jsx)(Ho,{connectState:o,AddressBar:e,WorkflowEditPhotoshop:s})})})})}var Qo=t(Vo(),1),Zo=t(r(),1);globalThis.sdppp=globalThis.sdppp||{};globalThis.sdppp.renderPhotoshopPlugin=o=>{(0,Qo.createRoot)(o).render((0,Zo.jsx)(po,{}))};var $o=[],qo=[],Oo=[];globalThis.sdppp.getLogs=()=>({logs:$o,warningLogs:qo,errorLogs:Oo});globalThis.sdppp.enableLogCapture=()=>{console.log=function(o){return function(...e){o(...e),$o.push(e)}}(console.log),console.warn=function(o){return function(...e){o(...e),qo.push(e)}}(console.warn),console.error=function(o){return function(...e){o(...e),Oo.push(e)}}(console.error)};})(); diff --git a/plugins/photoshop/dist/index.js.map b/plugins/photoshop/dist/index.js.map index 1c19704..4d69b1d 100644 --- a/plugins/photoshop/dist/index.js.map +++ b/plugins/photoshop/dist/index.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["external-global-plugin:SDPPPInternal", "external-global-plugin:react", "external-global-plugin:react/jsx-runtime", "external-global-plugin:react-dom/client", "../../../typescripts/modules/photoshop/src/tsx/SDPPPInternalBridge.tsx", "../../../typescripts/src/common/en.mts", "../../../typescripts/src/common/zh-cn.mts", "../../../typescripts/src/common/i18n.mts", "../../../typescripts/modules/photoshop/src/tsx/ActionButton.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/AgentIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/LivePaintingIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/PlayIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/WebPageListItem.tsx", "../../../typescripts/modules/photoshop/src/tsx/WebPageList.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/EditIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/FolderIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/WorkflowListItem.tsx", "../../../typescripts/modules/photoshop/src/tsx/WorkflowList.tsx", "../../../typescripts/modules/photoshop/src/tsx/Content.tsx", "../../../typescripts/modules/photoshop/src/tsx/WorkflowEditWrap.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/RefreshIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/SaveIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/PlayMultiIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/WebEditIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/CrossIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/StopIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/icons/CancelIcon.tsx", "../../../typescripts/modules/photoshop/src/tsx/Main.tsx", "../../../typescripts/modules/photoshop/src/entry.tsx"], - "sourcesContent": ["module.exports = window.SDPPPInternal", "module.exports = window.React", "module.exports = window.ReactJSXRuntime", "module.exports = window.ReactDOMClient", "export * from \"SDPPPInternal\";", "export default {\n 'SDPPP Get Document': 'SDPPP Get Document',\n 'SDPPP Get Layer By ID': 'SDPPP Get Layer',\n 'SDPPP Get Linked Layers': 'SDPPP Get Linked Layers',\n 'SDPPP Get Layers In Group': 'SDPPP Get Layers In Group',\n 'SDPPP Get Text From Layer': 'SDPPP Get Text From Layer',\n 'SDPPP Parse Layer Info': 'SDPPP Parse Layer Info',\n 'SDPPP Get Selection': 'SDPPP Get Selection', \n 'SDPPP Get Image From Photoshop': 'SDPPP Get Image From Photoshop',\n 'SDPPP Send Images To Photoshop': 'SDPPP Send Images To Photoshop',\n 'SDPPP Settings': 'SDPPP Settings/Misc',\n}", "export default {\n // speicial document/ layer\n '### Active Document ###': '### \u5F53\u524D\u6587\u6863 ###',\n '### The Canvas ###': '### \u6574\u4E2A\u753B\u5E03 ###',\n '### New Layer ###': '### \u65B0\u56FE\u5C42 ###',\n '### Selected Layer ###': '### \u6240\u9009\u56FE\u5C42 ###',\n '### Keep Size or Fit Canvas ###': '### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###',\n '_SDPPP_PSD_': '_SDPPP_PSD_',\n\n // A1111 UI\n 'Save and run immediately': '\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C',\n 'Close': '\u5173\u95ED',\n 'Select a {0}': `\u9009\u62E9\u4E00\u4E2A {0}`,\n\n // comfyui dialog\n 'How to use .ccx file': '\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6',\n '1. If you have installed Adobe Creative Cloud': '1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud', \n 'Just double click the .ccx file, it will install the plugin automatically': '\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5',\n \"2. If you don't have Adobe Creative Cloud\": '2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud',\n 'Rename .ccx to .zip and extract it into ': '\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230',\n 'or': '\u6216',\n 'Photoshop directory': 'Photoshop \u5B89\u88C5\u76EE\u5F55',\n\n // comfyui error\n 'Cannot connect multiple different document widgets with same value': '\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6',\n 'You can only have one SDPPP Settings node in a workflow': '\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9',\n 'convert widget {0} failed:': '\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A',\n 'hidden webview load failed: {0}, please select a browser page to continue': '\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED',\n \n // comfy node title\n 'SDPPP Get Document': 'SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)',\n 'SDPPP Get Layer By ID': 'SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)',\n 'SDPPP Get Linked Layers': 'SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)',\n 'SDPPP Get Layers In Group': 'SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)',\n 'SDPPP Get Text From Layer': 'SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)',\n 'SDPPP Parse Layer Info': 'SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)',\n 'SDPPP Get Selection': 'SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)', \n 'SDPPP Get Image From Photoshop': 'SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)',\n 'SDPPP Send Images To Photoshop': 'SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)',\n 'SDPPP Send Text To Layer': 'SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)',\n 'SDPPP Run Photoshop Action': 'SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)',\n\n// comfy widget/input\n 'download PS plugin (.ccx)': '\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)',\n 'current ComfyUI pageid: {0}': '\u5F53\u524D ComfyUI \u9875\u9762ID: {0}',\n 'current A1111 pageid: {0}': '\u5F53\u524D A1111 \u9875\u9762ID: {0}',\n 'document linked': '\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5',\n 'layer linked': '\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5',\n 'bound linked': '\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5',\n 'document': '\u6587\u6863', \n 'Document': '\u6587\u6863', \n 'DOCUMENT': '\u6587\u6863', \n 'document_name': '\u6587\u6863\u540D\u5B57id',\n 'layer_nameid': '\u56FE\u5C42\u540D\u5B57id',\n 'layer_name': '\u56FE\u5C42\u540D\u5B57',\n 'layer_info': '\u56FE\u5C42\u4FE1\u606F',\n 'bound_top': '\u8303\u56F4\u4E0A\u8FB9\u8DDD',\n 'bound_left': '\u8303\u56F4\u5DE6\u8FB9\u8DDD',\n 'bound_width': '\u8303\u56F4\u5BBD\u5EA6',\n 'bound_height': '\u8303\u56F4\u9AD8\u5EA6',\n 'center_x': '\u4E2D\u5FC3\u70B9x',\n 'center_y': '\u4E2D\u5FC3\u70B9y',\n 'opacity': '\u900F\u660E\u5EA6',\n 'layer': '\u56FE\u5C42',\n 'layer_or_group': '\u56FE\u5C42(\u6216\u7EC4)',\n 'Layer_or_group': '\u56FE\u5C42(\u6216\u7EC4)',\n 'bound': '\u8303\u56F4',\n 'bounds': '\u8303\u56F4',\n 'bounds [optional]': '\u8303\u56F4[\u53EF\u9009]',\n 'boundary': '\u8303\u56F4',\n 'Boundary': '\u8303\u56F4',\n 'canvas_boundary': '\u753B\u5E03\u8303\u56F4',\n 'canvas_bound': '\u753B\u5E03\u8303\u56F4',\n 'layer_boundary': '\u56FE\u5C42\u8303\u56F4',\n 'layer_bound': '\u56FE\u5C42\u8303\u56F4',\n \"Photoshop Disconnected!\" : \"Photoshop \u672A\u8FDE\u63A5\uFF01\",\n 'rgb_out': 'RGB\u8F93\u51FA',\n 'alpha_out': 'Alpha\u8F93\u51FA',\n 'images': '\u56FE\u50CF',\n 'text': '\u6587\u672C',\n 'ID_mode': '\u7CBE\u786EID\u6A21\u5F0F',\n 'name_mode': '\u540D\u5B57\u5339\u914D\u6A21\u5F0F',\n 'select': '\u9009\u62E9',\n 'document boundary': '\u6587\u6863\u8303\u56F4',\n 'layer boundary': '\u56FE\u5C42\u8303\u56F4',\n 'selection boundary': '\u9009\u4E2D\u8303\u56F4',\n 'save .psd to this workflow': '\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41',\n 'extract saved .psd to Photoshop': '\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop',\n 'sample .psd': '\u793A\u4F8B.psd',\n 'mask': '\u906E\u7F69',\n 'name': '\u540D\u79F0',\n 'quality': '\u56FE\u50CF\u8D28\u91CF',\n \n // photoshop UI\n 'timeout': '\u8D85\u65F6',\n '--multi-user activated, Not Login!': '--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01',\n 'Logout': '\u767B\u51FA',\n 'User: ': '\u7528\u6237: ',\n 'connect': '\u8FDE\u63A5',\n 'connected': '\u5DF2\u8FDE\u63A5',\n 'disconnect': '\u65AD\u5F00',\n 'disconnected': '\u5DF2\u65AD\u5F00\u8FDE\u63A5',\n 'reconnecting...': '\u91CD\u8FDE\u4E2D...', \n 'connecting': '\u8FDE\u63A5\u4E2D', \n 'webpages': '\u7F51\u9875\u5217\u8868',\n 'workflows': '\u5DE5\u4F5C\u6D41',\n 'workflow': '\u5DE5\u4F5C\u6D41',\n 'auto run page [{0}] after change..': '\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..',\n 'auto run workflow [{0}] after change..': '\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..',\n 'auto run workflow after change..': '\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..',\n 'selection_only': '\u4EC5\u9009\u533A',\n 'Queue:': '\u961F\u5217:',\n 'Set As:': '\u8BBE\u7F6E\u4E3A:',\n 'Error {0}... please contact me via Discord/Github': '\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211',\n 'Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System': 'Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF',\n 'Workflow List of ComfyUI with --multi-user is only available for sponsors': '\u5E26\"--multi-user\"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',\n '(Page ID: {0})Queue: {1}': '(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}',\n 'no suitable node to control in this workflow': '\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9',\n \"Save\": \"\u4FDD\u5B58\",\n \"Edit\": \"\u7F16\u8F91\",\n \"Edit in ComfyUI\": \"\u5728 ComfyUI \u4E2D\u7F16\u8F91\",\n \"using browser page [{0}] for workflow running\": '\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41',\n 'workflow running by hidden webview': '\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C',\n 'Lock Image': '\u9501\u5B9A\u56FE\u50CF',\n 'Unlock Image': '\u89E3\u9501\u56FE\u50CF',\n 'search...': '\u641C\u7D22...',\n 'disabled when running in browser page': '\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528',\n 'only supported in Photoshop': '\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301',\n 'Login': '\u767B\u5F55',\n 'Invitation Code': '\u9080\u8BF7\u7801',\n 'Username': '\u7528\u6237\u540D',\n 'Password': '\u5BC6\u7801',\n 'Please input invitation code': '\u8BF7\u8F93\u5165\u9080\u8BF7\u7801',\n 'Please input username': '\u8BF7\u8F93\u5165\u7528\u6237\u540D',\n 'Please input password': '\u8BF7\u8F93\u5165\u5BC6\u7801',\n\n // photoshop connect error\n '502: Maybe the server is not running': '502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C',\n '404: Maybe SDPPP is not installed or failed to run in ComfyUI': '404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25',\n '{0}. reconnecting...': '{0}. \u91CD\u8FDE\u4E2D...',\n 'disconnected to {0} failed {1}': `\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}`,\n 'version mismatch, please reinstall PS plugin': '\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6',\n 'instance type not recognized': '\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B',\n 'Error: {0}': '\u9519\u8BEF: {0}',\n 'Verification Error': '\u9A8C\u8BC1\u9519\u8BEF',\n\n // photoshop event error\n 'document {0} not found': '\u627E\u4E0D\u5230\u6587\u6863: {0}',\n 'only layer kind \"TEXT\" is supported, invalid layer: {0}': '\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}',\n 'create layer failed': '\u521B\u5EFA\u56FE\u5C42\u5931\u8D25',\n 'layer not found {0}': '\u627E\u4E0D\u5230\u56FE\u5C42: {0}',\n 'no linked layer for {0}': '\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}',\n 'layer {0} is not a group': '\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4',\n 'no layer in group {0}': '\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42',\n 'layer not found: {0}': '\u627E\u4E0D\u5230\u56FE\u5C42: {0}',\n 'No upload_name': '\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25',\n 'get pixel of {0} failed': '\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}',\n 'merge group failed': '\u5408\u5E76\u7EC4\u5931\u8D25',\n 'invalid name: {0}': '\u975E\u6CD5\u7684\u540D\u79F0: {0}',\n 'get_layer_info: layer_identify required': 'get_layer_info: \u9700\u8981 layer_identify',\n 'invalid action: {0}': '\u65E0\u6548\u7684\u64CD\u4F5C: {0}',\n 'create document failed': '\u521B\u5EFA\u6587\u6863\u5931\u8D25',\n 'create document for preview': '\u521B\u5EFA\u9884\u89C8\u6587\u6863',\n 'resize document for preview': '\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8',\n 'no first related layer in {0}': '\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42',\n \"imageDataError: data length is not multiple of width * height\": \"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570\",\n \"imageDataError: originComponents must be 1 or 3\": \"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3\",\n 'unexpected connection lost, please try to reconnect': '\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5',\n \"Workflow list is empty, please save a workflow by Comfy's lastest UI\": '\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41',\n 'No opened ComfyUI pages': '\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762',\n 'comfyAPI is not initialized, maybe comfyUI is too old': '\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7',\n 'unsupported channel counts: {0}': '\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}',\n 'Timeout, Maybe the URL is wrong': '\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF',\n 'Workflow list loading failed: {0}': '\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}',\n 'Please register a user in ComfyUI': '\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237',\n 'GetSelection need Photoshop version 25+': 'GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C',\n 'Action {0} not found': 'Action {0} \u672A\u627E\u5230',\n 'Action set {0} not found': 'ActionSet {0} \u672A\u627E\u5230',\n\n // photoshop modal state\n 'create document for sent images': '\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863',\n 'show sent images': '\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247',\n 'fallback show sent images': '\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247',\n \"get content of layer {0}\": \"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9\",\n 'fallback get content of layer {0}': '\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9',\n 'get layer info': '\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F',\n 'sdppp extract PSD': 'sdppp \u5BFC\u5165 PSD',\n 'sdppp get PSD': 'sdppp \u83B7\u53D6 PSD', \n 'set text to layer': '\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C',\n 'sdppp Run Photoshop Action': 'sdppp \u8FD0\u884C Photoshop Action',\n \n // photoshop dialog/widget\n '{0} wants to extract a PSD file to Photoshop, are you sure?': '{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F',\n 'should sdppp refuse extracting PSD to Photoshop in this session anymore?': '\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F',\n 'Wide Mode': '\u5BBD\u5C4F\u6A21\u5F0F',\n 'Quick Set': '\u5FEB\u901F\u8BBE\u7F6E',\n 'Selected Layer': '\u9009\u4E2D\u56FE\u5C42',\n 'Selected Layer (invert)': '\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)',\n 'Canvas': '\u753B\u5E03',\n 'Selection': '\u9009\u533A',\n 'Manual': '\u624B\u52A8\u6A21\u5F0F',\n 'Auto': '\u81EA\u52A8\u6A21\u5F0F',\n\n // about\n 'This plugin is based on sd-ppp': '\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1',\n 'And follows its open source license:': '\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A',\n \"Cloud\": \"\u4E91\u7AEF\",\n \"Sponsors\": \"\u8D5E\u52A9\",\n \"waiting...\": '\u865A\u4F4D\u4EE5\u5F85',\n 'Links': '\u53CB\u60C5\u94FE\u63A5',\n 'Community': '\u793E\u533A',\n 'LICENSE:': '\u8BB8\u53EF\u8BC1\uFF1A',\n\n // comfy popup\n \"upload\": \"\u4E0A\u4F20\",\n \"Simplify Workflow\": \"\u7B80\u5316\u5DE5\u4F5C\u6D41\",\n \"Photoshop\": \"Photoshop\",\n \"Photoshop plugin settings\": \"Photoshop \u63D2\u4EF6\u8BBE\u7F6E\",\n \"Photoshop plugin\": \"Photoshop \u63D2\u4EF6\",\n \"SDPPP Settings/Misc\": \"SDPPP \u8BBE\u7F6E/\u6742\u9879\",\n \"Sample .PSD for this workflow:\": \"\u793A\u4F8B.PSD\",\n \"Download Example .PSD\": \"\u4E0B\u8F7D\u793A\u4F8B.PSD\",\n \"Maximum Image Size (px):\": \"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)\",\n \"Download\": \"\u4E0B\u8F7D\",\n \"Upload\": \"\u4E0A\u4F20\",\n \"Reset\": \"\u91CD\u7F6E\",\n 'Refresh': '\u5237\u65B0',\n 'Comfy URL (You can copy it to connect ComfyUI in the plugin):': 'Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):',\n 'use slider for number widget:': '\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757',\n 'Photoshop is not connected': 'Photoshop \u672A\u8FDE\u63A5',\n 'select...': '\u8BF7\u9009\u62E9',\n 'click to edit': '\u70B9\u51FB\u7F16\u8F91',\n\n // comfy call error\n 'ComfyManager not found, cannot reboot': 'Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F',\n 'Failed to reboot ComfyUI': '\u91CD\u542FComfyUI\u5931\u8D25',\n}\n", "import en from './en.mjs';\nimport zhcn from './zh-cn.mjs';\n//@ts-ignore\nconst require_ = typeof require != 'undefined' ? require : undefined\n\nlet locale = 'en'\nif (typeof navigator !== 'undefined' && navigator.language) {\n locale = navigator.language == \"zh-CN\" ? 'zhcn' : 'en'\n} else if (require_) {\n locale = require_('uxp').host.uiLocale.startsWith(\"zh\") ? 'zhcn' : 'en';\n}\n\nexport type I18nKey = keyof typeof zhcn;\n\nexport default function i18n(key: keyof typeof zhcn, ...args: any[]) {\n const formatStr: string = locale == 'zhcn' ? zhcn[key] : (key in en ? (en as any)[key] : key);\n if (!formatStr) throw new Error(`i18n key not found: ${key}`);\n\n return formatStr.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != 'undefined' ? args[number] : match\n });\n}\n\nexport function isValidI18nKey(key: string) {\n return key in zhcn;\n}\n\nexport function isI18nOf(key: keyof typeof zhcn, str: string) {\n return key == str || zhcn[key] == str;\n}\n\nexport function getI18nLocale() {\n return locale;\n}\n", "import React from \"react\";\n\nexport default class ActionButton extends React.Component<{\n onClick?: (...args: any[]) => any\n highlight?: boolean\n children?: React.ReactNode\n}> {\n render() {\n return (\n

\n {this.props.children}\n
\n )\n }\n}\n", "import React from \"react\";\n\nexport default class AgentIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
\n \n \n \n
\n )\n }\n}", "import React from \"react\";\n\nexport default class LivePaintingIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
\n \n \n \n \n
\n )\n }\n}", "import React from \"react\";\n\nexport default class PlayIcon extends React.Component<{\n size?: number\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
\n \n \n \n
\n )\n }\n}\n", "import React from \"react\";\nimport ActionButton from \"./ActionButton\";\nimport AgentIcon from \"./icons/AgentIcon\";\nimport LivePaintingIcon from \"./icons/LivePaintingIcon\";\nimport PlayIcon from \"./icons/PlayIcon\";\nimport { useSDPPPContext, useSDPPPComfyCaller, SDPPPWebpageInstance } from \"./SDPPPInternalBridge\";\n\ninterface WebPageListItemProps {\n pageInstance: SDPPPWebpageInstance\n}\n\nconst WebPageListItem: React.FC = ({\n pageInstance\n}) => {\n const {\n autoRunning,\n setAutoRunning,\n workflowAgentSID,\n setWorkflowAgentSID,\n } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n const isWorkflowAgent = workflowAgentSID == pageInstance.sid;\n const isAutoRunning = autoRunning?.value == pageInstance.sid;\n\n return (\n
  • \n {\n setWorkflowAgentSID(isWorkflowAgent ? '' : pageInstance.sid)\n }}>\n
    [{pageInstance.ssid}] {pageInstance.lastError ? pageInstance.lastError?.replace('sdppp PS side error:', '') : pageInstance.title}
    \n
    \n
    \n
    \n {\n setWorkflowAgentSID(isWorkflowAgent ? '' : pageInstance.sid)\n }} />\n
    \n {\n setAutoRunning(isAutoRunning ? null : { type: 'page', value: pageInstance.sid })\n }}>\n \n \n { runPage(pageInstance.sid) }}>\n \n \n
    \n
  • \n );\n}\n\nexport default WebPageListItem;\n", "import React from \"react\";\nimport i18n from \"../../../../src/common/i18n.mjs\";\nimport WebPageListItem from \"./WebPageListItem\";\nimport { useSDPPPContext, useSDPPPWebpageList } from \"./SDPPPInternalBridge\";\n\nconst WebPageList: React.FC = () => {\n const {\n autoRunning\n } = useSDPPPContext();\n\n const { pageInstances } = useSDPPPWebpageList();\n\n return (\n <>\n
    \n

    {i18n('webpages')}

    \n
    \n {\n !pageInstances.length && {i18n(\"No opened ComfyUI pages\")}\n }\n
      \n {\n pageInstances.map((item) => {\n return (\n \n )\n })\n }\n
    \n {autoRunning?.type == 'page' ? {\n i18n(`auto run page [{0}] after change..`, pageInstances.find(item => item.sid == autoRunning?.value)?.title)\n } : ''}\n \n );\n};\n\nexport default WebPageList;\n", "import React from \"react\";\n\nexport default class EditIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class FolderIcon extends React.Component<{\n size?: number\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\nimport ActionButton from \"./ActionButton.js\";\nimport EditIcon from \"./icons/EditIcon.js\";\nimport FolderIcon from \"./icons/FolderIcon.js\";\nimport LivePaintingIcon from \"./icons/LivePaintingIcon.js\";\nimport PlayIcon from \"./icons/PlayIcon.js\";\nimport { useSDPPPContext, useSDPPPComfyCaller } from \"./SDPPPInternalBridge.js\";\n\ninterface WorkflowListItemProps {\n path: string\n isDir: boolean\n isChecked: boolean\n workflow?: {\n path: string\n error: string\n }\n\n onRun: (path: string) => Promise,\n dirname?: string,\n onDirectorySet?: (path: string) => void,\n setEditorMode: (editorMode: boolean) => void\n}\n\nconst WorkflowListItem: React.FC = ({\n path,\n isDir,\n isChecked,\n workflow,\n onRun,\n dirname,\n onDirectorySet,\n setEditorMode\n}) => {\n const {\n setAutoRunning,\n workflowAgentSID\n } = useSDPPPContext();\n const {\n openWorkflow\n } = useSDPPPComfyCaller();\n\n if (isDir) {\n return (\n
  • \n {\n if (path == '../') {\n const directoryWithoutSuffix = dirname || ''\n const lastSlashIndex = directoryWithoutSuffix.lastIndexOf('/')\n if (lastSlashIndex == -1) {\n onDirectorySet?.('')\n } else {\n onDirectorySet?.(directoryWithoutSuffix.slice(0, lastSlashIndex))\n }\n } else {\n onDirectorySet?.(path)\n }\n }}>\n \n
    {path}
    \n
    \n
  • \n );\n }\n\n if (!workflow) return null;\n\n return (\n
  • \n {\n setEditorMode(true)\n openWorkflow(workflowAgentSID, workflow.path)\n }}>\n
    \n {workflow.error ? workflow.error.replace('sdppp PS side error:', '') : workflow.path}\n
    \n
    \n
    \n
    \n {\n setEditorMode(true)\n openWorkflow(workflowAgentSID, workflow.path)\n }} />\n
    \n {\n if (!isChecked) {\n setAutoRunning({ type: 'workflow', value: path })\n } else {\n setAutoRunning(null)\n }\n }}>\n \n \n { onRun(workflow.path) }}>\n \n \n
    \n
  • \n );\n}\n\nexport default WorkflowListItem;\n", "import React from \"react\";\nimport i18n from \"../../../../src/common/i18n.mjs\";\nimport WorkflowListItem from \"./WorkflowListItem.js\";\nimport {\n useSDPPPComfyCaller, useAgentState,\n useSDPPPContext, useSDPPPWorkflowList\n} from \"./SDPPPInternalBridge.js\";\n\ninterface WorkflowListProps {\n setEditorMode: (editorMode: boolean) => void\n}\n\nconst WorkflowList: React.FC = ({ setEditorMode }) => {\n const {\n autoRunning,\n webviewAgentSID,\n workflowAgentSID,\n } = useSDPPPContext();\n\n const {\n runWorkflow,\n } = useSDPPPComfyCaller();\n\n const {\n workflows,\n workflowsError,\n currentViewingDirectory,\n setCurrentViewingDirectory,\n showingList\n } = useSDPPPWorkflowList();\n\n const {\n ssid,\n lastError,\n progress,\n executingNodeTitle,\n queueSize,\n } = useAgentState(workflowAgentSID);\n\n let statusText = '';\n let queueText = ' ';\n let hasLastError = false;\n if (workflowAgentSID) {\n if (lastError) {\n statusText += i18n('Error: {0}', lastError);\n hasLastError = true;\n } else if (progress) {\n statusText += `(${progress}% - ${executingNodeTitle}...)`;\n } else if (workflowAgentSID) {\n if (workflowAgentSID == webviewAgentSID) {\n statusText += i18n('workflow running by hidden webview');\n } else {\n statusText += i18n('using browser page [{0}] for workflow running', ssid);\n }\n }\n queueText += `(${i18n('Queue:')} ${queueSize})`;\n }\n\n let listReplacer = null;\n if (workflowsError)\n listReplacer = {workflowsError}\n\n return (\n <>\n
    \n

    {i18n('workflows')}{queueText}

    \n {statusText}\n
    \n {listReplacer ||\n
      \n {\n currentViewingDirectory ?\n { }}\n dirname={currentViewingDirectory.slice(0, -1)}\n onDirectorySet={(dirname) => {\n setCurrentViewingDirectory(dirname)\n }}\n />\n : ''\n }\n {\n showingList.map((item: { path: string, isDir: boolean }) => {\n const path = item.path;\n const workflow = workflows[path]\n const checked = autoRunning?.value == path;\n if (item.isDir) {\n return (\n {\n await runWorkflow(path);\n }}\n dirname={currentViewingDirectory.slice(0, -1)}\n onDirectorySet={(dirname) => {\n setCurrentViewingDirectory(dirname)\n }}\n />\n )\n }\n return (\n {\n await runWorkflow(path);\n }}\n />\n )\n })\n }\n
    \n }\n {autoRunning?.type == 'workflow' ? {i18n(`auto run workflow [{0}] after change..`, workflows[autoRunning?.value]?.path)} : ''}\n \n );\n};\n\nexport default WorkflowList;", "import { useSDPPPContext, Promote } from \"./SDPPPInternalBridge.js\";\nimport i18n, { isValidI18nKey } from \"../../../../src/common/i18n.mjs\";\nimport WebPageList from \"./WebPageList.js\";\nimport WorkflowList from \"./WorkflowList.js\";\nimport { useEffect, useState } from \"react\";\nimport { WorkflowEditWrap } from \"./WorkflowEditWrap.js\";\nimport type { AddressBarType, WorkflowEditPhotoshopType } from \"./SDPPPInternalBridge.js\";\n\nexport function Content({\n connectState,\n AddressBar,\n WorkflowEditPhotoshop,\n}: {\n connectState: 'connected' | 'disconnected' | 'connecting',\n AddressBar: AddressBarType,\n WorkflowEditPhotoshop: WorkflowEditPhotoshopType,\n}) {\n const [editorMode, setEditorMode] = useState(false);\n const [initAfter8s, setInitAfter8s] = useState(false);\n useEffect(() => {\n if (connectState === 'connected') {\n const timeout = setTimeout(() => {\n setInitAfter8s(true);\n }, 8000);\n return () => clearTimeout(timeout);\n } else {\n setInitAfter8s(false);\n }\n }, [connectState]);\n\n const {\n workflowAgentSID,\n webviewAgentSID,\n lastConnectErrorMessage,\n\n } = useSDPPPContext();\n\n const editorCardShowingIndex = editorMode ? 1 : 0;\n\n const [prevIsNotWebview, setPrevIsNotWebview] = useState(false);\n\n // when disconnect and the agent is not webview, set editor mode to false\n useEffect(() => {\n if (workflowAgentSID) {\n setPrevIsNotWebview(workflowAgentSID != webviewAgentSID);\n } else {\n if (prevIsNotWebview) {\n setEditorMode(false);\n }\n }\n }, [workflowAgentSID]);\n useEffect(() => {\n if (connectState === 'disconnected') {\n setEditorMode(false);\n }\n }, [connectState]);\n return (\n <>\n
    \n {\n !editorMode ?\n
    \n
    \u2B24
    \n
    \n :\n {\n setEditorMode(false);\n }}\n >\u2190\n }\n \n
    \n {\n lastConnectErrorMessage ? (\n
    \n \n {isValidI18nKey(lastConnectErrorMessage) ? i18n(lastConnectErrorMessage as any) : lastConnectErrorMessage}\n \n
    \n ) : ''\n }\n\n \n\n \n\n {\n connectState === \"connected\" &&\n
    \n
    \n
    \n {initAfter8s && !webviewAgentSID && {i18n('hidden webview load failed: {0}, please select a browser page to continue', i18n('timeout'))}}\n \n {workflowAgentSID && }\n
    \n
    \n
    \n {editorMode && workflowAgentSID && }\n
    \n
    \n }\n \n );\n}\n\n\n", "import { useCallback, useMemo } from \"react\"\nimport i18n from \"../../../../src/common/i18n.mjs\"\nimport LivePaintingIcon from \"./icons/LivePaintingIcon\"\nimport PlayIcon from \"./icons/PlayIcon\"\nimport {\n useSDPPPComfyCaller,\n useSDPPPContext,\n useAgentState,\n} from \"./SDPPPInternalBridge\"\nimport RefreshIcon from \"./icons/RefreshIcon\"\nimport SaveIcon from \"./icons/SaveIcon\"\nimport PlayMultiIcon from \"./icons/PlayMultiIcon\"\nimport WebEditIcon from \"./icons/WebEditIcon\"\nimport CrossIcon from \"./icons/CrossIcon\"\nimport StopIcon from \"./icons/StopIcon\"\nimport CancelIcon from \"./icons/CancelIcon\"\nimport { action } from \"photoshop\";\n\n// \u72B6\u6001\u663E\u793A\u7EC4\u4EF6\nconst WorkflowStatus = () => {\n const { workflowAgentSID, autoRunning } = useSDPPPContext();\n const { lastError, progress, executingNodeTitle } = useAgentState(workflowAgentSID);\n\n return (\n
    \n {autoRunning ? {i18n('auto run workflow after change..')} : ''}\n {lastError ? {lastError} : ''}\n {executingNodeTitle ? <>\n {`${progress}% ${executingNodeTitle}...`}\n \n : ''}\n
    \n );\n};\n\n// \u4FDD\u5B58\u548C\u5237\u65B0\u6309\u94AE\u7EC4\nconst SaveButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { saveWorkflow, reopenWorkflow } = useSDPPPComfyCaller();\n\n const onSave = useCallback(async () => {\n await saveWorkflow(workflowAgentSID);\n }, [saveWorkflow, workflowAgentSID]);\n\n return (\n \n \n \n );\n};\nconst ClearButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { clearQueue } = useSDPPPComfyCaller();\n const onClear = useCallback(() => {\n clearQueue();\n }, [clearQueue]);\n\n return \n \n \n}\n\nconst RebootButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { reboot } = useSDPPPComfyCaller();\n const onReboot = useCallback(() => {\n reboot();\n }, [reboot]);\n\n return \u91CD\u542F\n}\n\nconst StopButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { interrupt } = useSDPPPComfyCaller();\n const onInterrupt = useCallback(() => {\n interrupt();\n }, [interrupt]);\n\n return \n \n \n}\nconst StopAndCancelButton = () => {\n const { interrupt } = useSDPPPComfyCaller();\n const { clearQueue } = useSDPPPComfyCaller();\n const onClearAndInterrupt = useCallback(async () => {\n await clearQueue();\n await interrupt();\n }, [clearQueue, interrupt]);\n\n return \n \n \n}\n\nconst RefreshButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { reopenWorkflow } = useSDPPPComfyCaller();\n const onReopen = useCallback(() => {\n reopenWorkflow(workflowAgentSID);\n }, [reopenWorkflow, workflowAgentSID]);\n\n return \n \n \n}\n\nconst PlayMultiButtons = () => {\n const { workflowAgentSID, autoRunning } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n return <>\n {!autoRunning ? { runPage(workflowAgentSID, 10) }}>\n \n : ''}\n {!autoRunning ? { runPage(workflowAgentSID, 3) }}>\n \n : ''}\n \n}\n\n// \u81EA\u52A8\u8FD0\u884C\u6309\u94AE\nconst AutoRunButtons = () => {\n const { workflowAgentSID, autoRunning, setAutoRunning } = useSDPPPContext();\n\n return (\n {\n if (autoRunning?.value == workflowAgentSID) {\n setAutoRunning(null);\n } else {\n setAutoRunning({\n type: 'page',\n value: workflowAgentSID\n });\n }\n }}>\n \n \n );\n};\n\n// \u7F16\u8F91\u6309\u94AE\nconst EditButton = () => {\n const { workflowAgentSID, webviewAgentSID, toggleWebviewDialog } = useSDPPPContext();\n const usingWebview = workflowAgentSID == webviewAgentSID;\n\n return (\n { toggleWebviewDialog() }}\n title={!usingWebview ? i18n('disabled when running in browser page') : i18n('Edit in ComfyUI')}\n >\n \n \n );\n};\n\n// \u8FD0\u884C\u6309\u94AE\nconst RunButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n return (\n { \n runPage(workflowAgentSID);\n }}>\n \n \n );\n};\nconst RunMultiButtons = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n return (\n <>\n
    { runPage(workflowAgentSID, 2) }}>x2
    \n
    { runPage(workflowAgentSID, 5) }}>x5
    \n
    { runPage(workflowAgentSID, 9) }}>x9
    \n \n )\n}\n\n// const TestButtons = () => {\n// const { interrupt, clearQueue, reboot } = useSDPPPComfyCaller();\n\n// return (\n// { reboot() }}>\n// \n// \n// )\n// }\n\nexport function WorkflowEditWrap({\n WorkflowEditPhotoshop\n}: {\n WorkflowEditPhotoshop: any,\n}) {\n const { workflowAgentSID } = useSDPPPContext();\n const { ssid, queueSize } = useAgentState(workflowAgentSID);\n\n return useMemo(() => {\n return (\n
    \n
    \n {i18n('(Page ID: {0})Queue: {1}', ssid, queueSize)}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n {/* */}\n
    \n
    \n
    \n \n {/* */}\n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n );\n }, [ssid, queueSize]);\n}\n", "import React from \"react\";\n\nexport default class RefreshIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class SaveIcon extends React.Component {\n render() {\n return (\n
    \n \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class PlayMultiIcon extends React.Component<{ count: number }> {\n render() {\n return (\n
    \n \n \n \n {this.props.count}\n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class WebEditIcon extends React.Component {\n render() {\n return (\n
    \n \n \n\n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class CrossIcon extends React.Component<{\n size?: number,\n hollowStyle?: boolean\n}> {\n render() {\n return (\n
    \n \n \n \n \n
    \n )\n }\n}", "import React from \"react\";\n\nexport default class StopIcon extends React.Component<{\n size?: number,\n hollowStyle?: boolean\n}> {\n render() {\n return (\n
    \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class CancelIcon extends React.Component<{\n size?: number,\n}> {\n render() {\n return (\n
    \n \n {/* Single diagonal line from bottom-left to top-right */}\n \n \n {/* Circle outline */}\n \n \n
    \n )\n }\n}", "import { Content } from \"./Content.js\";\nimport { SDPPP, SDPPPProvider } from \"./SDPPPInternalBridge.js\";\n\nexport default function Main() {\n return (\n \n
    \n {\n return (\n \n )\n }}\n />\n
    \n
    \n )\n}", "import Main from \"./tsx/Main.js\";\nimport { createRoot } from \"react-dom/client\";\n\ndeclare const globalThis: any;\nglobalThis.sdppp = globalThis.sdppp || {};\nglobalThis.sdppp.renderPhotoshopPlugin = (rootElement: HTMLElement) => {\n createRoot(rootElement).render(
    );\n}\n\nconst logs: any[] = [];\nconst warningLogs: any[] = [];\nconst errorLogs: any[] = [];\nglobalThis.sdppp.getLogs = () => {\n return {\n logs,\n warningLogs,\n errorLogs\n }\n}\nglobalThis.sdppp.enableLogCapture = () => {\n console.log = (function(log) {\n return function(...args: any[]) {\n log(...args);\n logs.push(args);\n }\n })(console.log);\n\n console.warn = (function(log) {\n return function(...args: any[]) {\n log(...args);\n warningLogs.push(args);\n }\n })(console.warn);\n\n console.error = (function(log) {\n return function(...args: any[]) {\n log(...args);\n errorLogs.push(args);\n }\n })(console.error);\n}"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,aAAO,UAAU,OAAO;AAAA;AAAA;;;ACAxB;AAAA;AAAA;AAAA,aAAO,UAAU,OAAO;AAAA;AAAA;;;ACAxB;AAAA;AAAA;AAAA,aAAO,UAAU,OAAO;AAAA;AAAA;;;ACAxB;AAAA;AAAA;AAAA,aAAO,UAAU,OAAO;AAAA;AAAA;;;ACAxB;AAAA,0CAAc;;;ACAd,MAAO,aAAQ;AAAA,IACX,sBAAsB;AAAA,IACtB,yBAAyB;AAAA,IACzB,2BAA2B;AAAA,IAC3B,6BAA6B;AAAA,IAC7B,6BAA6B;AAAA,IAC7B,0BAA0B;AAAA,IAC1B,uBAAuB;AAAA,IACvB,kCAAkC;AAAA,IAClC,kCAAkC;AAAA,IAClC,kBAAkB;AAAA,EACtB;;;ACXA,MAAO,gBAAQ;AAAA;AAAA,IAEX,2BAA2B;AAAA,IAC3B,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,0BAA0B;AAAA,IAC1B,mCAAmC;AAAA,IACnC,eAAe;AAAA;AAAA,IAGf,4BAA4B;AAAA,IAC5B,SAAS;AAAA,IACT,gBAAgB;AAAA;AAAA,IAGhB,wBAAwB;AAAA,IACxB,iDAAiD;AAAA,IACjD,6EAA6E;AAAA,IAC7E,6CAA6C;AAAA,IAC7C,4CAA4C;AAAA,IAC5C,MAAM;AAAA,IACN,uBAAuB;AAAA;AAAA,IAGvB,sEAAsE;AAAA,IACtE,2DAA2D;AAAA,IAC3D,8BAA8B;AAAA,IAC9B,6EAA6E;AAAA;AAAA,IAG7E,sBAAsB;AAAA,IACtB,yBAAyB;AAAA,IACzB,2BAA2B;AAAA,IAC3B,6BAA6B;AAAA,IAC7B,6BAA6B;AAAA,IAC7B,0BAA0B;AAAA,IAC1B,uBAAuB;AAAA,IACvB,kCAAkC;AAAA,IAClC,kCAAkC;AAAA,IAClC,4BAA4B;AAAA,IAC5B,8BAA8B;AAAA;AAAA,IAG9B,6BAA6B;AAAA,IAC7B,+BAA+B;AAAA,IAC/B,6BAA6B;AAAA,IAC7B,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,aAAa;AAAA,IACb,cAAc;AAAA,IACd,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,2BAA4B;AAAA,IAC5B,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,8BAA8B;AAAA,IAC9B,mCAAmC;AAAA,IACnC,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA;AAAA,IAGX,WAAW;AAAA,IACX,sCAAsC;AAAA,IACtC,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,IACX,aAAa;AAAA,IACb,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,sCAAsC;AAAA,IACtC,0CAA0C;AAAA,IAC1C,oCAAoC;AAAA,IACpC,kBAAkB;AAAA,IAClB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,qDAAqD;AAAA,IACrD,wGAAwG;AAAA,IACxG,6EAA6E;AAAA,IAC7E,4BAA4B;AAAA,IAC5B,gDAAgD;AAAA,IAChD,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,mBAAmB;AAAA,IACnB,iDAAiD;AAAA,IACjD,sCAAsC;AAAA,IACtC,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,yCAAyC;AAAA,IACzC,+BAA+B;AAAA,IAC/B,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,gCAAgC;AAAA,IAChC,yBAAyB;AAAA,IACzB,yBAAyB;AAAA;AAAA,IAGzB,wCAAwC;AAAA,IACxC,iEAAiE;AAAA,IACjE,wBAAwB;AAAA,IACxB,kCAAkC;AAAA,IAClC,gDAAgD;AAAA,IAChD,gCAAgC;AAAA,IAChC,cAAc;AAAA,IACd,sBAAsB;AAAA;AAAA,IAGtB,0BAA0B;AAAA,IAC1B,2DAA2D;AAAA,IAC3D,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,IACvB,2BAA2B;AAAA,IAC3B,4BAA4B;AAAA,IAC5B,yBAAyB;AAAA,IACzB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,2BAA2B;AAAA,IAC3B,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,2CAA2C;AAAA,IAC3C,uBAAuB;AAAA,IACvB,0BAA0B;AAAA,IAC1B,+BAA+B;AAAA,IAC/B,+BAA+B;AAAA,IAC/B,iCAAiC;AAAA,IACjC,iEAAiE;AAAA,IACjE,mDAAmD;AAAA,IACnD,uDAAuD;AAAA,IACvD,wEAAwE;AAAA,IACxE,2BAA2B;AAAA,IAC3B,yDAAyD;AAAA,IACzD,mCAAmC;AAAA,IACnC,mCAAmC;AAAA,IACnC,qCAAqC;AAAA,IACrC,qCAAqC;AAAA,IACrC,2CAA2C;AAAA,IAC3C,wBAAwB;AAAA,IACxB,4BAA4B;AAAA;AAAA,IAG5B,mCAAmC;AAAA,IACnC,oBAAoB;AAAA,IACpB,6BAA6B;AAAA,IAC7B,4BAA4B;AAAA,IAC5B,qCAAqC;AAAA,IACrC,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,8BAA8B;AAAA;AAAA,IAG9B,+DAA+D;AAAA,IAC/D,4EAA4E;AAAA,IAC5E,aAAa;AAAA,IACb,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,2BAA2B;AAAA,IAC3B,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA;AAAA,IAGR,kCAAkC;AAAA,IAClC,wCAAwC;AAAA,IACxC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,aAAa;AAAA,IACb,YAAY;AAAA;AAAA,IAGZ,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,aAAa;AAAA,IACb,6BAA6B;AAAA,IAC7B,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,kCAAkC;AAAA,IAClC,yBAAyB;AAAA,IACzB,4BAA4B;AAAA,IAC5B,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,WAAW;AAAA,IACX,iEAAiE;AAAA,IACjE,iCAAiC;AAAA,IACjC,8BAA8B;AAAA,IAC9B,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,IAGjB,yCAAyC;AAAA,IACzC,4BAA4B;AAAA,EAChC;;;ACzOA,MAAM,WAAW,OAAO,aAAW,cAAc,YAAU;AAE3D,MAAI,SAAS;AACb,MAAI,OAAO,cAAc,eAAe,UAAU,UAAU;AACxD,aAAS,UAAU,YAAY,UAAU,SAAS;AAAA,EACtD,WAAW,UAAU;AACjB,aAAS,SAAS,KAAK,EAAE,KAAK,SAAS,WAAW,IAAI,IAAI,SAAS;AAAA,EACvE;AAIe,WAAR,KAAsB,QAA2B,MAAa;AACjE,UAAM,YAAoB,UAAU,SAAS,cAAK,GAAG,IAAK,OAAO,aAAM,WAAW,GAAG,IAAI;AACzF,QAAI,CAAC,UAAW,OAAM,IAAI,MAAM,uBAAuB,GAAG,EAAE;AAE5D,WAAO,UAAU,QAAQ,YAAY,SAAU,OAAO,QAAQ;AAC1D,aAAO,OAAO,KAAK,MAAM,KAAK,cAAc,KAAK,MAAM,IAAI;AAAA,IAC/D,CAAC;AAAA,EACL;AAEO,WAAS,eAAe,KAAa;AACxC,WAAO,OAAO;AAAA,EAClB;;;ACzBA,qBAAkB;AASN;AAPZ,MAAqB,eAArB,cAA0C,aAAAA,QAAM,UAI7C;AAAA,IACC,SAAS;AACL,aACI,4CAAC,SAAI,WAAW,iBAAiB,KAAK,MAAM,YAAY,cAAc,EAAE,IAAI,SAAS,KAAK,MAAM,SAC3F,eAAK,MAAM,UAChB;AAAA,IAER;AAAA,EACJ;;;ACdA,MAAAC,gBAAkB;AAWE,MAAAC,sBAAA;AATpB,MAAqB,YAArB,cAAuC,cAAAC,QAAM,UAG1C;AAAA,IACC,SAAS;AACL,YAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,aACI,6CAAC,SAAI,MAAK,QAAO,WAAU,cAAa,SAAS,KAAK,MAAM,SACxD,uDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC5E,uDAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,2QAA0Q,GAChV,GACJ;AAAA,IAER;AAAA,EACJ;;;AChBA,MAAAC,gBAAkB;AAUF,MAAAC,sBAAA;AARhB,MAAqB,mBAArB,cAA8C,cAAAC,QAAM,UAGjD;AAAA,IACC,SAAS;AACL,YAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,aACI,6CAAC,SAAI,MAAK,QAAO,WAAU,cAAa,SAAS,KAAK,MAAM,SACxD,wDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC5E;AAAA,qDAAC,UAAK,MAAK,gBAAe,GAAE,gTAAgT;AAAA,QAC5U,6CAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,gIAA+H;AAAA,SACrM,GACJ;AAAA,IAER;AAAA,EACJ;;;ACjBA,MAAAC,gBAAkB;AAUE,MAAAC,sBAAA;AARpB,MAAqB,WAArB,cAAsC,cAAAC,QAAM,UAEzC;AAAA,IACC,SAAS;AACL,YAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,aACI,6CAAC,SAAI,MAAK,QAAO,WAAU,cACvB,uDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC5E,uDAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,kIAAiI,GACvM,GACJ;AAAA,IAER;AAAA,EACJ;;;ACYY,MAAAC,sBAAA;AAhBZ,MAAM,kBAAkD,CAAC;AAAA,IACrD;AAAA,EACJ,MAAM;AACF,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,QAAI,6CAAgB;AACpB,UAAM,EAAE,QAAQ,QAAI,iDAAoB;AAExC,UAAM,kBAAkB,oBAAoB,aAAa;AACzD,UAAM,gBAAgB,aAAa,SAAS,aAAa;AAEzD,WACI,8CAAC,QAAG,WAAW,mBAAmB,kBAAkB,eAAe,EAAE,GAAG,mBAAmB,gBAAgB,aAAa,EAAE,IACtH;AAAA,mDAAC,cAAS,OAAM,yBAAwB,SAAS,MAAM;AACnD,4BAAoB,kBAAkB,KAAK,aAAa,GAAG;AAAA,MAC/D,GACI,wDAAC,SAAI;AAAA;AAAA,QAAE,aAAa;AAAA,QAAK;AAAA,QAAG,aAAa,YAAY,aAAa,WAAW,QAAQ,wBAAwB,EAAE,IAAI,aAAa;AAAA,SAAM,GAC1I;AAAA,MACA,8CAAC,SAAI,WAAU,0BACX;AAAA,qDAAC,SAAI,WAAU,aACX,uDAAC,aAAU,MAAM,KAAK,SAAS,MAAM;AACjC,8BAAoB,kBAAkB,KAAK,aAAa,GAAG;AAAA,QAC/D,GAAG,GACP;AAAA,QACA,6CAAC,gBAAa,WAAW,eAAe,SAAS,MAAM;AACnD,yBAAe,gBAAgB,OAAO,EAAE,MAAM,QAAQ,OAAO,aAAa,IAAI,CAAC;AAAA,QACnF,GACI,uDAAC,oBAAiB,MAAM,KAAK,GACjC;AAAA,QACA,6CAAC,gBAAa,SAAS,MAAM;AAAE,kBAAQ,aAAa,GAAG;AAAA,QAAE,GACrD,uDAAC,YAAS,MAAM,KAAK,GACzB;AAAA,SACJ;AAAA,OACJ;AAAA,EAER;AAEA,MAAO,0BAAQ;;;ACtCP,MAAAC,sBAAA;AARR,MAAM,cAAwB,MAAM;AAChC,UAAM;AAAA,MACF;AAAA,IACJ,QAAI,6CAAgB;AAEpB,UAAM,EAAE,cAAc,QAAI,iDAAoB;AAE9C,WACI,8EACI;AAAA,mDAAC,SAAI,WAAU,qBACX,uDAAC,QAAI,eAAK,UAAU,GAAE,GAC1B;AAAA,MAEI,CAAC,cAAc,UAAU,6CAAC,cAAU,eAAK,yBAAyB,GAAE;AAAA,MAExE,6CAAC,QAAG,WAAU,eAEN,wBAAc,IAAI,CAAC,SAAS;AACxB,eACI,6CAAC,2BAA+B,cAAc,QAAxB,KAAK,GAAyB;AAAA,MAE5D,CAAC,GAET;AAAA,MACC,aAAa,QAAQ,SAAS,6CAAC,cAAS,OAAM,gBAC3C,eAAK,sCAAsC,cAAc,KAAK,UAAQ,KAAK,OAAO,aAAa,KAAK,GAAG,KAAK,GAC/G,IAAc;AAAA,OACnB;AAAA,EAER;AAEA,MAAO,sBAAQ;;;ACpCf,MAAAC,gBAAkB;AAWE,MAAAC,sBAAA;AATpB,MAAqB,WAArB,cAAsC,cAAAC,QAAM,UAGzC;AAAA,IACC,SAAS;AACL,YAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,aACI,6CAAC,SAAI,MAAK,QAAO,WAAU,cAAa,SAAS,KAAK,MAAM,SACxD,uDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC5E,uDAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,iVAAgV,GACtZ,GACJ;AAAA,IAER;AAAA,EACJ;;;AChBA,MAAAC,gBAAkB;AAUE,MAAAC,sBAAA;AARpB,MAAqB,aAArB,cAAwC,cAAAC,QAAM,UAE3C;AAAA,IACC,SAAS;AACL,YAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,aACI,6CAAC,SAAI,MAAK,QAAO,WAAU,cACvB,uDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC5E,uDAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,+JAA8J,GACpO,GACJ;AAAA,IAER;AAAA,EACJ;;;AC6BgB,MAAAC,sBAAA;AArBhB,MAAM,mBAAoD,CAAC;AAAA,IACvD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,MAAM;AACF,UAAM;AAAA,MACF;AAAA,MACA;AAAA,IACJ,QAAI,6CAAgB;AACpB,UAAM;AAAA,MACF;AAAA,IACJ,QAAI,iDAAoB;AAExB,QAAI,OAAO;AACP,aACI,6CAAC,QAAG,WAAU,oBACV,wDAAC,cAAS,OAAM,yBAAwB,SAAS,MAAM;AACnD,YAAI,QAAQ,OAAO;AACf,gBAAM,yBAAyB,WAAW;AAC1C,gBAAM,iBAAiB,uBAAuB,YAAY,GAAG;AAC7D,cAAI,kBAAkB,IAAI;AACtB,6BAAiB,EAAE;AAAA,UACvB,OAAO;AACH,6BAAiB,uBAAuB,MAAM,GAAG,cAAc,CAAC;AAAA,UACpE;AAAA,QACJ,OAAO;AACH,2BAAiB,IAAI;AAAA,QACzB;AAAA,MACJ,GACI;AAAA,qDAAC,cAAW,MAAM,KAAK;AAAA,QACvB,6CAAC,SAAK,gBAAK;AAAA,SACf,GACJ;AAAA,IAER;AAEA,QAAI,CAAC,SAAU,QAAO;AAEtB,WACI,8CAAC,QAAG,WAAW,sBAAsB,YAAY,aAAa,KAC1D;AAAA,mDAAC,cAAS,OAAM,yBAAwB,SAAS,MAAM;AACnD,sBAAc,IAAI;AAClB,qBAAa,kBAAkB,SAAS,IAAI;AAAA,MAChD,GACI,uDAAC,SACI,mBAAS,QAAQ,SAAS,MAAM,QAAQ,wBAAwB,EAAE,IAAI,SAAS,MACpF,GACJ;AAAA,MACA,8CAAC,SAAI,WAAU,0BACX;AAAA,qDAAC,SAAI,WAAU,aACX,uDAAC,YAAS,MAAM,KAAK,SAAS,MAAM;AAChC,wBAAc,IAAI;AAClB,uBAAa,kBAAkB,SAAS,IAAI;AAAA,QAChD,GAAG,GACP;AAAA,QACA,6CAAC,gBAAa,WAAW,WAAW,SAAS,MAAM;AAC/C,cAAI,CAAC,WAAW;AACZ,2BAAe,EAAE,MAAM,YAAY,OAAO,KAAK,CAAC;AAAA,UACpD,OAAO;AACH,2BAAe,IAAI;AAAA,UACvB;AAAA,QACJ,GACI,uDAAC,oBAAiB,MAAM,KAAK,GACjC;AAAA,QACA,6CAAC,gBAAa,SAAS,MAAM;AAAE,gBAAM,SAAS,IAAI;AAAA,QAAE,GAChD,uDAAC,YAAS,MAAM,KAAK,GACzB;AAAA,SACJ;AAAA,OACJ;AAAA,EAER;AAEA,MAAO,2BAAQ;;;ACxCQ,MAAAC,uBAAA;AAhDvB,MAAM,eAA4C,CAAC,EAAE,cAAc,MAAM;AACrE,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACJ,QAAI,6CAAgB;AAEpB,UAAM;AAAA,MACF;AAAA,IACJ,QAAI,iDAAoB;AAExB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,QAAI,kDAAqB;AAEzB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,QAAI,2CAAc,gBAAgB;AAElC,QAAI,aAAa;AACjB,QAAI,YAAY;AAChB,QAAI,eAAe;AACnB,QAAI,kBAAkB;AAClB,UAAI,WAAW;AACX,sBAAc,KAAK,cAAc,SAAS;AAC1C,uBAAe;AAAA,MACnB,WAAW,UAAU;AACjB,sBAAc,IAAI,QAAQ,OAAO,kBAAkB;AAAA,MACvD,WAAW,kBAAkB;AACzB,YAAI,oBAAoB,iBAAiB;AACrC,wBAAc,KAAK,oCAAoC;AAAA,QAC3D,OAAO;AACH,wBAAc,KAAK,iDAAiD,IAAI;AAAA,QAC5E;AAAA,MACJ;AACA,mBAAa,IAAI,KAAK,QAAQ,CAAC,IAAI,SAAS;AAAA,IAChD;AAEA,QAAI,eAAe;AACnB,QAAI;AACA,qBAAe,8CAAC,cAAS,OAAM,oBAAoB,0BAAe;AAEtE,WACI,gFACI;AAAA,qDAAC,SAAI,WAAU,qBACX;AAAA,uDAAC,QAAI;AAAA,eAAK,WAAW;AAAA,UAAG;AAAA,WAAU;AAAA,QAClC,8CAAC,cAAS,OAAO,eAAe,gBAAgB,IAAK,sBAAW;AAAA,SACpE;AAAA,MACC,gBACG,+CAAC,QAAG,WAAU,eAEN;AAAA,kCACI;AAAA,UAAC;AAAA;AAAA,YACG;AAAA,YAEA,MAAK;AAAA,YACL,OAAO;AAAA,YACP,WAAW;AAAA,YACX,OAAO,OAAO,SAAiB;AAAA,YAAE;AAAA,YACjC,SAAS,wBAAwB,MAAM,GAAG,EAAE;AAAA,YAC5C,gBAAgB,CAAC,YAAY;AACzB,yCAA2B,OAAO;AAAA,YACtC;AAAA;AAAA,UARK;AAAA,QAST,IACE;AAAA,QAGN,YAAY,IAAI,CAAC,SAA2C;AACxD,gBAAM,OAAO,KAAK;AAClB,gBAAM,WAAW,UAAU,IAAI;AAC/B,gBAAM,UAAU,aAAa,SAAS;AACtC,cAAI,KAAK,OAAO;AACZ,mBACI;AAAA,cAAC;AAAA;AAAA,gBACG;AAAA,gBAEA;AAAA,gBACA,OAAO;AAAA,gBACP,WAAW;AAAA,gBACX,OAAO,OAAOC,UAAiB;AAC3B,wBAAM,YAAYA,KAAI;AAAA,gBAC1B;AAAA,gBACA,SAAS,wBAAwB,MAAM,GAAG,EAAE;AAAA,gBAC5C,gBAAgB,CAAC,YAAY;AACzB,6CAA2B,OAAO;AAAA,gBACtC;AAAA;AAAA,cAVK;AAAA,YAWT;AAAA,UAER;AACA,iBACI;AAAA,YAAC;AAAA;AAAA,cACG;AAAA,cAEA;AAAA,cACA,OAAO;AAAA,cACP,WAAW;AAAA,cACX;AAAA,cACA,OAAO,OAAOA,UAAiB;AAC3B,sBAAM,YAAYA,KAAI;AAAA,cAC1B;AAAA;AAAA,YAPK;AAAA,UAQT;AAAA,QAER,CAAC;AAAA,SAET;AAAA,MAEH,aAAa,QAAQ,aAAa,8CAAC,cAAS,OAAM,gBAAgB,eAAK,0CAA0C,UAAU,aAAa,KAAK,GAAG,IAAI,GAAE,IAAc;AAAA,OACzK;AAAA,EAER;AAEA,MAAO,uBAAQ;;;AC/Hf,MAAAC,iBAAoC;;;ACJpC,MAAAC,iBAAqC;;;ACArC,MAAAC,gBAAkB;AAWE,MAAAC,uBAAA;AATpB,MAAqB,cAArB,cAAyC,cAAAC,QAAM,UAG5C;AAAA,IACC,SAAS;AACL,YAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,aACI,8CAAC,SAAI,MAAK,QAAO,WAAU,cAAa,SAAS,KAAK,MAAM,SACxD,wDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC5E,wDAAC,UAAK,MAAK,gBAAe,GAAE,yMAAwM,GACxO,GACJ;AAAA,IAER;AAAA,EACJ;;;AChBA,MAAAC,gBAAkB;AAQF,MAAAC,uBAAA;AANhB,MAAqB,WAArB,cAAsC,cAAAC,QAAM,UAAU;AAAA,IAClD,SAAS;AACL,aACI,8CAAC,SAAI,MAAK,QAAO,WAAU,cAAa,OAAO;AAAA,QAC3C,aAAa;AAAA,MACjB,GACI,yDAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC9D;AAAA,sDAAC,UAAK,GAAE,2IAA0I;AAAA,QAClJ,8CAAC,UAAK,GAAE,wDAAuD;AAAA,SACnE,GACJ;AAAA,IAER;AAAA,EACJ;;;ACfA,MAAAC,gBAAkB;AAMF,MAAAC,uBAAA;AAJhB,MAAqB,gBAArB,cAA2C,cAAAC,QAAM,UAA6B;AAAA,IAC1E,SAAS;AACL,aACI,+CAAC,SAAI,MAAK,QAAO,WAAU,cACvB;AAAA,uDAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC9D;AAAA,wDAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,gMAA+L;AAAA,UACjQ,8CAAC,UAAK,MAAK,gBAAe,UAAS,WAAU,UAAS,WAAU,GAAE,0KAAyK;AAAA,WAC/O;AAAA,QAAO,KAAK,MAAM;AAAA,SACtB;AAAA,IAER;AAAA,EACJ;;;ACbA,MAAAC,iBAAkB;AAQF,MAAAC,uBAAA;AANhB,MAAqB,cAArB,cAAyC,eAAAC,QAAM,UAAU;AAAA,IACrD,SAAS;AACL,aACI,8CAAC,SAAI,MAAK,QAAQ,WAAU,cAAa,OAAO;AAAA,QAC5C,aAAa;AAAA,MACjB,GACI,yDAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC9D;AAAA,sDAAC,UAAK,WAAU,cAAa,UAAS,WAAU,UAAS,WAAU,GAAE,+rBAA8rB;AAAA,QAEnwB,8CAAC,UAAK,WAAU,gCAA+B,UAAS,WAAU,UAAS,WAAU,GAAE,iVAAgV;AAAA,SAC3a,GACJ;AAAA,IAER;AAAA,EACJ;;;AChBA,MAAAC,iBAAkB;AASF,MAAAC,uBAAA;AAPhB,MAAqB,YAArB,cAAuC,eAAAC,QAAM,UAG1C;AAAA,IACC,SAAS;AACL,aACI,8CAAC,SAAI,MAAK,QAAO,WAAU,cACvB,yDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM,QAAQ,IAAI,SAAQ,aAAY,MAAK,QAAO,OAAM,8BACpG;AAAA,sDAAC,UAAK,GAAE,8OAA6O,MAAK,gBAAe;AAAA,QACzQ,8CAAC,UAAK,GAAE,6OAA4O,MAAK,gBAAe;AAAA,SAC5Q,GACJ;AAAA,IAER;AAAA,EACJ;;;AChBA,MAAAC,iBAAkB;AASmI,MAAAC,uBAAA;AAPrJ,MAAqB,WAArB,cAAsC,eAAAC,QAAM,UAGzC;AAAA,IACC,SAAS;AACL,aACI,8CAAC,SAAI,MAAK,QAAO,WAAU,cACvB,wDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM,QAAQ,IAAI,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAA6B,wDAAC,UAAK,GAAE,uFAAsF,MAAK,gBAAe,GAAO,GAClQ;AAAA,IAER;AAAA,EACJ;;;ACbA,MAAAC,iBAAkB;AAQF,MAAAC,uBAAA;AANhB,MAAqB,aAArB,cAAwC,eAAAC,QAAM,UAE3C;AAAA,IACC,SAAS;AACL,aACI,8CAAC,SAAI,MAAK,QAAO,WAAU,cACvB,yDAAC,SAAI,OAAO,KAAK,MAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM,QAAQ,IAAI,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAEpG;AAAA,sDAAC,UAAK,GAAE,4DAA2D,MAAK,gBAAc;AAAA,QAGtF,8CAAC,UAAK,GAAE,wNAAuN,MAAK,gBAAc;AAAA,SACtP,GACJ;AAAA,IAER;AAAA,EACJ;;;APO2B,MAAAC,uBAAA;AAN3B,MAAM,iBAAiB,MAAM;AACzB,UAAM,EAAE,kBAAkB,YAAY,QAAI,6CAAgB;AAC1D,UAAM,EAAE,WAAW,UAAU,mBAAmB,QAAI,2CAAc,gBAAgB;AAElF,WACI,+CAAC,SAAI,WAAU,uBACV;AAAA,oBAAc,8CAAC,cAAU,eAAK,kCAAkC,GAAE,IAAc;AAAA,MAChF,YAAY,8CAAC,cAAS,OAAM,eAAe,qBAAU,IAAc;AAAA,MACnE,qBAAqB,gFAClB;AAAA,sDAAC,cAAU,aAAG,QAAQ,KAAK,kBAAkB,OAAM;AAAA,QACnD,8CAAC,oBAAe,OAAO,WAAW,KAAK;AAAA,SAC3C,IAAM;AAAA,OACV;AAAA,EAER;AAGA,MAAM,aAAa,MAAM;AACrB,UAAM,EAAE,iBAAiB,QAAI,6CAAgB;AAC7C,UAAM,EAAE,cAAc,eAAe,QAAI,iDAAoB;AAE7D,UAAM,aAAS,4BAAY,YAAY;AACnC,YAAM,aAAa,gBAAgB;AAAA,IACvC,GAAG,CAAC,cAAc,gBAAgB,CAAC;AAEnC,WACI,8CAAC,sBAAiB,SAAS,QACvB,wDAAC,YAAS,GACd;AAAA,EAER;AAkCA,MAAM,sBAAsB,MAAM;AAC9B,UAAM,EAAE,UAAU,QAAI,iDAAoB;AAC1C,UAAM,EAAE,WAAW,QAAI,iDAAoB;AAC3C,UAAM,0BAAsB,4BAAY,YAAY;AAChD,YAAM,WAAW;AACjB,YAAM,UAAU;AAAA,IACpB,GAAG,CAAC,YAAY,SAAS,CAAC;AAE1B,WAAO,8CAAC,sBAAiB,SAAS,qBAC9B,wDAAC,cAAW,GAChB;AAAA,EACJ;AAEA,MAAM,gBAAgB,MAAM;AACxB,UAAM,EAAE,iBAAiB,QAAI,6CAAgB;AAC7C,UAAM,EAAE,eAAe,QAAI,iDAAoB;AAC/C,UAAM,eAAW,4BAAY,MAAM;AAC/B,qBAAe,gBAAgB;AAAA,IACnC,GAAG,CAAC,gBAAgB,gBAAgB,CAAC;AAErC,WAAO,8CAAC,sBAAiB,SAAS,UAC9B,wDAAC,eAAY,GACjB;AAAA,EACJ;AAiBA,MAAM,iBAAiB,MAAM;AACzB,UAAM,EAAE,kBAAkB,aAAa,eAAe,QAAI,6CAAgB;AAE1E,WACI,8CAAC,sBAAiB,OAAO,aAAa,SAAS,mBAAmB,cAAc,IAAI,SAAS,MAAM;AAC/F,UAAI,aAAa,SAAS,kBAAkB;AACxC,uBAAe,IAAI;AAAA,MACvB,OAAO;AACH,uBAAe;AAAA,UACX,MAAM;AAAA,UACN,OAAO;AAAA,QACX,CAAC;AAAA,MACL;AAAA,IACJ,GACI,wDAAC,oBAAiB,GACtB;AAAA,EAER;AAGA,MAAM,aAAa,MAAM;AACrB,UAAM,EAAE,kBAAkB,iBAAiB,oBAAoB,QAAI,6CAAgB;AACnF,UAAM,eAAe,oBAAoB;AAEzC,WACI;AAAA,MAAC;AAAA;AAAA,QACI,GAAI,CAAC,eAAe,EAAE,UAAU,KAAK,IAAI,CAAC;AAAA,QAC3C,SAAS,MAAM;AAAE,8BAAoB;AAAA,QAAE;AAAA,QACvC,OAAO,CAAC,eAAe,KAAK,uCAAuC,IAAI,KAAK,iBAAiB;AAAA,QAE7F,wDAAC,eAAY;AAAA;AAAA,IACjB;AAAA,EAER;AAGA,MAAM,YAAY,MAAM;AACpB,UAAM,EAAE,iBAAiB,QAAI,6CAAgB;AAC7C,UAAM,EAAE,QAAQ,QAAI,iDAAoB;AAExC,WACI,8CAAC,sBAAiB,SAAS,MAAM;AAC7B,cAAQ,gBAAgB;AAAA,IAC5B,GACI,wDAAC,YAAS,GACd;AAAA,EAER;AACA,MAAM,kBAAkB,MAAM;AAC1B,UAAM,EAAE,iBAAiB,QAAI,6CAAgB;AAC7C,UAAM,EAAE,QAAQ,QAAI,iDAAoB;AAExC,WACI,gFACI;AAAA,oDAAC,SAAI,WAAU,iBAAgB,SAAS,MAAM;AAAE,gBAAQ,kBAAkB,CAAC;AAAA,MAAE,GAAG,gBAAE;AAAA,MAClF,8CAAC,SAAI,WAAU,iBAAgB,SAAS,MAAM;AAAE,gBAAQ,kBAAkB,CAAC;AAAA,MAAE,GAAG,gBAAE;AAAA,MAClF,8CAAC,SAAI,WAAU,iBAAgB,SAAS,MAAM;AAAE,gBAAQ,kBAAkB,CAAC;AAAA,MAAE,GAAG,gBAAE;AAAA,OACtF;AAAA,EAER;AAYO,WAAS,iBAAiB;AAAA,IAC7B;AAAA,EACJ,GAEG;AACC,UAAM,EAAE,iBAAiB,QAAI,6CAAgB;AAC7C,UAAM,EAAE,MAAM,UAAU,QAAI,2CAAc,gBAAgB;AAE1D,eAAO,wBAAQ,MAAM;AACjB,aACI,+CAAC,SAAI,WAAU,sBACX;AAAA,uDAAC,SAAI,WAAU,qBACX;AAAA,wDAAC,cAAU,eAAK,4BAA4B,MAAM,SAAS,GAAE;AAAA,UAC7D,+CAAC,SAAI,WAAU,0BACX;AAAA,2DAAC,SAAI,WAAU,+BACX;AAAA,6DAAC,SAAI,WAAU,0DACX;AAAA,+DAAC,SAAI,WAAU,kCACX;AAAA,gEAAC,cAAW;AAAA,kBACZ,8CAAC,iBAAc;AAAA,mBACnB;AAAA,gBACA,+CAAC,SAAI,WAAU,mCACX;AAAA,gEAAC,uBAAoB;AAAA,kBACrB,8CAAC,kBAAe;AAAA,mBAEpB;AAAA,iBACJ;AAAA,cACA,+CAAC,SAAI,WAAU,4DACX;AAAA,8DAAC,kBAAe;AAAA,gBAEhB,8CAAC,cAAW;AAAA,iBAChB;AAAA,eACJ;AAAA,YACA,8CAAC,SAAI,WAAU,iCACX,wDAAC,aAAU,GACf;AAAA,YACA,8CAAC,SAAI,WAAU,gCACX,wDAAC,mBAAgB,GACrB;AAAA,aACJ;AAAA,WACJ;AAAA,QACA,8CAAC,gBAAW;AAAA,QACZ,8CAAC,yBAAsB;AAAA,SAC3B;AAAA,IAER,GAAG,CAAC,MAAM,SAAS,CAAC;AAAA,EACxB;;;ADtLQ,MAAAC,uBAAA;AAjDD,WAAS,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAIG;AACC,UAAM,CAAC,YAAY,aAAa,QAAI,yBAAS,KAAK;AAClD,UAAM,CAAC,aAAa,cAAc,QAAI,yBAAS,KAAK;AACpD,kCAAU,MAAM;AACZ,UAAI,iBAAiB,aAAa;AAC9B,cAAM,UAAU,WAAW,MAAM;AAC7B,yBAAe,IAAI;AAAA,QACvB,GAAG,GAAI;AACP,eAAO,MAAM,aAAa,OAAO;AAAA,MACrC,OAAO;AACH,uBAAe,KAAK;AAAA,MACxB;AAAA,IACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IAEJ,QAAI,6CAAgB;AAEpB,UAAM,yBAAyB,aAAa,IAAI;AAEhD,UAAM,CAAC,kBAAkB,mBAAmB,QAAI,yBAAS,KAAK;AAG9D,kCAAU,MAAM;AACZ,UAAI,kBAAkB;AAClB,4BAAoB,oBAAoB,eAAe;AAAA,MAC3D,OAAO;AACH,YAAI,kBAAkB;AAClB,wBAAc,KAAK;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ,GAAG,CAAC,gBAAgB,CAAC;AACrB,kCAAU,MAAM;AACZ,UAAI,iBAAiB,gBAAgB;AACjC,sBAAc,KAAK;AAAA,MACvB;AAAA,IACJ,GAAG,CAAC,YAAY,CAAC;AACjB,WACI,gFACI;AAAA,qDAAC,SAAI,WAAU,eAEP;AAAA,SAAC,aACG,8CAAC,SAAI,WAAW,gBAAgB,cAC5B,wDAAC,SAAI,WAAU,eAAc,OAAO,yBAAyB,SAAS,KAAK,KAAK,YAAY,GAAG,oBAAC,GACpG,IAEA;AAAA,UAAC;AAAA;AAAA,YACG,SAAS,MAAM;AACX,4BAAc,KAAK;AAAA,YACvB;AAAA,YACH;AAAA;AAAA,QAAC;AAAA,QAEV,8CAAC,cAAW;AAAA,SAChB;AAAA,MAEI,0BACI,8CAAC,SACG,wDAAC,cAAS,OAAM,eACX,yBAAe,uBAAuB,IAAI,KAAK,uBAA8B,IAAI,yBACtF,GACJ,IACA;AAAA,MAGR,8CAAC,uCAAQ;AAAA,MAET,8CAAC,gBAAW,MAAK,SAAQ;AAAA,MAGrB,iBAAiB,eACjB,+CAAC,SAAI,WAAU,cACX;AAAA,sDAAC,SAAI,WAAU,eAAc,OAAO,2BAA2B,IAAI,CAAC,IAAI,EAAE,SAAS,OAAO,GACtF,yDAAC,SAAI,WAAU,mBACV;AAAA,yBAAe,CAAC,mBAAmB,8CAAC,cAAS,OAAM,eAAe,eAAK,6EAA6E,KAAK,SAAS,CAAC,GAAE;AAAA,UACtK,8CAAC,uBAAY;AAAA,UACZ,oBAAoB,8CAAC,wBAAa,eAA8B;AAAA,WACrE,GACJ;AAAA,QACA,8CAAC,SAAI,WAAU,eAAc,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO,GACnE,wBAAc,oBAAoB,8CAAC,oBAAiB,uBAA8C,GACvG;AAAA,SACJ;AAAA,OAER;AAAA,EAER;;;AS1F4B,MAAAC,uBAAA;AAXb,WAAR,OAAwB;AAC3B,WACI,8CAAC,6CAAc,YAAY,IACvB,wDAAC,SAAI,WAAU,aACX;AAAA,MAAC;AAAA;AAAA,QACG,eAAe,CACX,cACA,YACA,0BACC;AACD,iBACI;AAAA,YAAC;AAAA;AAAA,cACG;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACJ;AAAA,QAER;AAAA;AAAA,IACJ,GACJ,GACJ;AAAA,EAER;;;ACxBA,sBAA2B;AAKQ,MAAAC,uBAAA;AAFnC,aAAW,QAAQ,WAAW,SAAS,CAAC;AACxC,aAAW,MAAM,wBAAwB,CAAC,gBAA6B;AACnE,kCAAW,WAAW,EAAE,OAAO,8CAAC,QAAK,CAAE;AAAA,EAC3C;AAEA,MAAM,OAAc,CAAC;AACrB,MAAM,cAAqB,CAAC;AAC5B,MAAM,YAAmB,CAAC;AAC1B,aAAW,MAAM,UAAU,MAAM;AAC7B,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACA,aAAW,MAAM,mBAAmB,MAAM;AACtC,YAAQ,MAAO,yBAAS,KAAK;AACzB,aAAO,YAAY,MAAa;AAC5B,YAAI,GAAG,IAAI;AACX,aAAK,KAAK,IAAI;AAAA,MAClB;AAAA,IACJ,EAAG,QAAQ,GAAG;AAEd,YAAQ,OAAQ,yBAAS,KAAK;AAC1B,aAAO,YAAY,MAAa;AAC5B,YAAI,GAAG,IAAI;AACX,oBAAY,KAAK,IAAI;AAAA,MACzB;AAAA,IACJ,EAAG,QAAQ,IAAI;AAEf,YAAQ,QAAS,yBAAS,KAAK;AAC3B,aAAO,YAAY,MAAa;AAC5B,YAAI,GAAG,IAAI;AACX,kBAAU,KAAK,IAAI;AAAA,MACvB;AAAA,IACJ,EAAG,QAAQ,KAAK;AAAA,EACpB;", + "sourcesContent": ["module.exports = window.SDPPPInternal", "module.exports = window.React", "module.exports = window.ReactJSXRuntime", "module.exports = window.ReactDOMClient", "export * from \"SDPPPInternal\";", "export default {\n 'SDPPP Get Document': 'SDPPP Get Document',\n 'SDPPP Get Layer By ID': 'SDPPP Get Layer',\n 'SDPPP Get Linked Layers': 'SDPPP Get Linked Layers',\n 'SDPPP Get Layers In Group': 'SDPPP Get Layers In Group',\n 'SDPPP Get Text From Layer': 'SDPPP Get Text From Layer',\n 'SDPPP Parse Layer Info': 'SDPPP Parse Layer Info',\n 'SDPPP Get Selection': 'SDPPP Get Selection', \n 'SDPPP Get Image From Photoshop': 'SDPPP Get Image From Photoshop',\n 'SDPPP Send Images To Photoshop': 'SDPPP Send Images To Photoshop',\n 'SDPPP Settings': 'SDPPP Settings/Misc',\n}", "export default {\n // speicial document/ layer\n '### Active Document ###': '### \u5F53\u524D\u6587\u6863 ###',\n '### The Canvas ###': '### \u6574\u4E2A\u753B\u5E03 ###',\n '### New Layer ###': '### \u65B0\u56FE\u5C42 ###',\n '### Selected Layer ###': '### \u6240\u9009\u56FE\u5C42 ###',\n '### Keep Size or Fit Canvas ###': '### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###',\n '_SDPPP_PSD_': '_SDPPP_PSD_',\n\n // A1111 UI\n 'Save and run immediately': '\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C',\n 'Close': '\u5173\u95ED',\n 'Select a {0}': `\u9009\u62E9\u4E00\u4E2A {0}`,\n\n // comfyui dialog\n 'How to use .ccx file': '\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6',\n '1. If you have installed Adobe Creative Cloud': '1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud', \n 'Just double click the .ccx file, it will install the plugin automatically': '\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5',\n \"2. If you don't have Adobe Creative Cloud\": '2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud',\n 'Rename .ccx to .zip and extract it into ': '\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230',\n 'or': '\u6216',\n 'Photoshop directory': 'Photoshop \u5B89\u88C5\u76EE\u5F55',\n\n // comfyui error\n 'Cannot connect multiple different document widgets with same value': '\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6',\n 'You can only have one SDPPP Settings node in a workflow': '\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9',\n 'convert widget {0} failed:': '\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A',\n 'hidden webview load failed: {0}, please select a browser page to continue': '\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED',\n \n // comfy node title\n 'SDPPP Get Document': 'SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)',\n 'SDPPP Get Layer By ID': 'SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)',\n 'SDPPP Get Linked Layers': 'SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)',\n 'SDPPP Get Layers In Group': 'SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)',\n 'SDPPP Get Text From Layer': 'SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)',\n 'SDPPP Parse Layer Info': 'SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)',\n 'SDPPP Get Selection': 'SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)', \n 'SDPPP Get Image From Photoshop': 'SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)',\n 'SDPPP Send Images To Photoshop': 'SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)',\n 'SDPPP Send Text To Layer': 'SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)',\n 'SDPPP Run Photoshop Action': 'SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)',\n\n// comfy widget/input\n 'download PS plugin (.ccx)': '\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)',\n 'current ComfyUI pageid: {0}': '\u5F53\u524D ComfyUI \u9875\u9762ID: {0}',\n 'current A1111 pageid: {0}': '\u5F53\u524D A1111 \u9875\u9762ID: {0}',\n 'document linked': '\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5',\n 'layer linked': '\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5',\n 'bound linked': '\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5',\n 'document': '\u6587\u6863', \n 'Document': '\u6587\u6863', \n 'DOCUMENT': '\u6587\u6863', \n 'document_name': '\u6587\u6863\u540D\u5B57id',\n 'layer_nameid': '\u56FE\u5C42\u540D\u5B57id',\n 'layer_name': '\u56FE\u5C42\u540D\u5B57',\n 'layer_info': '\u56FE\u5C42\u4FE1\u606F',\n 'bound_top': '\u8303\u56F4\u4E0A\u8FB9\u8DDD',\n 'bound_left': '\u8303\u56F4\u5DE6\u8FB9\u8DDD',\n 'bound_width': '\u8303\u56F4\u5BBD\u5EA6',\n 'bound_height': '\u8303\u56F4\u9AD8\u5EA6',\n 'center_x': '\u4E2D\u5FC3\u70B9x',\n 'center_y': '\u4E2D\u5FC3\u70B9y',\n 'opacity': '\u900F\u660E\u5EA6',\n 'layer': '\u56FE\u5C42',\n 'layer_or_group': '\u56FE\u5C42(\u6216\u7EC4)',\n 'Layer_or_group': '\u56FE\u5C42(\u6216\u7EC4)',\n 'bound': '\u8303\u56F4',\n 'bounds': '\u8303\u56F4',\n 'bounds [optional]': '\u8303\u56F4[\u53EF\u9009]',\n 'boundary': '\u8303\u56F4',\n 'Boundary': '\u8303\u56F4',\n 'canvas_boundary': '\u753B\u5E03\u8303\u56F4',\n 'canvas_bound': '\u753B\u5E03\u8303\u56F4',\n 'layer_boundary': '\u56FE\u5C42\u8303\u56F4',\n 'layer_bound': '\u56FE\u5C42\u8303\u56F4',\n \"Photoshop Disconnected!\" : \"Photoshop \u672A\u8FDE\u63A5\uFF01\",\n 'rgb_out': 'RGB\u8F93\u51FA',\n 'alpha_out': 'Alpha\u8F93\u51FA',\n 'images': '\u56FE\u50CF',\n 'text': '\u6587\u672C',\n 'ID_mode': '\u7CBE\u786EID\u6A21\u5F0F',\n 'name_mode': '\u540D\u5B57\u5339\u914D\u6A21\u5F0F',\n 'select': '\u9009\u62E9',\n 'document boundary': '\u6587\u6863\u8303\u56F4',\n 'layer boundary': '\u56FE\u5C42\u8303\u56F4',\n 'selection boundary': '\u9009\u4E2D\u8303\u56F4',\n 'save .psd to this workflow': '\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41',\n 'extract saved .psd to Photoshop': '\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop',\n 'sample .psd': '\u793A\u4F8B.psd',\n 'mask': '\u906E\u7F69',\n 'name': '\u540D\u79F0',\n 'quality': '\u56FE\u50CF\u8D28\u91CF',\n \n // photoshop UI\n 'timeout': '\u8D85\u65F6',\n '--multi-user activated, Not Login!': '--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01',\n 'Logout': '\u767B\u51FA',\n 'User: ': '\u7528\u6237: ',\n 'connect': '\u8FDE\u63A5',\n 'connected': '\u5DF2\u8FDE\u63A5',\n 'disconnect': '\u65AD\u5F00',\n 'disconnected': '\u5DF2\u65AD\u5F00\u8FDE\u63A5',\n 'reconnecting...': '\u91CD\u8FDE\u4E2D...', \n 'connecting': '\u8FDE\u63A5\u4E2D', \n 'webpages': '\u7F51\u9875\u5217\u8868',\n 'workflows': '\u5DE5\u4F5C\u6D41',\n 'workflow': '\u5DE5\u4F5C\u6D41',\n 'auto run page [{0}] after change..': '\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..',\n 'auto run workflow [{0}] after change..': '\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..',\n 'auto run workflow after change..': '\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..',\n 'selection_only': '\u4EC5\u9009\u533A',\n 'Queue:': '\u961F\u5217:',\n 'Set As:': '\u8BBE\u7F6E\u4E3A:',\n 'Error {0}... please contact me via Discord/Github': '\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211',\n 'Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System': 'Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF',\n 'Workflow List of ComfyUI with --multi-user is only available for sponsors': '\u5E26\"--multi-user\"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',\n '(Page ID: {0})Queue: {1}': '(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}',\n 'no suitable node to control in this workflow': '\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9',\n \"Save\": \"\u4FDD\u5B58\",\n \"Edit\": \"\u7F16\u8F91\",\n \"Edit in ComfyUI\": \"\u5728 ComfyUI \u4E2D\u7F16\u8F91\",\n \"using browser page [{0}] for workflow running\": '\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41',\n 'workflow running by hidden webview': '\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C',\n 'Lock Image': '\u9501\u5B9A\u56FE\u50CF',\n 'Unlock Image': '\u89E3\u9501\u56FE\u50CF',\n 'search...': '\u641C\u7D22...',\n 'disabled when running in browser page': '\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528',\n 'only supported in Photoshop': '\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301',\n 'Login': '\u767B\u5F55',\n 'Invitation Code': '\u9080\u8BF7\u7801',\n 'Username': '\u7528\u6237\u540D',\n 'Password': '\u5BC6\u7801',\n 'Please input invitation code': '\u8BF7\u8F93\u5165\u9080\u8BF7\u7801',\n 'Please input username': '\u8BF7\u8F93\u5165\u7528\u6237\u540D',\n 'Please input password': '\u8BF7\u8F93\u5165\u5BC6\u7801',\n\n // photoshop connect error\n '502: Maybe the server is not running': '502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C',\n '404: Maybe SDPPP is not installed or failed to run in ComfyUI': '404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25',\n '{0}. reconnecting...': '{0}. \u91CD\u8FDE\u4E2D...',\n 'disconnected to {0} failed {1}': `\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}`,\n 'version mismatch, please reinstall PS plugin': '\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6',\n 'instance type not recognized': '\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B',\n 'Error: {0}': '\u9519\u8BEF: {0}',\n 'Verification Error': '\u9A8C\u8BC1\u9519\u8BEF',\n\n // photoshop event error\n 'document {0} not found': '\u627E\u4E0D\u5230\u6587\u6863: {0}',\n 'only layer kind \"TEXT\" is supported, invalid layer: {0}': '\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}',\n 'create layer failed': '\u521B\u5EFA\u56FE\u5C42\u5931\u8D25',\n 'layer not found {0}': '\u627E\u4E0D\u5230\u56FE\u5C42: {0}',\n 'no linked layer for {0}': '\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}',\n 'layer {0} is not a group': '\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4',\n 'no layer in group {0}': '\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42',\n 'layer not found: {0}': '\u627E\u4E0D\u5230\u56FE\u5C42: {0}',\n 'No upload_name': '\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25',\n 'get pixel of {0} failed': '\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}',\n 'merge group failed': '\u5408\u5E76\u7EC4\u5931\u8D25',\n 'invalid name: {0}': '\u975E\u6CD5\u7684\u540D\u79F0: {0}',\n 'get_layer_info: layer_identify required': 'get_layer_info: \u9700\u8981 layer_identify',\n 'invalid action: {0}': '\u65E0\u6548\u7684\u64CD\u4F5C: {0}',\n 'create document failed': '\u521B\u5EFA\u6587\u6863\u5931\u8D25',\n 'create document for preview': '\u521B\u5EFA\u9884\u89C8\u6587\u6863',\n 'resize document for preview': '\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8',\n 'no first related layer in {0}': '\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42',\n \"imageDataError: data length is not multiple of width * height\": \"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570\",\n \"imageDataError: originComponents must be 1 or 3\": \"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3\",\n 'unexpected connection lost, please try to reconnect': '\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5',\n \"Workflow list is empty, please save a workflow by Comfy's lastest UI\": '\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41',\n 'No opened ComfyUI pages': '\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762',\n 'comfyAPI is not initialized, maybe comfyUI is too old': '\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7',\n 'unsupported channel counts: {0}': '\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}',\n 'Timeout, Maybe the URL is wrong': '\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF',\n 'Workflow list loading failed: {0}': '\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}',\n 'Please register a user in ComfyUI': '\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237',\n 'GetSelection need Photoshop version 25+': 'GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C',\n 'Action {0} not found': 'Action {0} \u672A\u627E\u5230',\n 'Action set {0} not found': 'ActionSet {0} \u672A\u627E\u5230',\n\n // photoshop modal state\n 'create document for sent images': '\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863',\n 'show sent images': '\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247',\n 'fallback show sent images': '\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247',\n \"get content of layer {0}\": \"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9\",\n 'fallback get content of layer {0}': '\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9',\n 'get layer info': '\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F',\n 'sdppp extract PSD': 'sdppp \u5BFC\u5165 PSD',\n 'sdppp get PSD': 'sdppp \u83B7\u53D6 PSD', \n 'set text to layer': '\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C',\n 'sdppp Run Photoshop Action': 'sdppp \u8FD0\u884C Photoshop Action',\n \n // photoshop dialog/widget\n '{0} wants to extract a PSD file to Photoshop, are you sure?': '{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F',\n 'should sdppp refuse extracting PSD to Photoshop in this session anymore?': '\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F',\n 'Wide Mode': '\u5BBD\u5C4F\u6A21\u5F0F',\n 'Quick Set': '\u5FEB\u901F\u8BBE\u7F6E',\n 'Selected Layer': '\u9009\u4E2D\u56FE\u5C42',\n 'Selected Layer (invert)': '\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)',\n 'Canvas': '\u753B\u5E03',\n 'Selection': '\u9009\u533A',\n 'Manual': '\u624B\u52A8\u6A21\u5F0F',\n 'Auto': '\u81EA\u52A8\u6A21\u5F0F',\n\n // about\n 'This plugin is based on sd-ppp': '\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1',\n 'And follows its open source license:': '\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A',\n \"Cloud\": \"\u4E91\u7AEF\",\n \"Sponsors\": \"\u8D5E\u52A9\",\n \"waiting...\": '\u865A\u4F4D\u4EE5\u5F85',\n 'Links': '\u53CB\u60C5\u94FE\u63A5',\n 'Community': '\u793E\u533A',\n 'LICENSE:': '\u8BB8\u53EF\u8BC1\uFF1A',\n 'Official Site': '\u5B98\u65B9\u7F51\u7AD9',\n\n // comfy popup\n \"upload\": \"\u4E0A\u4F20\",\n \"Simplify Workflow\": \"\u7B80\u5316\u5DE5\u4F5C\u6D41\",\n \"Photoshop\": \"Photoshop\",\n \"Photoshop plugin settings\": \"Photoshop \u63D2\u4EF6\u8BBE\u7F6E\",\n \"Photoshop plugin\": \"Photoshop \u63D2\u4EF6\",\n \"SDPPP Settings/Misc\": \"SDPPP \u8BBE\u7F6E/\u6742\u9879\",\n \"Sample .PSD for this workflow:\": \"\u793A\u4F8B.PSD\",\n \"Download Example .PSD\": \"\u4E0B\u8F7D\u793A\u4F8B.PSD\",\n \"Maximum Image Size (px):\": \"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)\",\n \"Download\": \"\u4E0B\u8F7D\",\n \"Upload\": \"\u4E0A\u4F20\",\n \"Reset\": \"\u91CD\u7F6E\",\n 'Refresh': '\u5237\u65B0',\n 'Comfy URL (You can copy it to connect ComfyUI in the plugin):': 'Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):',\n 'use slider for number widget:': '\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757',\n 'Photoshop is not connected': 'Photoshop \u672A\u8FDE\u63A5',\n 'select...': '\u8BF7\u9009\u62E9',\n 'click to edit': '\u70B9\u51FB\u7F16\u8F91',\n\n // comfy call error\n 'ComfyManager not found, cannot reboot': 'Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F',\n 'Failed to reboot ComfyUI': '\u91CD\u542FComfyUI\u5931\u8D25',\n}\n", "import en from './en.mjs';\nimport zhcn from './zh-cn.mjs';\n//@ts-ignore\nconst require_ = typeof require != 'undefined' ? require : undefined\n\nlet locale = 'en'\nif (typeof navigator !== 'undefined' && navigator.language) {\n locale = navigator.language == \"zh-CN\" ? 'zhcn' : 'en'\n} else if (require_) {\n locale = require_('uxp').host.uiLocale.startsWith(\"zh\") ? 'zhcn' : 'en';\n}\n\nexport type I18nKey = keyof typeof zhcn;\n\nexport default function i18n(key: keyof typeof zhcn, ...args: any[]) {\n const formatStr: string = locale == 'zhcn' ? zhcn[key] : (key in en ? (en as any)[key] : key);\n if (!formatStr) throw new Error(`i18n key not found: ${key}`);\n\n return formatStr.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != 'undefined' ? args[number] : match\n });\n}\n\nexport function isValidI18nKey(key: string) {\n return key in zhcn;\n}\n\nexport function isI18nOf(key: keyof typeof zhcn, str: string) {\n return key == str || zhcn[key] == str;\n}\n\nexport function getI18nLocale() {\n return locale;\n}\n", "import React from \"react\";\n\nexport default class ActionButton extends React.Component<{\n onClick?: (...args: any[]) => any\n highlight?: boolean\n children?: React.ReactNode\n}> {\n render() {\n return (\n
    \n {this.props.children}\n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class AgentIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}", "import React from \"react\";\n\nexport default class LivePaintingIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n \n
    \n )\n }\n}", "import React from \"react\";\n\nexport default class PlayIcon extends React.Component<{\n size?: number\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\nimport ActionButton from \"./ActionButton\";\nimport AgentIcon from \"./icons/AgentIcon\";\nimport LivePaintingIcon from \"./icons/LivePaintingIcon\";\nimport PlayIcon from \"./icons/PlayIcon\";\nimport { useSDPPPContext, useSDPPPComfyCaller, SDPPPWebpageInstance } from \"./SDPPPInternalBridge\";\n\ninterface WebPageListItemProps {\n pageInstance: SDPPPWebpageInstance\n}\n\nconst WebPageListItem: React.FC = ({\n pageInstance\n}) => {\n const {\n autoRunning,\n setAutoRunning,\n workflowAgentSID,\n setWorkflowAgentSID,\n } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n const isWorkflowAgent = workflowAgentSID == pageInstance.sid;\n const isAutoRunning = autoRunning?.value == pageInstance.sid;\n\n return (\n
  • \n {\n setWorkflowAgentSID(isWorkflowAgent ? '' : pageInstance.sid)\n }}>\n
    [{pageInstance.ssid}] {pageInstance.lastError ? pageInstance.lastError?.replace('sdppp PS side error:', '') : pageInstance.title}
    \n
    \n
    \n
    \n {\n setWorkflowAgentSID(isWorkflowAgent ? '' : pageInstance.sid)\n }} />\n
    \n {\n setAutoRunning(isAutoRunning ? null : { type: 'page', value: pageInstance.sid })\n }}>\n \n \n { runPage(pageInstance.sid) }}>\n \n \n
    \n
  • \n );\n}\n\nexport default WebPageListItem;\n", "import React from \"react\";\nimport i18n from \"../../../../src/common/i18n.mjs\";\nimport WebPageListItem from \"./WebPageListItem\";\nimport { useSDPPPContext, useSDPPPWebpageList } from \"./SDPPPInternalBridge\";\n\nconst WebPageList: React.FC = () => {\n const {\n autoRunning\n } = useSDPPPContext();\n\n const { pageInstances } = useSDPPPWebpageList();\n\n return (\n <>\n
    \n

    {i18n('webpages')}

    \n
    \n {\n !pageInstances.length && {i18n(\"No opened ComfyUI pages\")}\n }\n
      \n {\n pageInstances.map((item) => {\n return (\n \n )\n })\n }\n
    \n {autoRunning?.type == 'page' ? {\n i18n(`auto run page [{0}] after change..`, pageInstances.find(item => item.sid == autoRunning?.value)?.title)\n } : ''}\n \n );\n};\n\nexport default WebPageList;\n", "import React from \"react\";\n\nexport default class EditIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class FolderIcon extends React.Component<{\n size?: number\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\nimport ActionButton from \"./ActionButton.js\";\nimport EditIcon from \"./icons/EditIcon.js\";\nimport FolderIcon from \"./icons/FolderIcon.js\";\nimport LivePaintingIcon from \"./icons/LivePaintingIcon.js\";\nimport PlayIcon from \"./icons/PlayIcon.js\";\nimport { useSDPPPContext, useSDPPPComfyCaller } from \"./SDPPPInternalBridge.js\";\n\ninterface WorkflowListItemProps {\n path: string\n isDir: boolean\n isChecked: boolean\n workflow?: {\n path: string\n error: string\n }\n\n onRun: (path: string) => Promise,\n dirname?: string,\n onDirectorySet?: (path: string) => void,\n setEditorMode: (editorMode: boolean) => void\n}\n\nconst WorkflowListItem: React.FC = ({\n path,\n isDir,\n isChecked,\n workflow,\n onRun,\n dirname,\n onDirectorySet,\n setEditorMode\n}) => {\n const {\n setAutoRunning,\n workflowAgentSID\n } = useSDPPPContext();\n const {\n openWorkflow\n } = useSDPPPComfyCaller();\n\n if (isDir) {\n return (\n
  • \n {\n if (path == '../') {\n const directoryWithoutSuffix = dirname || ''\n const lastSlashIndex = directoryWithoutSuffix.lastIndexOf('/')\n if (lastSlashIndex == -1) {\n onDirectorySet?.('')\n } else {\n onDirectorySet?.(directoryWithoutSuffix.slice(0, lastSlashIndex))\n }\n } else {\n onDirectorySet?.(path)\n }\n }}>\n \n
    {path}
    \n
    \n
  • \n );\n }\n\n if (!workflow) return null;\n\n return (\n
  • \n {\n setEditorMode(true)\n openWorkflow(workflowAgentSID, workflow.path)\n }}>\n
    \n {workflow.error ? workflow.error.replace('sdppp PS side error:', '') : workflow.path}\n
    \n
    \n
    \n
    \n {\n setEditorMode(true)\n openWorkflow(workflowAgentSID, workflow.path)\n }} />\n
    \n {\n if (!isChecked) {\n setAutoRunning({ type: 'workflow', value: path })\n } else {\n setAutoRunning(null)\n }\n }}>\n \n \n { onRun(workflow.path) }}>\n \n \n
    \n
  • \n );\n}\n\nexport default WorkflowListItem;\n", "import React from \"react\";\nimport i18n from \"../../../../src/common/i18n.mjs\";\nimport WorkflowListItem from \"./WorkflowListItem.js\";\nimport {\n useSDPPPComfyCaller, useAgentState,\n useSDPPPContext, useSDPPPWorkflowList\n} from \"./SDPPPInternalBridge.js\";\n\ninterface WorkflowListProps {\n setEditorMode: (editorMode: boolean) => void\n}\n\nconst WorkflowList: React.FC = ({ setEditorMode }) => {\n const {\n autoRunning,\n webviewAgentSID,\n workflowAgentSID,\n } = useSDPPPContext();\n\n const {\n runWorkflow,\n } = useSDPPPComfyCaller();\n\n const {\n workflows,\n workflowsError,\n currentViewingDirectory,\n setCurrentViewingDirectory,\n showingList\n } = useSDPPPWorkflowList();\n\n const {\n ssid,\n lastError,\n progress,\n executingNodeTitle,\n queueSize,\n } = useAgentState(workflowAgentSID);\n\n let statusText = '';\n let queueText = ' ';\n let hasLastError = false;\n if (workflowAgentSID) {\n if (lastError) {\n statusText += i18n('Error: {0}', lastError);\n hasLastError = true;\n } else if (progress) {\n statusText += `(${progress}% - ${executingNodeTitle}...)`;\n } else if (workflowAgentSID) {\n if (workflowAgentSID == webviewAgentSID) {\n statusText += i18n('workflow running by hidden webview');\n } else {\n statusText += i18n('using browser page [{0}] for workflow running', ssid);\n }\n }\n queueText += `(${i18n('Queue:')} ${queueSize})`;\n }\n\n let listReplacer = null;\n if (workflowsError)\n listReplacer = {workflowsError}\n\n return (\n <>\n
    \n

    {i18n('workflows')}{queueText}

    \n {statusText}\n
    \n {listReplacer ||\n
      \n {\n currentViewingDirectory ?\n { }}\n dirname={currentViewingDirectory.slice(0, -1)}\n onDirectorySet={(dirname) => {\n setCurrentViewingDirectory(dirname)\n }}\n />\n : ''\n }\n {\n showingList.map((item: { path: string, isDir: boolean }) => {\n const path = item.path;\n const workflow = workflows[path]\n const checked = autoRunning?.value == path;\n if (item.isDir) {\n return (\n {\n await runWorkflow(path);\n }}\n dirname={currentViewingDirectory.slice(0, -1)}\n onDirectorySet={(dirname) => {\n setCurrentViewingDirectory(dirname)\n }}\n />\n )\n }\n return (\n {\n await runWorkflow(path);\n }}\n />\n )\n })\n }\n
    \n }\n {autoRunning?.type == 'workflow' ? {i18n(`auto run workflow [{0}] after change..`, workflows[autoRunning?.value]?.path)} : ''}\n \n );\n};\n\nexport default WorkflowList;", "import { useSDPPPContext, Promote } from \"./SDPPPInternalBridge.js\";\nimport i18n, { isValidI18nKey } from \"../../../../src/common/i18n.mjs\";\nimport WebPageList from \"./WebPageList.js\";\nimport WorkflowList from \"./WorkflowList.js\";\nimport { useEffect, useState } from \"react\";\nimport { WorkflowEditWrap } from \"./WorkflowEditWrap.js\";\nimport type { AddressBarType, WorkflowEditPhotoshopType } from \"./SDPPPInternalBridge.js\";\n\nexport function Content({\n connectState,\n AddressBar,\n WorkflowEditPhotoshop,\n}: {\n connectState: 'connected' | 'disconnected' | 'connecting',\n AddressBar: AddressBarType,\n WorkflowEditPhotoshop: WorkflowEditPhotoshopType,\n}) {\n const [editorMode, setEditorMode] = useState(false);\n const [initAfter8s, setInitAfter8s] = useState(false);\n useEffect(() => {\n if (connectState === 'connected') {\n const timeout = setTimeout(() => {\n setInitAfter8s(true);\n }, 8000);\n return () => clearTimeout(timeout);\n } else {\n setInitAfter8s(false);\n }\n }, [connectState]);\n\n const {\n workflowAgentSID,\n webviewAgentSID,\n lastConnectErrorMessage,\n\n } = useSDPPPContext();\n\n const editorCardShowingIndex = editorMode ? 1 : 0;\n\n const [prevIsNotWebview, setPrevIsNotWebview] = useState(false);\n\n // when disconnect and the agent is not webview, set editor mode to false\n useEffect(() => {\n if (workflowAgentSID) {\n setPrevIsNotWebview(workflowAgentSID != webviewAgentSID);\n } else {\n if (prevIsNotWebview) {\n setEditorMode(false);\n }\n }\n }, [workflowAgentSID]);\n useEffect(() => {\n if (connectState === 'disconnected') {\n setEditorMode(false);\n }\n }, [connectState]);\n return (\n <>\n
    \n {\n !editorMode ?\n
    \n
    \u2B24
    \n
    \n :\n {\n setEditorMode(false);\n }}\n >\u2190\n }\n \n
    \n {\n lastConnectErrorMessage ? (\n
    \n \n {isValidI18nKey(lastConnectErrorMessage) ? i18n(lastConnectErrorMessage as any) : lastConnectErrorMessage}\n \n
    \n ) : ''\n }\n\n \n\n \n\n {\n connectState === \"connected\" &&\n
    \n
    \n
    \n {initAfter8s && !webviewAgentSID && {i18n('hidden webview load failed: {0}, please select a browser page to continue', i18n('timeout'))}}\n \n {workflowAgentSID && }\n
    \n
    \n
    \n {editorMode && workflowAgentSID && }\n
    \n
    \n }\n \n );\n}\n\n\n", "import { useCallback, useMemo } from \"react\"\nimport i18n from \"../../../../src/common/i18n.mjs\"\nimport LivePaintingIcon from \"./icons/LivePaintingIcon\"\nimport PlayIcon from \"./icons/PlayIcon\"\nimport {\n useSDPPPComfyCaller,\n useSDPPPContext,\n useAgentState,\n} from \"./SDPPPInternalBridge\"\nimport RefreshIcon from \"./icons/RefreshIcon\"\nimport SaveIcon from \"./icons/SaveIcon\"\nimport PlayMultiIcon from \"./icons/PlayMultiIcon\"\nimport WebEditIcon from \"./icons/WebEditIcon\"\nimport CrossIcon from \"./icons/CrossIcon\"\nimport StopIcon from \"./icons/StopIcon\"\nimport CancelIcon from \"./icons/CancelIcon\"\nimport { action } from \"photoshop\";\n\n// \u72B6\u6001\u663E\u793A\u7EC4\u4EF6\nconst WorkflowStatus = () => {\n const { workflowAgentSID, autoRunning } = useSDPPPContext();\n const { lastError, progress, executingNodeTitle } = useAgentState(workflowAgentSID);\n\n return (\n
    \n {autoRunning ? {i18n('auto run workflow after change..')} : ''}\n {lastError ? {lastError} : ''}\n {executingNodeTitle ? <>\n {`${progress}% ${executingNodeTitle}...`}\n \n : ''}\n
    \n );\n};\n\n// \u4FDD\u5B58\u548C\u5237\u65B0\u6309\u94AE\u7EC4\nconst SaveButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { saveWorkflow, reopenWorkflow } = useSDPPPComfyCaller();\n\n const onSave = useCallback(async () => {\n await saveWorkflow(workflowAgentSID);\n }, [saveWorkflow, workflowAgentSID]);\n\n return (\n \n \n \n );\n};\nconst ClearButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { clearQueue } = useSDPPPComfyCaller();\n const onClear = useCallback(() => {\n clearQueue();\n }, [clearQueue]);\n\n return \n \n \n}\n\nconst RebootButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { reboot } = useSDPPPComfyCaller();\n const onReboot = useCallback(() => {\n reboot();\n }, [reboot]);\n\n return \u91CD\u542F\n}\n\nconst StopButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { interrupt } = useSDPPPComfyCaller();\n const onInterrupt = useCallback(() => {\n interrupt();\n }, [interrupt]);\n\n return \n \n \n}\nconst StopAndCancelButton = () => {\n const { interrupt } = useSDPPPComfyCaller();\n const { clearQueue } = useSDPPPComfyCaller();\n const onClearAndInterrupt = useCallback(async () => {\n await clearQueue();\n await interrupt();\n }, [clearQueue, interrupt]);\n\n return \n \n \n}\n\nconst RefreshButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { reopenWorkflow } = useSDPPPComfyCaller();\n const onReopen = useCallback(() => {\n reopenWorkflow(workflowAgentSID);\n }, [reopenWorkflow, workflowAgentSID]);\n\n return \n \n \n}\n\nconst PlayMultiButtons = () => {\n const { workflowAgentSID, autoRunning } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n return <>\n {!autoRunning ? { runPage(workflowAgentSID, 10) }}>\n \n : ''}\n {!autoRunning ? { runPage(workflowAgentSID, 3) }}>\n \n : ''}\n \n}\n\n// \u81EA\u52A8\u8FD0\u884C\u6309\u94AE\nconst AutoRunButtons = () => {\n const { workflowAgentSID, autoRunning, setAutoRunning } = useSDPPPContext();\n\n return (\n {\n if (autoRunning?.value == workflowAgentSID) {\n setAutoRunning(null);\n } else {\n setAutoRunning({\n type: 'page',\n value: workflowAgentSID\n });\n }\n }}>\n \n \n );\n};\n\n// \u7F16\u8F91\u6309\u94AE\nconst EditButton = () => {\n const { workflowAgentSID, webviewAgentSID, toggleWebviewDialog } = useSDPPPContext();\n const usingWebview = workflowAgentSID == webviewAgentSID;\n\n return (\n { toggleWebviewDialog() }}\n title={!usingWebview ? i18n('disabled when running in browser page') : i18n('Edit in ComfyUI')}\n >\n \n \n );\n};\n\n// \u8FD0\u884C\u6309\u94AE\nconst RunButton = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n return (\n { \n runPage(workflowAgentSID);\n }}>\n \n \n );\n};\nconst RunMultiButtons = () => {\n const { workflowAgentSID } = useSDPPPContext();\n const { runPage } = useSDPPPComfyCaller();\n\n return (\n <>\n
    { runPage(workflowAgentSID, 2) }}>x2
    \n
    { runPage(workflowAgentSID, 5) }}>x5
    \n
    { runPage(workflowAgentSID, 9) }}>x9
    \n \n )\n}\n\n// const TestButtons = () => {\n// const { interrupt, clearQueue, reboot } = useSDPPPComfyCaller();\n\n// return (\n// { reboot() }}>\n// \n// \n// )\n// }\n\nexport function WorkflowEditWrap({\n WorkflowEditPhotoshop\n}: {\n WorkflowEditPhotoshop: any,\n}) {\n const { workflowAgentSID } = useSDPPPContext();\n const { ssid, queueSize } = useAgentState(workflowAgentSID);\n\n return useMemo(() => {\n return (\n
    \n
    \n {i18n('(Page ID: {0})Queue: {1}', ssid, queueSize)}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n {/* */}\n
    \n
    \n
    \n \n {/* */}\n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n );\n }, [ssid, queueSize]);\n}\n", "import React from \"react\";\n\nexport default class RefreshIcon extends React.Component<{\n size?: number,\n onClick?: (...args: any[]) => any\n}> {\n render() {\n const size = this.props.size || 1\n return (\n
    \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class SaveIcon extends React.Component {\n render() {\n return (\n
    \n \n \n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class PlayMultiIcon extends React.Component<{ count: number }> {\n render() {\n return (\n
    \n \n \n \n {this.props.count}\n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class WebEditIcon extends React.Component {\n render() {\n return (\n
    \n \n \n\n \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class CrossIcon extends React.Component<{\n size?: number,\n hollowStyle?: boolean\n}> {\n render() {\n return (\n
    \n \n \n \n \n
    \n )\n }\n}", "import React from \"react\";\n\nexport default class StopIcon extends React.Component<{\n size?: number,\n hollowStyle?: boolean\n}> {\n render() {\n return (\n
    \n \n
    \n )\n }\n}\n", "import React from \"react\";\n\nexport default class CancelIcon extends React.Component<{\n size?: number,\n}> {\n render() {\n return (\n
    \n \n {/* Single diagonal line from bottom-left to top-right */}\n \n \n {/* Circle outline */}\n \n \n
    \n )\n }\n}", "import { Content } from \"./Content.js\";\nimport { SDPPP, SDPPPProvider } from \"./SDPPPInternalBridge.js\";\n\nexport default function Main() {\n return (\n \n
    \n {\n return (\n \n )\n }}\n />\n
    \n
    \n )\n}", "import Main from \"./tsx/Main.js\";\nimport { createRoot } from \"react-dom/client\";\n\ndeclare const globalThis: any;\nglobalThis.sdppp = globalThis.sdppp || {};\nglobalThis.sdppp.renderPhotoshopPlugin = (rootElement: HTMLElement) => {\n createRoot(rootElement).render(
    );\n}\n\nconst logs: any[] = [];\nconst warningLogs: any[] = [];\nconst errorLogs: any[] = [];\nglobalThis.sdppp.getLogs = () => {\n return {\n logs,\n warningLogs,\n errorLogs\n }\n}\nglobalThis.sdppp.enableLogCapture = () => {\n console.log = (function(log) {\n return function(...args: any[]) {\n log(...args);\n logs.push(args);\n }\n })(console.log);\n\n console.warn = (function(log) {\n return function(...args: any[]) {\n log(...args);\n warningLogs.push(args);\n }\n })(console.warn);\n\n console.error = (function(log) {\n return function(...args: any[]) {\n log(...args);\n errorLogs.push(args);\n }\n })(console.error);\n}"], + "mappings": "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", "names": ["React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_jsx_runtime", "import_jsx_runtime", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_jsx_runtime", "import_jsx_runtime", "path", "import_react", "import_react", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_jsx_runtime", "import_jsx_runtime", "import_jsx_runtime", "import_jsx_runtime"] } diff --git a/plugins/photoshop/dist/photoshop-internal.js b/plugins/photoshop/dist/photoshop-internal.js index 8915d79..73a105f 100644 --- a/plugins/photoshop/dist/photoshop-internal.js +++ b/plugins/photoshop/dist/photoshop-internal.js @@ -1,6 +1,6 @@ -"use strict";(()=>{var li=Object.create;var Nt=Object.defineProperty;var po=Object.getOwnPropertyDescriptor;var di=Object.getOwnPropertyNames;var fi=Object.getPrototypeOf,pi=Object.prototype.hasOwnProperty;var _=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Ot=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Sr=(e,t)=>{for(var r in t)Nt(e,r,{get:t[r],enumerable:!0})},mi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of di(t))!pi.call(e,n)&&n!==r&&Nt(e,n,{get:()=>t[n],enumerable:!(o=po(t,n))||o.enumerable});return e};var w=(e,t,r)=>(r=e!=null?li(fi(e)):{},mi(t||!e||!e.__esModule?Nt(r,"default",{value:e,enumerable:!0}):r,e));var x=(e,t,r,o)=>{for(var n=o>1?void 0:o?po(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(n=(o?s(t,r,n):s(n))||n);return o&&n&&Nt(t,r,n),n};var I=Ot((Xs,Eo)=>{"use strict";Eo.exports=window.React});var v=Ot((la,To)=>{"use strict";To.exports=window.ReactJSXRuntime});var Mo=Ot((ma,Wo)=>{"use strict";Wo.exports=window.socketIO});var St=Ot((Ta,Go)=>{"use strict";Go.exports=window.Jimp});var fo={};Sr(fo,{Promote:()=>ci,SDPPP:()=>ni,SDPPPProvider:()=>xn,useAgentState:()=>On,useSDPPPComfyCaller:()=>ae,useSDPPPContext:()=>Le,useSDPPPWebpageList:()=>Rn,useSDPPPWorkflowList:()=>Nn});var T=_("photoshop");var ye=_("photoshop"),gi=_("uxp");var br={"SDPPP Get Document":"SDPPP Get Document","SDPPP Get Layer By ID":"SDPPP Get Layer","SDPPP Get Linked Layers":"SDPPP Get Linked Layers","SDPPP Get Layers In Group":"SDPPP Get Layers In Group","SDPPP Get Text From Layer":"SDPPP Get Text From Layer","SDPPP Parse Layer Info":"SDPPP Parse Layer Info","SDPPP Get Selection":"SDPPP Get Selection","SDPPP Get Image From Photoshop":"SDPPP Get Image From Photoshop","SDPPP Send Images To Photoshop":"SDPPP Send Images To Photoshop","SDPPP Settings":"SDPPP Settings/Misc"};var vr={"### Active Document ###":"### \u5F53\u524D\u6587\u6863 ###","### The Canvas ###":"### \u6574\u4E2A\u753B\u5E03 ###","### New Layer ###":"### \u65B0\u56FE\u5C42 ###","### Selected Layer ###":"### \u6240\u9009\u56FE\u5C42 ###","### Keep Size or Fit Canvas ###":"### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###",_SDPPP_PSD_:"_SDPPP_PSD_","Save and run immediately":"\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C",Close:"\u5173\u95ED","Select a {0}":"\u9009\u62E9\u4E00\u4E2A {0}","How to use .ccx file":"\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6","1. If you have installed Adobe Creative Cloud":"1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud","Just double click the .ccx file, it will install the plugin automatically":"\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5","2. If you don't have Adobe Creative Cloud":"2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud","Rename .ccx to .zip and extract it into ":"\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230",or:"\u6216","Photoshop directory":"Photoshop \u5B89\u88C5\u76EE\u5F55","Cannot connect multiple different document widgets with same value":"\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6","You can only have one SDPPP Settings node in a workflow":"\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9","convert widget {0} failed:":"\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A","hidden webview load failed: {0}, please select a browser page to continue":"\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED","SDPPP Get Document":"SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)","SDPPP Get Layer By ID":"SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)","SDPPP Get Linked Layers":"SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)","SDPPP Get Layers In Group":"SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)","SDPPP Get Text From Layer":"SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)","SDPPP Parse Layer Info":"SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)","SDPPP Get Selection":"SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)","SDPPP Get Image From Photoshop":"SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)","SDPPP Send Images To Photoshop":"SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)","SDPPP Send Text To Layer":"SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)","SDPPP Run Photoshop Action":"SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)","download PS plugin (.ccx)":"\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)","current ComfyUI pageid: {0}":"\u5F53\u524D ComfyUI \u9875\u9762ID: {0}","current A1111 pageid: {0}":"\u5F53\u524D A1111 \u9875\u9762ID: {0}","document linked":"\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5","layer linked":"\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5","bound linked":"\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5",document:"\u6587\u6863",Document:"\u6587\u6863",DOCUMENT:"\u6587\u6863",document_name:"\u6587\u6863\u540D\u5B57id",layer_nameid:"\u56FE\u5C42\u540D\u5B57id",layer_name:"\u56FE\u5C42\u540D\u5B57",layer_info:"\u56FE\u5C42\u4FE1\u606F",bound_top:"\u8303\u56F4\u4E0A\u8FB9\u8DDD",bound_left:"\u8303\u56F4\u5DE6\u8FB9\u8DDD",bound_width:"\u8303\u56F4\u5BBD\u5EA6",bound_height:"\u8303\u56F4\u9AD8\u5EA6",center_x:"\u4E2D\u5FC3\u70B9x",center_y:"\u4E2D\u5FC3\u70B9y",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",Layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",bound:"\u8303\u56F4",bounds:"\u8303\u56F4","bounds [optional]":"\u8303\u56F4[\u53EF\u9009]",boundary:"\u8303\u56F4",Boundary:"\u8303\u56F4",canvas_boundary:"\u753B\u5E03\u8303\u56F4",canvas_bound:"\u753B\u5E03\u8303\u56F4",layer_boundary:"\u56FE\u5C42\u8303\u56F4",layer_bound:"\u56FE\u5C42\u8303\u56F4","Photoshop Disconnected!":"Photoshop \u672A\u8FDE\u63A5\uFF01",rgb_out:"RGB\u8F93\u51FA",alpha_out:"Alpha\u8F93\u51FA",images:"\u56FE\u50CF",text:"\u6587\u672C",ID_mode:"\u7CBE\u786EID\u6A21\u5F0F",name_mode:"\u540D\u5B57\u5339\u914D\u6A21\u5F0F",select:"\u9009\u62E9","document boundary":"\u6587\u6863\u8303\u56F4","layer boundary":"\u56FE\u5C42\u8303\u56F4","selection boundary":"\u9009\u4E2D\u8303\u56F4","save .psd to this workflow":"\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41","extract saved .psd to Photoshop":"\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop","sample .psd":"\u793A\u4F8B.psd",mask:"\u906E\u7F69",name:"\u540D\u79F0",quality:"\u56FE\u50CF\u8D28\u91CF",timeout:"\u8D85\u65F6","--multi-user activated, Not Login!":"--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01",Logout:"\u767B\u51FA","User: ":"\u7528\u6237: ",connect:"\u8FDE\u63A5",connected:"\u5DF2\u8FDE\u63A5",disconnect:"\u65AD\u5F00",disconnected:"\u5DF2\u65AD\u5F00\u8FDE\u63A5","reconnecting...":"\u91CD\u8FDE\u4E2D...",connecting:"\u8FDE\u63A5\u4E2D",webpages:"\u7F51\u9875\u5217\u8868",workflows:"\u5DE5\u4F5C\u6D41",workflow:"\u5DE5\u4F5C\u6D41","auto run page [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..","auto run workflow [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..","auto run workflow after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..",selection_only:"\u4EC5\u9009\u533A","Queue:":"\u961F\u5217:","Set As:":"\u8BBE\u7F6E\u4E3A:","Error {0}... please contact me via Discord/Github":"\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211","Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System":"Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF","Workflow List of ComfyUI with --multi-user is only available for sponsors":'\u5E26"--multi-user"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',"(Page ID: {0})Queue: {1}":"(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}","no suitable node to control in this workflow":"\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9",Save:"\u4FDD\u5B58",Edit:"\u7F16\u8F91","Edit in ComfyUI":"\u5728 ComfyUI \u4E2D\u7F16\u8F91","using browser page [{0}] for workflow running":"\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41","workflow running by hidden webview":"\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C","Lock Image":"\u9501\u5B9A\u56FE\u50CF","Unlock Image":"\u89E3\u9501\u56FE\u50CF","search...":"\u641C\u7D22...","disabled when running in browser page":"\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528","only supported in Photoshop":"\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301",Login:"\u767B\u5F55","Invitation Code":"\u9080\u8BF7\u7801",Username:"\u7528\u6237\u540D",Password:"\u5BC6\u7801","Please input invitation code":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","Please input username":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","Please input password":"\u8BF7\u8F93\u5165\u5BC6\u7801","502: Maybe the server is not running":"502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C","404: Maybe SDPPP is not installed or failed to run in ComfyUI":"404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25","{0}. reconnecting...":"{0}. \u91CD\u8FDE\u4E2D...","disconnected to {0} failed {1}":"\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}","version mismatch, please reinstall PS plugin":"\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6","instance type not recognized":"\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B","Error: {0}":"\u9519\u8BEF: {0}","Verification Error":"\u9A8C\u8BC1\u9519\u8BEF","document {0} not found":"\u627E\u4E0D\u5230\u6587\u6863: {0}",'only layer kind "TEXT" is supported, invalid layer: {0}':"\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}","create layer failed":"\u521B\u5EFA\u56FE\u5C42\u5931\u8D25","layer not found {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","no linked layer for {0}":"\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}","layer {0} is not a group":"\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4","no layer in group {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42","layer not found: {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","No upload_name":"\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25","get pixel of {0} failed":"\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}","merge group failed":"\u5408\u5E76\u7EC4\u5931\u8D25","invalid name: {0}":"\u975E\u6CD5\u7684\u540D\u79F0: {0}","get_layer_info: layer_identify required":"get_layer_info: \u9700\u8981 layer_identify","invalid action: {0}":"\u65E0\u6548\u7684\u64CD\u4F5C: {0}","create document failed":"\u521B\u5EFA\u6587\u6863\u5931\u8D25","create document for preview":"\u521B\u5EFA\u9884\u89C8\u6587\u6863","resize document for preview":"\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8","no first related layer in {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42","imageDataError: data length is not multiple of width * height":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570","imageDataError: originComponents must be 1 or 3":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3","unexpected connection lost, please try to reconnect":"\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5","Workflow list is empty, please save a workflow by Comfy's lastest UI":"\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41","No opened ComfyUI pages":"\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762","comfyAPI is not initialized, maybe comfyUI is too old":"\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7","unsupported channel counts: {0}":"\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}","Timeout, Maybe the URL is wrong":"\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF","Workflow list loading failed: {0}":"\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}","Please register a user in ComfyUI":"\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237","GetSelection need Photoshop version 25+":"GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C","Action {0} not found":"Action {0} \u672A\u627E\u5230","Action set {0} not found":"ActionSet {0} \u672A\u627E\u5230","create document for sent images":"\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863","show sent images":"\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","fallback show sent images":"\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","get content of layer {0}":"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","fallback get content of layer {0}":"\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","get layer info":"\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F","sdppp extract PSD":"sdppp \u5BFC\u5165 PSD","sdppp get PSD":"sdppp \u83B7\u53D6 PSD","set text to layer":"\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C","sdppp Run Photoshop Action":"sdppp \u8FD0\u884C Photoshop Action","{0} wants to extract a PSD file to Photoshop, are you sure?":"{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F","should sdppp refuse extracting PSD to Photoshop in this session anymore?":"\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F","Wide Mode":"\u5BBD\u5C4F\u6A21\u5F0F","Quick Set":"\u5FEB\u901F\u8BBE\u7F6E","Selected Layer":"\u9009\u4E2D\u56FE\u5C42","Selected Layer (invert)":"\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)",Canvas:"\u753B\u5E03",Selection:"\u9009\u533A",Manual:"\u624B\u52A8\u6A21\u5F0F",Auto:"\u81EA\u52A8\u6A21\u5F0F","This plugin is based on sd-ppp":"\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1","And follows its open source license:":"\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A",Cloud:"\u4E91\u7AEF",Sponsors:"\u8D5E\u52A9","waiting...":"\u865A\u4F4D\u4EE5\u5F85",Links:"\u53CB\u60C5\u94FE\u63A5",Community:"\u793E\u533A","LICENSE:":"\u8BB8\u53EF\u8BC1\uFF1A",upload:"\u4E0A\u4F20","Simplify Workflow":"\u7B80\u5316\u5DE5\u4F5C\u6D41",Photoshop:"Photoshop","Photoshop plugin settings":"Photoshop \u63D2\u4EF6\u8BBE\u7F6E","Photoshop plugin":"Photoshop \u63D2\u4EF6","SDPPP Settings/Misc":"SDPPP \u8BBE\u7F6E/\u6742\u9879","Sample .PSD for this workflow:":"\u793A\u4F8B.PSD","Download Example .PSD":"\u4E0B\u8F7D\u793A\u4F8B.PSD","Maximum Image Size (px):":"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)",Download:"\u4E0B\u8F7D",Upload:"\u4E0A\u4F20",Reset:"\u91CD\u7F6E",Refresh:"\u5237\u65B0","Comfy URL (You can copy it to connect ComfyUI in the plugin):":"Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):","use slider for number widget:":"\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757","Photoshop is not connected":"Photoshop \u672A\u8FDE\u63A5","select...":"\u8BF7\u9009\u62E9","click to edit":"\u70B9\u51FB\u7F16\u8F91","ComfyManager not found, cannot reboot":"Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F","Failed to reboot ComfyUI":"\u91CD\u542FComfyUI\u5931\u8D25"};var mo=typeof _<"u"?_:void 0,Wt="en";typeof navigator<"u"&&navigator.language?Wt=navigator.language=="zh-CN"?"zhcn":"en":mo&&(Wt=mo("uxp").host.uiLocale.startsWith("zh")?"zhcn":"en");function h(e,...t){let r=Wt=="zhcn"?vr[e]:e in br?br[e]:e;if(!r)throw new Error(`i18n key not found: ${e}`);return r.replace(/{(\d+)}/g,function(o,n){return typeof t[n]<"u"?t[n]:o})}function Fe(e,t){return e==t||vr[e]==t}function ft(){return Wt}var D=class e{static SPECIAL_DOCUMENT_CURRENT="### Active Document ###";static is_SPECIAL_DOCUMENT_CURRENT(t){return Fe(this.SPECIAL_DOCUMENT_CURRENT,t)}static get_SPECIAL_DOCUMENT_CURRENT(){return h(this.SPECIAL_DOCUMENT_CURRENT)}static SPECIAL_LAYER_KEEP_SIZE="### Keep Size or Fit Canvas ###";static is_SPECIAL_LAYER_FIT(t){return Fe(this.SPECIAL_LAYER_KEEP_SIZE,t)}static get_SPECIAL_LAYER_FIT(){return h(this.SPECIAL_LAYER_KEEP_SIZE)}static SPECIAL_LAYER_USE_CANVAS="### The Canvas ###";static is_SPECIAL_LAYER_USE_CANVAS(t){return Fe(this.SPECIAL_LAYER_USE_CANVAS,t)}static get_SPECIAL_LAYER_USE_CANVAS(){return h(this.SPECIAL_LAYER_USE_CANVAS)}static SPECIAL_LAYER_NEW_LAYER="### New Layer ###";static is_SPECIAL_LAYER_NEW_LAYER(t){return Fe(this.SPECIAL_LAYER_NEW_LAYER,t)}static get_SPECIAL_LAYER_NEW_LAYER(){return h(this.SPECIAL_LAYER_NEW_LAYER)}static SPECIAL_LAYER_SELECTED_LAYER="### Selected Layer ###";static is_SPECIAL_LAYER_SELECTED_LAYER(t){return Fe(this.SPECIAL_LAYER_SELECTED_LAYER,t)}static get_SPECIAL_LAYER_SELECTED_LAYER(){return h(this.SPECIAL_LAYER_SELECTED_LAYER)}static SPECIAL_LAYER_PREVIEW_DOCUMENT="_SDPPP_PSD_";static is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t){return Fe(this.SPECIAL_LAYER_PREVIEW_DOCUMENT,t)}static get_SPECIAL_LAYER_PREVIEW_DOCUMENT(){return h(this.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static getSpecialDocumentCurrent(){return h(e.SPECIAL_DOCUMENT_CURRENT)}static getSpecialLayerForGet(){return[h(e.SPECIAL_LAYER_USE_CANVAS),h(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialLayerForSend(){return[h(e.SPECIAL_LAYER_NEW_LAYER),h(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialDocumentForPreview(){return h(e.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static fixI18n(t){return this.is_SPECIAL_DOCUMENT_CURRENT(t)?this.SPECIAL_DOCUMENT_CURRENT:this.is_SPECIAL_LAYER_NEW_LAYER(t)?this.SPECIAL_LAYER_NEW_LAYER:this.is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t)?this.SPECIAL_LAYER_PREVIEW_DOCUMENT:this.is_SPECIAL_LAYER_USE_CANVAS(t)?this.SPECIAL_LAYER_USE_CANVAS:this.is_SPECIAL_LAYER_SELECTED_LAYER(t)?this.SPECIAL_LAYER_SELECTED_LAYER:t}};function ve(e,t,r=0){return"-".repeat(r)+`${t} (id:${e})`}function ge(e,t){return`${t} (id:${e})`}function hi(e){let t=e.split(" (id:");return{name:t[0],id:parseInt(t[1].slice(0,-1))}}function ho(e){return hi(e)}function Be(){let e=ye.app.activeDocument?.activeLayers?.[0];return e?ve(e.id,e.name):D.get_SPECIAL_LAYER_USE_CANVAS()}function go(e,t,r,o,n){let i=r.left,s=r.top,a=r.right,c=r.bottom,l=a-i,p=c-s,m=o.left,u=o.top,f=o.right,d=o.bottom,g=f-m,y=d-u,P=Math.max(i,m),S=Math.max(s,u),E=Math.min(a,f),B=Math.min(c,d),ne=E-P,lt=B-S,j=g*y*n;if(t.length!==j)throw new Error(`toImageDataArray.length(${t.length}) !== toLength(${j})`);let Q=ne*lt*n;if(e.length!==Q)throw new Error(`fromImageDataArray.length(${e.length}) !== fromLength(${Q})`);for(let Ue=0;Ue=i&&dt=s&&xt0?e.activeLayers[0].id:0:D.is_SPECIAL_LAYER_NEW_LAYER(t)?-2:yo(t)}function Dr(e,t=0,r=""){return e?.layers?e.layers.reduce((o,n)=>{let i=t==0?`/${n.name}`:`${r}/${n.name}`;return o.push({layer:n,path:i,level:t}),o.concat(Dr(n,t+1,i))},[]):[]}function fe(e,t){if(!e.layers)return null;for(let r=0;rt.id==yi(e)))||null}function wo(e,t){return{name:t.name,opacity:t.opacity/100,boundary:{left:t.bounds?.left||0,top:t.bounds?.top||0,right:e.width-(t.bounds?.right||0),bottom:e.height-(t.bounds?.bottom||0),width:t.bounds?.width||0,height:t.bounds?.height||0},isGroup:t.kind==ye.constants.LayerKind.GROUP}}function Po(){let e=localStorage.getItem("sdppp_uid");return(!e||e.length!=3)&&(e=pt(3),localStorage.setItem("sdppp_uid",e)),e}function pt(e){let t="",r="abcdefghijklmnopqrstuvwxyz0123456789",o=r.length,n=0;for(;n{o[i]=r.bind(this,i),n.subscribe(t,o[i])})}unsubscribe(t){this.subscribers=this.subscribers.filter(([o,n])=>n!=t);let r=this.subscribersWithoutKey.get(t);r&&this.storeMap.forEach((o,n)=>{o.unsubscribe(r[n])})}addStore(t,r,o){let n=this.createStore(r,o);this.storeMap.set(t,n),this.subscribers.forEach(([i,s])=>{let a=this.subscribersWithoutKey.get(s);a||(a={},this.subscribersWithoutKey.set(s,a)),a[t]=s.bind(this,t),n.subscribe(i,a[t]),i=="/"&&s(t,r,null)})}removeStore(t){let r=this.storeMap.get(t);r&&(this.subscribers.forEach(([o,n])=>{let i=this.subscribersWithoutKey.get(n);i&&(r.unsubscribe(i[t]),o=="/"&&n(t,null,r.data))}),this.storeMap.delete(t))}sync(t){if(t instanceof Array){let r=Array.from(this.storeMap.keys()),o=t.filter(i=>!r.includes(i)),n=r.filter(i=>!t.includes(i));o.forEach(i=>this.addStore(i,{},0)),n.forEach(i=>this.removeStore(i))}else{Array.from(this.storeMap.keys()).filter(o=>!Object.keys(t).includes(o)).forEach(o=>this.removeStore(o));for(let o in t){let{data:n,version:i}=t[o];this.storeMap.has(o)?this.storeMap.get(o)?.sync(n,i):this.addStore(o,n,i)}}}};var Er={};Sr(Er,{JsonPatchError:()=>N,_areEquals:()=>gt,applyOperation:()=>Ve,applyPatch:()=>je,applyReducer:()=>Di,deepClone:()=>bi,getValueByPointer:()=>Qe,validate:()=>bo,validator:()=>qt});var Pi=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var i in n)n.hasOwnProperty(i)&&(o[i]=n[i])},e(t,r)};return function(t,r){e(t,r);function o(){this.constructor=t}t.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}(),Si=Object.prototype.hasOwnProperty;function Bt(e,t){return Si.call(e,t)}function Vt(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&o<=57){t++;continue}return!1}return!0}function pe(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function mt(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Ft(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&c[p-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&u===void 0&&(l[f]===void 0?u=c.slice(0,p).join("/"):p==m-1&&(u=t.path),u!==void 0&&d(t,0,e,u)),p++,Array.isArray(l)){if(f==="-")f=l.length;else{if(r&&!Qt(f))throw new N("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",i,t,e);Qt(f)&&(f=~~f)}if(p>=m){if(r&&t.op==="add"&&f>l.length)throw new N("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",i,t,e);var s=vi[t.op].call(t,l,f,e);if(s.test===!1)throw new N("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return s}}else if(p>=m){var s=ze[t.op].call(t,l,f,e);if(s.test===!1)throw new N("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return s}if(l=l[f],r&&p0)throw new N('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new N("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new N("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&Ft(e.value))throw new N("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var n=e.path.split("/").length,i=o.split("/").length;if(n!==i+1&&n!==i)throw new N("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==o)throw new N("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var s={op:"_get",path:e.from,value:void 0},a=bo([s],r);if(a&&a.name==="OPERATION_PATH_UNRESOLVABLE")throw new N("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new N("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function bo(e,t,r){try{if(!Array.isArray(e))throw new N("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)je(R(t),R(e),r||!0);else{r=r||qt;for(var o=0;oGt,generate:()=>Ir,observe:()=>ki,unobserve:()=>_i});var Cr=new WeakMap,Ei=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),Ii=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function Ci(e){return Cr.get(e)}function Ai(e,t){return e.observers.get(t)}function Li(e,t){e.observers.delete(t.callback)}function _i(e,t){t.unobserve()}function ki(e,t){var r=[],o,n=Ci(e);if(!n)n=new Ei(e),Cr.set(e,n);else{var i=Ai(n,t);o=i&&i.observer}if(o)return o;if(o={},n.value=R(e),t){o.callback=t,o.next=null;var s=function(){Ir(o)},a=function(){clearTimeout(o.next),o.next=setTimeout(s)};typeof window<"u"&&(window.addEventListener("mouseup",a),window.addEventListener("keyup",a),window.addEventListener("mousedown",a),window.addEventListener("keydown",a),window.addEventListener("change",a))}return o.patches=r,o.object=e,o.unobserve=function(){Ir(o),clearTimeout(o.next),Li(n,o),typeof window<"u"&&(window.removeEventListener("mouseup",a),window.removeEventListener("keyup",a),window.removeEventListener("mousedown",a),window.removeEventListener("keydown",a),window.removeEventListener("change",a))},n.observers.set(t,new Ii(t,o)),o}function Ir(e,t){t===void 0&&(t=!1);var r=Cr.get(e.object);Ar(r.value,e.object,e.patches,"",t),e.patches.length&&je(r.value,e.patches);var o=e.patches;return o.length>0&&(e.patches=[],e.callback&&e.callback(o)),o}function Ar(e,t,r,o,n){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var i=Vt(t),s=Vt(e),a=!1,c=!1,l=s.length-1;l>=0;l--){var p=s[l],m=e[p];if(Bt(t,p)&&!(t[p]===void 0&&m!==void 0&&Array.isArray(t)===!1)){var u=t[p];typeof m=="object"&&m!=null&&typeof u=="object"&&u!=null&&Array.isArray(m)===Array.isArray(u)?Ar(m,u,r,o+"/"+pe(p),n):m!==u&&(a=!0,n&&r.push({op:"test",path:o+"/"+pe(p),value:R(m)}),r.push({op:"replace",path:o+"/"+pe(p),value:R(u)}))}else Array.isArray(e)===Array.isArray(t)?(n&&r.push({op:"test",path:o+"/"+pe(p),value:R(m)}),r.push({op:"remove",path:o+"/"+pe(p)}),c=!0):(n&&r.push({op:"test",path:o,value:e}),r.push({op:"replace",path:o,value:t}),a=!0)}if(!(!c&&i.length==s.length))for(var l=0;lo!=t)}dispatch(t,r){let o=new Map;t.forEach(n=>{this.subscribers.forEach(([i,s])=>{n.path.startsWith(i)&&!o.has(i)&&o.set(i,JSON.stringify(i==="/"?r:Qe(r,i)))})}),o.forEach((n,i)=>{let s=i==="/"?this._data:Qe(this._data,i);n!==JSON.stringify(s)&&this.subscribers.filter(([a,c])=>a===i).forEach(([a,c])=>{let l={};try{l=c(s,JSON.parse(n||{}))}catch(p){console.error(p.stack||p.message||p)}l instanceof Promise&&l.catch(p=>{console.error(p.stack||p.message||p)})})})}};function O(e,t,r){return e.constructor[Ht]||(e.constructor[Ht]=[]),e.constructor[Ht].push(t),{value:function(...o){let n=R(this._data);r.value.apply(this,o);let i=Gt(n,this._data);i.length!=0&&(this._mutationRecords.push(...i),this._version+=i.length,this.dispatch(i,n))}}}var qe=class extends _r{constructor(t){super(Object.assign({sid:"",ssid:""},t||{}))}setSID(t){this._data.sid=t,this._data.ssid=t.slice(0,4)}};x([O],qe.prototype,"setSID",1);var me=class extends qe{constructor(t,r){super(t||{uname:"",comfyUserToken:"",activeDocumentID:0,documents:{},canvasStateID:0,selectionStateID:"",historyStateID:0}),this._version=r||0}setUName(t){this._data.uname="PS_"+t}setDocument(t,r){this._data.activeDocumentID=t,this._data.documents=r}setCanvasStateID(t){this._data.canvasStateID=t}setSelectionStateID(t){this._data.selectionStateID=t}setHistoryStateID(t){this._data.historyStateID=t}setComfyUserToken(t){this._data.comfyUserToken=t}};x([O],me.prototype,"setUName",1),x([O],me.prototype,"setDocument",1),x([O],me.prototype,"setCanvasStateID",1),x([O],me.prototype,"setSelectionStateID",1),x([O],me.prototype,"setHistoryStateID",1),x([O],me.prototype,"setComfyUserToken",1);var G=class extends qe{constructor(t,r){super(t||{title:"",webviewFromSid:location.search.match(/webview_fromsid=([^&]+)/)?.[1]||"",progress:0,lastError:"",queueSize:0,executingNodeTitle:"",widgetTableStructure:{widgetTablePath:"",widgetTablePersisted:!1,widgetTableID:"",nodes:{},groups:{},nodeIndexes:[],extraOptions:{}},widgetTableValue:{},widgetTableErrors:{},useSliderForNumberWidget:!1,hasPSDNodes:!1,comfyUserToken:""}),this._version=r||0}setWebviewFromSid(t){this._data.webviewFromSid=t}setTitle(t){this._data.title=t}setProgress(t){this._data.progress=t}setLastError(t){this._data.lastError=t}setQueueSize(t){this._data.queueSize=t}setExecutingNodeTitle(t){this._data.executingNodeTitle=t}setWidgetTableStructure(t){this._data.widgetTableStructure=JSON.parse(JSON.stringify(t))}setWidgetTableValue(t){this._data.widgetTableValue=JSON.parse(JSON.stringify(t))}setWidgetTableErrors(t){this._data.widgetTableErrors=JSON.parse(JSON.stringify(t))}setHasPSDNodes(t){this._data.hasPSDNodes=t}setComfyUserToken(t){this._data.comfyUserToken=t}setUseSliderForNumberWidget(t){this._data.useSliderForNumberWidget=t}};x([O],G.prototype,"setWebviewFromSid",1),x([O],G.prototype,"setTitle",1),x([O],G.prototype,"setProgress",1),x([O],G.prototype,"setLastError",1),x([O],G.prototype,"setQueueSize",1),x([O],G.prototype,"setExecutingNodeTitle",1),x([O],G.prototype,"setWidgetTableStructure",1),x([O],G.prototype,"setWidgetTableValue",1),x([O],G.prototype,"setWidgetTableErrors",1),x([O],G.prototype,"setHasPSDNodes",1),x([O],G.prototype,"setComfyUserToken",1),x([O],G.prototype,"setUseSliderForNumberWidget",1);var kr=class extends Ut{createStore(t,r){return new G(t,r)}},k=new kr,b=new me;var vo=e=>{let t,r=new Set,o=(l,p)=>{let m=typeof l=="function"?l(t):l;if(!Object.is(m,t)){let u=t;t=p??(typeof m!="object"||m===null)?m:Object.assign({},t,m),r.forEach(f=>f(t,u))}},n=()=>t,a={setState:o,getState:n,getInitialState:()=>c,subscribe:l=>(r.add(l),()=>r.delete(l))},c=t=e(o,n,a);return a},Do=e=>e?vo(e):vo;var Tr=w(I(),1);var Ti=e=>e;function xi(e,t=Ti){let r=Tr.default.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return Tr.default.useDebugValue(r),r}var Io=e=>{let t=Do(e),r=o=>xi(t,o);return Object.assign(r,t),r},Co=e=>e?Io(e):Io;var we=_("photoshop");var H=Co((e,t)=>({canvasDirtyID:0,selectionDirtyID:0,layerDirtyIDs:new Map,documentCache:{},incrementCanvasDirtyID:()=>{e(r=>({canvasDirtyID:r.canvasDirtyID+1})),xr()},incrementLayerDirtyID:r=>{e(o=>{let n=o.layerDirtyIDs.get(r)||0,i=new Map(o.layerDirtyIDs);return i.set(r,n+1),console.log(r,n+1),{layerDirtyIDs:i}}),xr()},incrementSelectionDirtyID:()=>{e(r=>({selectionDirtyID:r.selectionDirtyID+1})),xr()},setDocuments:r=>{e({documentCache:r}),we.app.activeDocument&&b.setDocument(we.app.activeDocument.id,JSON.parse(JSON.stringify(r)))},clearCanvasDirtyID:()=>{e({canvasDirtyID:0})},clearLayerDirtyIDs:()=>{e({layerDirtyIDs:new Map})},clearSelectionDirtyID:()=>{e({selectionDirtyID:0})}}));function xr(){if(!we.app.activeDocument)return;let e=H.getState().documentCache[we.app.activeDocument.id];if(e){let t={...e,dirtyID:H.getState().canvasDirtyID,layers:e.layers.map(r=>{let o=H.getState().layerDirtyIDs.get(r.id);return o!==void 0?{...r,dirtyID:o}:r})};H.setState(r=>({documentCache:{...r.documentCache,[we.app.activeDocument.id]:t}})),b.setDocument(we.app.activeDocument.id,H.getState().documentCache)}}function Je(){try{if(!we.app.activeDocument)return;let e=we.app.documents.reduce((t,r)=>{let o=Dr(r).map(n=>{let i=n.layer.id;return{level:n.level,id:i,name:n.layer.name,identify:ve(i,n.layer.name,n.level),fullPath:n.path,dirtyID:H.getState().layerDirtyIDs.get(i)||0}});return t[r.id]={name:r.name,id:r.id,identify:ge(r.id,r.name),layers:o,canvasDirtyID:H.getState().canvasDirtyID,selectionDirtyID:H.getState().selectionDirtyID},t},{});H.getState().setDocuments(e)}catch(e){console.error(e)}}function Yt(){H.getState().incrementCanvasDirtyID()}function De(e){Array.isArray(e)?e.forEach(t=>{H.getState().incrementLayerDirtyID(t)}):H.getState().incrementLayerDirtyID(e)}function Ao(){H.getState().clearCanvasDirtyID(),H.getState().clearLayerDirtyIDs(),Je()}function Rr(){H.getState().incrementSelectionDirtyID()}(async()=>{b.setUName(Po()),Je()})().catch(console.error);T.action.addNotificationListener(["historyStateChanged"],e=>{Ri(),(e.commandID==5004||e.commandID==5002)&&(wt(),De(T.app.activeDocument?.activeLayers.map(t=>t.id)))});T.action.addNotificationListener(["toolModalStateChanged"],(e,t,...r)=>{t.state._value=="exit"&&t.kind._value=="paint"&&(wt(),De(T.app.activeDocument?.activeLayers.map(o=>o.id)))});T.action.addNotificationListener(["modalStateChanged"],(e,t)=>{t.state._value=="exit"&&(wt(),De(T.app.activeDocument?.activeLayers.map(r=>r.id)))});T.action.addNotificationListener(["show","hide","transform","fill","crop"],()=>{wt(),De(T.app.activeDocument?.activeLayers.map(e=>e.id))});T.action.addNotificationListener(["delete","move","copyToLayer"],()=>{Je(),wt(),De(T.app.activeDocument?.activeLayers.map(e=>e.id))});T.action.addNotificationListener(["newDocument","open","close","make","modalJavaScriptScopeExit"],()=>Je());function wt(){let e=T.app.activeDocument?.historyStates;e&&b.setCanvasStateID(e[e.length-1].id),Yt()}function Ri(){let e=T.app.activeDocument?.historyStates;e&&b.setHistoryStateID(e[e.length-1].id)}function Lo(){b.setSelectionStateID(_o+"_"+yt+"_"+Kt)}var yt=T.app.activeDocument?.id,Kt=T.app.activeDocument?.activeLayers.map(e=>e.id).join(","),_o=0;T.action.addNotificationListener(["set"],(e,t)=>{t._target[0]._property=="selection"&&(_o++,Lo(),Rr())});function ko(){let e=T.app.activeDocument?.activeLayers.map(t=>t.id).join(",");yt!=T.app.activeDocument?.id&&Ao(),yt!=T.app.activeDocument?.id||Kt!=e?(yt=T.app.activeDocument?.id,Kt=e,Lo(),Rr()):(yt=T.app.activeDocument?.id,Kt=e),requestAnimationFrame(ko)}requestAnimationFrame(ko);setInterval(()=>Je(),5e3);var ot=w(I(),1);var W=w(I(),1);var A=w(I(),1);var Oo=w(v(),1),Ro=(0,A.createContext)(null);function No({children:e}){let t=Ni();return(0,A.useEffect)(()=>{window.addEventListener("message",o=>{o.data.action==="webview-connect"&&o.source?.postMessage({action:"webview-connect",payload:{webviewFromSid:b.data.sid}})});let r="";k.subscribe("/",(o,n,i)=>{n?.webviewFromSid==b.data.sid&&(t.setWebviewAgentSID(n?.sid),r||(r=n?.sid)),!n&&i.webviewFromSid==b.data.sid&&t.setWebviewAgentSID(r)})},[]),(0,Oo.jsx)(Ro.Provider,{value:{webviewAgentSID:t.webviewAgentSID,prevWebviewAgentSID:t.prevWebviewAgentSID,setWebviewAgentSID:t.setWebviewAgentSID,toggleWebviewDialog:t.toggleWebviewDialog,setSrc:t.setSrc,resetWebview:t.resetWebview},children:e})}function Ee(){let e=(0,A.useContext)(Ro);if(!e)throw new Error("useSDPPPWebview must be used within a SDPPPWebviewProvider");return e}function Ni(){let[e,t]=(0,A.useState)(null),[r,o]=(0,A.useState)(null),[n,i]=(0,A.useState)(null),[s,a]=(0,A.useState)(!1),[c,l]=(0,A.useState)(""),[p,m]=(0,A.useState)(""),[u,f]=(0,A.useState)(""),[d,g]=(0,A.useState)(!1),[y,P]=(0,A.useState)(!1),S=(0,A.useRef)(null);(0,A.useEffect)(()=>{let j=()=>{a(!1),m(u),ne()};return n?.addEventListener("close",j),()=>{n?.removeEventListener("close",j)}},[n,u,m,a]),(0,A.useEffect)(()=>{f(p)},[p]),(0,A.useEffect)(()=>{Oi(i,o);let j=xo();return t(j),S.current&&clearTimeout(S.current),g(!1),P(!1),S.current=setTimeout(()=>{g(!0)},5e3),j.addEventListener("loadstop",()=>{P(!0)}),()=>{S.current&&clearTimeout(S.current),n?.parentElement?.removeChild(n)}},[]);let[E,B]=(0,A.useState)("");(0,A.useEffect)(()=>{c&&(B(c),E===c?ne():(e?.setAttribute("src",c),r?.setAttribute("src",c)))},[c]);let ne=(0,A.useCallback)(()=>{e?.parentElement?.removeChild(e),a(!1),n?.close();let j=xo();t(j);let Q=c;l(""),B(""),setTimeout(()=>{l(Q)},300)},[e,c]),lt=(0,A.useCallback)(()=>{s?(n?.close(),a(!1)):(n?.show(),a(!0))},[n,s]);return{dialogShowing:s,toggleWebviewDialog:lt,setSrc:l,webviewAgentSID:p,setWebviewAgentSID:m,prevWebviewAgentSID:u,setPrevWebviewAgentSID:f,resetWebview:ne,anyWebviewLoaded:y,timeoutError:(0,A.useMemo)(()=>d&&!y,[d,y])}}function Oi(e,t){let r=document.createElement("dialog");r.className="sdppp-webview",r.style.padding="0",r.style.margin="0",r.style.width="1024px",r.style.height="768px",document.body.appendChild(r),e(r);let o=document.createElement("webview");return o.style.position="relative",o.style.width="1024px",o.style.height="768px",r.appendChild(o),t(o),r}var Pe=null;function xo(){Pe||(Pe=document.createElement("div"),Pe.style.position="absolute",Pe.style.width="100px",Pe.style.height="100px",Pe.style.right="0",Pe.style.bottom="-10000px",document.body.appendChild(Pe));let e=document.createElement("webview");return e.style.width="100px",e.style.height="100px",Pe?.appendChild(e),e}var Bo=w(Mo(),1);var Uo=`504 -`;var Fo=Uo.trim();var Nr=class{socket;constructor(t){let r="/"+[t.split("/").slice(3).filter(o=>o).join("/"),"sd-ppp/"].filter(o=>o).join("/");t=t.split("/").slice(0,3).join("/"),this.socket=(0,Bo.io)(t,{transports:["websocket"],path:r,query:{api_level:Fo},rejectUnauthorized:!1,autoConnect:!1}),this.socket.on("connect",()=>{this.socket.io.engine.binaryType="blob"})}get id(){return this.socket.id}connect(){this.socket.connect()}close(){this.socket.close(),this.socket.removeAllListeners()}};function Vo(...e){return e.reduce((t,r)=>r(t),Nr)}var zt=class{flushing=Promise.resolve();newFlushPending=!1;constructor(t){this.doFlush=t,this.pause()}doFlush;runFlush(){this.newFlushPending||(this.newFlushPending=!0,this.flushing=this.flushing.then(async()=>{await new Promise(t=>requestAnimationFrame(t)),this.newFlushPending=!1,await this.doFlush()}))}pause(){this.flushing=this.flushing.then(t=>new Promise(r=>{this.resume=r})).then(()=>{this.resume=()=>{}})}resume=()=>{}};function Qo(e,t){return function(r){return class extends r{constructor(o){super(o),this.socket.on("store_request",(i,s)=>{s({data:e.data,version:e.version})});let n=new zt(async()=>{let{operations:i,fromVersion:s,toVersion:a}=e.flush();await new Promise(c=>{let l=!1;setTimeout(()=>{l||(console.warn("flush timeout"),c())},5e3),this.socket.emit("store_flush",{operations:i,fromVersion:s},p=>{l=!0,c(),p?.error?console.error("flush error",p.error):e.flushDone(a)})})});e.subscribe("/",()=>{n.runFlush()}),this.socket.on("disconnect",()=>{n.pause()}),this.socket.on("connect",()=>{e.setSID(this.socket.id||""),requestAnimationFrame(()=>{this.socket.emit("sdppp_init",{type:t,data:e.data,version:e.version})})}),this.socket.on("sdppp_inited",i=>{n.resume()})}}}}function qo(e,t){return function(r){return class extends r{constructor(o){super(o),this.socket.on("store_flush",n=>{if(n.type!==t)return;let i=e.getStore(n.sid);if(i)i.patchVersionAcceptable(n.fromVersion)?i.patchData(n.operations):(console.warn("patch version not acceptable from",n.fromVersion,"current version is",i.version),this.socket.emit("store_request",{type:t},s=>{e.sync(s)}));else return this.socket.emit("store_request",{sid:n.sid},s=>{e.addStore(s.sid,s.data,s.version)})}),this.socket.on("store_remove",n=>{e.removeStore(n.sid)}),this.socket.on("sdppp_inited",n=>{this.socket.emit("store_request",{type:t},i=>{e.sync(i)})})}}}}async function Or(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=r.selection,n=o&&o.bounds?{left:o.bounds.left,top:o.bounds.top,right:r.width-o.bounds.right,bottom:r.height-o.bounds.bottom,width:o.bounds.width,height:o.bounds.height}:null,i={left:0,top:0,right:0,bottom:0,width:r.width,height:r.height};return{document_boundary:i,selection_boundary:n||i}}var bt=_("photoshop");var Ie=_("photoshop"),Wr=class{promise;restore;constructor(){this.restore=()=>{},this.promise=new Promise(t=>{this.restore=t})}add(t){this.promise.then(t)}};Ie.core.setExecutionMode({enableErrorStacktraces:!0});var Pt=Promise.resolve();async function U(e,t){let r=t.dontRecoverSelection||!1,o=new Wr,n=!1,i=[],s=[],a=t.commandName;r||(Ie.app.activeDocument.activeLayers.forEach(m=>i.push(m)),t.document&&Ie.app.activeDocument.id!=t.document.id&&t.document.activeLayers.forEach(m=>i.push(m)),s=i.map(m=>m.visible),o.add(()=>{i.forEach(m=>{m.selected||(m.selected=!0,n=!0)}),i.forEach((m,u)=>{m.visible=s[u]})}));let c=null;Pt=Pt.catch(m=>m).then(()=>new Promise(m=>{u();function u(){Ie.core.isModal()?requestAnimationFrame(u):m()}})).then(()=>Ie.core.executeAsModal(async function(m,...u){c=t.document?await m.hostControl.suspendHistory({documentID:t.document.id,name:a}):null,o.add(async()=>{await new Promise(requestAnimationFrame),n||c&&m.hostControl.resumeHistory(c)});try{let f=await e(o,m,...u);return o.restore(!0),f}catch(f){throw o.restore(!1),f}},{commandName:a,interactive:!0}));let l=null,p=null;try{await Pt}catch(m){p=m}if(n&&(Pt=Ie.core.executeAsModal(async m=>{i.forEach((u,f)=>{u.visible=s[f]}),c&&m.hostControl.resumeHistory(c)},{commandName:a,interactive:!0}),await Pt),p)throw p;return l}var $e=w(St(),1);function Mi(e,t){for(let r=0,o=e.length/4;r{i.dispose()}),{dataFromAPI:s,width:i.width,height:i.height}}async function Bi(e,t,r){if(!t)return null;let o={documentID:e.id,sourceBounds:r,layerID:t.id},n=null;try{n=await bt.imaging.getLayerMask(o)}catch(a){return console.warn(a),null}let i=n.imageData;if(!i)return null;let s=await i.getData({});return Promise.resolve().then(()=>{i.dispose()}),{dataFromAPI:s,width:i.width,height:i.height}}async function Ho(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=e.layer_identify,n=ie(r,o);if(e.boundary&&e.boundary.right+e.boundary.left+e.boundary.bottom+e.boundary.top+e.boundary.width+e.boundary.height!=r.width+r.height)throw new Error("The boundary is not for this document");let i=e.boundary?{left:e.boundary.left,top:e.boundary.top,right:r.width-e.boundary.right,bottom:r.height-e.boundary.bottom,width:e.boundary.width,height:e.boundary.height}:{left:0,top:0,right:r.width,bottom:r.height,width:r.width,height:r.height},s={pixelData:null,width:0,height:0},a=null,c,l,p={left:0,top:0,right:r.width,bottom:r.height},m=!1;if(await U(async d=>{let[g,y]=await Mt(r,n);y&&(a=g),a!=null&&d.add(()=>{a.delete()}),[c,l]=await Promise.all([Fi(r,g,i),Bi(r,g,i)]),p=g?.bounds??p,m=!1,g?m=g.transparentPixelsLocked:D.is_SPECIAL_LAYER_USE_CANVAS(o)&&(m=r.layers.every(P=>P.transparentPixelsLocked))},{commandName:h("get content of layer {0}",o),document:r}),!c)throw new Error(h("get pixel of {0} failed",o));c=jt(c),m&&(c=Ui(c)),s.pixelData=Jt(c,p,i);let u=null;return l&&(l=jt(l),u=Jt(l,p,i,1)),s.pixelData=Mi(s.pixelData,u),s.width=i.width,s.height=i.height,new $e.Jimp({data:Buffer.from(s.pixelData),width:i.width,height:i.height})}async function Yo(e){let t=await Ho(e),r=t.bitmap.width,o=t.bitmap.height,n=new Uint8Array(r*o);for(let a=0;a{let i=null,s=e.layer_identify,a=!1;if(e.layer_identify){s=e.layer_identify;let c=ie(r,s);if(D.is_SPECIAL_LAYER_USE_CANVAS(s))return o={name:"",opacity:1,boundary:{left:0,right:0,top:0,bottom:0,width:r.width,height:r.height},isGroup:!0,identify:s},o;[i,a]=await Mt(r,c),n.add(()=>{i&&a&&i.delete()})}if(!i)throw new Error(h("layer not found: {0}",e.layer_identify));o=Object.assign({isGroup:a,identify:s||""},wo(r,i))},{commandName:h("get layer info"),document:r}),o}var Xt=_("photoshop");async function Mr(e,t,r){let o=e.select||"all",n=e.document_identify,i=V(n);if(!i)throw new Error(h("document {0} not found",n));let s=e.layer_identifies,a=await Promise.all(s.map(async l=>{let p=ie(i,l);if(D.is_SPECIAL_LAYER_USE_CANVAS(l))throw new Error(h("layer not found: {0}",l));let m=fe(i,p);if(!m)throw new Error(h("layer not found {0}",l));r(m);let u=t(m);if(o==="first"&&u.length===0)throw new Error(h("no first related layer in {0}",l));let f=u.filter((d,g)=>o==="first"?g===0:o==="text"?d.kind===Xt.constants.LayerKind.TEXT:o==="image"?d.kind===Xt.constants.LayerKind.NORMAL:!0).map(d=>ve(d.id,d.name));return{layer_identifies:f,layer_infos:await Promise.all(f.map(d=>vt({document_identify:n,layer_identify:d})))}})),c={layer_identifies:[],layer_boundaries:[],layer_infos:[]};return a.forEach(({layer_identifies:l,layer_infos:p})=>{c.layer_identifies.push(...l),c.layer_boundaries.push(...p.map(m=>m.boundary)),c.layer_infos.push(...p)}),c}async function Ur(e){return Mr(e,t=>t.layers||[],t=>{if(t.kind!=Xt.constants.LayerKind.GROUP)throw new Error(h("layer {0} is not a group",t.name));if(!t.layers)throw new Error(h("layer {0} is not a group",t.name))})}async function Fr(e){return Mr(e,t=>t.linkedLayers||[],t=>{if(!t.linkedLayers)throw new Error(h("no linked layer for {0}",t.name))})}var Ko=_("photoshop"),zo=_("uxp");async function Vi(e,t){let r={documentID:e.id,sourceBounds:t},n=(await Ko.imaging.getSelection(r)).imageData,i=await n.getData({});return Promise.resolve().then(()=>{n.dispose()}),{dataFromAPI:i,width:n.width,height:n.height}}async function Dt(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=parseInt(zo.host.version.split(".")[0]);if(!isNaN(o)&&o<25)throw new Error(h("GetSelection need Photoshop version 25+"));let n=e.boundary?{left:e.boundary.left,top:e.boundary.top,right:r.width-e.boundary.right,bottom:r.height-e.boundary.bottom,width:e.boundary.width,height:e.boundary.height}:{left:0,top:0,right:r.width,bottom:r.height,width:r.width,height:r.height};if(!r.selection?.bounds){let s=new Uint8Array(n.width*n.height);return s.fill(255),{blob:s,width:n.width,height:n.height}}let i=null;return await U(async s=>{let a=await Vi(r,n);a=jt(a);let c=r.selection.bounds||{left:0,top:0,right:r.width,bottom:r.height};i=a&&Jt(a,c,n,1)},{document:r,commandName:"SDPPP getSelection"}),{blob:i,width:n.width,height:n.height}}var se=_("photoshop");async function Br(e){let{identifier:t}=e;if(D.is_SPECIAL_DOCUMENT_CURRENT(t)){if(!se.app.activeDocument){if(e.width&&e.height){let r=await Qi(e.width,e.height);if(r)return{value:ge(r.id,r.name)}}throw new Error(h("document {0} not found",t))}return{value:ge(se.app.activeDocument.id,se.app.activeDocument.name)}}else if(D.is_SPECIAL_LAYER_SELECTED_LAYER(t)){if(!se.app.activeDocument)return{error:h("document {0} not found","current")};let r=se.app.activeDocument.activeLayers[0];return r?{value:ve(r.id,r.name)}:{error:h("layer not found {0}",t)}}}async function Qi(e,t){if(se.app.activeDocument)return se.app.activeDocument;let r=null;return await U(async()=>{r=await se.app.createDocument({width:e,height:t,resolution:72,mode:se.constants.NewDocumentMode.RGB,fill:se.constants.DocumentFill.TRANSPARENT})},{document:null,commandName:h("create document for sent images")}),r}var jo=_("photoshop");async function Vr(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=e.layer_identify,n=ie(r,o),i={text:""},s=fe(r,n);if(!s||s.kind!=jo.constants.LayerKind.TEXT)throw new Error(h('only layer kind "TEXT" is supported, invalid layer: {0}',o));return i.text=s.textItem.contents,{text:i.text}}var X=_("photoshop"),Xe=_("uxp");var Zt=0,Jo=0,qi=5e3;async function Qr(e){let t=e.document_identify,r=t?V(t):null;if(e.action==="get"){let o;return await U(async function(n){if(r||(r=await Gi()),!r)throw new Error(h("create document failed"));r=await r.duplicate(),n.add(async()=>{r?.close()});let s=await(await Xe.storage.localFileSystem.getTemporaryFolder()).createEntry("sdppp.psd",{overwrite:!0});await r.saveAs.psd(s,{maximizeCompatibility:!1,typename:"PhotoshopSaveOptions"}),o=await s.read({format:Xe.storage.formats.binary})},{commandName:h("sdppp get PSD"),document:r}),o?{data:o}:{error:"save Document failed"}}else if(e.action==="extract"){if(Date.now()-Jo2||!confirm(h("{0} wants to extract a PSD file to Photoshop, are you sure?",e.fromSSID))){Zt++,Zt==3&&(confirm(h("should sdppp refuse extracting PSD to Photoshop in this session anymore?"))||Zt--);return}Jo=Date.now();let o=e.data;await U(async function(){if(r||(r=await X.app.createDocument({width:512,height:512,resolution:72,mode:X.constants.NewDocumentMode.RGB,fill:X.constants.DocumentFill.TRANSPARENT})),!r)throw new Error(h("document {0} not found",t));X.app.activeDocument=r,r.selection?.deselect();let n=await o.arrayBuffer(),s=await(await Xe.storage.localFileSystem.getTemporaryFolder()).createEntry("sdppp.psd",{overwrite:!0});await s.write(n,{format:Xe.storage.formats.binary});let a=Xe.storage.localFileSystem.createSessionToken(s),c=await r.createLayer(X.constants.LayerKind.NORMAL,{name:"sdppp"});if(!c)throw new Error(h("create layer failed"));c.move(r.layers[0],X.constants.ElementPlacement.PLACEBEFORE),await X.action.batchPlay([{_obj:"placeEvent",null:{_kind:"local",_path:a},freeTransformCenterState:{_enum:"quadCenterState",_value:"QCSAverage"},offset:{_obj:"offset",horizontal:{_unit:"pixelsUnit",_value:0},vertical:{_unit:"pixelsUnit",_value:0}}},{_obj:"placedLayerConvertToLayers"},{_obj:"ungroupLayersEvent",_target:[{_enum:"ordinal",_ref:"layer"}]}],{synchronousExecution:!0})},{commandName:h("sdppp extract PSD"),document:r,dontRecoverSelection:!0})}else throw new Error(h("invalid action: {0}",e.action))}async function Gi(){return await X.app.createDocument({width:512,height:512,resolution:72,mode:X.constants.NewDocumentMode.RGB,fill:X.constants.DocumentFill.TRANSPARENT})}var qr=_("photoshop");async function Gr(e){let{action_set:t,action:r}=e,o=qr.app.actionTree.find(i=>i.name===t);if(!o)throw new Error(h("Action set {0} not found",t));let n=o.actions.find(i=>i.name===r);if(!n)throw new Error(h("Action {0} not found",r));return await U(async()=>{await n.play()},{commandName:h("sdppp Run Photoshop Action"),document:qr.app.activeDocument}),{result:{success:!0}}}var Hr=w(St(),1),Z=_("photoshop");globalThis.sdpppX=globalThis.sdpppX||{};var Se=globalThis.sdpppX;async function Hi(e,t){let r=Z.app.documents.find(o=>o.name==D.getSpecialDocumentForPreview());if(r)return(r.width{await r.resizeCanvas(Math.max(r.width,e),Math.max(r.height,t))},{document:null,commandName:h("resize document for preview")}),r;{let o=null;return await U(async()=>{o=await Z.app.createDocument({width:e,height:t,resolution:72,mode:Z.constants.NewDocumentMode.RGB,fill:Z.constants.DocumentFill.TRANSPARENT,name:D.getSpecialDocumentForPreview()})},{document:null,commandName:h("create document for preview")}),o}}var $o=0;async function Yr(e){$o++;let t=e.image_blobs?.length?e.image_blobs:null,r=e.image_urls?.length?e.image_urls:null,o=e.document_identify,n=e.layer_identifies,i=(await Promise.all((r||t||[]).map(async(m,u)=>{if(r)return await Hr.Jimp.read(r[u]);if(t)return await Hr.Jimp.read(await t[u].pngData.arrayBuffer())}))).filter(m=>m),s=V(o);if(D.is_SPECIAL_LAYER_PREVIEW_DOCUMENT(o)&&(s=await Hi(i[0].bitmap.width,i[0].bitmap.height)),!s)throw new Error(h("document {0} not found"));let a=s,c=i.map((m,u)=>{if(e.boundaries&&e.boundaries[u])return{width:e.boundaries[u].width,height:e.boundaries[u].height,top:e.boundaries[u].top,left:e.boundaries[u].left};let f=1;return(m.bitmap.height>a.height||m.bitmap.width>a.width)&&(f=Math.min(a.height/m.bitmap.height,a.width/m.bitmap.width)),{width:m.bitmap.width*f,height:m.bitmap.height*f,top:(a.height-m.bitmap.height*f)/2,left:(a.width-m.bitmap.width*f)/2,bottom:(a.height-m.bitmap.height*f)/2,right:(a.width-m.bitmap.width*f)/2}});i.forEach((m,u)=>{let f=c[u];if(m.bitmap.width!=f.width||m.bitmap.height!=f.height){let d={w:f.width,h:f.height};m.resize(d)}});let l=await Promise.all(i.map(async m=>{let u=m.bitmap.data;if(a.bitsPerChannel=="bitDepth16"){let d=new Uint16Array(u.length);for(let g=0;g{let u=null,f=await Promise.all(i.map(async(d,g)=>{let y=n.length==1?n[0]:n[g];if(!D.is_SPECIAL_LAYER_NEW_LAYER(y)){let P=ie(a,y);u=fe(a,P)}if(u&&u.kind!=Z.constants.LayerKind.GROUP)return u;{let P=e.new_layer_name||"SDPPP Images";typeof Se.handleSendLayerName=="function"&&(P=await Se.handleSendLayerName(P));let S=await a.createLayer(Z.constants.LayerKind.NORMAL,{name:`${P} ${$o}${i.length>1?`_${g+1}`:""}`});if(!S)throw new Error(h("create layer failed"));return p.push(S),u?S.move(u,Z.constants.ElementPlacement.PLACEINSIDE):S.move(a.layers[0],Z.constants.ElementPlacement.PLACEBEFORE),S}}));p.length&&m.add(d=>{d?p.forEach((g,y)=>{g.selected=!1}):p.forEach(g=>g.delete())}),await Promise.all(f.map(async(d,g)=>{await Z.imaging.putPixels({documentID:a.id,layerID:d.id,replace:!1,imageData:l[g],targetBounds:c[g]})})),De(f.map(d=>d.id)),Yt()},{commandName:h("show sent images"),document:a}),{}}var Xo=_("photoshop");async function Kr(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=e.layer_identify,n=ie(r,o),i=fe(r,n);if(!i||i.kind!=Xo.constants.LayerKind.TEXT)throw new Error(h('only layer kind "TEXT" is supported, invalid layer: {0}',o));let s=!1;return await U(async()=>{console.log(e.text),i.textItem.contents=e.text,s=!0},{document:r,commandName:h("set text to layer")}),{success:s}}function Zo(e){return class extends e{constructor(t){super(t),this.socket.on("B_photoshop",async(r,o)=>{let{action:n,params:i}=r,s;try{console.log("B_photoshop start",n);let a=Date.now();n==="psd"?s=await Qr(i):n==="getImage"?s=await $t(i):n==="sendImages"?s=await Yr(i):n==="getSelection"?s=await Dt(i):n==="getText"?s=await Vr(i):n==="sendText"?s=await Kr(i):n==="getLayerInfo"?s=await vt(i):n==="getDocumentInfo"?s=await Or(i):n==="getLinkedLayers"?s=await Fr(i):n==="getLayersInGroup"?s=await Ur(i):n==="runPhotoshopAction"?s=await Gr(i):n==="getSpecialIdentifierValue"&&(s=await Br(i));let c=Date.now();console.log("B_photoshop end",n,c-a)}catch(a){console.error(a),o({error:a.stack||a.message||a});return}o(s)})}async callForPSDExtract(t,r){return new Promise((o,n)=>{this.socket.emit("F_photoshop",{action:"extractPSD",sid:t,params:{from_sid:r.from_sid}},i=>{if(i.error)return n(new Error(i.error));o(i)})})}async uploadImage(t,r){return new Promise((o,n)=>{this.socket.emit("F_photoshop",{action:"uploadImage",sid:t,params:r},i=>{if(i.error)return n(new Error(i.error));o(i)})})}}}function en(e){return class extends e{constructor(t){super(t),this.socket.on("B_workflow",(r,o)=>{if(r.action=="getStoredWidgetValue"){let{widgetTableID:n,widgetTablePath:i,widgetTablePersisted:s}=r.params,a=`${n}_${i}_${s}`,c=Yi(a),l=[];c&&Object.keys(c||{}).forEach(p=>{Object.keys(c[p]||{}).forEach(m=>{l.push({nodeID:p,widgetIndex:m,value:c[p][m].value,outputType:c[p][m].outputType})})}),o({values:l})}})}async setNodeTitle(t,r,o){await new Promise((n,i)=>{this.socket.emit("F_workflow",{action:"setNodeTitle",sid:t,params:{node_id:r,title:o}},s=>{if(s?.error)return i(new Error(s.error));n(s)})})}async pageInstanceRun(t,r,o=1){await new Promise((n,i)=>{this.socket.emit("F_workflow",{action:"run",sid:t,params:{size:o,from_sid:r}},s=>{if(s?.error)return i(new Error(s.error));n(s)})})}async setWidgetValue(t,r){t&&await new Promise((o,n)=>{this.socket.emit("F_workflow",{action:"setWidgetValue",sid:t.data.sid,params:r},i=>{if(i?.error)return n(new Error(i.error));o(i)})})}async openWorkflow(t,r){t&&await new Promise((o,n)=>{this.socket.emit("F_workflow",{action:"open",sid:t.data.sid,params:r},i=>{if(i?.error)return n(new Error(i.error));o(i)})})}async saveWorkflow(t,r){t&&await new Promise((o,n)=>{this.socket.emit("F_workflow",{action:"save",sid:t.data.sid,params:r},i=>{if(i?.error)return n(new Error(i.error));o(i)})})}async listWorkflows(t){return t?await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"list",sid:t.data.sid},n=>{r(n)})}):[]}async logout(t){t&&await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"logout",sid:t.data.sid},n=>{if(n?.error)return o(new Error(n.error));r(n)})})}async interrupt(t){await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"interrupt",sid:t},n=>{r(n)})})}async clearQueue(t){await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"clearQueue",sid:t},n=>{r(n)})})}async reboot(t){return await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"reboot",sid:t},n=>{r(n)})})}}}function Yi(e){let t=localStorage.getItem(`widgetValue_${e}`);return t?JSON.parse(t):null}var er=class extends Vo(Qo(b,"photoshop"),qo(k,"comfy"),en,Zo){constructor(t,{setConnectState:r,setLastErrorMessage:o,setBackendURL:n,setComfyMultiUser:i}){super(t),this.socket.on("connect_error",async s=>{if(this.socket.active){let a=s.message;try{let c=new AbortController,l=setTimeout(()=>c.abort(),1500),p=await fetch(t+this.socket._opts.path,{method:"GET",signal:c.signal});clearTimeout(l),p.status==502?a=h("502: Maybe the server is not running"):p.status==404&&(a=h("404: Maybe SDPPP is not installed or failed to run in ComfyUI"))}catch(c){c.message=="Network request failed"&&(a=h("Timeout, Maybe the URL is wrong"))}o(h("{0}. reconnecting...",a)),r("connecting")}else o(s.message),r("disconnected")}),this.socket.on("sdppp_inited",s=>{n(t),r("connected"),s.multi_user&&i(s.multi_user)}),this.socket.on("disconnect",(...s)=>{r("disconnected"),i(!1),b.setComfyUserToken("")})}};var on=w(v(),1),tr="http://127.0.0.1:8188",tn=(0,W.createContext)(null);function rn({children:e}){let{setSrc:t,webviewAgentSID:r,prevWebviewAgentSID:o}=Ee(),[n,i]=(0,W.useState)("disconnected"),[s,a]=(0,W.useState)(""),[c,l]=(0,W.useState)(localStorage.getItem("backendURL")||tr),[p,m]=(0,W.useState)(null),[u,f]=(0,W.useState)(""),[d,g]=(0,W.useState)(!1),[y,P]=(0,W.useState)(null),[S,E]=(0,W.useState)([]);function B(Q){l(Q.split("?")[0].split("#")[0].trim())}(0,W.useEffect)(()=>{localStorage.setItem("backendURL",c)},[c]),(0,W.useEffect)(()=>{n==="connected"?(a(""),t(`${c}`)):t("")},[n]);function ne(){if(n==="connected"||n==="connecting")y&&(y.close(),P(null),i("disconnected"));else try{let Q=y;y||(Q=new er(c||tr,{setConnectState:i,setLastErrorMessage:a,setBackendURL:B,setComfyMultiUser:g}),P(Q)),Q.connect(),i("connecting")}catch(Q){a(Q.stack||Q.message||Q)}}(0,W.useEffect)(()=>{let Q=(Ue,dt,xt)=>{u&&(!dt&&Ue==u||!(u in k.getAllStore()))&&f("")};return k.subscribe("/",Q),()=>{k.unsubscribe(Q)}},[u]),(0,W.useEffect)(()=>{!u&&r&&f(r)},[u,r]),(0,W.useEffect)(()=>{r&&(!u||u==o)&&f(r)},[r,o,u,f]);let[lt,j]=(0,W.useState)(null);return(0,W.useEffect)(()=>{j(u?k.getAllStore()[u]:null)},[u]),(0,on.jsx)(tn.Provider,{value:{socket:y,backendURL:c,setBackendURL:B,connectState:n,doConnectOrDisconnect:ne,lastErrorMessage:s,setLastErrorMessage:a,autoRunning:p,setAutoRunning:m,comfyMultiUser:d,setComfyMultiUser:g,workflowAgent:lt,workflowAgentSID:u,setWorkflowAgentSID:f,beforeWorkflowRunHooks:S,setBeforeWorkflowRunHooks:E},children:e})}function L(){let e=(0,W.useContext)(tn);if(!e)throw new Error("useSDPPPInternalContext must be used within a SDPPPInternalContextProvider");return e}var nn=w(I(),1);var sn=w(v(),1),Ge=class extends nn.default.Component{state={hasError:!1,errorMessage:""};constructor(t){super(t)}static getDerivedStateFromError(t){return{hasError:!0,errorMessage:t.toString()}}componentDidCatch(t,r){console.log(t,r)}render(){return this.state.hasError?(0,sn.jsx)("p",{className:"list-error-label",children:h("Error {0}... please contact me via Discord/Github",this.state.errorMessage)}):this.props.children}};var Ce=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var Ae=typeof window>"u"||"Deno"in globalThis;function J(){}function un(e,t){return typeof e=="function"?e(t):e}function ln(e){return typeof e=="number"&&e>=0&&e!==1/0}function dn(e,t){return Math.max(e+(t||0)-Date.now(),0)}function jr(e,t){return typeof e=="function"?e(t):e}function fn(e,t){return typeof e=="function"?e(t):e}function Jr(e,t){let{type:r="all",exact:o,fetchStatus:n,predicate:i,queryKey:s,stale:a}=e;if(s){if(o){if(t.queryHash!==Et(s,t.options))return!1}else if(!et(t.queryKey,s))return!1}if(r!=="all"){let c=t.isActive();if(r==="active"&&!c||r==="inactive"&&c)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||n&&n!==t.state.fetchStatus||i&&!i(t))}function $r(e,t){let{exact:r,status:o,predicate:n,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(r){if(Ze(t.options.mutationKey)!==Ze(i))return!1}else if(!et(t.options.mutationKey,i))return!1}return!(o&&t.state.status!==o||n&&!n(t))}function Et(e,t){return(t?.queryKeyHashFn||Ze)(e)}function Ze(e){return JSON.stringify(e,(t,r)=>zr(r)?Object.keys(r).sort().reduce((o,n)=>(o[n]=r[n],o),{}):r)}function et(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>et(e[r],t[r])):!1}function pn(e,t){if(e===t)return e;let r=an(e)&&an(t);if(r||zr(e)&&zr(t)){let o=r?e:Object.keys(e),n=o.length,i=r?t:Object.keys(t),s=i.length,a=r?[]:{},c=0;for(let l=0;l{setTimeout(t,e)})}function hn(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?pn(e,t):t}function gn(e,t,r=0){let o=[...e,t];return r&&o.length>r?o.slice(1):o}function yn(e,t,r=0){let o=[t,...e];return r&&o.length>r?o.slice(0,-1):o}var It=Symbol();function rr(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===It?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var Ki=class extends Ce{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!Ae&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},or=new Ki;var zi=class extends Ce{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!Ae&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(r=>{r(e)}))}isOnline(){return this.#e}},tt=new zi;function wn(){let e,t,r=new Promise((n,i)=>{e=n,t=i});r.status="pending",r.catch(()=>{});function o(n){Object.assign(r,n),delete r.resolve,delete r.reject}return r.resolve=n=>{o({status:"fulfilled",value:n}),e(n)},r.reject=n=>{o({status:"rejected",reason:n}),t(n)},r}function ji(e){return Math.min(1e3*2**e,3e4)}function Xr(e){return(e??"online")==="online"?tt.isOnline():!0}var Pn=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function nr(e){return e instanceof Pn}function ir(e){let t=!1,r=0,o=!1,n,i=wn(),s=g=>{o||(u(new Pn(g)),e.abort?.())},a=()=>{t=!0},c=()=>{t=!1},l=()=>or.isFocused()&&(e.networkMode==="always"||tt.isOnline())&&e.canRun(),p=()=>Xr(e.networkMode)&&e.canRun(),m=g=>{o||(o=!0,e.onSuccess?.(g),n?.(),i.resolve(g))},u=g=>{o||(o=!0,e.onError?.(g),n?.(),i.reject(g))},f=()=>new Promise(g=>{n=y=>{(o||l())&&g(y)},e.onPause?.()}).then(()=>{n=void 0,o||e.onContinue?.()}),d=()=>{if(o)return;let g,y=r===0?e.initialPromise:void 0;try{g=y??e.fn()}catch(P){g=Promise.reject(P)}Promise.resolve(g).then(m).catch(P=>{if(o)return;let S=e.retry??(Ae?0:3),E=e.retryDelay??ji,B=typeof E=="function"?E(r,P):E,ne=S===!0||typeof S=="number"&&rl()?void 0:f()).then(()=>{t?u(P):d()})})};return{promise:i,cancel:s,continue:()=>(n?.(),i),cancelRetry:a,continueRetry:c,canStart:p,start:()=>(p()?d():f().then(d),i)}}var Ji=e=>setTimeout(e,0);function $i(){let e=[],t=0,r=a=>{a()},o=a=>{a()},n=Ji,i=a=>{t?e.push(a):n(()=>{r(a)})},s=()=>{let a=e;e=[],a.length&&n(()=>{o(()=>{a.forEach(c=>{r(c)})})})};return{batch:a=>{let c;t++;try{c=a()}finally{t--,t||s()}return c},batchCalls:a=>(...c)=>{i(()=>{a(...c)})},schedule:i,setNotifyFunction:a=>{r=a},setBatchNotifyFunction:a=>{o=a},setScheduler:a=>{n=a}}}var M=$i();var sr=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ln(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ae?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}};var Sn=class extends sr{#e;#t;#r;#n;#o;#s;#a;constructor(e){super(),this.#a=!1,this.#s=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#n=e.client,this.#r=this.#n.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Zi(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#o?.promise}setOptions(e){this.options={...this.#s,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){let r=hn(this.state.data,e,this.options);return this.#i({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){let t=this.#o?.promise;return this.#o?.cancel(e),t?t.then(J).catch(J):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>fn(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===It||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!dn(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#o?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#o?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#o&&(this.#a?this.#o.cancel({revert:!0}):this.#o.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#o)return this.#o.continueRetry(),this.#o.promise}if(e&&this.setOptions(e),!this.options.queryFn){let a=this.observers.find(c=>c.options.queryFn);a&&this.setOptions(a.options)}let r=new AbortController,o=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(this.#a=!0,r.signal)})},n=()=>{let a=rr(this.options,t),c={client:this.#n,queryKey:this.queryKey,meta:this.meta};return o(c),this.#a=!1,this.options.persister?this.options.persister(a,c,this):a(c)},i={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#n,state:this.state,fetchFn:n};o(i),this.options.behavior?.onFetch(i,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==i.fetchOptions?.meta)&&this.#i({type:"fetch",meta:i.fetchOptions?.meta});let s=a=>{nr(a)&&a.silent||this.#i({type:"error",error:a}),nr(a)||(this.#r.config.onError?.(a,this),this.#r.config.onSettled?.(this.state.data,a,this)),this.scheduleGc()};return this.#o=ir({initialPromise:t?.initialPromise,fn:i.fetchFn,abort:r.abort.bind(r),onSuccess:a=>{if(a===void 0){s(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(a)}catch(c){s(c);return}this.#r.config.onSuccess?.(a,this),this.#r.config.onSettled?.(a,this.state.error,this),this.scheduleGc()},onError:s,onFail:(a,c)=>{this.#i({type:"failed",failureCount:a,error:c})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:i.options.retry,retryDelay:i.options.retryDelay,networkMode:i.options.networkMode,canRun:()=>!0}),this.#o.start()}#i(e){let t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Xi(r.data,this.options),fetchMeta:e.meta??null};case"success":return{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":let o=e.error;return nr(o)&&o.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),M.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function Xi(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Xr(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Zi(e){let t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,o=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?o??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var bn=class extends Ce{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,r){let o=t.queryKey,n=t.queryHash??Et(o,t),i=this.get(n);return i||(i=new Sn({client:e,queryKey:o,queryHash:n,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(o)}),this.add(i)),i}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){M.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(r=>Jr(t,r))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(r=>Jr(e,r)):t}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){M.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){M.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}};var vn=class extends sr{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||es(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#n({type:"continue"})};this.#r=ir({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(n,i)=>{this.#n({type:"failed",failureCount:n,error:i})},onPause:()=>{this.#n({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let r=this.state.status==="pending",o=!this.#r.canStart();try{if(r)t();else{this.#n({type:"pending",variables:e,isPaused:o}),await this.#t.config.onMutate?.(e,this);let i=await this.options.onMutate?.(e);i!==this.state.context&&this.#n({type:"pending",context:i,variables:e,isPaused:o})}let n=await this.#r.start();return await this.#t.config.onSuccess?.(n,e,this.state.context,this),await this.options.onSuccess?.(n,e,this.state.context),await this.#t.config.onSettled?.(n,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(n,null,e,this.state.context),this.#n({type:"success",data:n}),n}catch(n){try{throw await this.#t.config.onError?.(n,e,this.state.context,this),await this.options.onError?.(n,e,this.state.context),await this.#t.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,n,e,this.state.context),n}finally{this.#n({type:"error",error:n})}}finally{this.#t.runNext(this)}}#n(e){let t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),M.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function es(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Dn=class extends Ce{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(e,t,r){let o=new vn({mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:r});return this.add(o),o}add(e){this.#e.add(e);let t=ar(e);if(typeof t=="string"){let r=this.#t.get(t);r?r.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){let t=ar(e);if(typeof t=="string"){let r=this.#t.get(t);if(r)if(r.length>1){let o=r.indexOf(e);o!==-1&&r.splice(o,1)}else r[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=ar(e);if(typeof t=="string"){let o=this.#t.get(t)?.find(n=>n.state.status==="pending");return!o||o===e}else return!0}runNext(e){let t=ar(e);return typeof t=="string"?this.#t.get(t)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){M.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(r=>$r(t,r))}findAll(e={}){return this.getAll().filter(t=>$r(e,t))}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(t=>t.state.isPaused);return M.batch(()=>Promise.all(e.map(t=>t.continue().catch(J))))}};function ar(e){return e.options.scope?.id}function Zr(e){return{onFetch:(t,r)=>{let o=t.options,n=t.fetchOptions?.meta?.fetchMore?.direction,i=t.state.data?.pages||[],s=t.state.data?.pageParams||[],a={pages:[],pageParams:[]},c=0,l=async()=>{let p=!1,m=d=>{Object.defineProperty(d,"signal",{enumerable:!0,get:()=>(t.signal.aborted?p=!0:t.signal.addEventListener("abort",()=>{p=!0}),t.signal)})},u=rr(t.options,t.fetchOptions),f=async(d,g,y)=>{if(p)return Promise.reject();if(g==null&&d.pages.length)return Promise.resolve(d);let P={client:t.client,queryKey:t.queryKey,pageParam:g,direction:y?"backward":"forward",meta:t.options.meta};m(P);let S=await u(P),{maxPages:E}=t.options,B=y?yn:gn;return{pages:B(d.pages,S,E),pageParams:B(d.pageParams,g,E)}};if(n&&i.length){let d=n==="backward",g=d?ts:En,y={pages:i,pageParams:s},P=g(o,y);a=await f(y,P,d)}else{let d=e??i.length;do{let g=c===0?s[0]??o.initialPageParam:En(o,a);if(c>0&&g==null)break;a=await f(a,g),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=l}}}function En(e,{pages:t,pageParams:r}){let o=t.length-1;return t.length>0?e.getNextPageParam(t[o],t,r[o],r):void 0}function ts(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}var eo=class{#e;#t;#r;#n;#o;#s;#a;#i;constructor(e={}){this.#e=e.queryCache||new bn,this.#t=e.mutationCache||new Dn,this.#r=e.defaultOptions||{},this.#n=new Map,this.#o=new Map,this.#s=0}mount(){this.#s++,this.#s===1&&(this.#a=or.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#i=tt.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#s--,this.#s===0&&(this.#a?.(),this.#a=void 0,this.#i?.(),this.#i=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#e.build(this,t),o=r.state.data;return o===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(jr(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(o))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:r})=>{let o=r.data;return[t,o]})}setQueryData(e,t,r){let o=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(o.queryHash)?.state.data,s=un(t,i);if(s!==void 0)return this.#e.build(this,o).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return M.batch(()=>this.#e.findAll(e).map(({queryKey:o})=>[o,this.setQueryData(o,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;M.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){let r=this.#e;return M.batch(()=>(r.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let r={revert:!0,...t},o=M.batch(()=>this.#e.findAll(e).map(n=>n.cancel(r)));return Promise.all(o).then(J).catch(J)}invalidateQueries(e,t={}){return M.batch(()=>(this.#e.findAll(e).forEach(r=>{r.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0},o=M.batch(()=>this.#e.findAll(e).filter(n=>!n.isDisabled()).map(n=>{let i=n.fetch(void 0,r);return r.throwOnError||(i=i.catch(J)),n.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(o).then(J)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let r=this.#e.build(this,t);return r.isStaleByTime(jr(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(J).catch(J)}fetchInfiniteQuery(e){return e.behavior=Zr(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(J).catch(J)}ensureInfiniteQueryData(e){return e.behavior=Zr(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return tt.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set(Ze(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#n.values()],r={};return t.forEach(o=>{et(e,o.queryKey)&&Object.assign(r,o.defaultOptions)}),r}setMutationDefaults(e,t){this.#o.set(Ze(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#o.values()],r={};return t.forEach(o=>{et(e,o.mutationKey)&&Object.assign(r,o.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Et(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===It&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var Ct=w(I(),1),In=w(v(),1),Cn=Ct.createContext(void 0);var to=({client:e,children:t})=>(Ct.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,In.jsx)(Cn.Provider,{value:e,children:t}));var _e=w(I(),1);var $=w(I(),1);var cr=w(I(),1);function An(){let{workflowAgent:e,socket:t}=L();return{setWidgetValue:(0,cr.useCallback)(async(o,n,i)=>{if(!e)throw new Error("workflowAgent not found");await t?.setWidgetValue(e,{values:[{nodeID:o,widgetIndex:n,value:i}]});let s=e.data.widgetTableStructure.widgetTableID,a=e.data.widgetTableStructure.widgetTablePath,c=e.data.widgetTableStructure.widgetTablePersisted,l=`${s}_${a}_${c}`,p=e.data.widgetTableStructure.nodes[o].widgets[n].outputType;rs(l,o,n,i,p)},[e,t])}}function rt(){let{beforeWorkflowRunHooks:e,setBeforeWorkflowRunHooks:t}=L(),r=(0,cr.useCallback)(n=>(t(i=>[...i,n]),()=>{t(i=>i.filter(a=>a!==n))}),[t]),o=(0,cr.useCallback)(async()=>{for(let n=0;n{let S=k.getStore(y);if(!S)throw new Error("workflowAgent not found");try{await e?.openWorkflow(S,{workflow_path:P,from_sid:b.data.sid,reset:!0})}catch(E){console.error(E)}},[e]),n=(0,$.useCallback)(async y=>{let P=k.getStore(y);if(!P||!P.data.widgetTableStructure.widgetTablePath)throw new Error("workflow not found");if(!P.data.widgetTableStructure.widgetTablePersisted)throw new Error("workflow is not savable");await o(y,P.data.widgetTableStructure.widgetTablePath)},[o]),i=(0,$.useCallback)((y,P=1)=>{e?.pageInstanceRun(y,b.data.sid,P)},[e]),s=(0,$.useCallback)(async y=>{let P=k.getStore(y);if(!P)throw new Error("workflowAgent not found");if(!P.data.widgetTableStructure.widgetTablePath)throw new Error("workflow not found");await e?.saveWorkflow(P,{workflow_path:P.data.widgetTableStructure.widgetTablePath,from_sid:b.data.sid})},[e]),a=(0,$.useCallback)(async y=>{await e?.callForPSDExtract(y,{from_sid:b.data.sid})},[e]),c=(0,$.useCallback)(async y=>{let P=k.getStore(y);if(!P)throw new Error("workflowAgent not found");await e?.logout(P)},[e]),l=(0,$.useCallback)(async(y,P)=>await e?.uploadImage(b.data.sid,{image:y,filename:P,overwrite:!0}),[e]);globalThis.sdppp_action_run=async(y,{workflowPath:P})=>{P?u(P):m()};let p=(0,$.useCallback)(async(y,P=1)=>{!y&&!t||(await r(),await i(y||t,P))},[i,t,r]),m=(0,$.useCallback)(async(y,P=1)=>{await p(y||t,P),ro.action.recordAction?.({name:"sdppp_run",methodName:"sdppp_action_run"},{})},[p]),u=(0,$.useCallback)(async(y,P,S=1)=>{!P&&!t||(await o(P||t,y),p(P||t,S),ro.action.recordAction?.({name:"sdppp_run_"+y,methodName:"sdppp_action_run"},{workflowPath:y}))},[o,m,t]),f=(0,$.useCallback)(async()=>{t&&await e?.interrupt(t)},[e,t]),d=(0,$.useCallback)(async()=>{t&&await e?.clearQueue(t)},[e,t]),g=(0,$.useCallback)(async()=>{if(t)return await e?.reboot(t)},[e,t]);return{openWorkflow:o,reopenWorkflow:n,saveWorkflow:s,runPage:m,runWorkflow:u,callForPSDExtract:a,logout:c,uploadImage:l,interrupt:f,clearQueue:d,reboot:g}}function ur(){let[e,t]=(0,_e.useState)(!1),[r,o]=(0,_e.useState)(!1),n=(0,_e.useRef)(null),{autoRunning:i,workflowAgent:s}=L(),{runWorkflow:a,runPage:c}=ae();return(0,_e.useEffect)(()=>{if(i&&e&&!r){if(t(!1),i.type=="workflow")s&&!s.data.executingNodeTitle&&(a(i.value,s.data.sid,1),n.current=setTimeout(()=>{o(!1)},1e3));else if(i.type=="page"){let l=k.getStore(i.value);l&&!l.data.executingNodeTitle&&(o(!0),c(i.value),n.current=setTimeout(()=>{o(!1)},1e3))}}},[e,r,i,s,a,c]),(0,_e.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),{setShouldTriggerLivePainting:t}}var ce=w(I(),1);var kn=w(v(),1),os=15e3,Ln=(0,ce.createContext)({});function _n({children:e,loginAppID:t,loginStyle:r,loginBannerTop:o,loginBannerBottom:n}){let[i,s]=(0,ce.useState)(!t),a=(0,ce.useCallback)(async(u,f="sdppp123456")=>{try{let d=await fetch("https://api.authing.cn/api/v3/signin",{method:"POST",headers:{"Content-Type":"application/json","x-authing-app-id":t,"x-authing-sdk-version":"web:3.0.0"},body:JSON.stringify({connection:"PASSWORD",passwordPayload:{username:u,password:f}})}),g=await d.json();if(d.ok){if(g.statusCode===200)return{success:!0,token:g.data.access_token};if(g.statusCode===403)return{success:!1,message:h("Verification Error")}}else return{success:!1,message:JSON.stringify(g)}}catch(d){return{success:!1,message:d.toString()}}return{success:!1,message:"\u767B\u5F55\u5931\u8D25"}},[]),c=(0,ce.useCallback)(async u=>{if(!u)throw new Error("Token is required");let f="access_token",d="https://api.authing.cn/oidc/token/introspection",g=`token=${encodeURIComponent(u)}&token_type_hint=${encodeURIComponent(f)}&client_id=${encodeURIComponent(t)}`;try{let y=await fetch(d,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g});if(!y.ok)throw new Error(`Verification failed with status: ${y.status}`);return await y.json()}catch(y){throw console.error("Token verification error:",y),y}},[]),l=(0,ce.useCallback)(async u=>{try{let d=await(await fetch("https://api.authing.cn/api/v3/get-profile",{method:"GET",headers:{Authorization:`Bearer ${u}`,"x-authing-app-id":t}})).json();return d.statusCode===200?{data:d.data,success:!0}:{message:d.message,success:!1}}catch(f){return{success:!1,message:f}}},[]);async function p(u,f="sdppp123456"){let d=await a(u,f);if(d.success){let g=await l(d.token);g.success&&(localStorage.setItem("token",d.token),localStorage.setItem("lastLogin",new Date(g.data.lastLogin).getTime().toString()),s(!0))}return d}async function m(u){if(!localStorage.getItem("lastLogin"))return!1;if((await c(u)).active){let d=await l(u);if(d.success){let g=new Date(d.data.lastLogin).getTime().toString(),y=localStorage.getItem("lastLogin");return g===y}else return!1}return!1}return(0,ce.useEffect)(()=>{if(i){if(t){let u=setInterval(()=>{let f=localStorage.getItem("token");f&&m(f).then(d=>{d||s(!1)})},os);return()=>{clearInterval(u)}}}else{let u=localStorage.getItem("token");if(!u)return;m(u).then(f=>{f&&s(!0)})}},[i]),(0,kn.jsx)(Ln.Provider,{value:{loginStyle:r||"none",loginBannerBottom:n||null,loginBannerTop:o||null,isLogin:i,logout:()=>{localStorage.removeItem("token"),s(!1)},login:p},children:e})}function ke(){let e=(0,ce.useContext)(Ln);if(!e)throw new Error("useSDPPPLogin must be used within a SDPPPLoginProvider");return e}var Te=w(v(),1),Tn=(0,ot.createContext)({});function xn({children:e,loginAppID:t,loginStyle:r,loginBannerTop:o,loginBannerBottom:n}){let i=new eo;return(0,Te.jsx)(to,{client:i,children:(0,Te.jsx)(Ge,{children:(0,Te.jsx)(No,{children:(0,Te.jsx)(_n,{loginAppID:t,loginStyle:r,loginBannerTop:o,loginBannerBottom:n,children:(0,Te.jsx)(rn,{children:(0,Te.jsx)(ns,{children:e})})})})})})}function Le(){let e=(0,ot.useContext)(Tn);if(!e)throw new Error("SDPPPExternalContext not found");return e}function ns({children:e}){let t=Ee(),r=L(),{logout:o}=ke();Se.registerTestCase&&(globalThis.sdppp_debugPhotoshopInternalContext=r,globalThis.sdppp_debugPhotoshopWebviewContext=t);let{toggleWebviewDialog:n,webviewAgentSID:i}=t,{autoRunning:s,setAutoRunning:a,workflowAgent:c,setWorkflowAgentSID:l,doConnectOrDisconnect:p,lastErrorMessage:m}=r,{setShouldTriggerLivePainting:u}=ur();return(0,ot.useEffect)(()=>{let f=()=>{u(!0)};return b.subscribe("/canvasStateID",f),()=>{b.unsubscribe(f)}},[u]),(0,Te.jsx)(Tn.Provider,{value:{logout:o,connectOrDisconnect:p,lastConnectErrorMessage:m,setAutoRunning:a,autoRunning:s,photoshopSID:b.data.sid,webviewAgentSID:i,workflowAgentSID:c?.data.sid||"",setWorkflowAgentSID:l,toggleWebviewDialog:n},children:e})}var lr=w(I(),1);var nt=w(I(),1);function ue(e,t){let[r,o]=(0,nt.useState)(e?{...e.data}:null),[n,i]=(0,nt.useState)(e?{...e.data}:null),s=Array.isArray(t)?t:[t];return(0,nt.useEffect)(()=>{e&&o({...e.data})},[e]),(0,nt.useEffect)(()=>{if(!e)return;let a=s.map(c=>{let l=()=>{i(r),o(e.data)};return e.subscribe(c,l),l});return()=>{a.forEach(c=>{e.unsubscribe(c)})}},[e,t]),{state:r||null,prevState:n||null}}function Rn(){let[e,t]=(0,lr.useState)({}),{state:r}=ue(b,"/comfyUserToken"),o=r?.comfyUserToken;return(0,lr.useEffect)(()=>{let n=!1,i=(s,a,c)=>{n||t(l=>{let p={...l};return a==null?delete p[s]:p[s]=a,p})};return k.subscribe("/",i),()=>{n=!0,k.unsubscribe(i)}},[]),{pageInstances:Object.entries(e).map(([n,i])=>({sid:n,ssid:n.slice(0,4),title:i.title,lastError:i.lastError,isWebview:!!i.webviewFromSid,isCurrentUser:!i.comfyUserToken||i.comfyUserToken==o})).filter(n=>!n.isWebview&&(!o||n.isCurrentUser))}}var le=w(I(),1);function is(e,t,r){let{state:o}=ue(b,["/comfyUserToken"]),{socket:n,workflowAgentSID:i}=L(),[s,a]=(0,le.useState)({}),[c,l]=(0,le.useState)(!1),[p,m]=(0,le.useState)(null),u=(0,le.useCallback)(async f=>{if(!f&&!i){a({});return}l(!0);let d=k.getStore(f||i);try{let g=await n?.listWorkflows(d||null)||[];if("error"in g){m(new Error(g.error)),l(!1);return}l(!1),a(g.reduce((y,P)=>(y[P]={path:P,content:null,error:""},y),{}))}catch(g){l(!1),m(g)}},[n,i]);return(0,le.useEffect)(()=>{e&&u()},[e]),(0,le.useEffect)(()=>{o?.comfyUserToken&&u()},[o]),{data:s,isLoading:c,error:p,refetch:u}}function Nn(){let{backendURL:e,comfyMultiUser:t,workflowAgent:r}=L(),{workflowAgentSID:o}=Le(),[n,i]=(0,le.useState)(!0),[s,a]=(0,le.useState)(""),{data:c,isLoading:l,error:p,refetch:m}=is(e,t,r);(0,le.useEffect)(()=>{if(o)m(),i(!1);else{i(!0);let d=setTimeout(()=>{i(!1)},4e3);return()=>clearTimeout(d)}},[o]);let u=[];!l&&!p&&c&&(Object.keys(c).forEach(d=>{d.startsWith(s)&&(d.slice(s.length).indexOf("/")==-1?u.push({path:d,isDir:!1}):u.unshift({path:d.slice(0,d.lastIndexOf("/")+1),isDir:!0}))}),u=u.filter((d,g,y)=>y.findIndex(P=>P.path==d.path)===g));let f="";return p&&(f=p.message),u.length||(f=h("Workflow list is empty, please save a workflow by Comfy's lastest UI")),p&&(f=h("Workflow list loading failed: {0}",p.message)),!Se.MU&&t&&(f=h("Workflow List of ComfyUI with --multi-user is only available for sponsors")),l&&(f="Loading"),{workflows:c,isLoadingWorkflows:l,workflowsError:f,refetchWorkflows:m,afterPropsUpdate4s:n,currentViewingDirectory:s,setCurrentViewingDirectory:a,showingList:u}}function On(e){let t=k.getStore(e),{state:r}=ue(t,["/"]);return r?{sid:e,ssid:r.ssid,title:r.title,lastError:r.lastError,isWebview:!!r.webviewFromSid,isCurrentUser:!r.comfyUserToken||r.comfyUserToken==b.data.comfyUserToken,progress:r.progress,executingNodeTitle:r.executingNodeTitle,queueSize:r.queueSize}:{sid:"",ssid:"",title:"",lastError:"",isWebview:!1,isCurrentUser:!1,progress:0,executingNodeTitle:"",queueSize:0}}var oi=w(I(),1);var it=w(I(),1);var io=w(I(),1),oo={LICENSE:{name:"SD-PPP",url:{en:"https://github.com/zombieyang/sd-ppp",zhcn:"https://github.com/zombieyang/sd-ppp"}},sponsors:[{name:"\u56DB\u559CAI",url:"https://v.douyin.com/hD2X7S717uw/"},{name:"\u6C90\u6C90AI",url:"https://v.douyin.com/k6yKDEcVgP8/"}],links:[{name:"\u732B\u54AA\u8001\u5E08Reimagined",url:"https://www.xiaohongshu.com/user/profile/59f1fcc411be101aba7f048f"},{name:"\u6765\u771F\u7684",url:"https://space.bilibili.com/590784254"},{name:"\u54D1\u72D7Egao",url:"https://space.bilibili.com/284721975"}],community:{en:[{name:"Github",url:"https://github.com/zombieyang/sd-ppp"},{name:"Discord",url:"https://discord.gg/9HeGjDvEmn"},{name:"Youtube",url:"https://www.youtube.com/@Github-Zombeeyang/videos"}],zhcn:[{name:"Github",url:"https://github.com/zombieyang/sd-ppp"},{name:"QQ\u9891\u9053",url:"https://pd.qq.com/s/5m42umo28"},{name:"Bilibili",url:"https://space.bilibili.com/44908313"}]},cloud:{en:[],zhcn:[{name:"Cephalon",url:"https://cephalon.cloud/share/register-landing?invite_id=m95SDj",icon:"https://cephalon.cloud/favicon.ico",color:"#000000"},{name:"\u6668\u7FBD\u667A\u4E91",url:"https://www.chenyu.cn/console/login?invitationCode=BUD913",icon:"https://www.chenyu.cn/favicon.ico",color:"#f3ac40"}]}},Fn="sponsorData",Wn={GITEE:"https://gitee.com/zombieyang/sd-ppp/raw/main/sponsors.json",GITHUB:"https://raw.githubusercontent.com/zombieyang/sd-ppp/refs/heads/main/sponsors.json"},ss=15e3;function no(){try{let e=localStorage.getItem(Fn);if(e)return JSON.parse(e)}catch(e){console.warn("Failed to parse sponsor data from localStorage:",e)}return null}function Mn(e){try{localStorage.setItem(Fn,JSON.stringify(e))}catch(t){console.warn("Failed to save sponsor data to localStorage:",t)}}function fr(e){try{if(!e||typeof e!="object")return console.warn("Invalid sponsor data: not an object"),!1;if(!e.LICENSE||typeof e.LICENSE!="object")return console.warn("Invalid sponsor data: LICENSE is not an object"),!1;if(!e.LICENSE.name)return console.warn("Invalid sponsor data: LICENSE.name is missing"),!1;if(!e.LICENSE.url||typeof e.LICENSE.url!="object")return console.warn("Invalid sponsor data: LICENSE.url is not an object"),!1;if(!e.LICENSE.url.en)return console.warn("Invalid sponsor data: LICENSE.url.en is missing"),!1;if(!e.LICENSE.url.zhcn)return console.warn("Invalid sponsor data: LICENSE.url.zhcn is missing"),!1;if(!Array.isArray(e.sponsors))return console.warn("Invalid sponsor data: sponsors is not an array"),!1;if(!Array.isArray(e.links))return console.warn("Invalid sponsor data: links is not an array"),!1;if(!e.community||typeof e.community!="object")return console.warn("Invalid sponsor data: community is not an object"),!1;if(!Array.isArray(e.community.en)||!Array.isArray(e.community.zhcn))return console.warn("Invalid sponsor data: community.en or community.zhcn is not an array"),!1;if(!e.cloud||typeof e.cloud!="object")return console.warn("Invalid sponsor data: cloud is not an object"),!1;if(!Array.isArray(e.cloud.en)||!Array.isArray(e.cloud.zhcn))return console.warn("Invalid sponsor data: cloud.en or cloud.zhcn is not an array"),!1;for(let t of e.cloud.zhcn)if(!t.name||!t.url||!t.icon||!t.color)return console.warn("Invalid sponsor data: cloud.zhcn item missing required properties"),!1;return!0}catch(t){return console.warn("Error validating sponsor data:",t),!1}}async function Un(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`Fetch failed with status: ${t.status}`);let r=await t.json();return fr(r)?r:null}catch(t){return console.warn(`Failed to fetch from ${e}:`,t),null}}var dr=null;function pr(){if(!dr){let r=no();dr=new Promise(o=>{let n=!1;Un(Wn.GITEE).then(i=>{!n&&i&&(n=!0,Mn(i),o(i))}),Un(Wn.GITHUB).then(i=>{!n&&i&&(n=!0,Mn(i),o(i))}),setTimeout(()=>{n||(n=!0,r&&fr(r)?o(r):(console.warn("Using default data as fallback"),o(oo)))},ss)})}let[e,t]=io.default.useState(()=>{let r=no();return r&&fr(r)?r:oo});return io.default.useEffect(()=>{dr&&dr.then(r=>{t(r)}).catch(r=>{console.error("Error in useSponsor:",r);let o=no();t(o&&fr(o)?o:oo)})},[]),{data:e}}var C=w(v(),1),as=0,At=0;function Bn(){let e=(0,it.useRef)(null),{loginStyle:t}=ke(),{data:r}=pr();(0,it.useEffect)(()=>{let n=1/0,i=1/0,s=!1;if(e.current){let p=function(m){At||(At=Date.now())};var c=p;let l=document.createElement("webview");l.addEventListener("loadstart",p),l.addEventListener("loadstop",p),l.addEventListener("loaderror",p),l.setAttribute("src","./_.html"),l.style.width="1px",l.style.height="1px",e.current.appendChild(l)}function a(){let l=e.current?.parentElement?.parentElement?.getBoundingClientRect();l?.height&&l?.width&&(n=Math.min(n,l.height),i=Math.min(i,l.width)),s||requestAnimationFrame(a)}return requestAnimationFrame(a),()=>{s=!0,At&&(as+=Date.now()-At,At=0)}},[e]);let o=(0,it.useMemo)(()=>r.community[ft()=="zhcn"?"zhcn":"en"],[r]);return(0,C.jsxs)("div",{className:"about-card",style:{position:"relative"},children:[t==="none"?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("div",{className:"about-card-sections about-card-title",children:(0,C.jsxs)("a",{href:r.LICENSE.url[ft()=="zhcn"?"zhcn":"en"],children:[h("LICENSE:")," ",r.LICENSE.name]})}),(0,C.jsx)("sp-divider",{}),(0,C.jsx)("h2",{children:h("Sponsors")}),(0,C.jsx)("div",{className:"about-card-sections about-card-sponsors",children:r.sponsors.map(n=>(0,C.jsx)("a",{href:n.url,children:n.name},n.name))}),(0,C.jsx)("sp-divider",{}),(0,C.jsx)("h2",{children:h("Links")}),(0,C.jsx)("div",{className:"about-card-sections about-card-friends-links",children:r.links.map(n=>(0,C.jsx)("a",{href:n.url,children:n.name},n.name))}),(0,C.jsx)("sp-divider",{}),(0,C.jsxs)("h2",{children:["SD-PPP ",h("Community")]})]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("div",{className:"about-card-sections about-card-title",children:(0,C.jsx)("h4",{children:h("This plugin is based on sd-ppp")})}),(0,C.jsx)("div",{className:"about-card-sections about-card-title",children:(0,C.jsx)("h6",{children:h("And follows its open source license:")})}),(0,C.jsx)("div",{className:"about-card-sections about-card-title",children:(0,C.jsx)("a",{href:"https://github.com/zombieyang/sd-ppp/blob/main/LICENSE",children:"LICENSE: BSD3-Clause"})})]}),(0,C.jsxs)("div",{className:"about-card-sections about-card-links",children:[o.map(n=>(0,C.jsx)("a",{href:n.url,children:n.name},n.name)),(0,C.jsx)("div",{style:{width:1,height:1,position:"absolute",right:0,bottom:0,opacity:.1},ref:e,className:"persistent-div"})]})]})}var st=w(I(),1);var He=w(v(),1);function Vn(){let{backendURL:e,setBackendURL:t,connectState:r,doConnectOrDisconnect:o}=L(),n=r==="connected"||r==="connecting"?{disabled:!0}:{};(0,st.useEffect)(()=>{e&&r==="disconnected"&&setTimeout(()=>{o()},1e3)},[]);let i=(0,st.useRef)(!1);return(0,st.useEffect)(()=>()=>{i.current=!0},[]),(0,st.useEffect)(()=>()=>{r==="connected"&&i.current&&o()},[r]),(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)("sp-textfield",{id:"url-bar",label:"backendURL",onInput:s=>{t(s.currentTarget.value)},...n,value:e||"",placeholder:tr}),(0,He.jsx)("sp-action-button",{id:"connect-btn",onClick:()=>{o()},children:r!=="disconnected"?"\u2297":"\u2192"})]})}var Gn=w(I(),1);var xe=class{static makeDocumentDataOptions(t){let r=t.data,o=[`${D.getSpecialDocumentCurrent()}`];return Object.keys(r.documents).forEach(n=>{let i=r.documents[n];o.push(i.identify)}),o}static findDocumentData(t,r){let o=D.is_SPECIAL_DOCUMENT_CURRENT(r)?t.data.activeDocumentID:ho(r).id;return t.data.documents[o]}static makeLayerOptions(t,r){return r.concat(t.layers.map(n=>n.identify))}static getLayerDirtyID(t,r){return t.layers.find(n=>n.identify===r)?.dirtyID||0}static getCanvasDirtyID(t){return t.canvasDirtyID||0}static getSelectionDirtyID(t){return t.selectionDirtyID||0}};var qn=w(I(),1);var Qn=w(I(),1);function Re(e){return{flex:`${e} 0 calc(${e/12*100}% - 10px)`,maxWidth:"100%"}}var at=class extends qn.Component{computeUIWeightCSS(t){return Re(t)}};var Ye=w(v(),1),Ne=class extends at{state={filter:""};handleSelectUpdate=(t,r)=>{this.props.onSelectUpdate(t,r),this.setState({filter:""})};render(){let{options:t,value:r,name:o}=this.props;return(0,Ye.jsxs)("div",{style:{display:"flex",alignItems:"center",...this.computeUIWeightCSS(this.props.uiWeight)},children:[o&&(0,Ye.jsx)("sp-label",{style:{flex:1},children:o}),(0,Ye.jsx)("sp-picker",{class:"sdppp-dropdown-widget",size:"s",style:this.props.name?{flex:2}:{width:"100%"},children:(0,Ye.jsx)("sp-menu",{slot:"options",children:t.map((n,i)=>this.state.filter&&!n.includes(this.state.filter)?"":(0,Ye.jsx)("sp-menu-item",{...mr(n)===mr(r)?{selected:!0}:{},onClick:()=>this.handleSelectUpdate(n,i),children:mr(n)},mr(n)))})})]})}};function mr(e){return typeof e=="string"?e:e.content}var Hn=w(v(),1),hr=class e extends Gn.default.Component{state={options:xe.makeDocumentDataOptions(b)};constructor(t){super(t),b.subscribe("/documents",this.updateOptions)}updateOptions=()=>{let t=xe.makeDocumentDataOptions(b);this.setState({options:t})};componentwillUnmount(){b.unsubscribe(this.updateOptions)}static getValueIfIsValidOptionOrCurrent(t,r){return!r||r.includes(t)?t:D.getSpecialDocumentCurrent()}static getDerivedStateFromProps(t,r){let o=t.value;if(o){let n=o.split("/"),i=e.getValueIfIsValidOptionOrCurrent(n.slice(1).join("/"),r.options);return D.is_SPECIAL_DOCUMENT_CURRENT(i)?o=D.getSpecialDocumentCurrent():o=i,n[0]!=b.data.uname&&t.onSelectUpdate(b.data.uname+"/"+o,0),Object.assign(r,{value:o})}return null}render(){let t=e.getValueIfIsValidOptionOrCurrent(this.props.value,this.state.options);return(0,Hn.jsx)(Ne,{uiWeight:this.props.uiWeight,options:this.state.options,onSelectUpdate:(r,o)=>{this.props.onSelectUpdate(b.data.uname+"/"+r,o)},value:t})}};var Kn=w(I(),1);var Yn=w(v(),1);function de(e){return(0,Yn.jsx)("a",{onClick:e.onClick,children:e.label})}var be=w(v(),1),Oe=class extends Kn.default.Component{state={options:[]};constructor(t){super(t),b.subscribe("/documents",this.updataOptionsAfterDocumentChange)}componentwillUnmount(){b.unsubscribe(this.updataOptionsAfterDocumentChange)}componentDidMount(){this.updateOptions(this.props.documentValue||D.getSpecialDocumentCurrent())}shouldComponentUpdate(t,r){return t.documentValue!=this.props.documentValue&&t.documentValue&&this.updateOptions(t.documentValue),!0}updataOptionsAfterDocumentChange=()=>{this.updateOptions(this.props.documentValue||D.getSpecialDocumentCurrent())};updateOptions=t=>{t=t||this.props.documentValue||D.getSpecialDocumentCurrent();let r=xe.findDocumentData(b,t);if(!r){this.setState({options:[]});return}let o=xe.makeLayerOptions(r,D.getSpecialLayerForGet());this.setState({options:o})};render(){let t=this.props.value;if(t)try{t=h(t)}catch{}return(0,be.jsxs)("div",{className:"sdppp-layer-widget",style:Re(this.props.uiWeight),children:[(0,be.jsx)("div",{className:"sdppp-layer-widget-dropdown",children:(0,be.jsx)(Ne,{uiWeight:12,options:this.state.options,onSelectUpdate:this.props.onSelectUpdate,value:t})}),(0,be.jsxs)("div",{className:"sdppp-layer-widget-quick-set",children:[(0,be.jsxs)("sp-label",{children:[h("Quick Set"),":"]}),(0,be.jsx)(de,{onClick:async()=>{let r=Be();this.props.onSelectUpdate(r,this.state.options.indexOf(r))},label:h("Selected Layer")}),(0,be.jsx)(de,{onClick:async()=>{this.props.onSelectUpdate(D.get_SPECIAL_LAYER_USE_CANVAS(),this.state.options.indexOf(D.get_SPECIAL_LAYER_USE_CANVAS()))},label:h("Canvas")})]})]})}};var kt=w(St(),1),ct=_("photoshop"),re=w(I(),1);var so=w(St(),1),gr=_("photoshop"),te=w(I(),1);var Lt=w(v(),1);function _t({mode:e,setMode:t}){let r=o=>{t(o)};return(0,Lt.jsxs)("div",{className:"widget-mode-selection",children:[(0,Lt.jsx)("button",{className:`widget-mode-selection-button ${e==="manual"?"selected":""}`,onClick:()=>r("manual"),children:h("Manual")}),(0,Lt.jsx)("button",{className:`widget-mode-selection-button ${e==="auto"?"selected":""}`,onClick:()=>r("auto"),children:h("Auto")})]})}var ee=w(v(),1);function zn(e){let[t,r]=(0,te.useState)(""),[o,n]=(0,te.useState)(""),[i,s]=(0,te.useState)("manual"),[a,c]=(0,te.useState)(!1),[l,p]=(0,te.useState)(null),{backendURL:m}=L(),{uploadImage:u}=ae(),{addBeforeWorkflowRunHook:f}=rt(),d=(0,te.useRef)(null),g=(0,te.useCallback)(async()=>{if(i==="manual"&&!a&&l){await e.onValueChange(l);return}try{if(i==="auto"&&await P(t),d.current){let S=await d.current.getBuffer(so.JimpMime.jpeg),E=await u(S,pt(6)+".jpeg");E?.name&&(p(E.subfolder+"/"+E.name),c(!1),await e.onValueChange(E.subfolder+"/"+E.name))}}catch(S){console.error(S)}},[i,a,l,e.onValueChange]);(0,te.useEffect)(()=>{let E=f(g);return()=>{E()}},[g]);let y=o;if(!y&&(l||e.value)){let S=l||e.value,E=S.split("/").slice(0,-1).join("/");y=m+(m.endsWith("/")?"":"/")+`api/view?filename=${S}&type=input&subfolder=${E}&rand=`+Math.random()}let P=(0,te.useCallback)(async S=>{let E=await ao(S);if(!E)return;d.current=E;let B=await cs(E);r(S),n(B),c(!0)},[]);return(0,ee.jsxs)("div",{className:"image-widget",children:[(0,ee.jsx)("div",{className:"image-widget-left",children:(0,ee.jsx)("img",{src:y,className:"image-widget-image"+(y?"":" image-widget-image-empty")})}),(0,ee.jsxs)("div",{className:"image-widget-right",children:[(0,ee.jsx)(_t,{mode:i,setMode:s}),i==="manual"&&(0,ee.jsxs)("div",{className:"image-widget-more-quickset",children:[(0,ee.jsx)("sp-label",{children:h("Set As:")}),(0,ee.jsx)(de,{onClick:()=>{P(Be())},label:h("Selected Layer")}),(0,ee.jsx)(de,{onClick:()=>{P(D.get_SPECIAL_LAYER_USE_CANVAS())},label:h("Canvas")})]}),i=="auto"&&(0,ee.jsx)("div",{className:"image-widget-layer-widget-container",children:(0,ee.jsx)(Oe,{onSelectUpdate:P,uiWeight:10,value:t})})]})]})}async function ao(e){if(!gr.app.activeDocument)return null;try{return await $t.getJimpImage({document_identify:ge(gr.app.activeDocument.id,gr.app.activeDocument.name),layer_identify:e})}catch(t){throw console.error(t),t}}async function cs(e){let t=100/Math.max(e.width,e.height);return e=e.clone(),e.scale(t),await e.getBase64(so.JimpMime.jpeg)}var Y=w(v(),1);function Jn(e){let[t,r]=(0,re.useState)(""),[o,n]=(0,re.useState)(""),[i,s]=(0,re.useState)("manual"),[a,c]=(0,re.useState)(!1),[l,p]=(0,re.useState)(null),{backendURL:m}=L(),{uploadImage:u}=ae(),{addBeforeWorkflowRunHook:f}=rt(),d=(0,re.useRef)(null),g=(0,re.useCallback)(async()=>{if(i==="manual"&&!a&&l){await e.onValueChange(l);return}try{if(i==="auto"&&await P(t),d.current){let S=await d.current.getBuffer(kt.JimpMime.png),E=await u(S,pt(6)+".png");E?.name&&(p(E.subfolder+"/"+E.name),c(!1),await e.onValueChange(E.subfolder+"/"+E.name))}}catch(S){console.error(S)}},[i,a,l,e.onValueChange]);(0,re.useEffect)(()=>{let S=f(g);return()=>{S()}},[g]);let y=o;if(!y&&(l||e.value)){let S=l||e.value,E=S.split("/").slice(0,-1).join("/");y=m+(m.endsWith("/")?"":"/")+`api/view?filename=${S}&type=input&subfolder=${E}&rand=`+Math.random()}let P=(0,re.useCallback)(async(S,E=!1)=>{let B=await ao(S);if(!B)return;d.current=B;let ne=await jn(B,E);r(S),n(ne),c(!0)},[]);return(0,Y.jsxs)("div",{className:"image-widget",children:[(0,Y.jsx)("div",{className:"image-widget-left",children:(0,Y.jsx)("img",{src:y,className:"image-widget-image"+(y?"":" image-widget-image-empty")})}),(0,Y.jsxs)("div",{className:"image-widget-right",children:[(0,Y.jsx)(_t,{mode:i,setMode:S=>{s(S)}}),i==="manual"&&(0,Y.jsxs)("div",{className:"image-widget-more-quickset",children:[(0,Y.jsx)("sp-label",{children:h("Set As:")}),(0,Y.jsx)(de,{onClick:()=>{P(Be(),!1)},label:h("Selected Layer")}),(0,Y.jsx)(de,{onClick:async()=>{P(Be(),!0)},label:h("Selected Layer (invert)")}),(0,Y.jsx)(de,{onClick:()=>{P(D.get_SPECIAL_LAYER_USE_CANVAS())},label:h("Canvas")}),(0,Y.jsx)(de,{onClick:async()=>{let S=await us();if(!S)return;d.current=S;let E=await jn(S);r(""),n(E),c(!0)},label:h("Selection")})]}),i==="auto"&&(0,Y.jsx)("div",{className:"image-widget-layer-widget-container",children:(0,Y.jsx)(Oe,{onSelectUpdate:S=>{P(S,!1)},uiWeight:12,value:t})})]})]})}async function us(){if(!ct.app.activeDocument)return null;try{let e=await Dt({document_identify:ge(ct.app.activeDocument.id,ct.app.activeDocument.name),boundary:{left:0,top:0,right:0,bottom:0,width:ct.app.activeDocument.width,height:ct.app.activeDocument.height}});if(!e?.blob)return null;let t=e.blob,r=new Uint8Array(t.length*4);for(let o=0;oe.nodeIndexes.map(c=>{let l=e.nodes[c],p=(d,g,y)=>d.keepRender?g.outputType==="error"?(d.result.push((0,K.jsx)("span",{className:"list-error-label",children:t[l.id][y]})),d):(o?.(d,l,g,y),d):d,u=Object.values(e.groups).find(d=>d.nodeIDs.includes(l.id))?.color||"rgba(127, 127, 127, .4)",f=l.uiWeightSum<=8&&l.widgets.length==1&&(l.widgets[0].outputType!=="number"||!e.extraOptions?.useSliderForNumberWidget);return(0,K.jsxs)("div",{className:"workflow-edit-field",children:[(0,K.jsx)("div",{className:"workflow-edit-field-title",title:l.title,style:{...Re(f?4:12),borderColor:u},children:i?i(l.title,l):(0,K.jsx)("span",{children:l.title})}),l.widgets.reduce(p,{keepRender:!0,result:[]}).result.map((d,g)=>(0,K.jsx)(co,{children:d},g)),r[l.id]?(0,K.jsx)("span",{className:"list-error-label",children:r[l.id]}):""]},l.id)}),[e,t,r,o,n,i]),a=(0,Tt.useMemo)(()=>Object.keys(r).filter(c=>!e.nodes[parseInt(c)]),[r,e]);return(0,K.jsxs)(K.Fragment,{children:[a.length>0&&a.map(c=>(0,K.jsx)("span",{className:"list-error-label",children:r[c]},c)),Object.keys(e.nodes).length?"":(0,K.jsx)("span",{className:"list-error-label",children:h("no suitable node to control in this workflow")}),(0,K.jsx)("div",{className:"workflow-edit-content",children:s})]})}var co=class extends Tt.default.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}componentDidCatch(t,r){this.setState({hasError:!0,error:t})}render(){return this.state.hasError?(0,K.jsx)("span",{className:"list-error-label",children:this.state.error?.stack||this.state.error?.message||this.state.error?.toString()}):this.props.children}};var Ke=w(I(),1),We=w(v(),1),$n=e=>{let{inputMin:t,inputMax:r,inputStep:o,value:n=0,onValueChange:i,name:s,uiWeight:a,extraOptions:c}=e,[l,p]=(0,Ke.useState)(+n.toFixed(3));(0,Ke.useEffect)(()=>{p(+n.toFixed(3))},[n]);let m=(0,Ke.useCallback)(g=>{let y=+g.target.value;p(+y.toFixed(3))},[]),u=(0,Ke.useCallback)(()=>{i(l)},[l,i]),f=g=>({flex:g||1});return!((r-t)/o>1e3)&&a&&a>=1&&c?.useSliderForNumberWidget?(0,We.jsxs)("div",{style:{...f(a),display:"flex",alignItems:"center"},children:[(0,We.jsx)("sp-slider",{style:{width:"60%"},min:t,max:r,step:o,value:l,onInput:m,"show-value":"false",class:"sdppp-slider"}),(0,We.jsx)("sp-textfield",{style:{width:"40%"},onInput:m,value:l})]}):(0,We.jsxs)("div",{style:{...f(a),display:"flex",alignItems:"center"},children:[s&&(0,We.jsx)("sp-label",{style:{flex:1},children:s}),(0,We.jsx)("sp-textfield",{style:s?{flex:2}:{width:"100%"},onInput:m,onBlur:u,value:l})]})};var q=w(I(),1);var ut=w(v(),1);function Xn(e){let t=q.default.useRef(null),[r,o]=(0,q.useState)(0),[n,i]=(0,q.useState)(e.value??""),[s,a]=(0,q.useState)(!1);return(0,q.useEffect)(()=>{s||i(e.value??"")},[e.value]),(0,q.useEffect)(()=>{let c=setInterval(()=>{if(t.current){let l=t.current.offsetHeight;l!==r&&o(l)}},16);return()=>clearInterval(c)},[r]),(0,ut.jsxs)("div",{className:"widget-container",style:{...Re(e.uiWeight),position:"relative",height:Math.max(55,r)},children:[(0,ut.jsx)(ls,{textAreaValue:n,setTextAreaValue:i,editing:s,setEditing:a,onValueChange:e.onValueChange,hiddenDivHeight:r}),(0,ut.jsx)("p",{ref:t,style:{fontSize:14,visibility:"hidden",whiteSpace:"pre-line"},children:n})]})}function ls({textAreaValue:e,onValueChange:t,editing:r,setEditing:o,setTextAreaValue:n,hiddenDivHeight:i}){let[s,a]=(0,q.useState)(0),c=(0,q.useCallback)(f=>{let d=f.target.value;t(d),n(d)},[t,n]),l=(0,q.useCallback)(()=>{o(!0)},[o]),p=(0,q.useCallback)(()=>{let f={textfieldRerender:s,editing:!1};s==2&&(f.textfieldRerender=1),a(f.textfieldRerender),o(f.editing)},[s,a,o]),[m,u]=(0,q.useState)(i);return(0,q.useEffect)(()=>{i!=m&&(a(r?2:1),u(i))},[i]),(0,q.useEffect)(()=>{s==1&&Promise.resolve().then(async()=>{await new Promise(requestAnimationFrame),a(0)})},[s]),s==1?"":(0,ut.jsx)("sp-textarea",{style:{position:"absolute",height:"100%",width:"100%",top:0,left:0},value:e,onInput:c,onFocus:l,onBlur:p})}var Zn=w(v(),1),yr=class extends at{onInput=t=>{let r=!!t.target.value;this.setState({value:r}),this.props.onValueChange(r)};render(){let t=this.props.value?{checked:!0}:{};return(0,Zn.jsx)("sp-checkbox",{label:this.props.name||"",style:{...this.computeUIWeightCSS(this.props.uiWeight)},onInput:r=>{this.props.onValueChange(r.target.checked)},...t,children:this.props.name||""})}};function ei(e){return e.replace(/^workflows\//,"").replace(/\.json$/,"")}var z=w(v(),1);function ti(){let{callForPSDExtract:e}=ae(),{workflowAgent:t}=L(),{setWidgetValue:r}=An(),{setShouldTriggerLivePainting:o}=ur(),{state:n}=ue(t,["/widgetTableValue","/widgetTableStructure","/widgetTableErrors"]),i=!!t?.data.hasPSDNodes,s=(0,lo.useCallback)(async(m,u,f,d)=>{await r(m,u,f),o(!0)},[r,o]),a=n?.widgetTableStructure,c=n?.widgetTableValue,l=n?.widgetTableErrors,p=(0,lo.useCallback)((m,u,f,d)=>{if(f.outputType=="PS_DOCUMENT")return m.result.push((0,z.jsx)(hr,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",onSelectUpdate:g=>{s(u.id,d,g,u)},extraOptions:a?.extraOptions},d)),!0;if(f.outputType=="PS_LAYER"){let g=f.options?.documentNodeID||0,y=c?.[g]?.[0]||"";return m.result.push((0,z.jsx)(Oe,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",documentValue:y?y.split("/").pop():"",onSelectUpdate:P=>{s(u.id,d,P,u)},extraOptions:a?.extraOptions},d)),!0}else{if(f.outputType=="IMAGE_PATH")return m.result.push((0,z.jsx)(zn,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",onValueChange:async g=>{await s(u.id,d,g,u)},extraOptions:a?.extraOptions},d)),!0;if(f.outputType=="MASK_PATH")return m.result.push((0,z.jsx)(Jn,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",onValueChange:async g=>{await s(u.id,d,g,u)},extraOptions:a?.extraOptions},d)),!0;if(f.outputType==="number"){let g=f.options?.min??0,y=f.options?.max??100,P=f.options?.step??1;m.result.push((0,z.jsx)($n,{uiWeight:f.uiWeight||12,name:f.name,inputMin:g,inputMax:y,inputStep:P,value:parseFloat(c?.[u.id]?.[d]||"0"),onValueChange:S=>{s(u.id,d,S,u)},extraOptions:a?.extraOptions},d))}else if(f.outputType==="combo")m.result.push((0,z.jsx)(Ne,{uiWeight:f.uiWeight||12,name:f.name,options:f.options?.values||[],onSelectUpdate:g=>{s(u.id,d,g,u)},value:c?.[u.id]?.[d]||"",extraOptions:a?.extraOptions},d));else if(f.outputType==="toggle")m.result.push((0,z.jsx)(yr,{uiWeight:f.uiWeight||12,name:f.name,value:c?.[u.id]?.[d]||"",onValueChange:g=>{s(u.id,d,g,u)},extraOptions:a?.extraOptions},d));else{let g=c?.[u.id]?.[d]||"";m.result.push((0,z.jsx)(Xn,{uiWeight:f.uiWeight||12,value:typeof g=="string"?g:JSON.stringify(g),onValueChange:y=>{s(u.id,d,y,u)},extraOptions:a?.extraOptions},d))}}return!1},[r,c]);return a?(0,z.jsxs)("div",{className:"workflow-edit",children:[(0,z.jsxs)("div",{className:"workflow-edit-title",children:[a.widgetTablePath&&(0,z.jsx)("sp-label",{style:{fontWeight:"bold"},children:ei(a.widgetTablePath)}),i?(0,z.jsx)("a",{onClick:()=>{e(t?.data.sid||"").catch(m=>{alert(m.message)})},children:">"+h("sample .psd")}):""]}),(0,z.jsx)(uo,{widgetTableStructure:a,widgetTableValue:c||{},widgetTableErrors:l||{},onWidgetChange:s,onWidgetRender:p})]}):null}var wr=w(I(),1);var F=w(v(),1);function ri(){let{login:e,loginStyle:t,loginBannerTop:r,loginBannerBottom:o}=ke(),[n,i]=(0,wr.useState)(localStorage.getItem("last-username")||""),[s,a]=(0,wr.useState)(""),[c,l]=(0,wr.useState)("");return(0,F.jsxs)("div",{className:"login-container",children:[r,(0,F.jsx)("div",{className:"login-container-login",children:(0,F.jsxs)("div",{className:"login-form",children:[t==="invitation"?(0,F.jsxs)("div",{className:"login-form-item",children:[(0,F.jsx)("label",{htmlFor:"username",children:h("Invitation Code")}),(0,F.jsx)("sp-textfield",{type:"text",id:"username",placeholder:h("Please input invitation code"),value:n,onInput:p=>i(p.target.value)})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)("div",{className:"login-form-item",children:[(0,F.jsx)("label",{htmlFor:"username",children:h("Username")}),(0,F.jsx)("sp-textfield",{type:"text",id:"username",placeholder:h("Please input username"),value:n,onInput:p=>i(p.target.value)})]}),(0,F.jsxs)("div",{className:"login-form-item",children:[(0,F.jsx)("label",{htmlFor:"password",children:h("Password")}),(0,F.jsx)("sp-textfield",{type:"password",id:"password",placeholder:h("Please input password"),value:s,onInput:p=>a(p.target.value)})]})]}),(0,F.jsx)("div",{className:"login-error-message",children:c}),(0,F.jsx)("button",{className:"login-button",onClick:async()=>{let p=await e(n,s);p.success?(l(""),localStorage.setItem("last-username",n)):l(p.message)},children:h("Login")})]})}),o]})}var Me=w(v(),1);function ni({renderContent:e}){let{connectState:t}=L(),r=(0,oi.useMemo)(()=>e(t,Vn,ti),[t]),{isLogin:o}=ke();return(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(Ge,{children:o?r:(0,Me.jsx)(ri,{})}),t!="connected"&&(0,Me.jsx)(Bn,{})]})}var si=w(I(),1);var Pr=w(I(),1);var he=w(v(),1);function ii(e){let t=Se.MU,{state:r}=ue(b,["/comfyUserToken"]),{logout:o}=ae(),{workflowAgent:n}=L(),{workflowAgentSID:i}=Le(),s=Ee(),[a,c]=(0,Pr.useState)(!1);return(0,Pr.useEffect)(()=>{if(!n){b.setComfyUserToken("");return}let l=(p,m)=>{let u=r?.comfyUserToken;b.setComfyUserToken(p),u==""&&a&&(s.resetWebview(),c(!1))};return n.subscribe("/comfyUserToken",l),l(n.data.comfyUserToken,""),()=>{n&&n.unsubscribe(l)}},[n,a,s.resetWebview]),t?(0,he.jsx)("div",{className:"identifier-bar-right",children:n&&r?.comfyUserToken?(0,he.jsxs)(he.Fragment,{children:[(0,he.jsx)("sp-label",{children:h("User: ")+r?.comfyUserToken.split("_")[0]}),(0,he.jsx)("sp-label",{children:(0,he.jsx)("a",{onClick:()=>{o(i),c(!1)},children:h("Logout")})})]}):(0,he.jsx)("a",{onClick:()=>{c(!0),e.onRequestLogin?.()},children:h("--multi-user activated, Not Login!")})}):""}var ai=_("uxp");var oe=w(v(),1);function ci(){let{state:e}=ue(b,["/uname","/comfyUser"]),t=L(),{toggleWebviewDialog:r}=Ee(),o=(0,si.useCallback)(()=>{r()},[r]);return(0,oe.jsxs)("div",{className:"promote-bar",children:[(0,oe.jsx)(ds,{}),(0,oe.jsxs)("div",{className:"identifier-bar",children:[(0,oe.jsx)("div",{className:"identifier-bar-left",children:(0,oe.jsxs)("sp-label",{children:["(Photoshop ID: ",e?.uname,")"]})}),t.comfyMultiUser&&(0,oe.jsx)(ii,{onRequestLogin:o})]})]})}function ds(){let{data:e}=pr(),t=e.cloud[ft()=="zhcn"?"zhcn":"en"];return!t||t.length==0?null:(0,oe.jsxs)("div",{className:"cloud-promote-bar",children:[(0,oe.jsx)("span",{className:"cloud-promote-bar-left",children:h("Cloud")}),(0,oe.jsx)("span",{className:"cloud-promote-bar-right",children:t.map(r=>(0,oe.jsxs)("span",{style:{borderColor:r.color},onClick:()=>{ai.shell.openExternal(r.url)},children:[(0,oe.jsx)("img",{src:r.icon}),r.name]}))})]})}Object.assign(globalThis,{SDPPPInternal:fo});})(); +"use strict";(()=>{var li=Object.create;var Nt=Object.defineProperty;var po=Object.getOwnPropertyDescriptor;var di=Object.getOwnPropertyNames;var fi=Object.getPrototypeOf,pi=Object.prototype.hasOwnProperty;var _=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Ot=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Pr=(e,t)=>{for(var r in t)Nt(e,r,{get:t[r],enumerable:!0})},mi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of di(t))!pi.call(e,n)&&n!==r&&Nt(e,n,{get:()=>t[n],enumerable:!(o=po(t,n))||o.enumerable});return e};var w=(e,t,r)=>(r=e!=null?li(fi(e)):{},mi(t||!e||!e.__esModule?Nt(r,"default",{value:e,enumerable:!0}):r,e));var x=(e,t,r,o)=>{for(var n=o>1?void 0:o?po(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(n=(o?s(t,r,n):s(n))||n);return o&&n&&Nt(t,r,n),n};var C=Ot((Xs,Eo)=>{"use strict";Eo.exports=window.React});var v=Ot((la,To)=>{"use strict";To.exports=window.ReactJSXRuntime});var Mo=Ot((ma,Wo)=>{"use strict";Wo.exports=window.socketIO});var Pt=Ot((Ta,Go)=>{"use strict";Go.exports=window.Jimp});var fo={};Pr(fo,{Promote:()=>ci,SDPPP:()=>ni,SDPPPProvider:()=>xn,useAgentState:()=>On,useSDPPPComfyCaller:()=>ae,useSDPPPContext:()=>Le,useSDPPPWebpageList:()=>Rn,useSDPPPWorkflowList:()=>Nn});var T=_("photoshop");var ye=_("photoshop"),gi=_("uxp");var br={"SDPPP Get Document":"SDPPP Get Document","SDPPP Get Layer By ID":"SDPPP Get Layer","SDPPP Get Linked Layers":"SDPPP Get Linked Layers","SDPPP Get Layers In Group":"SDPPP Get Layers In Group","SDPPP Get Text From Layer":"SDPPP Get Text From Layer","SDPPP Parse Layer Info":"SDPPP Parse Layer Info","SDPPP Get Selection":"SDPPP Get Selection","SDPPP Get Image From Photoshop":"SDPPP Get Image From Photoshop","SDPPP Send Images To Photoshop":"SDPPP Send Images To Photoshop","SDPPP Settings":"SDPPP Settings/Misc"};var vr={"### Active Document ###":"### \u5F53\u524D\u6587\u6863 ###","### The Canvas ###":"### \u6574\u4E2A\u753B\u5E03 ###","### New Layer ###":"### \u65B0\u56FE\u5C42 ###","### Selected Layer ###":"### \u6240\u9009\u56FE\u5C42 ###","### Keep Size or Fit Canvas ###":"### \u4FDD\u6301\u5C3A\u5BF8\u6216\u9002\u5E94\u753B\u5E03 ###",_SDPPP_PSD_:"_SDPPP_PSD_","Save and run immediately":"\u4FDD\u5B58\u5E76\u7ACB\u5373\u6267\u884C",Close:"\u5173\u95ED","Select a {0}":"\u9009\u62E9\u4E00\u4E2A {0}","How to use .ccx file":"\u5982\u4F55\u4F7F\u7528 .ccx \u6587\u4EF6","1. If you have installed Adobe Creative Cloud":"1. \u5982\u679C\u4F60\u5DF2\u7ECF\u5B89\u88C5\u4E86 Adobe Creative Cloud","Just double click the .ccx file, it will install the plugin automatically":"\u53CC\u51FB .ccx \u6587\u4EF6\uFF0C\u5B83\u4F1A\u81EA\u52A8\u5B89\u88C5","2. If you don't have Adobe Creative Cloud":"2. \u5982\u679C\u4F60\u6CA1\u6709 Adobe Creative Cloud","Rename .ccx to .zip and extract it into ":"\u5C06 .ccx \u91CD\u547D\u540D\u4E3A .zip \u5E76\u89E3\u538B\u5230",or:"\u6216","Photoshop directory":"Photoshop \u5B89\u88C5\u76EE\u5F55","Cannot connect multiple different document widgets with same value":"\u4E0D\u80FD\u8FDE\u63A5\u591A\u4E2A\u5177\u6709\u76F8\u540C\u503C\u7684\u6587\u6863\u5C0F\u90E8\u4EF6","You can only have one SDPPP Settings node in a workflow":"\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u53EA\u80FD\u6709\u4E00\u4E2A SDPPP Settings \u8282\u70B9","convert widget {0} failed:":"\u63A7\u4EF6{0}\u8F6C\u6362\u5931\u8D25\uFF1A","hidden webview load failed: {0}, please select a browser page to continue":"\u5185\u7F6E webview \u52A0\u8F7D\u5931\u8D25: {0}\uFF0C\u8BF7\u9009\u62E9\u4E00\u4E2A\u6D4F\u89C8\u5668\u9875\u9762\u7EE7\u7EED","SDPPP Get Document":"SDPPP\u83B7\u53D6\u6587\u6863(GetDocument)","SDPPP Get Layer By ID":"SDPPP\u83B7\u53D6\u56FE\u5C42(GetLayer)","SDPPP Get Linked Layers":"SDPPP\u83B7\u53D6\u94FE\u63A5\u56FE\u5C42(GetLinkedLayers)","SDPPP Get Layers In Group":"SDPPP\u83B7\u53D6\u7EC4\u4E2D\u56FE\u5C42(GetLayersInGroup)","SDPPP Get Text From Layer":"SDPPP\u83B7\u53D6\u56FE\u5C42\u6587\u672C(GetTextFromLayer)","SDPPP Parse Layer Info":"SDPPP\u89E3\u6790\u56FE\u5C42\u4FE1\u606F(ParseLayerInfo)","SDPPP Get Selection":"SDPPP\u83B7\u53D6\u9009\u533A(GetSelection)","SDPPP Get Image From Photoshop":"SDPPP\u4ECEPS\u83B7\u53D6\u56FE\u50CF(GetImageFromPhotoshop)","SDPPP Send Images To Photoshop":"SDPPP\u53D1\u9001\u56FE\u50CF\u5230PS(SendImagesToPhotoshop)","SDPPP Send Text To Layer":"SDPPP\u53D1\u9001\u6587\u672C\u5230\u56FE\u5C42(SendTextToLayer)","SDPPP Run Photoshop Action":"SDPPP\u8FD0\u884CPS Action(RunPhotoshopAction)","download PS plugin (.ccx)":"\u4E0B\u8F7D Photoshop \u63D2\u4EF6 (.ccx)","current ComfyUI pageid: {0}":"\u5F53\u524D ComfyUI \u9875\u9762ID: {0}","current A1111 pageid: {0}":"\u5F53\u524D A1111 \u9875\u9762ID: {0}","document linked":"\u6587\u6863\u53C2\u6570\u5DF2\u94FE\u63A5","layer linked":"\u56FE\u5C42\u53C2\u6570\u5DF2\u94FE\u63A5","bound linked":"\u8303\u56F4\u53C2\u6570\u5DF2\u94FE\u63A5",document:"\u6587\u6863",Document:"\u6587\u6863",DOCUMENT:"\u6587\u6863",document_name:"\u6587\u6863\u540D\u5B57id",layer_nameid:"\u56FE\u5C42\u540D\u5B57id",layer_name:"\u56FE\u5C42\u540D\u5B57",layer_info:"\u56FE\u5C42\u4FE1\u606F",bound_top:"\u8303\u56F4\u4E0A\u8FB9\u8DDD",bound_left:"\u8303\u56F4\u5DE6\u8FB9\u8DDD",bound_width:"\u8303\u56F4\u5BBD\u5EA6",bound_height:"\u8303\u56F4\u9AD8\u5EA6",center_x:"\u4E2D\u5FC3\u70B9x",center_y:"\u4E2D\u5FC3\u70B9y",opacity:"\u900F\u660E\u5EA6",layer:"\u56FE\u5C42",layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",Layer_or_group:"\u56FE\u5C42(\u6216\u7EC4)",bound:"\u8303\u56F4",bounds:"\u8303\u56F4","bounds [optional]":"\u8303\u56F4[\u53EF\u9009]",boundary:"\u8303\u56F4",Boundary:"\u8303\u56F4",canvas_boundary:"\u753B\u5E03\u8303\u56F4",canvas_bound:"\u753B\u5E03\u8303\u56F4",layer_boundary:"\u56FE\u5C42\u8303\u56F4",layer_bound:"\u56FE\u5C42\u8303\u56F4","Photoshop Disconnected!":"Photoshop \u672A\u8FDE\u63A5\uFF01",rgb_out:"RGB\u8F93\u51FA",alpha_out:"Alpha\u8F93\u51FA",images:"\u56FE\u50CF",text:"\u6587\u672C",ID_mode:"\u7CBE\u786EID\u6A21\u5F0F",name_mode:"\u540D\u5B57\u5339\u914D\u6A21\u5F0F",select:"\u9009\u62E9","document boundary":"\u6587\u6863\u8303\u56F4","layer boundary":"\u56FE\u5C42\u8303\u56F4","selection boundary":"\u9009\u4E2D\u8303\u56F4","save .psd to this workflow":"\u4FDD\u5B58.psd\u5230\u8FD9\u4E2A\u5DE5\u4F5C\u6D41","extract saved .psd to Photoshop":"\u63D0\u53D6\u4FDD\u5B58\u7684.psd\u5230Photoshop","sample .psd":"\u793A\u4F8B.psd",mask:"\u906E\u7F69",name:"\u540D\u79F0",quality:"\u56FE\u50CF\u8D28\u91CF",timeout:"\u8D85\u65F6","--multi-user activated, Not Login!":"--multi-user\u5DF2\u6FC0\u6D3B\uFF0C\u4F46\u672A\u767B\u5F55\uFF01",Logout:"\u767B\u51FA","User: ":"\u7528\u6237: ",connect:"\u8FDE\u63A5",connected:"\u5DF2\u8FDE\u63A5",disconnect:"\u65AD\u5F00",disconnected:"\u5DF2\u65AD\u5F00\u8FDE\u63A5","reconnecting...":"\u91CD\u8FDE\u4E2D...",connecting:"\u8FDE\u63A5\u4E2D",webpages:"\u7F51\u9875\u5217\u8868",workflows:"\u5DE5\u4F5C\u6D41",workflow:"\u5DE5\u4F5C\u6D41","auto run page [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u9875\u9762 {0}..","auto run workflow [{0}] after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41 {0}..","auto run workflow after change..":"\u66F4\u6539\u540E\u81EA\u52A8\u8FD0\u884C\u5DE5\u4F5C\u6D41..",selection_only:"\u4EC5\u9009\u533A","Queue:":"\u961F\u5217:","Set As:":"\u8BBE\u7F6E\u4E3A:","Error {0}... please contact me via Discord/Github":"\u51FA\u73B0\u9519\u8BEF {0}...\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211","Webview initialize failed. Please report to me via Discord/Github with your ComfyURL, Operate System":"Webview \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u901A\u8FC7 QQ/Github \u8054\u7CFB\u6211\u5E76\u9644\u4E0A\u4F60\u7684Comfy\u5730\u5740\u3001\u64CD\u4F5C\u7CFB\u7EDF","Workflow List of ComfyUI with --multi-user is only available for sponsors":'\u5E26"--multi-user"\u7684ComfyUI\u4EC5\u5BF9\u8D5E\u52A9\u8005\u5F00\u653E',"(Page ID: {0})Queue: {1}":"(\u9875\u9762ID: {0}) \u961F\u5217\u957F\u5EA6 {1}","no suitable node to control in this workflow":"\u8FD9\u4E2A\u5DE5\u4F5C\u6D41\u4E2D\u6CA1\u6709\u80FD\u63A7\u5236\u7684\u8282\u70B9",Save:"\u4FDD\u5B58",Edit:"\u7F16\u8F91","Edit in ComfyUI":"\u5728 ComfyUI \u4E2D\u7F16\u8F91","using browser page [{0}] for workflow running":"\u6B63\u63A5\u7BA1\u7F51\u9875 [{0}] \u8FD0\u884C\u5DE5\u4F5C\u6D41","workflow running by hidden webview":"\u5DE5\u4F5C\u6D41\u5728\u9690\u85CF\u7684webview\u4E2D\u8FD0\u884C","Lock Image":"\u9501\u5B9A\u56FE\u50CF","Unlock Image":"\u89E3\u9501\u56FE\u50CF","search...":"\u641C\u7D22...","disabled when running in browser page":"\u63A5\u7BA1\u7F51\u9875\u65F6\u4E0D\u53EF\u7528","only supported in Photoshop":"\u4EC5\u5728 Photoshop \u4E2D\u652F\u6301",Login:"\u767B\u5F55","Invitation Code":"\u9080\u8BF7\u7801",Username:"\u7528\u6237\u540D",Password:"\u5BC6\u7801","Please input invitation code":"\u8BF7\u8F93\u5165\u9080\u8BF7\u7801","Please input username":"\u8BF7\u8F93\u5165\u7528\u6237\u540D","Please input password":"\u8BF7\u8F93\u5165\u5BC6\u7801","502: Maybe the server is not running":"502: \u670D\u52A1\u5668\u53EF\u80FD\u672A\u8FD0\u884C","404: Maybe SDPPP is not installed or failed to run in ComfyUI":"404: \u53EF\u80FD\u5728ComfyUI\u4E2DSDPPP\u672A\u5B89\u88C5\u6216\u8FD0\u884C\u5931\u8D25","{0}. reconnecting...":"{0}. \u91CD\u8FDE\u4E2D...","disconnected to {0} failed {1}":"\u65AD\u5F00\u8FDE\u63A5 {0} \u9519\u8BEF {1}","version mismatch, please reinstall PS plugin":"\u7248\u672C\u4E0D\u5339\u914D\uFF0C\u8BF7\u91CD\u65B0\u5B89\u88C5 PS \u63D2\u4EF6","instance type not recognized":"\u672A\u8BC6\u522B\u7684\u8F6F\u4EF6\u7C7B\u578B","Error: {0}":"\u9519\u8BEF: {0}","Verification Error":"\u9A8C\u8BC1\u9519\u8BEF","document {0} not found":"\u627E\u4E0D\u5230\u6587\u6863: {0}",'only layer kind "TEXT" is supported, invalid layer: {0}':"\u4E0D\u652F\u6301\u975E\u6587\u672C\u56FE\u5C42: {0}","create layer failed":"\u521B\u5EFA\u56FE\u5C42\u5931\u8D25","layer not found {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","no linked layer for {0}":"\u6CA1\u6709\u94FE\u63A5\u56FE\u5C42: {0}","layer {0} is not a group":"\u56FE\u5C42 {0} \u4E0D\u662F\u4E00\u4E2A\u7EC4","no layer in group {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u56FE\u5C42","layer not found: {0}":"\u627E\u4E0D\u5230\u56FE\u5C42: {0}","No upload_name":"\u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u4E86\u5931\u8D25","get pixel of {0} failed":"\u83B7\u53D6\u50CF\u7D20\u5931\u8D25: {0}","merge group failed":"\u5408\u5E76\u7EC4\u5931\u8D25","invalid name: {0}":"\u975E\u6CD5\u7684\u540D\u79F0: {0}","get_layer_info: layer_identify required":"get_layer_info: \u9700\u8981 layer_identify","invalid action: {0}":"\u65E0\u6548\u7684\u64CD\u4F5C: {0}","create document failed":"\u521B\u5EFA\u6587\u6863\u5931\u8D25","create document for preview":"\u521B\u5EFA\u9884\u89C8\u6587\u6863","resize document for preview":"\u8C03\u6574\u9884\u89C8\u6587\u6863\u5C3A\u5BF8","no first related layer in {0}":"\u7EC4 {0} \u4E2D\u6CA1\u6709\u7B2C\u4E00\u4E2A\u76F8\u5173\u56FE\u5C42","imageDataError: data length is not multiple of width * height":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: \u6570\u636E\u957F\u5EA6\u4E0D\u662F\u5BBD\u5EA6 * \u9AD8\u5EA6\u7684\u500D\u6570","imageDataError: originComponents must be 1 or 3":"\u56FE\u50CF\u6570\u636E\u6709\u8BEF: originComponents \u5FC5\u987B\u662F 1 \u6216 3","unexpected connection lost, please try to reconnect":"\u610F\u5916\u65AD\u5F00\u8FDE\u63A5\uFF0C\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u8FDE\u63A5","Workflow list is empty, please save a workflow by Comfy's lastest UI":"\u5DE5\u4F5C\u6D41\u5217\u8868\u4E3A\u7A7A\uFF0C\u8BF7\u5728Comfy\u7684\u65B0\u7248UI\u4E2D\u4FDD\u5B58\u4E00\u4E2A\u5DE5\u4F5C\u6D41","No opened ComfyUI pages":"\u6CA1\u6709\u5DF2\u6253\u5F00\u7684ComfyUI\u9875\u9762","comfyAPI is not initialized, maybe comfyUI is too old":"\u65E0\u6CD5\u83B7\u53D6 ComfyAPI\uFF0C\u53EF\u80FD ComfyUI \u7248\u672C\u592A\u65E7","unsupported channel counts: {0}":"\u4E0D\u652F\u6301\u7684\u901A\u9053\u6570: {0}","Timeout, Maybe the URL is wrong":"\u8D85\u65F6\uFF0C\u53EF\u80FD comfy\u5730\u5740 \u586B\u5199\u9519\u8BEF","Workflow list loading failed: {0}":"\u5DE5\u4F5C\u6D41\u5217\u8868\u52A0\u8F7D\u5931\u8D25: {0}","Please register a user in ComfyUI":"\u8BF7\u5728 ComfyUI \u4E2D\u6CE8\u518C\u4E00\u4E2A\u7528\u6237","GetSelection need Photoshop version 25+":"GetSelection \u9700\u8981 Photoshop 25+ \u7248\u672C","Action {0} not found":"Action {0} \u672A\u627E\u5230","Action set {0} not found":"ActionSet {0} \u672A\u627E\u5230","create document for sent images":"\u7ED9\u53D1\u9001\u7684\u56FE\u7247\u521B\u5EFA\u6587\u6863","show sent images":"\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","fallback show sent images":"\u53D6\u6D88\u663E\u793A\u53D1\u9001\u7684\u56FE\u7247","get content of layer {0}":"\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","fallback get content of layer {0}":"\u53D6\u6D88\u83B7\u53D6\u56FE\u5C42 {0} \u7684\u5185\u5BB9","get layer info":"\u83B7\u53D6\u56FE\u5C42\u4FE1\u606F","sdppp extract PSD":"sdppp \u5BFC\u5165 PSD","sdppp get PSD":"sdppp \u83B7\u53D6 PSD","set text to layer":"\u8BBE\u7F6E\u56FE\u5C42\u7684\u6587\u672C","sdppp Run Photoshop Action":"sdppp \u8FD0\u884C Photoshop Action","{0} wants to extract a PSD file to Photoshop, are you sure?":"{0} \u60F3\u8981\u91CA\u653E\u4E00\u4E2A.psd\u6587\u4EF6\u5230Photoshop\uFF0C\u786E\u5B9A\u5417\uFF1F","should sdppp refuse extracting PSD to Photoshop in this session anymore?":"\u662F\u5426\u8981\u8BA9 sdppp \u62D2\u7EDD\u672C\u6B21PS\u4F1A\u8BDD\u518D\u6B21\u63A5\u53D7.psd\u91CA\u653E\u8BF7\u6C42\uFF1F","Wide Mode":"\u5BBD\u5C4F\u6A21\u5F0F","Quick Set":"\u5FEB\u901F\u8BBE\u7F6E","Selected Layer":"\u9009\u4E2D\u56FE\u5C42","Selected Layer (invert)":"\u9009\u4E2D\u56FE\u5C42(\u53CD\u5411)",Canvas:"\u753B\u5E03",Selection:"\u9009\u533A",Manual:"\u624B\u52A8\u6A21\u5F0F",Auto:"\u81EA\u52A8\u6A21\u5F0F","This plugin is based on sd-ppp":"\u672C\u63D2\u4EF6\u57FA\u4E8Esd-ppp\u5F00\u53D1","And follows its open source license:":"\u5E76\u9075\u5FAA\u5176\u5F00\u6E90\u534F\u8BAE\uFF1A",Cloud:"\u4E91\u7AEF",Sponsors:"\u8D5E\u52A9","waiting...":"\u865A\u4F4D\u4EE5\u5F85",Links:"\u53CB\u60C5\u94FE\u63A5",Community:"\u793E\u533A","LICENSE:":"\u8BB8\u53EF\u8BC1\uFF1A","Official Site":"\u5B98\u65B9\u7F51\u7AD9",upload:"\u4E0A\u4F20","Simplify Workflow":"\u7B80\u5316\u5DE5\u4F5C\u6D41",Photoshop:"Photoshop","Photoshop plugin settings":"Photoshop \u63D2\u4EF6\u8BBE\u7F6E","Photoshop plugin":"Photoshop \u63D2\u4EF6","SDPPP Settings/Misc":"SDPPP \u8BBE\u7F6E/\u6742\u9879","Sample .PSD for this workflow:":"\u793A\u4F8B.PSD","Download Example .PSD":"\u4E0B\u8F7D\u793A\u4F8B.PSD","Maximum Image Size (px):":"\u6700\u5927\u56FE\u50CF\u5C3A\u5BF8(px)",Download:"\u4E0B\u8F7D",Upload:"\u4E0A\u4F20",Reset:"\u91CD\u7F6E",Refresh:"\u5237\u65B0","Comfy URL (You can copy it to connect ComfyUI in the plugin):":"Comfy\u5730\u5740(\u4F60\u53EF\u4EE5\u590D\u5236\u5B83\u5230\u63D2\u4EF6\u4E2D\u8FDE\u63A5ComfyUI):","use slider for number widget:":"\u6570\u5B57\u63A7\u4EF6\u4F7F\u7528\u6ED1\u5757","Photoshop is not connected":"Photoshop \u672A\u8FDE\u63A5","select...":"\u8BF7\u9009\u62E9","click to edit":"\u70B9\u51FB\u7F16\u8F91","ComfyManager not found, cannot reboot":"Comfy Manager\u672A\u5B89\u88C5\uFF0C\u65E0\u6CD5\u91CD\u542F","Failed to reboot ComfyUI":"\u91CD\u542FComfyUI\u5931\u8D25"};var mo=typeof _<"u"?_:void 0,Wt="en";typeof navigator<"u"&&navigator.language?Wt=navigator.language=="zh-CN"?"zhcn":"en":mo&&(Wt=mo("uxp").host.uiLocale.startsWith("zh")?"zhcn":"en");function h(e,...t){let r=Wt=="zhcn"?vr[e]:e in br?br[e]:e;if(!r)throw new Error(`i18n key not found: ${e}`);return r.replace(/{(\d+)}/g,function(o,n){return typeof t[n]<"u"?t[n]:o})}function Fe(e,t){return e==t||vr[e]==t}function Be(){return Wt}var D=class e{static SPECIAL_DOCUMENT_CURRENT="### Active Document ###";static is_SPECIAL_DOCUMENT_CURRENT(t){return Fe(this.SPECIAL_DOCUMENT_CURRENT,t)}static get_SPECIAL_DOCUMENT_CURRENT(){return h(this.SPECIAL_DOCUMENT_CURRENT)}static SPECIAL_LAYER_KEEP_SIZE="### Keep Size or Fit Canvas ###";static is_SPECIAL_LAYER_FIT(t){return Fe(this.SPECIAL_LAYER_KEEP_SIZE,t)}static get_SPECIAL_LAYER_FIT(){return h(this.SPECIAL_LAYER_KEEP_SIZE)}static SPECIAL_LAYER_USE_CANVAS="### The Canvas ###";static is_SPECIAL_LAYER_USE_CANVAS(t){return Fe(this.SPECIAL_LAYER_USE_CANVAS,t)}static get_SPECIAL_LAYER_USE_CANVAS(){return h(this.SPECIAL_LAYER_USE_CANVAS)}static SPECIAL_LAYER_NEW_LAYER="### New Layer ###";static is_SPECIAL_LAYER_NEW_LAYER(t){return Fe(this.SPECIAL_LAYER_NEW_LAYER,t)}static get_SPECIAL_LAYER_NEW_LAYER(){return h(this.SPECIAL_LAYER_NEW_LAYER)}static SPECIAL_LAYER_SELECTED_LAYER="### Selected Layer ###";static is_SPECIAL_LAYER_SELECTED_LAYER(t){return Fe(this.SPECIAL_LAYER_SELECTED_LAYER,t)}static get_SPECIAL_LAYER_SELECTED_LAYER(){return h(this.SPECIAL_LAYER_SELECTED_LAYER)}static SPECIAL_LAYER_PREVIEW_DOCUMENT="_SDPPP_PSD_";static is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t){return Fe(this.SPECIAL_LAYER_PREVIEW_DOCUMENT,t)}static get_SPECIAL_LAYER_PREVIEW_DOCUMENT(){return h(this.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static getSpecialDocumentCurrent(){return h(e.SPECIAL_DOCUMENT_CURRENT)}static getSpecialLayerForGet(){return[h(e.SPECIAL_LAYER_USE_CANVAS),h(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialLayerForSend(){return[h(e.SPECIAL_LAYER_NEW_LAYER),h(e.SPECIAL_LAYER_SELECTED_LAYER)]}static getSpecialDocumentForPreview(){return h(e.SPECIAL_LAYER_PREVIEW_DOCUMENT)}static fixI18n(t){return this.is_SPECIAL_DOCUMENT_CURRENT(t)?this.SPECIAL_DOCUMENT_CURRENT:this.is_SPECIAL_LAYER_NEW_LAYER(t)?this.SPECIAL_LAYER_NEW_LAYER:this.is_SPECIAL_LAYER_PREVIEW_DOCUMENT(t)?this.SPECIAL_LAYER_PREVIEW_DOCUMENT:this.is_SPECIAL_LAYER_USE_CANVAS(t)?this.SPECIAL_LAYER_USE_CANVAS:this.is_SPECIAL_LAYER_SELECTED_LAYER(t)?this.SPECIAL_LAYER_SELECTED_LAYER:t}};function ve(e,t,r=0){return"-".repeat(r)+`${t} (id:${e})`}function ge(e,t){return`${t} (id:${e})`}function hi(e){let t=e.split(" (id:");return{name:t[0],id:parseInt(t[1].slice(0,-1))}}function ho(e){return hi(e)}function Ve(){let e=ye.app.activeDocument?.activeLayers?.[0];return e?ve(e.id,e.name):D.get_SPECIAL_LAYER_USE_CANVAS()}function go(e,t,r,o,n){let i=r.left,s=r.top,a=r.right,c=r.bottom,l=a-i,m=c-s,p=o.left,u=o.top,f=o.right,d=o.bottom,g=f-p,y=d-u,S=Math.max(i,p),P=Math.max(s,u),E=Math.min(a,f),B=Math.min(c,d),ne=E-S,dt=B-P,j=g*y*n;if(t.length!==j)throw new Error(`toImageDataArray.length(${t.length}) !== toLength(${j})`);let Q=ne*dt*n;if(e.length!==Q)throw new Error(`fromImageDataArray.length(${e.length}) !== fromLength(${Q})`);for(let Ue=0;Ue=i&&ft=s&&xt0?e.activeLayers[0].id:0:D.is_SPECIAL_LAYER_NEW_LAYER(t)?-2:yo(t)}function Dr(e,t=0,r=""){return e?.layers?e.layers.reduce((o,n)=>{let i=t==0?`/${n.name}`:`${r}/${n.name}`;return o.push({layer:n,path:i,level:t}),o.concat(Dr(n,t+1,i))},[]):[]}function fe(e,t){if(!e.layers)return null;for(let r=0;rt.id==yi(e)))||null}function wo(e,t){return{name:t.name,opacity:t.opacity/100,boundary:{left:t.bounds?.left||0,top:t.bounds?.top||0,right:e.width-(t.bounds?.right||0),bottom:e.height-(t.bounds?.bottom||0),width:t.bounds?.width||0,height:t.bounds?.height||0},isGroup:t.kind==ye.constants.LayerKind.GROUP}}function So(){let e=localStorage.getItem("sdppp_uid");return(!e||e.length!=3)&&(e=pt(3),localStorage.setItem("sdppp_uid",e)),e}function pt(e){let t="",r="abcdefghijklmnopqrstuvwxyz0123456789",o=r.length,n=0;for(;n{o[i]=r.bind(this,i),n.subscribe(t,o[i])})}unsubscribe(t){this.subscribers=this.subscribers.filter(([o,n])=>n!=t);let r=this.subscribersWithoutKey.get(t);r&&this.storeMap.forEach((o,n)=>{o.unsubscribe(r[n])})}addStore(t,r,o){let n=this.createStore(r,o);this.storeMap.set(t,n),this.subscribers.forEach(([i,s])=>{let a=this.subscribersWithoutKey.get(s);a||(a={},this.subscribersWithoutKey.set(s,a)),a[t]=s.bind(this,t),n.subscribe(i,a[t]),i=="/"&&s(t,r,null)})}removeStore(t){let r=this.storeMap.get(t);r&&(this.subscribers.forEach(([o,n])=>{let i=this.subscribersWithoutKey.get(n);i&&(r.unsubscribe(i[t]),o=="/"&&n(t,null,r.data))}),this.storeMap.delete(t))}sync(t){if(t instanceof Array){let r=Array.from(this.storeMap.keys()),o=t.filter(i=>!r.includes(i)),n=r.filter(i=>!t.includes(i));o.forEach(i=>this.addStore(i,{},0)),n.forEach(i=>this.removeStore(i))}else{Array.from(this.storeMap.keys()).filter(o=>!Object.keys(t).includes(o)).forEach(o=>this.removeStore(o));for(let o in t){let{data:n,version:i}=t[o];this.storeMap.has(o)?this.storeMap.get(o)?.sync(n,i):this.addStore(o,n,i)}}}};var Er={};Pr(Er,{JsonPatchError:()=>N,_areEquals:()=>gt,applyOperation:()=>Qe,applyPatch:()=>Je,applyReducer:()=>Di,deepClone:()=>bi,getValueByPointer:()=>qe,validate:()=>bo,validator:()=>qt});var Si=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var i in n)n.hasOwnProperty(i)&&(o[i]=n[i])},e(t,r)};return function(t,r){e(t,r);function o(){this.constructor=t}t.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}(),Pi=Object.prototype.hasOwnProperty;function Bt(e,t){return Pi.call(e,t)}function Vt(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r=48&&o<=57){t++;continue}return!1}return!0}function pe(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function mt(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Ft(e){if(e===void 0)return!0;if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&c[m-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&u===void 0&&(l[f]===void 0?u=c.slice(0,m).join("/"):m==p-1&&(u=t.path),u!==void 0&&d(t,0,e,u)),m++,Array.isArray(l)){if(f==="-")f=l.length;else{if(r&&!Qt(f))throw new N("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",i,t,e);Qt(f)&&(f=~~f)}if(m>=p){if(r&&t.op==="add"&&f>l.length)throw new N("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",i,t,e);var s=vi[t.op].call(t,l,f,e);if(s.test===!1)throw new N("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return s}}else if(m>=p){var s=je[t.op].call(t,l,f,e);if(s.test===!1)throw new N("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return s}if(l=l[f],r&&m0)throw new N('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if((e.op==="move"||e.op==="copy")&&typeof e.from!="string")throw new N("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===void 0)throw new N("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if((e.op==="add"||e.op==="replace"||e.op==="test")&&Ft(e.value))throw new N("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r){if(e.op=="add"){var n=e.path.split("/").length,i=o.split("/").length;if(n!==i+1&&n!==i)throw new N("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==o)throw new N("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if(e.op==="move"||e.op==="copy"){var s={op:"_get",path:e.from,value:void 0},a=bo([s],r);if(a&&a.name==="OPERATION_PATH_UNRESOLVABLE")throw new N("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}else throw new N("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r)}function bo(e,t,r){try{if(!Array.isArray(e))throw new N("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)Je(R(t),R(e),r||!0);else{r=r||qt;for(var o=0;oGt,generate:()=>Ir,observe:()=>ki,unobserve:()=>_i});var Cr=new WeakMap,Ei=function(){function e(t){this.observers=new Map,this.obj=t}return e}(),Ii=function(){function e(t,r){this.callback=t,this.observer=r}return e}();function Ci(e){return Cr.get(e)}function Ai(e,t){return e.observers.get(t)}function Li(e,t){e.observers.delete(t.callback)}function _i(e,t){t.unobserve()}function ki(e,t){var r=[],o,n=Ci(e);if(!n)n=new Ei(e),Cr.set(e,n);else{var i=Ai(n,t);o=i&&i.observer}if(o)return o;if(o={},n.value=R(e),t){o.callback=t,o.next=null;var s=function(){Ir(o)},a=function(){clearTimeout(o.next),o.next=setTimeout(s)};typeof window<"u"&&(window.addEventListener("mouseup",a),window.addEventListener("keyup",a),window.addEventListener("mousedown",a),window.addEventListener("keydown",a),window.addEventListener("change",a))}return o.patches=r,o.object=e,o.unobserve=function(){Ir(o),clearTimeout(o.next),Li(n,o),typeof window<"u"&&(window.removeEventListener("mouseup",a),window.removeEventListener("keyup",a),window.removeEventListener("mousedown",a),window.removeEventListener("keydown",a),window.removeEventListener("change",a))},n.observers.set(t,new Ii(t,o)),o}function Ir(e,t){t===void 0&&(t=!1);var r=Cr.get(e.object);Ar(r.value,e.object,e.patches,"",t),e.patches.length&&Je(r.value,e.patches);var o=e.patches;return o.length>0&&(e.patches=[],e.callback&&e.callback(o)),o}function Ar(e,t,r,o,n){if(t!==e){typeof t.toJSON=="function"&&(t=t.toJSON());for(var i=Vt(t),s=Vt(e),a=!1,c=!1,l=s.length-1;l>=0;l--){var m=s[l],p=e[m];if(Bt(t,m)&&!(t[m]===void 0&&p!==void 0&&Array.isArray(t)===!1)){var u=t[m];typeof p=="object"&&p!=null&&typeof u=="object"&&u!=null&&Array.isArray(p)===Array.isArray(u)?Ar(p,u,r,o+"/"+pe(m),n):p!==u&&(a=!0,n&&r.push({op:"test",path:o+"/"+pe(m),value:R(p)}),r.push({op:"replace",path:o+"/"+pe(m),value:R(u)}))}else Array.isArray(e)===Array.isArray(t)?(n&&r.push({op:"test",path:o+"/"+pe(m),value:R(p)}),r.push({op:"remove",path:o+"/"+pe(m)}),c=!0):(n&&r.push({op:"test",path:o,value:e}),r.push({op:"replace",path:o,value:t}),a=!0)}if(!(!c&&i.length==s.length))for(var l=0;lo!=t)}dispatch(t,r){let o=new Map;t.forEach(n=>{this.subscribers.forEach(([i,s])=>{n.path.startsWith(i)&&!o.has(i)&&o.set(i,JSON.stringify(i==="/"?r:qe(r,i)))})}),o.forEach((n,i)=>{let s=i==="/"?this._data:qe(this._data,i);n!==JSON.stringify(s)&&this.subscribers.filter(([a,c])=>a===i).forEach(([a,c])=>{let l={};try{l=c(s,JSON.parse(n||{}))}catch(m){console.error(m.stack||m.message||m)}l instanceof Promise&&l.catch(m=>{console.error(m.stack||m.message||m)})})})}};function O(e,t,r){return e.constructor[Ht]||(e.constructor[Ht]=[]),e.constructor[Ht].push(t),{value:function(...o){let n=R(this._data);r.value.apply(this,o);let i=Gt(n,this._data);i.length!=0&&(this._mutationRecords.push(...i),this._version+=i.length,this.dispatch(i,n))}}}var Ge=class extends _r{constructor(t){super(Object.assign({sid:"",ssid:""},t||{}))}setSID(t){this._data.sid=t,this._data.ssid=t.slice(0,4)}};x([O],Ge.prototype,"setSID",1);var me=class extends Ge{constructor(t,r){super(t||{uname:"",comfyUserToken:"",activeDocumentID:0,documents:{},canvasStateID:0,selectionStateID:"",historyStateID:0}),this._version=r||0}setUName(t){this._data.uname="PS_"+t}setDocument(t,r){this._data.activeDocumentID=t,this._data.documents=r}setCanvasStateID(t){this._data.canvasStateID=t}setSelectionStateID(t){this._data.selectionStateID=t}setHistoryStateID(t){this._data.historyStateID=t}setComfyUserToken(t){this._data.comfyUserToken=t}};x([O],me.prototype,"setUName",1),x([O],me.prototype,"setDocument",1),x([O],me.prototype,"setCanvasStateID",1),x([O],me.prototype,"setSelectionStateID",1),x([O],me.prototype,"setHistoryStateID",1),x([O],me.prototype,"setComfyUserToken",1);var G=class extends Ge{constructor(t,r){super(t||{title:"",webviewFromSid:location.search.match(/webview_fromsid=([^&]+)/)?.[1]||"",progress:0,lastError:"",queueSize:0,executingNodeTitle:"",widgetTableStructure:{widgetTablePath:"",widgetTablePersisted:!1,widgetTableID:"",nodes:{},groups:{},nodeIndexes:[],extraOptions:{}},widgetTableValue:{},widgetTableErrors:{},useSliderForNumberWidget:!1,hasPSDNodes:!1,comfyUserToken:""}),this._version=r||0}setWebviewFromSid(t){this._data.webviewFromSid=t}setTitle(t){this._data.title=t}setProgress(t){this._data.progress=t}setLastError(t){this._data.lastError=t}setQueueSize(t){this._data.queueSize=t}setExecutingNodeTitle(t){this._data.executingNodeTitle=t}setWidgetTableStructure(t){this._data.widgetTableStructure=JSON.parse(JSON.stringify(t))}setWidgetTableValue(t){this._data.widgetTableValue=JSON.parse(JSON.stringify(t))}setWidgetTableErrors(t){this._data.widgetTableErrors=JSON.parse(JSON.stringify(t))}setHasPSDNodes(t){this._data.hasPSDNodes=t}setComfyUserToken(t){this._data.comfyUserToken=t}setUseSliderForNumberWidget(t){this._data.useSliderForNumberWidget=t}};x([O],G.prototype,"setWebviewFromSid",1),x([O],G.prototype,"setTitle",1),x([O],G.prototype,"setProgress",1),x([O],G.prototype,"setLastError",1),x([O],G.prototype,"setQueueSize",1),x([O],G.prototype,"setExecutingNodeTitle",1),x([O],G.prototype,"setWidgetTableStructure",1),x([O],G.prototype,"setWidgetTableValue",1),x([O],G.prototype,"setWidgetTableErrors",1),x([O],G.prototype,"setHasPSDNodes",1),x([O],G.prototype,"setComfyUserToken",1),x([O],G.prototype,"setUseSliderForNumberWidget",1);var kr=class extends Ut{createStore(t,r){return new G(t,r)}},k=new kr,b=new me;var vo=e=>{let t,r=new Set,o=(l,m)=>{let p=typeof l=="function"?l(t):l;if(!Object.is(p,t)){let u=t;t=m??(typeof p!="object"||p===null)?p:Object.assign({},t,p),r.forEach(f=>f(t,u))}},n=()=>t,a={setState:o,getState:n,getInitialState:()=>c,subscribe:l=>(r.add(l),()=>r.delete(l))},c=t=e(o,n,a);return a},Do=e=>e?vo(e):vo;var Tr=w(C(),1);var Ti=e=>e;function xi(e,t=Ti){let r=Tr.default.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return Tr.default.useDebugValue(r),r}var Io=e=>{let t=Do(e),r=o=>xi(t,o);return Object.assign(r,t),r},Co=e=>e?Io(e):Io;var we=_("photoshop");var H=Co((e,t)=>({canvasDirtyID:0,selectionDirtyID:0,layerDirtyIDs:new Map,documentCache:{},incrementCanvasDirtyID:()=>{e(r=>({canvasDirtyID:r.canvasDirtyID+1})),xr()},incrementLayerDirtyID:r=>{e(o=>{let n=o.layerDirtyIDs.get(r)||0,i=new Map(o.layerDirtyIDs);return i.set(r,n+1),console.log(r,n+1),{layerDirtyIDs:i}}),xr()},incrementSelectionDirtyID:()=>{e(r=>({selectionDirtyID:r.selectionDirtyID+1})),xr()},setDocuments:r=>{e({documentCache:r}),we.app.activeDocument&&b.setDocument(we.app.activeDocument.id,JSON.parse(JSON.stringify(r)))},clearCanvasDirtyID:()=>{e({canvasDirtyID:0})},clearLayerDirtyIDs:()=>{e({layerDirtyIDs:new Map})},clearSelectionDirtyID:()=>{e({selectionDirtyID:0})}}));function xr(){if(!we.app.activeDocument)return;let e=H.getState().documentCache[we.app.activeDocument.id];if(e){let t={...e,dirtyID:H.getState().canvasDirtyID,layers:e.layers.map(r=>{let o=H.getState().layerDirtyIDs.get(r.id);return o!==void 0?{...r,dirtyID:o}:r})};H.setState(r=>({documentCache:{...r.documentCache,[we.app.activeDocument.id]:t}})),b.setDocument(we.app.activeDocument.id,H.getState().documentCache)}}function $e(){try{if(!we.app.activeDocument)return;let e=we.app.documents.reduce((t,r)=>{let o=Dr(r).map(n=>{let i=n.layer.id;return{level:n.level,id:i,name:n.layer.name,identify:ve(i,n.layer.name,n.level),fullPath:n.path,dirtyID:H.getState().layerDirtyIDs.get(i)||0}});return t[r.id]={name:r.name,id:r.id,identify:ge(r.id,r.name),layers:o,canvasDirtyID:H.getState().canvasDirtyID,selectionDirtyID:H.getState().selectionDirtyID},t},{});H.getState().setDocuments(e)}catch(e){console.error(e)}}function Yt(){H.getState().incrementCanvasDirtyID()}function De(e){Array.isArray(e)?e.forEach(t=>{H.getState().incrementLayerDirtyID(t)}):H.getState().incrementLayerDirtyID(e)}function Ao(){H.getState().clearCanvasDirtyID(),H.getState().clearLayerDirtyIDs(),$e()}function Rr(){H.getState().incrementSelectionDirtyID()}(async()=>{b.setUName(So()),$e()})().catch(console.error);T.action.addNotificationListener(["historyStateChanged"],e=>{Ri(),(e.commandID==5004||e.commandID==5002)&&(wt(),De(T.app.activeDocument?.activeLayers.map(t=>t.id)))});T.action.addNotificationListener(["toolModalStateChanged"],(e,t,...r)=>{t.state._value=="exit"&&t.kind._value=="paint"&&(wt(),De(T.app.activeDocument?.activeLayers.map(o=>o.id)))});T.action.addNotificationListener(["modalStateChanged"],(e,t)=>{t.state._value=="exit"&&(wt(),De(T.app.activeDocument?.activeLayers.map(r=>r.id)))});T.action.addNotificationListener(["show","hide","transform","fill","crop"],()=>{wt(),De(T.app.activeDocument?.activeLayers.map(e=>e.id))});T.action.addNotificationListener(["delete","move","copyToLayer"],()=>{$e(),wt(),De(T.app.activeDocument?.activeLayers.map(e=>e.id))});T.action.addNotificationListener(["newDocument","open","close","make","modalJavaScriptScopeExit"],()=>$e());function wt(){let e=T.app.activeDocument?.historyStates;e&&b.setCanvasStateID(e[e.length-1].id),Yt()}function Ri(){let e=T.app.activeDocument?.historyStates;e&&b.setHistoryStateID(e[e.length-1].id)}function Lo(){b.setSelectionStateID(_o+"_"+yt+"_"+Kt)}var yt=T.app.activeDocument?.id,Kt=T.app.activeDocument?.activeLayers.map(e=>e.id).join(","),_o=0;T.action.addNotificationListener(["set"],(e,t)=>{t._target[0]._property=="selection"&&(_o++,Lo(),Rr())});function ko(){let e=T.app.activeDocument?.activeLayers.map(t=>t.id).join(",");yt!=T.app.activeDocument?.id&&Ao(),yt!=T.app.activeDocument?.id||Kt!=e?(yt=T.app.activeDocument?.id,Kt=e,Lo(),Rr()):(yt=T.app.activeDocument?.id,Kt=e),requestAnimationFrame(ko)}requestAnimationFrame(ko);setInterval(()=>$e(),5e3);var nt=w(C(),1);var W=w(C(),1);var A=w(C(),1);var Oo=w(v(),1),Ro=(0,A.createContext)(null);function No({children:e}){let t=Ni();return(0,A.useEffect)(()=>{window.addEventListener("message",o=>{o.data.action==="webview-connect"&&o.source?.postMessage({action:"webview-connect",payload:{webviewFromSid:b.data.sid}})});let r="";k.subscribe("/",(o,n,i)=>{n?.webviewFromSid==b.data.sid&&(t.setWebviewAgentSID(n?.sid),r||(r=n?.sid)),!n&&i.webviewFromSid==b.data.sid&&t.setWebviewAgentSID(r)})},[]),(0,Oo.jsx)(Ro.Provider,{value:{webviewAgentSID:t.webviewAgentSID,prevWebviewAgentSID:t.prevWebviewAgentSID,setWebviewAgentSID:t.setWebviewAgentSID,toggleWebviewDialog:t.toggleWebviewDialog,setSrc:t.setSrc,resetWebview:t.resetWebview},children:e})}function Ee(){let e=(0,A.useContext)(Ro);if(!e)throw new Error("useSDPPPWebview must be used within a SDPPPWebviewProvider");return e}function Ni(){let[e,t]=(0,A.useState)(null),[r,o]=(0,A.useState)(null),[n,i]=(0,A.useState)(null),[s,a]=(0,A.useState)(!1),[c,l]=(0,A.useState)(""),[m,p]=(0,A.useState)(""),[u,f]=(0,A.useState)(""),[d,g]=(0,A.useState)(!1),[y,S]=(0,A.useState)(!1),P=(0,A.useRef)(null);(0,A.useEffect)(()=>{let j=()=>{a(!1),p(u),ne()};return n?.addEventListener("close",j),()=>{n?.removeEventListener("close",j)}},[n,u,p,a]),(0,A.useEffect)(()=>{f(m)},[m]),(0,A.useEffect)(()=>{Oi(i,o);let j=xo();return t(j),P.current&&clearTimeout(P.current),g(!1),S(!1),P.current=setTimeout(()=>{g(!0)},5e3),j.addEventListener("loadstop",()=>{S(!0)}),()=>{P.current&&clearTimeout(P.current),n?.parentElement?.removeChild(n)}},[]);let[E,B]=(0,A.useState)("");(0,A.useEffect)(()=>{c&&(B(c),E===c?ne():(e?.setAttribute("src",c),r?.setAttribute("src",c)))},[c]);let ne=(0,A.useCallback)(()=>{e?.parentElement?.removeChild(e),a(!1),n?.close();let j=xo();t(j);let Q=c;l(""),B(""),setTimeout(()=>{l(Q)},300)},[e,c]),dt=(0,A.useCallback)(()=>{s?(n?.close(),a(!1)):(n?.show(),a(!0))},[n,s]);return{dialogShowing:s,toggleWebviewDialog:dt,setSrc:l,webviewAgentSID:m,setWebviewAgentSID:p,prevWebviewAgentSID:u,setPrevWebviewAgentSID:f,resetWebview:ne,anyWebviewLoaded:y,timeoutError:(0,A.useMemo)(()=>d&&!y,[d,y])}}function Oi(e,t){let r=document.createElement("dialog");r.className="sdppp-webview",r.style.padding="0",r.style.margin="0",r.style.width="1024px",r.style.height="768px",document.body.appendChild(r),e(r);let o=document.createElement("webview");return o.style.position="relative",o.style.width="1024px",o.style.height="768px",r.appendChild(o),t(o),r}var Se=null;function xo(){Se||(Se=document.createElement("div"),Se.style.position="absolute",Se.style.width="100px",Se.style.height="100px",Se.style.right="0",Se.style.bottom="-10000px",document.body.appendChild(Se));let e=document.createElement("webview");return e.style.width="100px",e.style.height="100px",Se?.appendChild(e),e}var Bo=w(Mo(),1);var Uo=`504 +`;var Fo=Uo.trim();var Nr=class{socket;constructor(t){let r="/"+[t.split("/").slice(3).filter(o=>o).join("/"),"sd-ppp/"].filter(o=>o).join("/");t=t.split("/").slice(0,3).join("/"),this.socket=(0,Bo.io)(t,{transports:["websocket"],path:r,query:{api_level:Fo},rejectUnauthorized:!1,autoConnect:!1}),this.socket.on("connect",()=>{this.socket.io.engine.binaryType="blob"})}get id(){return this.socket.id}connect(){this.socket.connect()}close(){this.socket.close()}};function Vo(...e){return e.reduce((t,r)=>r(t),Nr)}var zt=class{flushing=Promise.resolve();newFlushPending=!1;constructor(t){this.doFlush=t,this.pause()}doFlush;runFlush(){this.newFlushPending||(this.newFlushPending=!0,this.flushing=this.flushing.then(async()=>{await new Promise(t=>requestAnimationFrame(t)),this.newFlushPending=!1,await this.doFlush()}))}pause(){this.flushing=this.flushing.then(t=>new Promise(r=>{this.resume=r})).then(()=>{this.resume=()=>{}})}resume=()=>{}};function Qo(e,t){return function(r){return class extends r{constructor(o){super(o),this.socket.on("store_request",(i,s)=>{s({data:e.data,version:e.version})});let n=new zt(async()=>{let{operations:i,fromVersion:s,toVersion:a}=e.flush();await new Promise(c=>{let l=!1;setTimeout(()=>{l||(console.warn("flush timeout"),c())},5e3),this.socket.emit("store_flush",{operations:i,fromVersion:s},m=>{l=!0,c(),m?.error?console.error("flush error",m.error):e.flushDone(a)})})});e.subscribe("/",()=>{n.runFlush()}),this.socket.on("disconnect",()=>{n.pause()}),this.socket.on("connect",()=>{e.setSID(this.socket.id||""),requestAnimationFrame(()=>{this.socket.emit("sdppp_init",{type:t,data:e.data,version:e.version})})}),this.socket.on("sdppp_inited",i=>{n.resume()})}}}}function qo(e,t){return function(r){return class extends r{constructor(o){super(o),this.socket.on("store_flush",n=>{if(n.type!==t)return;let i=e.getStore(n.sid);if(i)i.patchVersionAcceptable(n.fromVersion)?i.patchData(n.operations):(console.warn("patch version not acceptable from",n.fromVersion,"current version is",i.version),this.socket.emit("store_request",{type:t},s=>{e.sync(s)}));else return this.socket.emit("store_request",{sid:n.sid},s=>{e.addStore(s.sid,s.data,s.version)})}),this.socket.on("store_remove",n=>{e.removeStore(n.sid)}),this.socket.on("sdppp_inited",n=>{this.socket.emit("store_request",{type:t},i=>{e.sync(i)})})}}}}async function Or(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=r.selection,n=o&&o.bounds?{left:o.bounds.left,top:o.bounds.top,right:r.width-o.bounds.right,bottom:r.height-o.bounds.bottom,width:o.bounds.width,height:o.bounds.height}:null,i={left:0,top:0,right:0,bottom:0,width:r.width,height:r.height};return{document_boundary:i,selection_boundary:n||i}}var bt=_("photoshop");var Ie=_("photoshop"),Wr=class{promise;restore;constructor(){this.restore=()=>{},this.promise=new Promise(t=>{this.restore=t})}add(t){this.promise.then(t)}};Ie.core.setExecutionMode({enableErrorStacktraces:!0});var St=Promise.resolve();async function U(e,t){let r=t.dontRecoverSelection||!1,o=new Wr,n=!1,i=[],s=[],a=t.commandName;r||(Ie.app.activeDocument.activeLayers.forEach(p=>i.push(p)),t.document&&Ie.app.activeDocument.id!=t.document.id&&t.document.activeLayers.forEach(p=>i.push(p)),s=i.map(p=>p.visible),o.add(()=>{i.forEach(p=>{p.selected||(p.selected=!0,n=!0)}),i.forEach((p,u)=>{p.visible=s[u]})}));let c=null;St=St.catch(p=>p).then(()=>new Promise(p=>{u();function u(){Ie.core.isModal()?requestAnimationFrame(u):p()}})).then(()=>Ie.core.executeAsModal(async function(p,...u){c=t.document?await p.hostControl.suspendHistory({documentID:t.document.id,name:a}):null,o.add(async()=>{await new Promise(requestAnimationFrame),n||c&&p.hostControl.resumeHistory(c)});try{let f=await e(o,p,...u);return o.restore(!0),f}catch(f){throw o.restore(!1),f}},{commandName:a,interactive:!0}));let l=null,m=null;try{await St}catch(p){m=p}if(n&&(St=Ie.core.executeAsModal(async p=>{i.forEach((u,f)=>{u.visible=s[f]}),c&&p.hostControl.resumeHistory(c)},{commandName:a,interactive:!0}),await St),m)throw m;return l}var Xe=w(Pt(),1);function Mi(e,t){for(let r=0,o=e.length/4;r{i.dispose()}),{dataFromAPI:s,width:i.width,height:i.height}}async function Bi(e,t,r){if(!t)return null;let o={documentID:e.id,sourceBounds:r,layerID:t.id},n=null;try{n=await bt.imaging.getLayerMask(o)}catch(a){return console.warn(a),null}let i=n.imageData;if(!i)return null;let s=await i.getData({});return Promise.resolve().then(()=>{i.dispose()}),{dataFromAPI:s,width:i.width,height:i.height}}async function Ho(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=e.layer_identify,n=ie(r,o);if(e.boundary&&e.boundary.right+e.boundary.left+e.boundary.bottom+e.boundary.top+e.boundary.width+e.boundary.height!=r.width+r.height)throw new Error("The boundary is not for this document");let i=e.boundary?{left:e.boundary.left,top:e.boundary.top,right:r.width-e.boundary.right,bottom:r.height-e.boundary.bottom,width:e.boundary.width,height:e.boundary.height}:{left:0,top:0,right:r.width,bottom:r.height,width:r.width,height:r.height},s={pixelData:null,width:0,height:0},a=null,c,l,m={left:0,top:0,right:r.width,bottom:r.height},p=!1;if(await U(async d=>{let[g,y]=await Mt(r,n);y&&(a=g),a!=null&&d.add(()=>{a.delete()}),[c,l]=await Promise.all([Fi(r,g,i),Bi(r,g,i)]),m=g?.bounds??m,p=!1,g?p=g.transparentPixelsLocked:D.is_SPECIAL_LAYER_USE_CANVAS(o)&&(p=r.layers.every(S=>S.transparentPixelsLocked))},{commandName:h("get content of layer {0}",o),document:r}),!c)throw new Error(h("get pixel of {0} failed",o));c=jt(c),p&&(c=Ui(c)),s.pixelData=Jt(c,m,i);let u=null;return l&&(l=jt(l),u=Jt(l,m,i,1)),s.pixelData=Mi(s.pixelData,u),s.width=i.width,s.height=i.height,new Xe.Jimp({data:Buffer.from(s.pixelData),width:i.width,height:i.height})}async function Yo(e){let t=await Ho(e),r=t.bitmap.width,o=t.bitmap.height,n=new Uint8Array(r*o);for(let a=0;a{let i=null,s=e.layer_identify,a=!1;if(e.layer_identify){s=e.layer_identify;let c=ie(r,s);if(D.is_SPECIAL_LAYER_USE_CANVAS(s))return o={name:"",opacity:1,boundary:{left:0,right:0,top:0,bottom:0,width:r.width,height:r.height},isGroup:!0,identify:s},o;[i,a]=await Mt(r,c),n.add(()=>{i&&a&&i.delete()})}if(!i)throw new Error(h("layer not found: {0}",e.layer_identify));o=Object.assign({isGroup:a,identify:s||""},wo(r,i))},{commandName:h("get layer info"),document:r}),o}var Xt=_("photoshop");async function Mr(e,t,r){let o=e.select||"all",n=e.document_identify,i=V(n);if(!i)throw new Error(h("document {0} not found",n));let s=e.layer_identifies,a=await Promise.all(s.map(async l=>{let m=ie(i,l);if(D.is_SPECIAL_LAYER_USE_CANVAS(l))throw new Error(h("layer not found: {0}",l));let p=fe(i,m);if(!p)throw new Error(h("layer not found {0}",l));r(p);let u=t(p);if(o==="first"&&u.length===0)throw new Error(h("no first related layer in {0}",l));let f=u.filter((d,g)=>o==="first"?g===0:o==="text"?d.kind===Xt.constants.LayerKind.TEXT:o==="image"?d.kind===Xt.constants.LayerKind.NORMAL:!0).map(d=>ve(d.id,d.name));return{layer_identifies:f,layer_infos:await Promise.all(f.map(d=>vt({document_identify:n,layer_identify:d})))}})),c={layer_identifies:[],layer_boundaries:[],layer_infos:[]};return a.forEach(({layer_identifies:l,layer_infos:m})=>{c.layer_identifies.push(...l),c.layer_boundaries.push(...m.map(p=>p.boundary)),c.layer_infos.push(...m)}),c}async function Ur(e){return Mr(e,t=>t.layers||[],t=>{if(t.kind!=Xt.constants.LayerKind.GROUP)throw new Error(h("layer {0} is not a group",t.name));if(!t.layers)throw new Error(h("layer {0} is not a group",t.name))})}async function Fr(e){return Mr(e,t=>t.linkedLayers||[],t=>{if(!t.linkedLayers)throw new Error(h("no linked layer for {0}",t.name))})}var Ko=_("photoshop"),zo=_("uxp");async function Vi(e,t){let r={documentID:e.id,sourceBounds:t},n=(await Ko.imaging.getSelection(r)).imageData,i=await n.getData({});return Promise.resolve().then(()=>{n.dispose()}),{dataFromAPI:i,width:n.width,height:n.height}}async function Dt(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=parseInt(zo.host.version.split(".")[0]);if(!isNaN(o)&&o<25)throw new Error(h("GetSelection need Photoshop version 25+"));let n=e.boundary?{left:e.boundary.left,top:e.boundary.top,right:r.width-e.boundary.right,bottom:r.height-e.boundary.bottom,width:e.boundary.width,height:e.boundary.height}:{left:0,top:0,right:r.width,bottom:r.height,width:r.width,height:r.height};if(!r.selection?.bounds){let s=new Uint8Array(n.width*n.height);return s.fill(255),{blob:s,width:n.width,height:n.height}}let i=null;return await U(async s=>{let a=await Vi(r,n);a=jt(a);let c=r.selection.bounds||{left:0,top:0,right:r.width,bottom:r.height};i=a&&Jt(a,c,n,1)},{document:r,commandName:"SDPPP getSelection"}),{blob:i,width:n.width,height:n.height}}var se=_("photoshop");async function Br(e){let{identifier:t}=e;if(D.is_SPECIAL_DOCUMENT_CURRENT(t)){if(!se.app.activeDocument){if(e.width&&e.height){let r=await Qi(e.width,e.height);if(r)return{value:ge(r.id,r.name)}}throw new Error(h("document {0} not found",t))}return{value:ge(se.app.activeDocument.id,se.app.activeDocument.name)}}else if(D.is_SPECIAL_LAYER_SELECTED_LAYER(t)){if(!se.app.activeDocument)return{error:h("document {0} not found","current")};let r=se.app.activeDocument.activeLayers[0];return r?{value:ve(r.id,r.name)}:{error:h("layer not found {0}",t)}}}async function Qi(e,t){if(se.app.activeDocument)return se.app.activeDocument;let r=null;return await U(async()=>{r=await se.app.createDocument({width:e,height:t,resolution:72,mode:se.constants.NewDocumentMode.RGB,fill:se.constants.DocumentFill.TRANSPARENT})},{document:null,commandName:h("create document for sent images")}),r}var jo=_("photoshop");async function Vr(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=e.layer_identify,n=ie(r,o),i={text:""},s=fe(r,n);if(!s||s.kind!=jo.constants.LayerKind.TEXT)throw new Error(h('only layer kind "TEXT" is supported, invalid layer: {0}',o));return i.text=s.textItem.contents,{text:i.text}}var X=_("photoshop"),Ze=_("uxp");var Zt=0,Jo=0,qi=5e3;async function Qr(e){let t=e.document_identify,r=t?V(t):null;if(e.action==="get"){let o;return await U(async function(n){if(r||(r=await Gi()),!r)throw new Error(h("create document failed"));r=await r.duplicate(),n.add(async()=>{r?.close()});let s=await(await Ze.storage.localFileSystem.getTemporaryFolder()).createEntry("sdppp.psd",{overwrite:!0});await r.saveAs.psd(s,{maximizeCompatibility:!1,typename:"PhotoshopSaveOptions"}),o=await s.read({format:Ze.storage.formats.binary})},{commandName:h("sdppp get PSD"),document:r}),o?{data:o}:{error:"save Document failed"}}else if(e.action==="extract"){if(Date.now()-Jo2||!confirm(h("{0} wants to extract a PSD file to Photoshop, are you sure?",e.fromSSID))){Zt++,Zt==3&&(confirm(h("should sdppp refuse extracting PSD to Photoshop in this session anymore?"))||Zt--);return}Jo=Date.now();let o=e.data;await U(async function(){if(r||(r=await X.app.createDocument({width:512,height:512,resolution:72,mode:X.constants.NewDocumentMode.RGB,fill:X.constants.DocumentFill.TRANSPARENT})),!r)throw new Error(h("document {0} not found",t));X.app.activeDocument=r,r.selection?.deselect();let n=await o.arrayBuffer(),s=await(await Ze.storage.localFileSystem.getTemporaryFolder()).createEntry("sdppp.psd",{overwrite:!0});await s.write(n,{format:Ze.storage.formats.binary});let a=Ze.storage.localFileSystem.createSessionToken(s),c=await r.createLayer(X.constants.LayerKind.NORMAL,{name:"sdppp"});if(!c)throw new Error(h("create layer failed"));c.move(r.layers[0],X.constants.ElementPlacement.PLACEBEFORE),await X.action.batchPlay([{_obj:"placeEvent",null:{_kind:"local",_path:a},freeTransformCenterState:{_enum:"quadCenterState",_value:"QCSAverage"},offset:{_obj:"offset",horizontal:{_unit:"pixelsUnit",_value:0},vertical:{_unit:"pixelsUnit",_value:0}}},{_obj:"placedLayerConvertToLayers"},{_obj:"ungroupLayersEvent",_target:[{_enum:"ordinal",_ref:"layer"}]}],{synchronousExecution:!0})},{commandName:h("sdppp extract PSD"),document:r,dontRecoverSelection:!0})}else throw new Error(h("invalid action: {0}",e.action))}async function Gi(){return await X.app.createDocument({width:512,height:512,resolution:72,mode:X.constants.NewDocumentMode.RGB,fill:X.constants.DocumentFill.TRANSPARENT})}var qr=_("photoshop");async function Gr(e){let{action_set:t,action:r}=e,o=qr.app.actionTree.find(i=>i.name===t);if(!o)throw new Error(h("Action set {0} not found",t));let n=o.actions.find(i=>i.name===r);if(!n)throw new Error(h("Action {0} not found",r));return await U(async()=>{await n.play()},{commandName:h("sdppp Run Photoshop Action"),document:qr.app.activeDocument}),{result:{success:!0}}}var Hr=w(Pt(),1),Z=_("photoshop");globalThis.sdpppX=globalThis.sdpppX||{};var Pe=globalThis.sdpppX;async function Hi(e,t){let r=Z.app.documents.find(o=>o.name==D.getSpecialDocumentForPreview());if(r)return(r.width{await r.resizeCanvas(Math.max(r.width,e),Math.max(r.height,t))},{document:null,commandName:h("resize document for preview")}),r;{let o=null;return await U(async()=>{o=await Z.app.createDocument({width:e,height:t,resolution:72,mode:Z.constants.NewDocumentMode.RGB,fill:Z.constants.DocumentFill.TRANSPARENT,name:D.getSpecialDocumentForPreview()})},{document:null,commandName:h("create document for preview")}),o}}var $o=0;async function Yr(e){$o++;let t=e.image_blobs?.length?e.image_blobs:null,r=e.image_urls?.length?e.image_urls:null,o=e.document_identify,n=e.layer_identifies,i=(await Promise.all((r||t||[]).map(async(p,u)=>{if(r)return await Hr.Jimp.read(r[u]);if(t)return await Hr.Jimp.read(await t[u].pngData.arrayBuffer())}))).filter(p=>p),s=V(o);if(D.is_SPECIAL_LAYER_PREVIEW_DOCUMENT(o)&&(s=await Hi(i[0].bitmap.width,i[0].bitmap.height)),!s)throw new Error(h("document {0} not found"));let a=s,c=i.map((p,u)=>{if(e.boundaries&&e.boundaries[u])return{width:e.boundaries[u].width,height:e.boundaries[u].height,top:e.boundaries[u].top,left:e.boundaries[u].left};let f=1;return(p.bitmap.height>a.height||p.bitmap.width>a.width)&&(f=Math.min(a.height/p.bitmap.height,a.width/p.bitmap.width)),{width:p.bitmap.width*f,height:p.bitmap.height*f,top:(a.height-p.bitmap.height*f)/2,left:(a.width-p.bitmap.width*f)/2,bottom:(a.height-p.bitmap.height*f)/2,right:(a.width-p.bitmap.width*f)/2}});i.forEach((p,u)=>{let f=c[u];if(p.bitmap.width!=f.width||p.bitmap.height!=f.height){let d={w:f.width,h:f.height};p.resize(d)}});let l=await Promise.all(i.map(async p=>{let u=p.bitmap.data;if(a.bitsPerChannel=="bitDepth16"){let d=new Uint16Array(u.length);for(let g=0;g{let u=null,f=await Promise.all(i.map(async(d,g)=>{let y=n.length==1?n[0]:n[g];if(!D.is_SPECIAL_LAYER_NEW_LAYER(y)){let S=ie(a,y);u=fe(a,S)}if(u&&u.kind!=Z.constants.LayerKind.GROUP)return u;{let S=e.new_layer_name||"SDPPP Images";typeof Pe.handleSendLayerName=="function"&&(S=await Pe.handleSendLayerName(S));let P=await a.createLayer(Z.constants.LayerKind.NORMAL,{name:`${S} ${$o}${i.length>1?`_${g+1}`:""}`});if(!P)throw new Error(h("create layer failed"));return m.push(P),u?P.move(u,Z.constants.ElementPlacement.PLACEINSIDE):P.move(a.layers[0],Z.constants.ElementPlacement.PLACEBEFORE),P}}));m.length&&p.add(d=>{d?m.forEach((g,y)=>{g.selected=!1}):m.forEach(g=>g.delete())}),await Promise.all(f.map(async(d,g)=>{await Z.imaging.putPixels({documentID:a.id,layerID:d.id,replace:!1,imageData:l[g],targetBounds:c[g]})})),De(f.map(d=>d.id)),Yt()},{commandName:h("show sent images"),document:a}),{}}var Xo=_("photoshop");async function Kr(e){let t=e.document_identify,r=V(t);if(!r)throw new Error(h("document {0} not found",t));let o=e.layer_identify,n=ie(r,o),i=fe(r,n);if(!i||i.kind!=Xo.constants.LayerKind.TEXT)throw new Error(h('only layer kind "TEXT" is supported, invalid layer: {0}',o));let s=!1;return await U(async()=>{console.log(e.text),i.textItem.contents=e.text,s=!0},{document:r,commandName:h("set text to layer")}),{success:s}}function Zo(e){return class extends e{constructor(t){super(t),this.socket.on("B_photoshop",async(r,o)=>{let{action:n,params:i}=r,s;try{console.log("B_photoshop start",n);let a=Date.now();n==="psd"?s=await Qr(i):n==="getImage"?s=await $t(i):n==="sendImages"?s=await Yr(i):n==="getSelection"?s=await Dt(i):n==="getText"?s=await Vr(i):n==="sendText"?s=await Kr(i):n==="getLayerInfo"?s=await vt(i):n==="getDocumentInfo"?s=await Or(i):n==="getLinkedLayers"?s=await Fr(i):n==="getLayersInGroup"?s=await Ur(i):n==="runPhotoshopAction"?s=await Gr(i):n==="getSpecialIdentifierValue"&&(s=await Br(i));let c=Date.now();console.log("B_photoshop end",n,c-a)}catch(a){console.error(a),o({error:a.stack||a.message||a});return}o(s)})}async callForPSDExtract(t,r){return new Promise((o,n)=>{this.socket.emit("F_photoshop",{action:"extractPSD",sid:t,params:{from_sid:r.from_sid}},i=>{if(i.error)return n(new Error(i.error));o(i)})})}async uploadImage(t,r){return new Promise((o,n)=>{this.socket.emit("F_photoshop",{action:"uploadImage",sid:t,params:r},i=>{if(i.error)return n(new Error(i.error));o(i)})})}}}function en(e){return class extends e{constructor(t){super(t),this.socket.on("B_workflow",(r,o)=>{if(r.action=="getStoredWidgetValue"){let{widgetTableID:n,widgetTablePath:i,widgetTablePersisted:s}=r.params,a=`${n}_${i}_${s}`,c=Yi(a),l=[];c&&Object.keys(c||{}).forEach(m=>{Object.keys(c[m]||{}).forEach(p=>{l.push({nodeID:m,widgetIndex:p,value:c[m][p].value,outputType:c[m][p].outputType})})}),o({values:l})}})}async setNodeTitle(t,r,o){await new Promise((n,i)=>{this.socket.emit("F_workflow",{action:"setNodeTitle",sid:t,params:{node_id:r,title:o}},s=>{if(s?.error)return i(new Error(s.error));n(s)})})}async pageInstanceRun(t,r,o=1){await new Promise((n,i)=>{this.socket.emit("F_workflow",{action:"run",sid:t,params:{size:o,from_sid:r}},s=>{if(s?.error)return i(new Error(s.error));n(s)})})}async setWidgetValue(t,r){t&&await new Promise((o,n)=>{this.socket.emit("F_workflow",{action:"setWidgetValue",sid:t.data.sid,params:r},i=>{if(i?.error)return n(new Error(i.error));o(i)})})}async openWorkflow(t,r){t&&await new Promise((o,n)=>{this.socket.emit("F_workflow",{action:"open",sid:t.data.sid,params:r},i=>{if(i?.error)return n(new Error(i.error));o(i)})})}async saveWorkflow(t,r){t&&await new Promise((o,n)=>{this.socket.emit("F_workflow",{action:"save",sid:t.data.sid,params:r},i=>{if(i?.error)return n(new Error(i.error));o(i)})})}async listWorkflows(t){return t?await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"list",sid:t.data.sid},n=>{r(n)})}):[]}async logout(t){t&&await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"logout",sid:t.data.sid},n=>{if(n?.error)return o(new Error(n.error));r(n)})})}async interrupt(t){await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"interrupt",sid:t},n=>{r(n)})})}async clearQueue(t){await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"clearQueue",sid:t},n=>{r(n)})})}async reboot(t){return await new Promise((r,o)=>{this.socket.emit("F_workflow",{action:"reboot",sid:t},n=>{r(n)})})}}}function Yi(e){let t=localStorage.getItem(`widgetValue_${e}`);return t?JSON.parse(t):null}var er=class extends Vo(Qo(b,"photoshop"),qo(k,"comfy"),en,Zo){constructor(t,{setConnectState:r,setLastErrorMessage:o,setBackendURL:n,setComfyMultiUser:i}){super(t);let s=()=>{this.socket.active&&this.socket.connected?r("connected"):this.socket.active?r("connecting"):r("disconnected"),requestAnimationFrame(s)};requestAnimationFrame(s),this.socket.on("connect_error",async a=>{if(this.socket.active){let c=a.message;try{let l=new AbortController,m=setTimeout(()=>l.abort(),1500),p=await fetch(t+this.socket._opts.path,{method:"GET",signal:l.signal});clearTimeout(m),p.status==502?c=h("502: Maybe the server is not running"):p.status==404&&(c=h("404: Maybe SDPPP is not installed or failed to run in ComfyUI"))}catch(l){l.message=="Network request failed"&&(c=h("Timeout, Maybe the URL is wrong"))}o(h("{0}. reconnecting...",c))}else o(a.message)}),this.socket.on("sdppp_inited",a=>{n(t),a.multi_user&&i(a.multi_user)}),this.socket.on("disconnect",(...a)=>{i(!1),b.setComfyUserToken("")})}};var on=w(v(),1),tr="http://127.0.0.1:8188",tn=(0,W.createContext)(null);function rn({children:e}){let{setSrc:t,webviewAgentSID:r,prevWebviewAgentSID:o}=Ee(),[n,i]=(0,W.useState)("disconnected"),[s,a]=(0,W.useState)(""),[c,l]=(0,W.useState)(localStorage.getItem("backendURL")||tr),[m,p]=(0,W.useState)(null),[u,f]=(0,W.useState)(""),[d,g]=(0,W.useState)(!1),[y,S]=(0,W.useState)(null),[P,E]=(0,W.useState)([]);function B(Q){l(Q.split("?")[0].split("#")[0].trim())}(0,W.useEffect)(()=>{localStorage.setItem("backendURL",c)},[c]),(0,W.useEffect)(()=>{n==="connected"?(a(""),t(`${c}`)):t("")},[n]);function ne(){if(n==="connected"||n==="connecting")y&&(y.close(),S(null));else try{let Q=y;y||(Q=new er(c||tr,{setConnectState:i,setLastErrorMessage:a,setBackendURL:B,setComfyMultiUser:g}),S(Q)),Q.connect()}catch(Q){a(Q.stack||Q.message||Q)}}(0,W.useEffect)(()=>{let Q=(Ue,ft,xt)=>{u&&(!ft&&Ue==u||!(u in k.getAllStore()))&&f("")};return k.subscribe("/",Q),()=>{k.unsubscribe(Q)}},[u]),(0,W.useEffect)(()=>{!u&&r&&f(r)},[u,r]),(0,W.useEffect)(()=>{r&&(!u||u==o)&&f(r)},[r,o,u,f]);let[dt,j]=(0,W.useState)(null);return(0,W.useEffect)(()=>{j(u?k.getAllStore()[u]:null)},[u]),(0,on.jsx)(tn.Provider,{value:{socket:y,backendURL:c,setBackendURL:B,connectState:n,doConnectOrDisconnect:ne,lastErrorMessage:s,setLastErrorMessage:a,autoRunning:m,setAutoRunning:p,comfyMultiUser:d,setComfyMultiUser:g,workflowAgent:dt,workflowAgentSID:u,setWorkflowAgentSID:f,beforeWorkflowRunHooks:P,setBeforeWorkflowRunHooks:E},children:e})}function L(){let e=(0,W.useContext)(tn);if(!e)throw new Error("useSDPPPInternalContext must be used within a SDPPPInternalContextProvider");return e}var nn=w(C(),1);var sn=w(v(),1),He=class extends nn.default.Component{state={hasError:!1,errorMessage:""};constructor(t){super(t)}static getDerivedStateFromError(t){return{hasError:!0,errorMessage:t.toString()}}componentDidCatch(t,r){console.log(t,r)}render(){return this.state.hasError?(0,sn.jsx)("p",{className:"list-error-label",children:h("Error {0}... please contact me via Discord/Github",this.state.errorMessage)}):this.props.children}};var Ce=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var Ae=typeof window>"u"||"Deno"in globalThis;function J(){}function un(e,t){return typeof e=="function"?e(t):e}function ln(e){return typeof e=="number"&&e>=0&&e!==1/0}function dn(e,t){return Math.max(e+(t||0)-Date.now(),0)}function jr(e,t){return typeof e=="function"?e(t):e}function fn(e,t){return typeof e=="function"?e(t):e}function Jr(e,t){let{type:r="all",exact:o,fetchStatus:n,predicate:i,queryKey:s,stale:a}=e;if(s){if(o){if(t.queryHash!==Et(s,t.options))return!1}else if(!tt(t.queryKey,s))return!1}if(r!=="all"){let c=t.isActive();if(r==="active"&&!c||r==="inactive"&&c)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||n&&n!==t.state.fetchStatus||i&&!i(t))}function $r(e,t){let{exact:r,status:o,predicate:n,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(r){if(et(t.options.mutationKey)!==et(i))return!1}else if(!tt(t.options.mutationKey,i))return!1}return!(o&&t.state.status!==o||n&&!n(t))}function Et(e,t){return(t?.queryKeyHashFn||et)(e)}function et(e){return JSON.stringify(e,(t,r)=>zr(r)?Object.keys(r).sort().reduce((o,n)=>(o[n]=r[n],o),{}):r)}function tt(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>tt(e[r],t[r])):!1}function pn(e,t){if(e===t)return e;let r=an(e)&&an(t);if(r||zr(e)&&zr(t)){let o=r?e:Object.keys(e),n=o.length,i=r?t:Object.keys(t),s=i.length,a=r?[]:{},c=0;for(let l=0;l{setTimeout(t,e)})}function hn(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?pn(e,t):t}function gn(e,t,r=0){let o=[...e,t];return r&&o.length>r?o.slice(1):o}function yn(e,t,r=0){let o=[t,...e];return r&&o.length>r?o.slice(0,-1):o}var It=Symbol();function rr(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===It?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var Ki=class extends Ce{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!Ae&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},or=new Ki;var zi=class extends Ce{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!Ae&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(r=>{r(e)}))}isOnline(){return this.#e}},rt=new zi;function wn(){let e,t,r=new Promise((n,i)=>{e=n,t=i});r.status="pending",r.catch(()=>{});function o(n){Object.assign(r,n),delete r.resolve,delete r.reject}return r.resolve=n=>{o({status:"fulfilled",value:n}),e(n)},r.reject=n=>{o({status:"rejected",reason:n}),t(n)},r}function ji(e){return Math.min(1e3*2**e,3e4)}function Xr(e){return(e??"online")==="online"?rt.isOnline():!0}var Sn=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function nr(e){return e instanceof Sn}function ir(e){let t=!1,r=0,o=!1,n,i=wn(),s=g=>{o||(u(new Sn(g)),e.abort?.())},a=()=>{t=!0},c=()=>{t=!1},l=()=>or.isFocused()&&(e.networkMode==="always"||rt.isOnline())&&e.canRun(),m=()=>Xr(e.networkMode)&&e.canRun(),p=g=>{o||(o=!0,e.onSuccess?.(g),n?.(),i.resolve(g))},u=g=>{o||(o=!0,e.onError?.(g),n?.(),i.reject(g))},f=()=>new Promise(g=>{n=y=>{(o||l())&&g(y)},e.onPause?.()}).then(()=>{n=void 0,o||e.onContinue?.()}),d=()=>{if(o)return;let g,y=r===0?e.initialPromise:void 0;try{g=y??e.fn()}catch(S){g=Promise.reject(S)}Promise.resolve(g).then(p).catch(S=>{if(o)return;let P=e.retry??(Ae?0:3),E=e.retryDelay??ji,B=typeof E=="function"?E(r,S):E,ne=P===!0||typeof P=="number"&&rl()?void 0:f()).then(()=>{t?u(S):d()})})};return{promise:i,cancel:s,continue:()=>(n?.(),i),cancelRetry:a,continueRetry:c,canStart:m,start:()=>(m()?d():f().then(d),i)}}var Ji=e=>setTimeout(e,0);function $i(){let e=[],t=0,r=a=>{a()},o=a=>{a()},n=Ji,i=a=>{t?e.push(a):n(()=>{r(a)})},s=()=>{let a=e;e=[],a.length&&n(()=>{o(()=>{a.forEach(c=>{r(c)})})})};return{batch:a=>{let c;t++;try{c=a()}finally{t--,t||s()}return c},batchCalls:a=>(...c)=>{i(()=>{a(...c)})},schedule:i,setNotifyFunction:a=>{r=a},setBatchNotifyFunction:a=>{o=a},setScheduler:a=>{n=a}}}var M=$i();var sr=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ln(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ae?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}};var Pn=class extends sr{#e;#t;#r;#n;#o;#s;#a;constructor(e){super(),this.#a=!1,this.#s=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#n=e.client,this.#r=this.#n.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Zi(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#o?.promise}setOptions(e){this.options={...this.#s,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){let r=hn(this.state.data,e,this.options);return this.#i({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){let t=this.#o?.promise;return this.#o?.cancel(e),t?t.then(J).catch(J):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>fn(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===It||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!dn(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#o?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#o?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#o&&(this.#a?this.#o.cancel({revert:!0}):this.#o.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#o)return this.#o.continueRetry(),this.#o.promise}if(e&&this.setOptions(e),!this.options.queryFn){let a=this.observers.find(c=>c.options.queryFn);a&&this.setOptions(a.options)}let r=new AbortController,o=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(this.#a=!0,r.signal)})},n=()=>{let a=rr(this.options,t),c={client:this.#n,queryKey:this.queryKey,meta:this.meta};return o(c),this.#a=!1,this.options.persister?this.options.persister(a,c,this):a(c)},i={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#n,state:this.state,fetchFn:n};o(i),this.options.behavior?.onFetch(i,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==i.fetchOptions?.meta)&&this.#i({type:"fetch",meta:i.fetchOptions?.meta});let s=a=>{nr(a)&&a.silent||this.#i({type:"error",error:a}),nr(a)||(this.#r.config.onError?.(a,this),this.#r.config.onSettled?.(this.state.data,a,this)),this.scheduleGc()};return this.#o=ir({initialPromise:t?.initialPromise,fn:i.fetchFn,abort:r.abort.bind(r),onSuccess:a=>{if(a===void 0){s(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(a)}catch(c){s(c);return}this.#r.config.onSuccess?.(a,this),this.#r.config.onSettled?.(a,this.state.error,this),this.scheduleGc()},onError:s,onFail:(a,c)=>{this.#i({type:"failed",failureCount:a,error:c})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:i.options.retry,retryDelay:i.options.retryDelay,networkMode:i.options.networkMode,canRun:()=>!0}),this.#o.start()}#i(e){let t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Xi(r.data,this.options),fetchMeta:e.meta??null};case"success":return{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":let o=e.error;return nr(o)&&o.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),M.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function Xi(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Xr(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Zi(e){let t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,o=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?o??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var bn=class extends Ce{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,r){let o=t.queryKey,n=t.queryHash??Et(o,t),i=this.get(n);return i||(i=new Pn({client:e,queryKey:o,queryHash:n,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(o)}),this.add(i)),i}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){M.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(r=>Jr(t,r))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(r=>Jr(e,r)):t}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){M.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){M.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}};var vn=class extends sr{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||es(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#n({type:"continue"})};this.#r=ir({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(n,i)=>{this.#n({type:"failed",failureCount:n,error:i})},onPause:()=>{this.#n({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let r=this.state.status==="pending",o=!this.#r.canStart();try{if(r)t();else{this.#n({type:"pending",variables:e,isPaused:o}),await this.#t.config.onMutate?.(e,this);let i=await this.options.onMutate?.(e);i!==this.state.context&&this.#n({type:"pending",context:i,variables:e,isPaused:o})}let n=await this.#r.start();return await this.#t.config.onSuccess?.(n,e,this.state.context,this),await this.options.onSuccess?.(n,e,this.state.context),await this.#t.config.onSettled?.(n,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(n,null,e,this.state.context),this.#n({type:"success",data:n}),n}catch(n){try{throw await this.#t.config.onError?.(n,e,this.state.context,this),await this.options.onError?.(n,e,this.state.context),await this.#t.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,n,e,this.state.context),n}finally{this.#n({type:"error",error:n})}}finally{this.#t.runNext(this)}}#n(e){let t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),M.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function es(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Dn=class extends Ce{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(e,t,r){let o=new vn({mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:r});return this.add(o),o}add(e){this.#e.add(e);let t=ar(e);if(typeof t=="string"){let r=this.#t.get(t);r?r.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){let t=ar(e);if(typeof t=="string"){let r=this.#t.get(t);if(r)if(r.length>1){let o=r.indexOf(e);o!==-1&&r.splice(o,1)}else r[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=ar(e);if(typeof t=="string"){let o=this.#t.get(t)?.find(n=>n.state.status==="pending");return!o||o===e}else return!0}runNext(e){let t=ar(e);return typeof t=="string"?this.#t.get(t)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){M.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(r=>$r(t,r))}findAll(e={}){return this.getAll().filter(t=>$r(e,t))}notify(e){M.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(t=>t.state.isPaused);return M.batch(()=>Promise.all(e.map(t=>t.continue().catch(J))))}};function ar(e){return e.options.scope?.id}function Zr(e){return{onFetch:(t,r)=>{let o=t.options,n=t.fetchOptions?.meta?.fetchMore?.direction,i=t.state.data?.pages||[],s=t.state.data?.pageParams||[],a={pages:[],pageParams:[]},c=0,l=async()=>{let m=!1,p=d=>{Object.defineProperty(d,"signal",{enumerable:!0,get:()=>(t.signal.aborted?m=!0:t.signal.addEventListener("abort",()=>{m=!0}),t.signal)})},u=rr(t.options,t.fetchOptions),f=async(d,g,y)=>{if(m)return Promise.reject();if(g==null&&d.pages.length)return Promise.resolve(d);let S={client:t.client,queryKey:t.queryKey,pageParam:g,direction:y?"backward":"forward",meta:t.options.meta};p(S);let P=await u(S),{maxPages:E}=t.options,B=y?yn:gn;return{pages:B(d.pages,P,E),pageParams:B(d.pageParams,g,E)}};if(n&&i.length){let d=n==="backward",g=d?ts:En,y={pages:i,pageParams:s},S=g(o,y);a=await f(y,S,d)}else{let d=e??i.length;do{let g=c===0?s[0]??o.initialPageParam:En(o,a);if(c>0&&g==null)break;a=await f(a,g),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=l}}}function En(e,{pages:t,pageParams:r}){let o=t.length-1;return t.length>0?e.getNextPageParam(t[o],t,r[o],r):void 0}function ts(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}var eo=class{#e;#t;#r;#n;#o;#s;#a;#i;constructor(e={}){this.#e=e.queryCache||new bn,this.#t=e.mutationCache||new Dn,this.#r=e.defaultOptions||{},this.#n=new Map,this.#o=new Map,this.#s=0}mount(){this.#s++,this.#s===1&&(this.#a=or.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#i=rt.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#s--,this.#s===0&&(this.#a?.(),this.#a=void 0,this.#i?.(),this.#i=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#e.build(this,t),o=r.state.data;return o===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(jr(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(o))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:r})=>{let o=r.data;return[t,o]})}setQueryData(e,t,r){let o=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(o.queryHash)?.state.data,s=un(t,i);if(s!==void 0)return this.#e.build(this,o).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return M.batch(()=>this.#e.findAll(e).map(({queryKey:o})=>[o,this.setQueryData(o,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;M.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){let r=this.#e;return M.batch(()=>(r.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let r={revert:!0,...t},o=M.batch(()=>this.#e.findAll(e).map(n=>n.cancel(r)));return Promise.all(o).then(J).catch(J)}invalidateQueries(e,t={}){return M.batch(()=>(this.#e.findAll(e).forEach(r=>{r.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0},o=M.batch(()=>this.#e.findAll(e).filter(n=>!n.isDisabled()).map(n=>{let i=n.fetch(void 0,r);return r.throwOnError||(i=i.catch(J)),n.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(o).then(J)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let r=this.#e.build(this,t);return r.isStaleByTime(jr(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(J).catch(J)}fetchInfiniteQuery(e){return e.behavior=Zr(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(J).catch(J)}ensureInfiniteQueryData(e){return e.behavior=Zr(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return rt.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set(et(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#n.values()],r={};return t.forEach(o=>{tt(e,o.queryKey)&&Object.assign(r,o.defaultOptions)}),r}setMutationDefaults(e,t){this.#o.set(et(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#o.values()],r={};return t.forEach(o=>{tt(e,o.mutationKey)&&Object.assign(r,o.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Et(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===It&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var Ct=w(C(),1),In=w(v(),1),Cn=Ct.createContext(void 0);var to=({client:e,children:t})=>(Ct.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,In.jsx)(Cn.Provider,{value:e,children:t}));var _e=w(C(),1);var $=w(C(),1);var cr=w(C(),1);function An(){let{workflowAgent:e,socket:t}=L();return{setWidgetValue:(0,cr.useCallback)(async(o,n,i)=>{if(!e)throw new Error("workflowAgent not found");await t?.setWidgetValue(e,{values:[{nodeID:o,widgetIndex:n,value:i}]});let s=e.data.widgetTableStructure.widgetTableID,a=e.data.widgetTableStructure.widgetTablePath,c=e.data.widgetTableStructure.widgetTablePersisted,l=`${s}_${a}_${c}`,m=e.data.widgetTableStructure.nodes[o].widgets[n].outputType;rs(l,o,n,i,m)},[e,t])}}function ot(){let{beforeWorkflowRunHooks:e,setBeforeWorkflowRunHooks:t}=L(),r=(0,cr.useCallback)(n=>(t(i=>[...i,n]),()=>{t(i=>i.filter(a=>a!==n))}),[t]),o=(0,cr.useCallback)(async()=>{for(let n=0;n{let P=k.getStore(y);if(!P)throw new Error("workflowAgent not found");try{await e?.openWorkflow(P,{workflow_path:S,from_sid:b.data.sid,reset:!0})}catch(E){console.error(E)}},[e]),n=(0,$.useCallback)(async y=>{let S=k.getStore(y);if(!S||!S.data.widgetTableStructure.widgetTablePath)throw new Error("workflow not found");if(!S.data.widgetTableStructure.widgetTablePersisted)throw new Error("workflow is not savable");await o(y,S.data.widgetTableStructure.widgetTablePath)},[o]),i=(0,$.useCallback)((y,S=1)=>{e?.pageInstanceRun(y,b.data.sid,S)},[e]),s=(0,$.useCallback)(async y=>{let S=k.getStore(y);if(!S)throw new Error("workflowAgent not found");if(!S.data.widgetTableStructure.widgetTablePath)throw new Error("workflow not found");await e?.saveWorkflow(S,{workflow_path:S.data.widgetTableStructure.widgetTablePath,from_sid:b.data.sid})},[e]),a=(0,$.useCallback)(async y=>{await e?.callForPSDExtract(y,{from_sid:b.data.sid})},[e]),c=(0,$.useCallback)(async y=>{let S=k.getStore(y);if(!S)throw new Error("workflowAgent not found");await e?.logout(S)},[e]),l=(0,$.useCallback)(async(y,S)=>await e?.uploadImage(b.data.sid,{image:y,filename:S,overwrite:!0}),[e]);globalThis.sdppp_action_run=async(y,{workflowPath:S})=>{S?u(S):p()};let m=(0,$.useCallback)(async(y,S=1)=>{!y&&!t||(await r(),await i(y||t,S))},[i,t,r]),p=(0,$.useCallback)(async(y,S=1)=>{await m(y||t,S),ro.action.recordAction?.({name:"sdppp_run",methodName:"sdppp_action_run"},{})},[m]),u=(0,$.useCallback)(async(y,S,P=1)=>{!S&&!t||(await o(S||t,y),m(S||t,P),ro.action.recordAction?.({name:"sdppp_run_"+y,methodName:"sdppp_action_run"},{workflowPath:y}))},[o,p,t]),f=(0,$.useCallback)(async()=>{t&&await e?.interrupt(t)},[e,t]),d=(0,$.useCallback)(async()=>{t&&await e?.clearQueue(t)},[e,t]),g=(0,$.useCallback)(async()=>{if(t)return await e?.reboot(t)},[e,t]);return{openWorkflow:o,reopenWorkflow:n,saveWorkflow:s,runPage:p,runWorkflow:u,callForPSDExtract:a,logout:c,uploadImage:l,interrupt:f,clearQueue:d,reboot:g}}function ur(){let[e,t]=(0,_e.useState)(!1),[r,o]=(0,_e.useState)(!1),n=(0,_e.useRef)(null),{autoRunning:i,workflowAgent:s}=L(),{runWorkflow:a,runPage:c}=ae();return(0,_e.useEffect)(()=>{if(i&&e&&!r){if(t(!1),i.type=="workflow")s&&!s.data.executingNodeTitle&&(a(i.value,s.data.sid,1),n.current=setTimeout(()=>{o(!1)},1e3));else if(i.type=="page"){let l=k.getStore(i.value);l&&!l.data.executingNodeTitle&&(o(!0),c(i.value),n.current=setTimeout(()=>{o(!1)},1e3))}}},[e,r,i,s,a,c]),(0,_e.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),{setShouldTriggerLivePainting:t}}var ce=w(C(),1);var kn=w(v(),1),os=15e3,Ln=(0,ce.createContext)({});function _n({children:e,loginAppID:t,loginStyle:r,loginBannerTop:o,loginBannerBottom:n}){let[i,s]=(0,ce.useState)(!t),a=(0,ce.useCallback)(async(u,f="sdppp123456")=>{try{let d=await fetch("https://api.authing.cn/api/v3/signin",{method:"POST",headers:{"Content-Type":"application/json","x-authing-app-id":t,"x-authing-sdk-version":"web:3.0.0"},body:JSON.stringify({connection:"PASSWORD",passwordPayload:{username:u,password:f}})}),g=await d.json();if(d.ok){if(g.statusCode===200)return{success:!0,token:g.data.access_token};if(g.statusCode===403)return{success:!1,message:h("Verification Error")}}else return{success:!1,message:JSON.stringify(g)}}catch(d){return{success:!1,message:d.toString()}}return{success:!1,message:"\u767B\u5F55\u5931\u8D25"}},[]),c=(0,ce.useCallback)(async u=>{if(!u)throw new Error("Token is required");let f="access_token",d="https://api.authing.cn/oidc/token/introspection",g=`token=${encodeURIComponent(u)}&token_type_hint=${encodeURIComponent(f)}&client_id=${encodeURIComponent(t)}`;try{let y=await fetch(d,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g});if(!y.ok)throw new Error(`Verification failed with status: ${y.status}`);return await y.json()}catch(y){throw console.error("Token verification error:",y),y}},[]),l=(0,ce.useCallback)(async u=>{try{let d=await(await fetch("https://api.authing.cn/api/v3/get-profile",{method:"GET",headers:{Authorization:`Bearer ${u}`,"x-authing-app-id":t}})).json();return d.statusCode===200?{data:d.data,success:!0}:{message:d.message,success:!1}}catch(f){return{success:!1,message:f}}},[]);async function m(u,f="sdppp123456"){let d=await a(u,f);if(d.success){let g=await l(d.token);g.success&&(localStorage.setItem("token",d.token),localStorage.setItem("lastLogin",new Date(g.data.lastLogin).getTime().toString()),s(!0))}return d}async function p(u){if(!localStorage.getItem("lastLogin"))return!1;if((await c(u)).active){let d=await l(u);if(d.success){let g=new Date(d.data.lastLogin).getTime().toString(),y=localStorage.getItem("lastLogin");return g===y}else return!1}return!1}return(0,ce.useEffect)(()=>{if(i){if(t){let u=setInterval(()=>{let f=localStorage.getItem("token");f&&p(f).then(d=>{d||s(!1)})},os);return()=>{clearInterval(u)}}}else{let u=localStorage.getItem("token");if(!u)return;p(u).then(f=>{f&&s(!0)})}},[i]),(0,kn.jsx)(Ln.Provider,{value:{loginStyle:r||"none",loginBannerBottom:n||null,loginBannerTop:o||null,isLogin:i,logout:()=>{localStorage.removeItem("token"),s(!1)},login:m},children:e})}function ke(){let e=(0,ce.useContext)(Ln);if(!e)throw new Error("useSDPPPLogin must be used within a SDPPPLoginProvider");return e}var Te=w(v(),1),Tn=(0,nt.createContext)({});function xn({children:e,loginAppID:t,loginStyle:r,loginBannerTop:o,loginBannerBottom:n}){let i=new eo;return(0,Te.jsx)(to,{client:i,children:(0,Te.jsx)(He,{children:(0,Te.jsx)(No,{children:(0,Te.jsx)(_n,{loginAppID:t,loginStyle:r,loginBannerTop:o,loginBannerBottom:n,children:(0,Te.jsx)(rn,{children:(0,Te.jsx)(ns,{children:e})})})})})})}function Le(){let e=(0,nt.useContext)(Tn);if(!e)throw new Error("SDPPPExternalContext not found");return e}function ns({children:e}){let t=Ee(),r=L(),{logout:o}=ke();Pe.registerTestCase&&(globalThis.sdppp_debugPhotoshopInternalContext=r,globalThis.sdppp_debugPhotoshopWebviewContext=t);let{toggleWebviewDialog:n,webviewAgentSID:i}=t,{autoRunning:s,setAutoRunning:a,workflowAgent:c,setWorkflowAgentSID:l,doConnectOrDisconnect:m,lastErrorMessage:p}=r,{setShouldTriggerLivePainting:u}=ur();return(0,nt.useEffect)(()=>{let f=()=>{u(!0)};return b.subscribe("/canvasStateID",f),()=>{b.unsubscribe(f)}},[u]),(0,Te.jsx)(Tn.Provider,{value:{logout:o,connectOrDisconnect:m,lastConnectErrorMessage:p,setAutoRunning:a,autoRunning:s,photoshopSID:b.data.sid,webviewAgentSID:i,workflowAgentSID:c?.data.sid||"",setWorkflowAgentSID:l,toggleWebviewDialog:n},children:e})}var lr=w(C(),1);var it=w(C(),1);function ue(e,t){let[r,o]=(0,it.useState)(e?{...e.data}:null),[n,i]=(0,it.useState)(e?{...e.data}:null),s=Array.isArray(t)?t:[t];return(0,it.useEffect)(()=>{e&&o({...e.data})},[e]),(0,it.useEffect)(()=>{if(!e)return;let a=s.map(c=>{let l=()=>{i(r),o(e.data)};return e.subscribe(c,l),l});return()=>{a.forEach(c=>{e.unsubscribe(c)})}},[e,t]),{state:r||null,prevState:n||null}}function Rn(){let[e,t]=(0,lr.useState)({}),{state:r}=ue(b,"/comfyUserToken"),o=r?.comfyUserToken;return(0,lr.useEffect)(()=>{let n=!1,i=(s,a,c)=>{n||t(l=>{let m={...l};return a==null?delete m[s]:m[s]=a,m})};return k.subscribe("/",i),()=>{n=!0,k.unsubscribe(i)}},[]),{pageInstances:Object.entries(e).map(([n,i])=>({sid:n,ssid:n.slice(0,4),title:i.title,lastError:i.lastError,isWebview:!!i.webviewFromSid,isCurrentUser:!i.comfyUserToken||i.comfyUserToken==o})).filter(n=>!n.isWebview&&(!o||n.isCurrentUser))}}var le=w(C(),1);function is(e,t,r){let{state:o}=ue(b,["/comfyUserToken"]),{socket:n,workflowAgentSID:i}=L(),[s,a]=(0,le.useState)({}),[c,l]=(0,le.useState)(!1),[m,p]=(0,le.useState)(null),u=(0,le.useCallback)(async f=>{if(!f&&!i){a({});return}l(!0);let d=k.getStore(f||i);try{let g=await n?.listWorkflows(d||null)||[];if("error"in g){p(new Error(g.error)),l(!1);return}l(!1),a(g.reduce((y,S)=>(y[S]={path:S,content:null,error:""},y),{}))}catch(g){l(!1),p(g)}},[n,i]);return(0,le.useEffect)(()=>{e&&u()},[e]),(0,le.useEffect)(()=>{o?.comfyUserToken&&u()},[o]),{data:s,isLoading:c,error:m,refetch:u}}function Nn(){let{backendURL:e,comfyMultiUser:t,workflowAgent:r}=L(),{workflowAgentSID:o}=Le(),[n,i]=(0,le.useState)(!0),[s,a]=(0,le.useState)(""),{data:c,isLoading:l,error:m,refetch:p}=is(e,t,r);(0,le.useEffect)(()=>{if(o)p(),i(!1);else{i(!0);let d=setTimeout(()=>{i(!1)},4e3);return()=>clearTimeout(d)}},[o]);let u=[];!l&&!m&&c&&(Object.keys(c).forEach(d=>{d.startsWith(s)&&(d.slice(s.length).indexOf("/")==-1?u.push({path:d,isDir:!1}):u.unshift({path:d.slice(0,d.lastIndexOf("/")+1),isDir:!0}))}),u=u.filter((d,g,y)=>y.findIndex(S=>S.path==d.path)===g));let f="";return m&&(f=m.message),u.length||(f=h("Workflow list is empty, please save a workflow by Comfy's lastest UI")),m&&(f=h("Workflow list loading failed: {0}",m.message)),!Pe.MU&&t&&(f=h("Workflow List of ComfyUI with --multi-user is only available for sponsors")),l&&(f="Loading"),{workflows:c,isLoadingWorkflows:l,workflowsError:f,refetchWorkflows:p,afterPropsUpdate4s:n,currentViewingDirectory:s,setCurrentViewingDirectory:a,showingList:u}}function On(e){let t=k.getStore(e),{state:r}=ue(t,["/"]);return r?{sid:e,ssid:r.ssid,title:r.title,lastError:r.lastError,isWebview:!!r.webviewFromSid,isCurrentUser:!r.comfyUserToken||r.comfyUserToken==b.data.comfyUserToken,progress:r.progress,executingNodeTitle:r.executingNodeTitle,queueSize:r.queueSize}:{sid:"",ssid:"",title:"",lastError:"",isWebview:!1,isCurrentUser:!1,progress:0,executingNodeTitle:"",queueSize:0}}var oi=w(C(),1);var st=w(C(),1);var io=w(C(),1),oo={LICENSE:{name:"BSD3-Clause",url:{en:"https://github.com/zombieyang/sd-ppp/blob/main/LICENSE",zhcn:"https://gitee.com/zombieyang/sd-ppp/blob/main/LICENSE"}},sponsors:[{name:"\u56DB\u559CAI",url:"https://v.douyin.com/hD2X7S717uw/"},{name:"\u6C90\u6C90AI",url:"https://v.douyin.com/k6yKDEcVgP8/"}],links:[{name:"\u732B\u54AA\u8001\u5E08Reimagined",url:"https://www.xiaohongshu.com/user/profile/59f1fcc411be101aba7f048f"},{name:"\u6765\u771F\u7684",url:"https://space.bilibili.com/590784254"},{name:"\u54D1\u72D7Egao",url:"https://space.bilibili.com/284721975"}],community:{en:[{name:"Github",url:"https://github.com/zombieyang/sd-ppp"},{name:"Discord",url:"https://discord.gg/9HeGjDvEmn"},{name:"Youtube",url:"https://www.youtube.com/@Github-Zombeeyang/videos"}],zhcn:[{name:"Github",url:"https://github.com/zombieyang/sd-ppp"},{name:"QQ\u9891\u9053",url:"https://pd.qq.com/s/5m42umo28"},{name:"Bilibili",url:"https://space.bilibili.com/44908313"}]},cloud:{en:[],zhcn:[{name:"Cephalon",url:"https://cephalon.cloud/share/register-landing?invite_id=m95SDj",icon:"https://cephalon.cloud/favicon.ico",color:"#000000"},{name:"\u6668\u7FBD\u667A\u4E91",url:"https://www.chenyu.cn/console/login?invitationCode=BUD913",icon:"https://www.chenyu.cn/favicon.ico",color:"#f3ac40"}]}},Fn="sponsorData",Wn={GITEE:"https://gitee.com/zombieyang/sd-ppp/raw/main/sponsors.json",GITHUB:"https://raw.githubusercontent.com/zombieyang/sd-ppp/refs/heads/main/sponsors.json"},ss=15e3;function no(){try{let e=localStorage.getItem(Fn);if(e)return JSON.parse(e)}catch(e){console.warn("Failed to parse sponsor data from localStorage:",e)}return null}function Mn(e){try{localStorage.setItem(Fn,JSON.stringify(e))}catch(t){console.warn("Failed to save sponsor data to localStorage:",t)}}function fr(e){try{if(!e||typeof e!="object")return console.warn("Invalid sponsor data: not an object"),!1;if(!e.LICENSE||typeof e.LICENSE!="object")return console.warn("Invalid sponsor data: LICENSE is not an object"),!1;if(!e.LICENSE.name)return console.warn("Invalid sponsor data: LICENSE.name is missing"),!1;if(!e.LICENSE.url||typeof e.LICENSE.url!="object")return console.warn("Invalid sponsor data: LICENSE.url is not an object"),!1;if(!e.LICENSE.url.en)return console.warn("Invalid sponsor data: LICENSE.url.en is missing"),!1;if(!e.LICENSE.url.zhcn)return console.warn("Invalid sponsor data: LICENSE.url.zhcn is missing"),!1;if(!Array.isArray(e.sponsors))return console.warn("Invalid sponsor data: sponsors is not an array"),!1;if(!Array.isArray(e.links))return console.warn("Invalid sponsor data: links is not an array"),!1;if(!e.community||typeof e.community!="object")return console.warn("Invalid sponsor data: community is not an object"),!1;if(!Array.isArray(e.community.en)||!Array.isArray(e.community.zhcn))return console.warn("Invalid sponsor data: community.en or community.zhcn is not an array"),!1;if(!e.cloud||typeof e.cloud!="object")return console.warn("Invalid sponsor data: cloud is not an object"),!1;if(!Array.isArray(e.cloud.en)||!Array.isArray(e.cloud.zhcn))return console.warn("Invalid sponsor data: cloud.en or cloud.zhcn is not an array"),!1;for(let t of e.cloud.zhcn)if(!t.name||!t.url||!t.icon||!t.color)return console.warn("Invalid sponsor data: cloud.zhcn item missing required properties"),!1;return!0}catch(t){return console.warn("Error validating sponsor data:",t),!1}}async function Un(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`Fetch failed with status: ${t.status}`);let r=await t.json();return fr(r)?r:null}catch(t){return console.warn(`Failed to fetch from ${e}:`,t),null}}var dr=null;function pr(){if(!dr){let r=no();dr=new Promise(o=>{let n=!1;Un(Wn.GITEE).then(i=>{!n&&i&&(n=!0,Mn(i),o(i))}),Un(Wn.GITHUB).then(i=>{!n&&i&&(n=!0,Mn(i),o(i))}),setTimeout(()=>{n||(n=!0,r&&fr(r)?o(r):(console.warn("Using default data as fallback"),o(oo)))},ss)})}let[e,t]=io.default.useState(()=>{let r=no();return r&&fr(r)?r:oo});return io.default.useEffect(()=>{dr&&dr.then(r=>{t(r)}).catch(r=>{console.error("Error in useSponsor:",r);let o=no();t(o&&fr(o)?o:oo)})},[]),{data:e}}var I=w(v(),1),as=0,At=0;function Bn(){let e=(0,st.useRef)(null),{loginStyle:t}=ke(),{data:r}=pr();(0,st.useEffect)(()=>{let n=1/0,i=1/0,s=!1;if(e.current){let m=function(p){At||(At=Date.now())};var c=m;let l=document.createElement("webview");l.addEventListener("loadstart",m),l.addEventListener("loadstop",m),l.addEventListener("loaderror",m),l.setAttribute("src","./_.html"),l.style.width="1px",l.style.height="1px",e.current.appendChild(l)}function a(){let l=e.current?.parentElement?.parentElement?.getBoundingClientRect();l?.height&&l?.width&&(n=Math.min(n,l.height),i=Math.min(i,l.width)),s||requestAnimationFrame(a)}return requestAnimationFrame(a),()=>{s=!0,At&&(as+=Date.now()-At,At=0)}},[e]);let o=(0,st.useMemo)(()=>r.community[Be()=="zhcn"?"zhcn":"en"],[r]);return(0,I.jsxs)("div",{className:"about-card",style:{position:"relative"},children:[t==="none"?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)("div",{className:"about-card-sections about-card-title",children:(0,I.jsxs)("a",{href:r.LICENSE.url[Be()=="zhcn"?"zhcn":"en"],children:[h("LICENSE:")," ",r.LICENSE.name]})}),(0,I.jsx)("sp-divider",{}),(0,I.jsx)("h2",{children:h("Sponsors")}),(0,I.jsx)("div",{className:"about-card-sections about-card-sponsors",children:r.sponsors.map(n=>(0,I.jsx)("a",{href:n.url,children:n.name},n.name))}),(0,I.jsx)("sp-divider",{}),(0,I.jsx)("h2",{children:h("Links")}),(0,I.jsx)("div",{className:"about-card-sections about-card-friends-links",children:r.links.map(n=>(0,I.jsx)("a",{href:n.url,children:n.name},n.name))}),(0,I.jsx)("sp-divider",{}),(0,I.jsxs)("h2",{children:["SD-PPP ",h("Community")]})]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)("div",{className:"about-card-sections about-card-title",children:(0,I.jsx)("h4",{children:h("This plugin is based on sd-ppp")})}),(0,I.jsx)("div",{className:"about-card-sections about-card-title",children:(0,I.jsx)("h6",{children:h("And follows its open source license:")})}),(0,I.jsx)("div",{className:"about-card-sections about-card-title",children:(0,I.jsx)("a",{href:"https://github.com/zombieyang/sd-ppp/blob/main/LICENSE",children:"LICENSE: BSD3-Clause"})})]}),(0,I.jsxs)("div",{className:"about-card-sections about-card-links",children:[o.map(n=>(0,I.jsx)("a",{href:n.url,children:n.name},n.name)),(0,I.jsx)("div",{style:{width:1,height:1,position:"absolute",right:0,bottom:0,opacity:.1},ref:e,className:"persistent-div"})]}),(0,I.jsx)("sp-divider",{}),r.site&&(0,I.jsx)("h1",{children:(0,I.jsx)("a",{href:r.site[Be()=="zhcn"?"zhcn":"en"].url,children:r.site[Be()=="zhcn"?"zhcn":"en"].name})})]})}var at=w(C(),1);var Ye=w(v(),1);function Vn(){let{backendURL:e,setBackendURL:t,connectState:r,doConnectOrDisconnect:o}=L(),n=r==="connected"||r==="connecting"?{disabled:!0}:{};(0,at.useEffect)(()=>{e&&r==="disconnected"&&setTimeout(()=>{o()},1e3)},[]);let i=(0,at.useRef)(!1);return(0,at.useEffect)(()=>()=>{i.current=!0},[]),(0,at.useEffect)(()=>()=>{r==="connected"&&i.current&&o()},[r]),(0,Ye.jsxs)(Ye.Fragment,{children:[(0,Ye.jsx)("sp-textfield",{id:"url-bar",label:"backendURL",onInput:s=>{t(s.currentTarget.value)},...n,value:e||"",placeholder:tr}),(0,Ye.jsx)("sp-action-button",{id:"connect-btn",onClick:()=>{o()},children:r!=="disconnected"?"\u2297":"\u2192"})]})}var Gn=w(C(),1);var xe=class{static makeDocumentDataOptions(t){let r=t.data,o=[`${D.getSpecialDocumentCurrent()}`];return Object.keys(r.documents).forEach(n=>{let i=r.documents[n];o.push(i.identify)}),o}static findDocumentData(t,r){let o=D.is_SPECIAL_DOCUMENT_CURRENT(r)?t.data.activeDocumentID:ho(r).id;return t.data.documents[o]}static makeLayerOptions(t,r){return r.concat(t.layers.map(n=>n.identify))}static getLayerDirtyID(t,r){return t.layers.find(n=>n.identify===r)?.dirtyID||0}static getCanvasDirtyID(t){return t.canvasDirtyID||0}static getSelectionDirtyID(t){return t.selectionDirtyID||0}};var qn=w(C(),1);var Qn=w(C(),1);function Re(e){return{flex:`${e} 0 calc(${e/12*100}% - 10px)`,maxWidth:"100%"}}var ct=class extends qn.Component{computeUIWeightCSS(t){return Re(t)}};var Ke=w(v(),1),Ne=class extends ct{state={filter:""};handleSelectUpdate=(t,r)=>{this.props.onSelectUpdate(t,r),this.setState({filter:""})};render(){let{options:t,value:r,name:o}=this.props;return(0,Ke.jsxs)("div",{style:{display:"flex",alignItems:"center",...this.computeUIWeightCSS(this.props.uiWeight)},children:[o&&(0,Ke.jsx)("sp-label",{style:{flex:1},children:o}),(0,Ke.jsx)("sp-picker",{class:"sdppp-dropdown-widget",size:"s",style:this.props.name?{flex:2}:{width:"100%"},children:(0,Ke.jsx)("sp-menu",{slot:"options",children:t.map((n,i)=>this.state.filter&&!n.includes(this.state.filter)?"":(0,Ke.jsx)("sp-menu-item",{...mr(n)===mr(r)?{selected:!0}:{},onClick:()=>this.handleSelectUpdate(n,i),children:mr(n)},mr(n)))})})]})}};function mr(e){return typeof e=="string"?e:e.content}var Hn=w(v(),1),hr=class e extends Gn.default.Component{state={options:xe.makeDocumentDataOptions(b)};constructor(t){super(t),b.subscribe("/documents",this.updateOptions)}updateOptions=()=>{let t=xe.makeDocumentDataOptions(b);this.setState({options:t})};componentwillUnmount(){b.unsubscribe(this.updateOptions)}static getValueIfIsValidOptionOrCurrent(t,r){return!r||r.includes(t)?t:D.getSpecialDocumentCurrent()}static getDerivedStateFromProps(t,r){let o=t.value;if(o){let n=o.split("/"),i=e.getValueIfIsValidOptionOrCurrent(n.slice(1).join("/"),r.options);return D.is_SPECIAL_DOCUMENT_CURRENT(i)?o=D.getSpecialDocumentCurrent():o=i,n[0]!=b.data.uname&&t.onSelectUpdate(b.data.uname+"/"+o,0),Object.assign(r,{value:o})}return null}render(){let t=e.getValueIfIsValidOptionOrCurrent(this.props.value,this.state.options);return(0,Hn.jsx)(Ne,{uiWeight:this.props.uiWeight,options:this.state.options,onSelectUpdate:(r,o)=>{this.props.onSelectUpdate(b.data.uname+"/"+r,o)},value:t})}};var Kn=w(C(),1);var Yn=w(v(),1);function de(e){return(0,Yn.jsx)("a",{onClick:e.onClick,children:e.label})}var be=w(v(),1),Oe=class extends Kn.default.Component{state={options:[]};constructor(t){super(t),b.subscribe("/documents",this.updataOptionsAfterDocumentChange)}componentwillUnmount(){b.unsubscribe(this.updataOptionsAfterDocumentChange)}componentDidMount(){this.updateOptions(this.props.documentValue||D.getSpecialDocumentCurrent())}shouldComponentUpdate(t,r){return t.documentValue!=this.props.documentValue&&t.documentValue&&this.updateOptions(t.documentValue),!0}updataOptionsAfterDocumentChange=()=>{this.updateOptions(this.props.documentValue||D.getSpecialDocumentCurrent())};updateOptions=t=>{t=t||this.props.documentValue||D.getSpecialDocumentCurrent();let r=xe.findDocumentData(b,t);if(!r){this.setState({options:[]});return}let o=xe.makeLayerOptions(r,D.getSpecialLayerForGet());this.setState({options:o})};render(){let t=this.props.value;if(t)try{t=h(t)}catch{}return(0,be.jsxs)("div",{className:"sdppp-layer-widget",style:Re(this.props.uiWeight),children:[(0,be.jsx)("div",{className:"sdppp-layer-widget-dropdown",children:(0,be.jsx)(Ne,{uiWeight:12,options:this.state.options,onSelectUpdate:this.props.onSelectUpdate,value:t})}),(0,be.jsxs)("div",{className:"sdppp-layer-widget-quick-set",children:[(0,be.jsxs)("sp-label",{children:[h("Quick Set"),":"]}),(0,be.jsx)(de,{onClick:async()=>{let r=Ve();this.props.onSelectUpdate(r,this.state.options.indexOf(r))},label:h("Selected Layer")}),(0,be.jsx)(de,{onClick:async()=>{this.props.onSelectUpdate(D.get_SPECIAL_LAYER_USE_CANVAS(),this.state.options.indexOf(D.get_SPECIAL_LAYER_USE_CANVAS()))},label:h("Canvas")})]})]})}};var kt=w(Pt(),1),ut=_("photoshop"),re=w(C(),1);var so=w(Pt(),1),gr=_("photoshop"),te=w(C(),1);var Lt=w(v(),1);function _t({mode:e,setMode:t}){let r=o=>{t(o)};return(0,Lt.jsxs)("div",{className:"widget-mode-selection",children:[(0,Lt.jsx)("button",{className:`widget-mode-selection-button ${e==="manual"?"selected":""}`,onClick:()=>r("manual"),children:h("Manual")}),(0,Lt.jsx)("button",{className:`widget-mode-selection-button ${e==="auto"?"selected":""}`,onClick:()=>r("auto"),children:h("Auto")})]})}var ee=w(v(),1);function zn(e){let[t,r]=(0,te.useState)(""),[o,n]=(0,te.useState)(""),[i,s]=(0,te.useState)("manual"),[a,c]=(0,te.useState)(!1),[l,m]=(0,te.useState)(null),{backendURL:p}=L(),{uploadImage:u}=ae(),{addBeforeWorkflowRunHook:f}=ot(),d=(0,te.useRef)(null),g=(0,te.useCallback)(async()=>{if(i==="manual"&&!a&&l){await e.onValueChange(l);return}try{if(i==="auto"&&await S(t),d.current){let P=await d.current.getBuffer(so.JimpMime.jpeg),E=await u(P,pt(6)+".jpeg");E?.name&&(m(E.subfolder+"/"+E.name),c(!1),await e.onValueChange(E.subfolder+"/"+E.name))}}catch(P){console.error(P)}},[i,a,l,e.onValueChange]);(0,te.useEffect)(()=>{let E=f(g);return()=>{E()}},[g]);let y=o;if(!y&&(l||e.value)){let P=l||e.value,E=P.split("/").slice(0,-1).join("/");y=p+(p.endsWith("/")?"":"/")+`api/view?filename=${P}&type=input&subfolder=${E}&rand=`+Math.random()}let S=(0,te.useCallback)(async P=>{let E=await ao(P);if(!E)return;d.current=E;let B=await cs(E);r(P),n(B),c(!0)},[]);return(0,ee.jsxs)("div",{className:"image-widget",children:[(0,ee.jsx)("div",{className:"image-widget-left",children:(0,ee.jsx)("img",{src:y,className:"image-widget-image"+(y?"":" image-widget-image-empty")})}),(0,ee.jsxs)("div",{className:"image-widget-right",children:[(0,ee.jsx)(_t,{mode:i,setMode:s}),i==="manual"&&(0,ee.jsxs)("div",{className:"image-widget-more-quickset",children:[(0,ee.jsx)("sp-label",{children:h("Set As:")}),(0,ee.jsx)(de,{onClick:()=>{S(Ve())},label:h("Selected Layer")}),(0,ee.jsx)(de,{onClick:()=>{S(D.get_SPECIAL_LAYER_USE_CANVAS())},label:h("Canvas")})]}),i=="auto"&&(0,ee.jsx)("div",{className:"image-widget-layer-widget-container",children:(0,ee.jsx)(Oe,{onSelectUpdate:S,uiWeight:10,value:t})})]})]})}async function ao(e){if(!gr.app.activeDocument)return null;try{return await $t.getJimpImage({document_identify:ge(gr.app.activeDocument.id,gr.app.activeDocument.name),layer_identify:e})}catch(t){throw console.error(t),t}}async function cs(e){let t=100/Math.max(e.width,e.height);return e=e.clone(),e.scale(t),await e.getBase64(so.JimpMime.jpeg)}var Y=w(v(),1);function Jn(e){let[t,r]=(0,re.useState)(""),[o,n]=(0,re.useState)(""),[i,s]=(0,re.useState)("manual"),[a,c]=(0,re.useState)(!1),[l,m]=(0,re.useState)(null),{backendURL:p}=L(),{uploadImage:u}=ae(),{addBeforeWorkflowRunHook:f}=ot(),d=(0,re.useRef)(null),g=(0,re.useCallback)(async()=>{if(i==="manual"&&!a&&l){await e.onValueChange(l);return}try{if(i==="auto"&&await S(t),d.current){let P=await d.current.getBuffer(kt.JimpMime.png),E=await u(P,pt(6)+".png");E?.name&&(m(E.subfolder+"/"+E.name),c(!1),await e.onValueChange(E.subfolder+"/"+E.name))}}catch(P){console.error(P)}},[i,a,l,e.onValueChange]);(0,re.useEffect)(()=>{let P=f(g);return()=>{P()}},[g]);let y=o;if(!y&&(l||e.value)){let P=l||e.value,E=P.split("/").slice(0,-1).join("/");y=p+(p.endsWith("/")?"":"/")+`api/view?filename=${P}&type=input&subfolder=${E}&rand=`+Math.random()}let S=(0,re.useCallback)(async(P,E=!1)=>{let B=await ao(P);if(!B)return;d.current=B;let ne=await jn(B,E);r(P),n(ne),c(!0)},[]);return(0,Y.jsxs)("div",{className:"image-widget",children:[(0,Y.jsx)("div",{className:"image-widget-left",children:(0,Y.jsx)("img",{src:y,className:"image-widget-image"+(y?"":" image-widget-image-empty")})}),(0,Y.jsxs)("div",{className:"image-widget-right",children:[(0,Y.jsx)(_t,{mode:i,setMode:P=>{s(P)}}),i==="manual"&&(0,Y.jsxs)("div",{className:"image-widget-more-quickset",children:[(0,Y.jsx)("sp-label",{children:h("Set As:")}),(0,Y.jsx)(de,{onClick:()=>{S(Ve(),!1)},label:h("Selected Layer")}),(0,Y.jsx)(de,{onClick:async()=>{S(Ve(),!0)},label:h("Selected Layer (invert)")}),(0,Y.jsx)(de,{onClick:()=>{S(D.get_SPECIAL_LAYER_USE_CANVAS())},label:h("Canvas")}),(0,Y.jsx)(de,{onClick:async()=>{let P=await us();if(!P)return;d.current=P;let E=await jn(P);r(""),n(E),c(!0)},label:h("Selection")})]}),i==="auto"&&(0,Y.jsx)("div",{className:"image-widget-layer-widget-container",children:(0,Y.jsx)(Oe,{onSelectUpdate:P=>{S(P,!1)},uiWeight:12,value:t})})]})]})}async function us(){if(!ut.app.activeDocument)return null;try{let e=await Dt({document_identify:ge(ut.app.activeDocument.id,ut.app.activeDocument.name),boundary:{left:0,top:0,right:0,bottom:0,width:ut.app.activeDocument.width,height:ut.app.activeDocument.height}});if(!e?.blob)return null;let t=e.blob,r=new Uint8Array(t.length*4);for(let o=0;oe.nodeIndexes.map(c=>{let l=e.nodes[c],m=(d,g,y)=>d.keepRender?g.outputType==="error"?(d.result.push((0,K.jsx)("span",{className:"list-error-label",children:t[l.id][y]})),d):(o?.(d,l,g,y),d):d,u=Object.values(e.groups).find(d=>d.nodeIDs.includes(l.id))?.color||"rgba(127, 127, 127, .4)",f=l.uiWeightSum<=8&&l.widgets.length==1&&(l.widgets[0].outputType!=="number"||!e.extraOptions?.useSliderForNumberWidget);return(0,K.jsxs)("div",{className:"workflow-edit-field",children:[(0,K.jsx)("div",{className:"workflow-edit-field-title",title:l.title,style:{...Re(f?4:12),borderColor:u},children:i?i(l.title,l):(0,K.jsx)("span",{children:l.title})}),l.widgets.reduce(m,{keepRender:!0,result:[]}).result.map((d,g)=>(0,K.jsx)(co,{children:d},g)),r[l.id]?(0,K.jsx)("span",{className:"list-error-label",children:r[l.id]}):""]},l.id)}),[e,t,r,o,n,i]),a=(0,Tt.useMemo)(()=>Object.keys(r).filter(c=>!e.nodes[parseInt(c)]),[r,e]);return(0,K.jsxs)(K.Fragment,{children:[a.length>0&&a.map(c=>(0,K.jsx)("span",{className:"list-error-label",children:r[c]},c)),Object.keys(e.nodes).length?"":(0,K.jsx)("span",{className:"list-error-label",children:h("no suitable node to control in this workflow")}),(0,K.jsx)("div",{className:"workflow-edit-content",children:s})]})}var co=class extends Tt.default.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}componentDidCatch(t,r){this.setState({hasError:!0,error:t})}render(){return this.state.hasError?(0,K.jsx)("span",{className:"list-error-label",children:this.state.error?.stack||this.state.error?.message||this.state.error?.toString()}):this.props.children}};var ze=w(C(),1),We=w(v(),1),$n=e=>{let{inputMin:t,inputMax:r,inputStep:o,value:n=0,onValueChange:i,name:s,uiWeight:a,extraOptions:c}=e,[l,m]=(0,ze.useState)(+n.toFixed(3));(0,ze.useEffect)(()=>{m(+n.toFixed(3))},[n]);let p=(0,ze.useCallback)(g=>{let y=+g.target.value;m(+y.toFixed(3))},[]),u=(0,ze.useCallback)(()=>{i(l)},[l,i]),f=g=>({flex:g||1});return!((r-t)/o>1e3)&&a&&a>=1&&c?.useSliderForNumberWidget?(0,We.jsxs)("div",{style:{...f(a),display:"flex",alignItems:"center"},children:[(0,We.jsx)("sp-slider",{style:{width:"60%"},min:t,max:r,step:o,value:l,onInput:p,"show-value":"false",class:"sdppp-slider"}),(0,We.jsx)("sp-textfield",{style:{width:"40%"},onInput:p,value:l})]}):(0,We.jsxs)("div",{style:{...f(a),display:"flex",alignItems:"center"},children:[s&&(0,We.jsx)("sp-label",{style:{flex:1},children:s}),(0,We.jsx)("sp-textfield",{style:s?{flex:2}:{width:"100%"},onInput:p,onBlur:u,value:l})]})};var q=w(C(),1);var lt=w(v(),1);function Xn(e){let t=q.default.useRef(null),[r,o]=(0,q.useState)(0),[n,i]=(0,q.useState)(e.value??""),[s,a]=(0,q.useState)(!1);return(0,q.useEffect)(()=>{s||i(e.value??"")},[e.value]),(0,q.useEffect)(()=>{let c=setInterval(()=>{if(t.current){let l=t.current.offsetHeight;l!==r&&o(l)}},16);return()=>clearInterval(c)},[r]),(0,lt.jsxs)("div",{className:"widget-container",style:{...Re(e.uiWeight),position:"relative",height:Math.max(55,r)},children:[(0,lt.jsx)(ls,{textAreaValue:n,setTextAreaValue:i,editing:s,setEditing:a,onValueChange:e.onValueChange,hiddenDivHeight:r}),(0,lt.jsx)("p",{ref:t,style:{fontSize:14,visibility:"hidden",whiteSpace:"pre-line"},children:n})]})}function ls({textAreaValue:e,onValueChange:t,editing:r,setEditing:o,setTextAreaValue:n,hiddenDivHeight:i}){let[s,a]=(0,q.useState)(0),c=(0,q.useCallback)(f=>{let d=f.target.value;t(d),n(d)},[t,n]),l=(0,q.useCallback)(()=>{o(!0)},[o]),m=(0,q.useCallback)(()=>{let f={textfieldRerender:s,editing:!1};s==2&&(f.textfieldRerender=1),a(f.textfieldRerender),o(f.editing)},[s,a,o]),[p,u]=(0,q.useState)(i);return(0,q.useEffect)(()=>{i!=p&&(a(r?2:1),u(i))},[i]),(0,q.useEffect)(()=>{s==1&&Promise.resolve().then(async()=>{await new Promise(requestAnimationFrame),a(0)})},[s]),s==1?"":(0,lt.jsx)("sp-textarea",{style:{position:"absolute",height:"100%",width:"100%",top:0,left:0},value:e,onInput:c,onFocus:l,onBlur:m})}var Zn=w(v(),1),yr=class extends ct{onInput=t=>{let r=!!t.target.value;this.setState({value:r}),this.props.onValueChange(r)};render(){let t=this.props.value?{checked:!0}:{};return(0,Zn.jsx)("sp-checkbox",{label:this.props.name||"",style:{...this.computeUIWeightCSS(this.props.uiWeight)},onInput:r=>{this.props.onValueChange(r.target.checked)},...t,children:this.props.name||""})}};function ei(e){return e.replace(/^workflows\//,"").replace(/\.json$/,"")}var z=w(v(),1);function ti(){let{callForPSDExtract:e}=ae(),{workflowAgent:t}=L(),{setWidgetValue:r}=An(),{setShouldTriggerLivePainting:o}=ur(),{state:n}=ue(t,["/widgetTableValue","/widgetTableStructure","/widgetTableErrors"]),i=!!t?.data.hasPSDNodes,s=(0,lo.useCallback)(async(p,u,f,d)=>{await r(p,u,f),o(!0)},[r,o]),a=n?.widgetTableStructure,c=n?.widgetTableValue,l=n?.widgetTableErrors,m=(0,lo.useCallback)((p,u,f,d)=>{if(f.outputType=="PS_DOCUMENT")return p.result.push((0,z.jsx)(hr,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",onSelectUpdate:g=>{s(u.id,d,g,u)},extraOptions:a?.extraOptions},d)),!0;if(f.outputType=="PS_LAYER"){let g=f.options?.documentNodeID||0,y=c?.[g]?.[0]||"";return p.result.push((0,z.jsx)(Oe,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",documentValue:y?y.split("/").pop():"",onSelectUpdate:S=>{s(u.id,d,S,u)},extraOptions:a?.extraOptions},d)),!0}else{if(f.outputType=="IMAGE_PATH")return p.result.push((0,z.jsx)(zn,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",onValueChange:async g=>{await s(u.id,d,g,u)},extraOptions:a?.extraOptions},d)),!0;if(f.outputType=="MASK_PATH")return p.result.push((0,z.jsx)(Jn,{uiWeight:f.uiWeight||12,value:c?.[u.id]?.[d]||"",onValueChange:async g=>{await s(u.id,d,g,u)},extraOptions:a?.extraOptions},d)),!0;if(f.outputType==="number"){let g=f.options?.min??0,y=f.options?.max??100,S=f.options?.step??1;p.result.push((0,z.jsx)($n,{uiWeight:f.uiWeight||12,name:f.name,inputMin:g,inputMax:y,inputStep:S,value:parseFloat(c?.[u.id]?.[d]||"0"),onValueChange:P=>{s(u.id,d,P,u)},extraOptions:a?.extraOptions},d))}else if(f.outputType==="combo")p.result.push((0,z.jsx)(Ne,{uiWeight:f.uiWeight||12,name:f.name,options:f.options?.values||[],onSelectUpdate:g=>{s(u.id,d,g,u)},value:c?.[u.id]?.[d]||"",extraOptions:a?.extraOptions},d));else if(f.outputType==="toggle")p.result.push((0,z.jsx)(yr,{uiWeight:f.uiWeight||12,name:f.name,value:c?.[u.id]?.[d]||"",onValueChange:g=>{s(u.id,d,g,u)},extraOptions:a?.extraOptions},d));else{let g=c?.[u.id]?.[d]||"";p.result.push((0,z.jsx)(Xn,{uiWeight:f.uiWeight||12,value:typeof g=="string"?g:JSON.stringify(g),onValueChange:y=>{s(u.id,d,y,u)},extraOptions:a?.extraOptions},d))}}return!1},[r,c]);return a?(0,z.jsxs)("div",{className:"workflow-edit",children:[(0,z.jsxs)("div",{className:"workflow-edit-title",children:[a.widgetTablePath&&(0,z.jsx)("sp-label",{style:{fontWeight:"bold"},children:ei(a.widgetTablePath)}),i?(0,z.jsx)("a",{onClick:()=>{e(t?.data.sid||"").catch(p=>{alert(p.message)})},children:">"+h("sample .psd")}):""]}),(0,z.jsx)(uo,{widgetTableStructure:a,widgetTableValue:c||{},widgetTableErrors:l||{},onWidgetChange:s,onWidgetRender:m})]}):null}var wr=w(C(),1);var F=w(v(),1);function ri(){let{login:e,loginStyle:t,loginBannerTop:r,loginBannerBottom:o}=ke(),[n,i]=(0,wr.useState)(localStorage.getItem("last-username")||""),[s,a]=(0,wr.useState)(""),[c,l]=(0,wr.useState)("");return(0,F.jsxs)("div",{className:"login-container",children:[r,(0,F.jsx)("div",{className:"login-container-login",children:(0,F.jsxs)("div",{className:"login-form",children:[t==="invitation"?(0,F.jsxs)("div",{className:"login-form-item",children:[(0,F.jsx)("label",{htmlFor:"username",children:h("Invitation Code")}),(0,F.jsx)("sp-textfield",{type:"text",id:"username",placeholder:h("Please input invitation code"),value:n,onInput:m=>i(m.target.value)})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)("div",{className:"login-form-item",children:[(0,F.jsx)("label",{htmlFor:"username",children:h("Username")}),(0,F.jsx)("sp-textfield",{type:"text",id:"username",placeholder:h("Please input username"),value:n,onInput:m=>i(m.target.value)})]}),(0,F.jsxs)("div",{className:"login-form-item",children:[(0,F.jsx)("label",{htmlFor:"password",children:h("Password")}),(0,F.jsx)("sp-textfield",{type:"password",id:"password",placeholder:h("Please input password"),value:s,onInput:m=>a(m.target.value)})]})]}),(0,F.jsx)("div",{className:"login-error-message",children:c}),(0,F.jsx)("button",{className:"login-button",onClick:async()=>{let m=await e(n,s);m.success?(l(""),localStorage.setItem("last-username",n)):l(m.message)},children:h("Login")})]})}),o]})}var Me=w(v(),1);function ni({renderContent:e}){let{connectState:t}=L(),r=(0,oi.useMemo)(()=>e(t,Vn,ti),[t]),{isLogin:o}=ke();return(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(He,{children:o?r:(0,Me.jsx)(ri,{})}),t!="connected"&&(0,Me.jsx)(Bn,{})]})}var si=w(C(),1);var Sr=w(C(),1);var he=w(v(),1);function ii(e){let t=Pe.MU,{state:r}=ue(b,["/comfyUserToken"]),{logout:o}=ae(),{workflowAgent:n}=L(),{workflowAgentSID:i}=Le(),s=Ee(),[a,c]=(0,Sr.useState)(!1);return(0,Sr.useEffect)(()=>{if(!n){b.setComfyUserToken("");return}let l=(m,p)=>{let u=r?.comfyUserToken;b.setComfyUserToken(m),u==""&&a&&(s.resetWebview(),c(!1))};return n.subscribe("/comfyUserToken",l),l(n.data.comfyUserToken,""),()=>{n&&n.unsubscribe(l)}},[n,a,s.resetWebview]),t?(0,he.jsx)("div",{className:"identifier-bar-right",children:n&&r?.comfyUserToken?(0,he.jsxs)(he.Fragment,{children:[(0,he.jsx)("sp-label",{children:h("User: ")+r?.comfyUserToken.split("_")[0]}),(0,he.jsx)("sp-label",{children:(0,he.jsx)("a",{onClick:()=>{o(i),c(!1)},children:h("Logout")})})]}):(0,he.jsx)("a",{onClick:()=>{c(!0),e.onRequestLogin?.()},children:h("--multi-user activated, Not Login!")})}):""}var ai=_("uxp");var oe=w(v(),1);function ci(){let{state:e}=ue(b,["/uname","/comfyUser"]),t=L(),{toggleWebviewDialog:r}=Ee(),o=(0,si.useCallback)(()=>{r()},[r]);return(0,oe.jsxs)("div",{className:"promote-bar",children:[(0,oe.jsx)(ds,{}),(0,oe.jsxs)("div",{className:"identifier-bar",children:[(0,oe.jsx)("div",{className:"identifier-bar-left",children:(0,oe.jsxs)("sp-label",{children:["(Photoshop ID: ",e?.uname,")"]})}),t.comfyMultiUser&&(0,oe.jsx)(ii,{onRequestLogin:o})]})]})}function ds(){let{data:e}=pr(),t=e.cloud[Be()=="zhcn"?"zhcn":"en"];return!t||t.length==0?null:(0,oe.jsxs)("div",{className:"cloud-promote-bar",children:[(0,oe.jsx)("span",{className:"cloud-promote-bar-left",children:h("Cloud")}),(0,oe.jsx)("span",{className:"cloud-promote-bar-right",children:t.map(r=>(0,oe.jsxs)("span",{style:{borderColor:r.color},onClick:()=>{ai.shell.openExternal(r.url)},children:[(0,oe.jsx)("img",{src:r.icon}),r.name]}))})]})}Object.assign(globalThis,{SDPPPInternal:fo});})(); /*! Bundled license information: fast-json-patch/module/helpers.mjs: diff --git a/static/sd-ppp_PS.ccx b/static/sd-ppp_PS.ccx index 92dbcf459480c9930fc561259be46324e17b90da..cfd4c787e9272ba69feda976d9d4b7a109fddd84 100644 GIT binary patch delta 70940 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